AI

LLM - Transformer (2017)

jw92 2022. 9. 4. 13:49

1. 개요

  • LSTM(+ Seq2Seq)의 경우 많은 개선점이 있었음에도 long-term dependency에 취약하다는 단점
  • 어텐션을 RNN의 보정을 위한 용도가 아닌 어텐션만으로 인코더와 디코더를 만듦
  • RNN을 사용하지 않기 때문에 입력을 순차적으로 받지 않고 한 번에 사용

 

2. 입력 - 포지셔널 인코딩

  • RNN이 자연어 처리에서 유용했던 이유는 단어의 위치에 따라 단어를 순차적으로 입력받아서 처리하기 때문
  • 트랜스포머는 단어의 위치 정보를 얻기 위해서 각 단어의 임베딩 벡터에 위치 정보들을 더하여 모델의 입력으로 사용
  • 짝수 인덱스에는 사인 함수,  홀수 인덱스에는 코사인 함수를 적용하여 위치 정보 저장

3. 인코딩

3-1. Multi-Head Attention

  • 하나의 word를 아래와 같은 구조로 계산

 

  • Self-attention 사용

  • 기존 seq2seq에서의 attention은  서로 다른 문장들의 단어들을 가지고 연관성을 찾아냈기 때문에
    it이 animal을 가르킨다는 것을 알 수 없었음.
    • Self-attention 에서는 이 관계를 찾기 가능
  • Output을 순차적으로 구하는 Seq2Seq와 다르게 입력 문장의 모든 단어 벡터들로 한번에 연산 가능
  • Scaled dot-product Attention: Seq2Seq에서 본 것과 다르게 단순한 내적이 아닌 특정 값 √d (d=dimension)으로 나눠줌
  • scaled-dot-product-attention

  • key를 통해서는 각 단어와 연관성의 확률을 계산하고 value는 그 확률을 사용해서 attention 값을 계산하는 용도
  • 위 Self-attention을 여러 개 사용 (512차원보다 64*8차원이 더 좋음)

3-2. Position-wise FFNN(Feed-forward Neural netweork)

3-3. Add & Norm(residual connection과 layer normalization)

  • residual connection

  • 입력과 출력을 더한 것을 새로운 입력으로 사용
  • layer normalization: Training 할 때 layer들의 평균과 분산으로 normalize gradient 값이 안정적인 값을 가져 더 빨리 학습

4. 디코더

  • 기본적으로는 인코더와 같은 구조
  • masking
    • 인코더와 달리 자신의 position이전의 position까지만 결과를 만들어내야 하기 때문에 self-attention을 변형
    • Output을 일부분만 사용 (마스킹 부분은 마이너스 무한대로 설정)

 

 

'AI' 카테고리의 다른 글

Universal Transformer (2018)  (0) 2022.09.04
Attention Mechanism (Dot-Product Attention) (2015)  (0) 2022.09.04
Seq2Seq (Encoder-Decoder Model) (2014)  (0) 2022.09.04
LSTM (Long Short-Term Memory)  (0) 2022.09.04
RNN (Recurrent Neural Network)  (0) 2022.01.12