기존의 번역 방식: RNN 기반 인코더-디코더 모델인코더는 입력 문장을 단어(토큰)을 순서대로 읽어 지금까지의 정보를 담은 은닉 상태를 갱신한다. 그리고 입력 문장의 마지막 단어까지 처리하고 만들어진 최종 은닉 상태가 문장 전체 의미를 압축한 문맥 벡터(Context Vector)라고 한다.디코더는 압축된 의미(문맥 벡터)를 바탕으로 출력 문장을 한 단어씩 생성한다. 모든 의미를 담기에 너무 작은 문맥 벡터인코더-디코더 모델의 단점은 입력 문장의 길이와 관련없이 모든 정보를 고정된 크기의 벡터 하나에 담아야 한다는 것이다.때문에, 문장이 길어질 수록 의미가 손실되는 문맥 병목(Context Bottleneck) 현상이 발생한다. 이러한 문제를 해결하기 위해, 인코더가 처리했던 모든 시점의 은닉 상태를 전..
ChatGPT와 같은 LLM의 기반이 되는 트랜스포머(Transformer) 구조에 대해 알아보자. 트랜스포머 탄생: Attention Is All You Need트랜스포머는 원래 한 언어의 텍스트 시퀀스를 다른 언어로 변환하기 위해 설계되었다.기존에는 RNN(순환 신경망)과 어텐션의 조합으로 사용했으나, 트랜스포머는 RNN을 제거하고 오직 어텐션 메커니즘만 사용하여 긴 문맥의 흐름을 파악할 수 있도록 설계되었다. 핵심 구조: 인코더와 디코더트랜스포머는 크게 인코더와 디코더로 두 가지 블록으로 나뉜다.1. 인코더(Encoder)입력 텍스트를 받아 문맥 정보를 담은 텍스트 임베딩(벡터의 집합)로 변환한다.(텍스트 임베딩은 문장 전체의 문맥을 파악하여 각 단어의 의미를 조정한 결과물)이 과정은 여러 동일한 ..