공부/AI

transformer

zzangyeah 2025. 2. 10. 10:55
728x90

Architecture

1. Encoder

입력에 대한 representation, feature을 도출

모델이 입력에 대해서 이해

목표에 도달하기 위해 입력에 대한 표현 형태를 최적화함

2. Decoder

encoder가 구성한 representation, feature를 다른 입력과 함께 사용하여 시퀀스 생성

 

모델 종류

Encoder-only models

classification, recognition과 같은 입력에 대해 분석, 이해가 필요할 때 주로 사용

bi-directional attention

auto-encoding model

attention layer가 문장의 전체에 접근 가능

pretraining에서 문장을 masking하는 방식 등을 사용하여 원래 문장과는 다르게 손상을 시킴, 이 후에 다시 복구하는 과정을 통해 모델 학습이 진행됨

ex)BERT

Decoder-only models

generation에 주로 사용

attention layer가 현재 처리 단어 앞쪽에 위치한 단어들에만 접근 가능

auto-regressive model

pretraining에서 다음 단어를 예측하는 방식으로 학습이 진행됨

ex)GPT, LlaMA

Encoder-Decoder models(==Sequence-to-Sequence models)

translation, summary과 같은 input에 대해서 분석, 이해하고 output을 generation할 때 주로 사용

ex)BART

Embedding : transformer의 input은 prompt, 모델이 사용할 수 있게끔 가공

1. Token embedding

입력 시퀀스를 벡터 표현으로 변환

2. Positional Embedding/RoPE(Rotary Position Embedding)

각 토큰의 위치 정보 추가

Block : 각 block에는 masked multi-head attention, feed forward, normalization이 포함

1. Masked multi-head self Attention(MHA)

모델이 입력 시퀀스에서 중요한 정보를 집중해서 처리할 수 있도록

self-attention과 다른점? masked시켜서 미래 토큰을 보지 못 하도록 함=현재 토큰 이전의 정보만 참조

2. Feed Forward Network(FFN)

각 토큰이 독립적으로 처리되며, 전체 모델의 표현력을 높이는 역할

masked multi-head attention에 non-linear 변환 수행

일반적으로 2개의 linear 변환+non-linear activation function으로 구성됨

3.. Layer Normalization(LN)

각 layer의 output을 normalization, 학습 안정성을 높이고 수렴 속도를 빠르게 함

각 토큰의 hidden state에 대해 평균과 분산을 이용해서 normalization

4. Residual Connection

grandient vanishing을 방지하기 위해 input과 output을 더하는 연산

정보 손실 방지, 학습 안정화

output : 하나의 linear layer를 통과하여 output(classifiaction, token 등)을 출력

Attention

transformer의 꽃!

주어진 문장에서 어디에 특히 집중해서 봐야할 지를 알려주는 레이어라고 생각하면 됨