Transformers
Attention Mechanism
Attention Mechanism은 특정 단어를 예측할 때, 해당 단어와 유사한 인코딩된 히든 벡터의 정보를 함께 사용하여 디코딩하는 방법입니다. 예를 들어, "beer"를 예측할 때, "bier"와 같은 유사한 단어의 인코딩된 정보를 사용합니다. 이는 예측의 정확성을 높이는 데 도움을 줍니다.
Self-Attention
Self-Attention은 입력 단어 벡터의 모든 히든 상태를 사용하여 해당 단어와의 관계를 계산합니다. 이 메커니즘은 입력 벡터의 차원이 512일 때, 8개의 헤드로 나누어 각 헤드의 입력 벡터 차원을 64로 설정하여 계산을 수행합니다. 각 단어 간의 유사도를 계산하고, 이를 바탕으로 어텐션 가중치를 적용하여 최종 출력을 생성합니다.
Multi-Head Self-Attention
Multi-Head Self-Attention은 여러 개의 어텐션을 병렬로 수행하여 각 어텐션의 출력을 결합하는 방식입니다. 원래 입력 단어 벡터의 차원이 512일 때, 8개의 헤드로 나누어 각 헤드의 입력 벡터 차원을 64로 설정하여 각 헤드에서 독립적인 어텐션 계산을 수행한 후, 최종적으로 이를 결합하여 출력 벡터를 생성합니다. 이를 통해 모델은 다양한 관점에서 입력을 처리할 수 있습니다.
Self-Attention and Transformer
The Transformer
트랜스포머 모델은 자연어 처리에서 혁신적인 모델로, 특히 다음 두 가지 중요한 개념을 포함합니다: Residual Network와 Masked Attention.
Residual Network
Residual Network는 레이어 간의 정보를 더 잘 전달하기 위해 사용되는 구조입니다. 이는 각 레이어의 출력을 다음 레이어로 직접 전달하는 것이 아니라, 원래 입력에 출력을 더하는 방식으로 동작합니다. 이를 통해 다음과 같은 이점을 얻을 수 있습니다:
- Gradient Vanishing/Exploding 문제 완화: 깊은 네트워크에서도 그래디언트가 사라지거나 폭발하는 문제를 줄입니다.
- 효율적인 학습: 네트워크가 더 깊어지더라도 학습이 원활하게 진행됩니다.
Residual Network의 수식은 다음과 같습니다: Output=Input+Layer(Input)
Masked Attention
Masked Attention은 트랜스포머 모델의 디코더에서 사용되는 기법으로, 트레이닝 과정에서 미래의 정보를 사용할 수 없도록 마스킹을 적용하는 방식입니다. 이는 주로 언어 모델링에서 다음 단어를 예측할 때 사용됩니다.
마스킹의 목적은 모델이 다음 단어를 예측할 때, 이미 본 단어들만을 참조하게 하여 일관된 예측을 가능하게 하는 것입니다. 예를 들어, 문장 "I love machine learning"을 예측할 때, "love"를 예측할 때 "machine"이나 "learning"을 보지 않도록 하는 방식입니다.
Transformer의 구성 요소
트랜스포머는 인코더-디코더 구조로 구성되어 있으며, 각 구성 요소는 다음과 같습니다:
- 인코더: 입력 시퀀스를 받아 여러 층의 self-attention과 피드포워드 뉴럴 네트워크를 통해 입력을 처리합니다.
- 디코더: 인코더의 출력을 받아 마스킹된 self-attention과 일반적인 attention을 통해 출력을 생성합니다.
트랜스포머의 주요 특징:
- Self-Attention Mechanism: 각 단어가 문장 내 다른 단어들과의 관계를 계산하여 문맥을 이해합니다.
- Positional Encoding: 위치 정보를 추가하여 순서에 대한 정보를 제공합니다.
- Multi-Head Attention: 여러 개의 어텐션을 병렬로 수행하여 다양한 관점에서 입력을 처리합니다.
- Feed-Forward Networks: 각 어텐션 후에 사용되는 완전 연결 층입니다.
트랜스포머는 이러한 구성 요소와 기법들을 통해 빠르고 효과적으로 문맥을 이해하고 자연어 처리 작업을 수행할 수 있습니다.
Large Language Models (LLMs)
BERT (Bidirectional Encoder Representations from Transformers)는 트랜스포머를 기반으로 하는 언어 모델로, 양방향 인코딩을 통해 문맥을 이해합니다. 입력 벡터에는 [CLS]와 [SEP] 토큰이 포함되며, 마스킹된 언어 모델링과 다음 문장 예측과 같은 과제를 통해 사전 학습됩니다.
GPT (Generative Pretrained Transformer)는 사전 학습된 트랜스포머를 기반으로 하는 생성 모델입니다.
BART (Bidirectional Auto-Regressive Transformer)는 양방향 및 오토레그레시브 트랜스포머를 결합한 모델입니다.
RAG (Retrieval-Augmented Generation)는 언어 모델의 생성을 보완하기 위해 사전에 정의된 신뢰성 있는 문서에서 정보를 검색하여 사용하는 방식입니다. RAG는 Dense Passage Retriever(DPR)와 BART를 결합하여 질문에 대한 답변을 생성합니다.