-
[LLM 기초 다지기] Attention MechanismDeep-Learning/[NLP] 이론 2023. 11. 3. 23:15
진작 알았다면 좋았을 NLP 및 LLM에 대한 기초 지식 2. Attention Mechanism
Contents
🔹 Word Embeddings: https://kuklife.tistory.com/144
🔹 Attention Mechanism: https://kuklife.tistory.com/145
🔹 Self-Attention: https://kuklife.tistory.com/148
🔹 Overview of LLMs:
🔹 LLM benchmark and Metrics:
🔹 GPT:
🔹 LLaMA2:
🔹 RAG:
🔹 Chain of Thought (CoT, Zero-shot CoT, AutoCoT, ReACT):
🔹 Fine-tuning for LLM (LoRA, P-tuning): https://kuklife.tistory.com/147Attention 3줄 요약
- Attention에서 가중치의 합계는 value에 포함된 정보의 선택적 요약이며, 여기서 query는 어떤 값에 초점을 맞출지 결정
- Attention은 다른 표현 (query)에 따라 임의의 표현 (value)의 고정 크기 표현을 얻는 방법
- 즉, 벡터 값의 집합과 벡터 query가 주어지면, Attention은 query에 따라 value의 가중치 합계를 계산하는 기술
Attention의 개요
- 감성 분석 문제와 같은 단순 분류 NLP task에서는 문장 전체를 보지 않고, 마지막 hidden state만으로도 좋은 성능을 냈음
- 하지만, 기계 번역과 같은 task에서는 각각의 단어가 무엇인지, 그 배열이 어떤지 중요하기 때문에 동일한 방식으로 접근한다면 encoder RNN의 마지막 hidden state에 모든 정보가 쏠리는 정보 병목 문제 (information bottleneck problem)이 발생
- 사람이 번역 문제를 해결하더라도 원 문장을 확인해가며 어떤 단어가 어떻게 배열되는지 확인하는데, 이 개념에서 시작된 것이 Attention Mechanism
Sequence-to-Sequence Model
- seq2seq 모델은 아래 그림과 같이 인코더와 디코더라는 두 가지 주요 구성 요소로 구성
- 인코더는 순환 신경망이며 일반적인 접근 방식은 GRU 또는 LSTM (vector x=(x1,…,xT)의 시퀀스인 입력 문장을 고정 길이 벡터 c로 읽는 방식)
- 디코더는 컨텍스트 벡터 c와 이전에 예측한 모든 단어 {y1,…,yt−1}가 주어지면 다음 단어 yt를 예측하도록 훈련
- 따라서 고정 크기 컨텍스트 벡터에는 특히 긴 문장의 경우 큰 병목 현상이 발생
- 아래 그림은 seq2seq 모델의 성능이 문장 길이에 따라 어떻게 달라지는지 보여줌
Attention Mechanism
- Attention은 seq2seq의 병목문제를 해결하기 위해 제안된 기법
- 핵심 아이디어는 디코더의 각 단계를 인코더에 직접 연결하여 source sequence의 특정 부분에 초점을 맞추는 것
- 예를 들어, target 문장의 첫 번째 단어를 번역하기 위해서는 초점을 맞처야할 source 문장 내에서 어디를 주목해야하는지 알아보고 싶다면, 위 그림과 같이 모델 상에서 decoder의 hidden state를 이용하여 encoder의 정보를 직접 가져옴
- 즉, decoder의 hidden state와 encoder의 각 위치에서 hidden state의 내적을 통해 attention score(유사도)를 확인
- 이후, 구해진 각각의 attention score에 softmax를 위해 각 단어의 attention 확률 분포를 구하고, 이를 통해 해당 decoder state가 어떤 encoder state와 유사한지 확인이 가능
- 위 그림에서 <START>를 번역하려면 encoder의 첫 state 단어인 il에 집중해야함을 알 수 있음
- 결론적으로, attention output과 decoder의 hidden state를 연결한 후 softmax를 취해주어 단어를 예측 (모든 target 문장 반복)
- conditional language model에서 이런 방식으로 반복하여 얻은 target 문장은 source 문장으로부터 더 많은 정보를 가져올 수 있기 때문에 유연하고 좋은 번역이 가능
Attention의 장점
- Attention은 기계 번역 성능을 상당히 향상 (= decoder가 source의 특정 부분에 집중하게 하는 것은 효과적임)
- Attention은 기계 번역에서 더 "사람 같은" 모델을 제공 (=문장을 저부 기억해두는 것이 아니라 번역과정에서 source를 집중)
- Attention은 병목 문제와 기울기 소실 문제를 해소 (= 멀리 떨어진 state의 정보까지 제공)
- Attention은 어느 정도의 해성 가능성을 제공 (=Attention distribution을 검사함으로써, 디코더가 무엇에 초점을 맞추고 있는지 알 수 있고, 네트워크가 스스로 학습함)
Attention 수식
'Deep-Learning > [NLP] 이론' 카테고리의 다른 글
금융권에서 경험한 NLP 일기장 - 1. DAPT (0) 2023.11.10 [LLM 기초 다지기] LoRA for LLM Fine-tuning (0) 2023.11.09 [LLM 기초 다지기 ] Self Attention and Transformer (0) 2023.11.05 [LLM 기초 다지기] Word Embeddings (0) 2023.10.30