7. 어텐션과 트랜스포머¶
이 장의 질문과 목표¶
6장의 seq2seq는 입력 수열 전체를 하나의 고정 길이 문맥 벡터로 압축했다. Attention은 출력할 내용에 따라 입력의 어느 부분을 참고할지 매번 다시 계산한다. Transformer는 이 선택 메커니즘을 수열 처리의 중심 연산으로 사용한다.
이 장의 목표는 Transformer의 모든 변형을 외우는 것이 아니다. Query, key, value가 어떤 계산을 표현하는지, self-attention만으로는 순서를 알 수 없는 이유, encoder와 decoder의 mask가 왜 다른지를 설명할 수 있으면 된다.
읽기 수준과 선수지식 확인
먼저 알아볼 항목¶
- 6장의 tokenization, 임베딩, seq2seq
- 벡터 내적과 weighted sum
- 행렬 곱셈과 shape
- softmax가 값을 합이 1인 가중치로 바꾸는 역할
- 3장의 잔차 연결과 normalization
1. 고정 문맥에서 필요한 위치 선택으로¶
번역 decoder가 다음 단어를 만들 때 항상 입력 문장 전체를 똑같이 참고할 필요는 없다. 특정 출력 단어는 특정 입력 단어와 더 직접적으로 대응한다. Encoder-decoder attention은 decoder의 현재 상태와 각 encoder 위치를 비교해 관련성 점수를 만들고, 점수가 큰 위치의 정보를 더 많이 모은다.
이를 세 역할로 나누면 다음과 같다.
- Query는 지금 찾고 있는 정보의 표현이다.
- Key는 각 후보가 어떤 정보인지 비교하기 위한 표지다.
- Value는 그 후보가 선택되었을 때 실제로 가져올 내용이다.
검색에 비유하면 query로 모든 key를 조회해 관련도를 구한 뒤, 관련도에 따라 value를 섞는다. 이 비유는 역할을 이해하는 데 유용하지만, 실제 모델에서는 세 값 모두 입력 벡터에 학습된 선형변환을 적용해 만든다.
2. 크기 조정 내적 어텐션¶
행렬 \(Q\), \(K\), \(V\)가 있을 때 Transformer의 기본 attention은 다음처럼 쓸 수 있다.
계산은 네 단계로 읽을 수 있다.
- 각 query와 모든 key의 내적으로 관련성 score를 만든다.
- \(\sqrt{d_k}\)로 나누어 내적값의 scale이 차원과 함께 지나치게 커지는 것을 완화한다.
- softmax로 각 query에 대한 가중치를 만든다.
- 가중치에 따라 value를 합쳐 새로운 표현을 만든다.
Attention 가중치는 모델이 어떤 위치를 많이 사용했는지 보여주지만, 그 자체를 완전한 인과 설명으로 해석해서는 안 된다. 여러 층과 head, residual path가 함께 출력에 영향을 주며, 가중치가 높다는 사실만으로 그 토큰이 인간 관점의 이유였다고 결론낼 수 없다.
3. 셀프 어텐션은 시퀀스 내부의 관계를 만든다¶
Self-attention에서는 query, key, value가 같은 입력 수열에서 나온다. 각 토큰은 다른 모든 토큰을 참고해 자신의 표현을 갱신한다. 따라서 멀리 떨어진 두 토큰도 한 층 안에서 직접 정보를 주고받을 수 있다.
RNN과 비교하면 차이가 선명하다.
- RNN은 이전 은닉 상태를 거쳐 정보를 순차적으로 전달한다.
- Self-attention은 한 층 안에서 모든 위치 쌍의 관계를 계산할 수 있어 학습 시 병렬화하기 쉽다.
- 기본 self-attention의 연산과 메모리는 수열 길이에 대해 대체로 제곱으로 증가하므로 긴 수열에서 비용이 커질 수 있다.
Self-attention이 항상 RNN보다 우월하다는 뜻은 아니다. 데이터 크기, 시퀀스 길이, latency, streaming 조건, 모형 구조에 따라 적합한 선택이 달라진다.
더 깊이 살펴보기: 멀티헤드, 위치 정보, 인코더와 디코더
4. 멀티헤드 어텐션이 여러 관계를 나누어 본다¶
Multi-head attention은 하나의 큰 attention을 한 번 계산하는 대신 여러 head에서 서로 다른 projection을 사용한다. 각 head는 다른 표현 subspace에서 관계를 계산하고, 결과를 이어 붙여 다시 변환한다.
이 구조는 위치 사이의 관계를 여러 관점으로 표현할 여지를 준다. 그러나 특정 head가 반드시 문법, 의미, 공지시 같은 사람이 이름 붙인 기능 하나만 담당한다는 보장은 없다. Head의 역할은 학습 결과이며 모델과 데이터에 따라 달라진다.
5. 순서 정보는 따로 넣어야 한다¶
Self-attention만 놓고 보면 입력 토큰의 순서를 동시에 바꾸었을 때 같은 방식으로 재배열된 출력을 만든다. 즉, 토큰 집합은 처리하지만 A가 B보다 앞에 있다는 위치 정보를 자체적으로 알지 못한다.
그래서 토큰 임베딩에 positional information을 추가한다.
- 고정된 sine, cosine positional encoding
- 학습 가능한 position 임베딩
- 상대적 거리나 회전에 기반한 relative 또는 rotary position 표현
세부 방식은 다르지만 목적은 같다. 모델이 content와 position을 함께 사용하도록 만드는 것이다. 최대 문맥 길이와 외삽 특성은 위치 표현 방식과 학습 설정에 영향을 받는다.
6. 트랜스포머 블록의 구성¶
Transformer block은 보통 다음 요소를 반복한다.
- Multi-head self-attention
- 위치별 feed-forward 신경망
- 잔차 연결
- 층 정규화
Attention은 토큰 사이의 정보를 섞고, feed-forward 신경망은 각 위치의 표현을 비선형적으로 변환한다. 잔차 연결과 normalization은 깊은 신경망의 정보 흐름과 optimization을 안정화하는 역할을 한다. Pre-norm과 post-norm처럼 세부 배치는 모델마다 다를 수 있다.
7. 인코더와 디코더는 마스크가 다르다¶
Transformer encoder는 일반적으로 입력 전체를 양방향으로 참고한다. 문서 분류나 토큰 레이블링처럼 전체 입력이 이미 주어진 문제에 적합하다.
Transformer decoder는 autoregressive 생성에서 현재 위치가 미래 정답 토큰을 보지 못하도록 causal mask를 사용한다. 그렇지 않으면 학습 중 정답을 미리 보는 leakage가 생긴다. Padding 토큰을 무시하는 padding mask와 미래 위치를 가리는 causal mask는 목적이 다르다.
원래 Transformer의 encoder-decoder 구조에서는 decoder가 세 종류의 계산을 한다.
- 이미 생성된 출력에 대한 masked self-attention
- encoder 출력에 대한 cross-attention
- 위치별 feed-forward 신경망
현대 모델은 목적에 따라 encoder-only, decoder-only, encoder-decoder 형태를 선택한다.
8. 모델 구조와 학습 목표를 분리하기¶
BERT는 Transformer encoder를 사용하고, 입력 일부를 가린 뒤 원래 토큰을 맞히는 masked language modeling을 대표적으로 사용한다. GPT 계열은 Transformer decoder를 사용하고, 앞의 토큰으로 다음 토큰을 예측한다.
여기서 중요한 구분은 다음과 같다.
- Transformer는 정보를 계산하는 모형 구조다.
- Masked-token prediction과 next-token prediction은 학습 objective다.
- Pretraining은 대규모 데이터에서 일반 표현이나 생성 능력을 먼저 학습하는 학습 단계다.
- Fine-tuning과 prompting은 pretrained 모형을 downstream 과제에 사용하는 서로 다른 적응 방식이다.
같은 모형 구조도 objective와 데이터가 달라지면 다른 능력과 실패 양상을 보일 수 있다. 반대로 같은 objective를 반드시 하나의 모형 구조로만 풀어야 하는 것도 아니다.
9. 트랜스포머는 자연어 처리 전용 구조가 아니다¶
이미지 patch, time-series segment, 그래프 노드, audio frame처럼 데이터를 토큰 수열로 표현할 수 있다면 Transformer를 적용할 수 있다. Vision Transformer는 이미지를 patch 토큰으로 보고, multimodal Transformer는 서로 다른 modality의 표현을 하나의 시퀀스나 cross-attention으로 연결한다.
그러나 모든 것을 토큰으로 만들 수 있다와 데이터 구조를 충분히 반영했다는 같은 말이 아니다. 이미지의 locality, 그래프의 connectivity, 3차원 회전 대칭처럼 중요한 귀납 편향을 tokenization과 position 표현, attention pattern에 어떻게 넣을지 별도로 결정해야 한다.
핵심과 노출 수준 구분¶
핵심으로 이해할 것¶
- Query, key, value와 weighted sum의 역할
- Encoder-decoder attention과 self-attention의 차이
- positional information이 필요한 이유
- encoder, decoder, cross-attention, causal mask의 관계
- 모형 구조, objective, 훈련 단계의 구분
이름과 위치를 알아둘 것¶
- multi-head attention과 feed-forward block의 세부 shape
- relative position, rotary position 표현
- BERT와 masked-token objective
- GPT와 next-token objective
- Vision Transformer, time-series Transformer, multimodal Transformer
- foundation 모형과 scaling
자주 하는 혼동과 한계
자주 생기는 혼동과 한계¶
Attention은 설명 전체가 아니다
Attention 가중치는 내부 정보 사용의 한 단면이다. 이를 바로 인간이 이해하는 중요도나 인과적 근거로 등치하면 안 된다.
Transformer와 LLM은 같은 범주가 아니다
Transformer는 모형 구조이고, LLM은 대규모 언어 데이터와 학습 objective, 계산 규모를 결합한 언어 모델 범주다. 작은 Transformer도 있고, 언어 이외 데이터의 Transformer도 있다.
- 긴 시퀀스에서는 attention의 계산량과 memory가 병목이 될 수 있다.
- 문맥 window 안에 정보가 있다는 사실만으로 모델이 그 정보를 정확히 사용한다는 보장은 없다.
- Pretraining corpus의 편향, 중복, 시간 범위가 출력에 반영된다.
- 생성 확률이 높다는 것과 사실이 참이라는 것은 다르다.
- Tokenizer와 문맥 길이가 전문 용어, 수식, 긴 문서 처리 품질을 제한할 수 있다.
공통 분석축으로 정리하기¶
- 입력과 출력: 임베딩 수열을 받아 contextual 표현이나 다음 토큰 분포를 출력한다.
- 구조적 가정: 위치 사이의 관계를 attention으로 계산하고, 순서는 positional information으로 제공한다.
- 학습 신호: masked 토큰, next 토큰, 번역 목표값, 과제 레이블 등 objective에 따라 달라진다.
- 기준 모델: RNN, LSTM, TF-IDF 기반 모델이나 과제별 단순 모델과 비교한다.
- 평가: 과제 평가 지표뿐 아니라 입력 길이, 추론 비용, calibration, 도메인 shift와 사실성을 따로 확인한다.
- 실패 조건: 긴 문맥, 희귀한 표현, 학습 시점 이후 정보, 분포가 다른 전문 corpus에서 성능이 달라질 수 있다.
앞뒤 장과의 연결¶
6장의 tokenization과 임베딩이 Transformer의 입력을 만든다. RNN의 고정 문맥 병목이 Attention의 동기가 된다. 8장에서는 순서 대신 임의의 연결 관계를 가진 그래프를 다루며, Attention의 weighted aggregation은 GAT와 그래프 Transformer에서 다시 나타난다. 10장에서는 Transformer가 언어 생성이 아니라 diffusion denoiser로도 사용될 수 있음을 본다.
스스로 확인하기¶
- Encoder-decoder attention과 self-attention은 query, key, value의 출처가 어떻게 다른가?
- Self-attention에 positional information이 필요한 이유는 무엇인가?
- Padding mask와 causal mask는 각각 어떤 정보를 차단하는가?
- Transformer 모형 구조와 next-token objective를 왜 구분해야 하는가?
더 읽을 자료¶
- Bahdanau, Cho, and Bengio, Neural Machine Translation by Jointly Learning to Align and Translate, 2015. Neural attention의 대표 초기 논문
- Vaswani et al., Attention Is All You Need, 2017. Transformer 원 논문
- Devlin et al., BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, 2019. Encoder 중심 pretraining의 대표 사례
- Radford et al., Improving Language Understanding by Generative Pre-Training, 2018. GPT 계열의 초기 공식 기술 보고서
- Dosovitskiy et al., An Image is Worth 16x16 Words, 2021. Transformer를 image patch에 적용한 대표 논문