ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LLM 기초 다지기 ] Self Attention and Transformer
    Deep-Learning/[NLP] 이론 2023. 11. 5. 20:12

    진작 알았다면 좋았을 NLP 및 LLM에 대한 기초 지식 3. Self-Attention and Transformer

     
    Contents
    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

    BERT의 시작, Transformer의 개요

    - Transformer는 Attention 만으로 이루어진 encoder - decoder 구조의 seq2seq 모델이다.
    - Attention의 등장으로 RNN 계열 모델의 성능을 향상 시켰다.
    - 하지만, RNN 모델의 큰 단점은 네트워크를 계속 순환 업데이트 하면서 연산 효율이 떨어지는 문제가 있다.
    - 이러한 문제를 해소한 것이 Transformer 모델, 이 모델에 사용된 Multi-head attention의 근본이 self-attention이다.
    - 본 글에서는 1) self-attention, 2) Transformer 구조, 3) Multi-head attention 3개에 대해서 다뤄본다. 

    Self-Attention

    * 4줄요약

    1. 원하는 문장을 임베딩하고 학습을 통해 각 Query, Key, Value에 맞는 weight들을 구해줌.

    2. 각 단어의 임베딩의 Query, Key, Value(Query = Key = Value)와 weight를 점곱(내적)해 최종 Q, K, V를 구함.

    3. Attention score 공식을 통해 각 단어별 Self Attention value를 도출

    4. Self Attention value의 내부를 비교하면서 상관관계가 높은 단어들을 도출

    - Self-attention이란, Attention을 자기 자신에게 취한다는 의미로써 문장에서 단어들의 연관성을 알리기 위해서이다.

    - 위 그림을 예로 들면, 문장에서 it은 animal을 가르키는데 두 단어가 동일한 의미임을 학습시키는 것이다.

    - Self Attention에서는 Query, Key, Value 라는 3가지 변수가 존재하고, 시작 값은 모두 동일하다.
    - 위 그림과 같이 중간에 학습 weight W값에 의해 최종적인 Query, Key, Value값은 서로 달라지게 된다.
    - 최종적으로는 Q,K,V의 시작값은 같으나, 최종값은 학습을 통해 달라진다.
    - 이를 구하는 공식은 아래와 같다.


    - 먼저, Query와 Key의 연관성을 계산하기 위해 내적(=attention score)
    - 이 때, Q와 K의 차원이 커지면 attention score가 커져서 모델의 학습이 어려워질 수 있다. 이러한 문제를 해결하기 위해 "key의 차원의 루트"만큼 나누어 스케일링 작업을 수행한다.
    - 그 다음, softmax를 거치고 value를 곱하면 최종적인 attention 행렬이 얻어진다.

    - 예를 들어, "I am a student." 라는 문장이 있을 때, 각 단어를 임베딩을 한다
    - 그 후, 단어 I의 임베딩이 [1,1,1,1] 이라고 했을 때, 처음 I의 처음 Q,K,V를 각각 Q_I, original,  K_I,original,  V_I,original라고 한다.
    - 이 값들은 self-attention 방법론에 의해 모두 [1,1,1,1]ㄹ 동일해야 한다.
    - 이때 각각 학습된 weight가 WQ,WK,WV라고 할 때, 위처럼 original 값들과 dot product하면 최종 Q,K,V가 만들어 진다.

    - 이 과정을 "I" 뿐만 아니라 모든 단어간에 Self Attention을 해주면 위 그림과 같은 결과가 나온다.

    - 가운데 노란색 부분은 자기 자신이기 때문에 값이 가장 크기에 제외하면 "student"가 2번째로 크다.

    - 즉, I와 student가 상관관계를 가진다 라고 할 수 있다.

    Multi-headed Attention

    Transforemer

    Ghost Attention (LLaMA2)

    댓글

by KUKLIFE