ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LLM 기초 다지기] Attention Mechanism
    Deep-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/147

    Attention 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 수식

     

    댓글

by KUKLIFE