전문가 과정 · 언어 모델
Transformer와 LLM
Attention의 수식에서 대규모 언어 모델의 학습과 추론까지
← → 키, 하단 버튼, 스와이프로 이동 · 13 슬라이드
Overview
구조, 학습, 추론의 순서로 본다
구조
슬라이드 3–8
학습
슬라이드 9–10
추론과 확장
슬라이드 11–13
구조 · 동기
순차 계산을 없애고 모든 위치를 직접 연결한다
- RNN은 시점 t의 은닉 상태가 t−1에 의존하므로 길이 n만큼 순차로 계산해야 한다.
- 멀리 떨어진 토큰의 정보는 n개의 단계를 거쳐 전달되어 기울기가 약해지기 쉽다.
- Self-attention은 모든 토큰 쌍을 직접 연결한다. 경로 길이가 상수이고 한 층 안에서 병렬로 계산된다.
- 대가로 연산량과 메모리가 길이 n의 제곱에 비례한다.
| 층당 비교 | Self-attention | Recurrent |
|---|---|---|
| 연산량 | O(n² · d) | O(n · d²) |
| 순차 연산 수 | O(1) | O(n) |
| 최대 경로 길이 | O(1) | O(n) |
n은 시퀀스 길이, d는 표현 차원이다. n이 d보다 작은 구간에서는 self-attention의 층당 연산이 더 적다.
Vaswani et al., 2017. Attention Is All You Need (Table 1)
구조 · Attention
Scaled dot-product attention
- Q = X WQ, K = X WK, V = X WV. 각 토큰이 query로 모든 key와 내적해 가중치 분포를 만들고, value를 그 비율로 섞는다.
- 성분이 독립이고 분산이 1이면 q·k의 분산은 dk가 된다. √dk로 나누지 않으면 softmax가 포화해 기울기가 거의 사라진다.
- 디코더는 j > i 위치를 −∞로 가려 미래 토큰을 보지 못하게 한다(causal mask).
직접 확인 · 무작위 Q, K (고정 시드)
행: Query열: Key
- 행별 최대 가중치의 평균
- 0.00
Vaswani et al., 2017. §3.2.1
구조 · Attention
여러 부분공간에서 동시에 attention을 계산한다
- 투영 행렬 WQ, WK, WV, WO는 각각 d × d이다. 총 4d² 파라미터로, 헤드 수 h와 무관하다.
- 헤드를 나누면 같은 비용으로 서로 다른 관계 패턴을 병렬로 학습할 수 있다.
- 헤드마다 구문, 위치, 복사 같은 서로 다른 역할을 맡는 경향이 관찰된다. induction head처럼 특정 회로를 이루는 헤드도 보고되어 있다.
- 추론 비용을 줄이려고 K, V 헤드를 공유하는 변형(MQA, GQA)이 쓰인다. 11–12번 슬라이드에서 다룬다.
Vaswani et al., 2017 · Olsson et al., 2022. In-context Learning and Induction Heads
구조 · 블록
한 층은 attention, FFN, 잔차 연결로 이루어진다
- Pre-norm: 정규화를 서브레이어 앞에 두어 잔차 경로가 입력을 그대로 전달한다. 깊은 모델의 학습이 안정된다. 정규화는 RMSNorm이 흔하다.
- FFN은 d → 약 4d → d의 두 층이다. 요즘은 게이트가 있는 SwiGLU를 쓰고, 은닉 크기를 약 8d/3으로 줄여 파라미터를 맞춘다.
- 층당 파라미터는 약 12d²이다. attention 4d²와 FFN 8d²를 더한 값이다.
- 전체는 약 12·L·d²에 임베딩을 더한 값이다. d=4096, L=32이면 12·32·4096² ≈ 6.4B이고, 임베딩을 더하면 7B급이 된다.
구조 · 위치
attention은 순서를 모르므로 위치를 따로 넣는다
| 방식 | 핵심 |
|---|---|
| Sinusoidal | 고정된 사인·코사인 값을 입력에 더한다 (원 논문) |
| Learned absolute | 위치별 임베딩을 학습한다. 최대 길이에 묶인다 |
| RoPE | q, k를 위치에 비례한 각도로 회전한다. 내적이 상대 거리에만 의존한다 |
| ALiBi | attention logit에 거리에 비례한 선형 편향을 더한다 |
RoPE는 차원을 2개씩 짝지어 쌍마다 다른 주파수 θi = 10000−2i/d로 회전시킨다. 학습 길이를 넘기려면 Position Interpolation, NTK-aware scaling, YaRN처럼 주파수를 다시 조정한다.
직접 확인 · RoPE의 상대성 (한 쌍, θ=0.35 rad)
- 상대 거리 m − n
- 2
- q·k = cos(Δ)
- 0.00
Su et al., 2021 (RoFormer) · Press et al., 2022 (ALiBi) · Chen et al., 2023 (PI) · Peng et al., 2023 (YaRN)
구조 · 계열
세 가지 구성과 decoder-only의 부상
Encoder-only
BERT
- 목적함수
- Masked LM. 가려진 토큰을 복원한다
- Attention
- 양방향
- 주 용도
- 분류, 검색 임베딩, 이해 과제
Encoder–Decoder
T5
- 목적함수
- Span corruption 등 seq2seq 복원
- Attention
- 인코더 양방향, 디코더 causal, cross-attention
- 주 용도
- 번역, 요약
Decoder-only
GPT 계열, 대부분의 범용 LLM
- 목적함수
- Next-token prediction
- Attention
- Causal
- 주 용도
- 생성, 대화, 코드, 추론
- Decoder-only가 기본형이 된 이유로 단일 목적함수의 단순함, 프롬프트만으로 과제를 지정하는 in-context learning, KV cache를 쓰는 간단한 추론 구조가 자주 꼽힌다.
- 대규모에서 encoder–decoder가 본질적으로 불리하다고 단정할 근거는 아직 제한적이다.
Devlin et al., 2018 (BERT) · Raffel et al., 2019 (T5) · Brown et al., 2020 (GPT-3)
학습 · 사전학습
손실, 파라미터, 데이터를 함께 키운다
- 사전학습은 다음 토큰의 교차엔트로피를 최소화한다. 손실은 파라미터 수 N, 데이터 D, 연산량 C에 대해 거듭제곱 법칙을 따른다.
- Chinchilla 형태: L(N, D) = E + A/Nα + B/Dβ. 고정된 연산량에서는 N과 D를 함께 키워야 하며, 경험적으로 파라미터당 약 20 토큰이 최적에 가깝다.
- 학습 연산량은 C ≈ 6·N·D FLOPs로 어림한다.
- 추론 비용까지 고려하면 더 작은 모델을 더 많은 토큰으로 학습하는 선택이 많다.
계산기 · compute-optimal 어림
- 학습 토큰 D ≈ 20·N
- 학습 연산량 C ≈ 6·N·D
- GPU 시간 (유효 400 TFLOP/s 가정)
슬라이더는 로그 눈금이다(1B–1T). 유효 처리량은 가속기 최대 성능의 일부를 가정한 값으로, 실제 학습 효율에 따라 달라진다.
Kaplan et al., 2020 · Hoffmann et al., 2022 (Chinchilla)
학습 · 사후학습
사전학습 모델을 쓸모 있는 모델로 맞춘다
-
Base 모델
데이터
대규모 코퍼스목적
Next-token loss로 지식과 언어 능력을 획득한다 -
SFT
데이터
지시와 응답 쌍목적
좋은 응답의 likelihood를 높여 형식과 지시 따르기를 익힌다 -
선호 최적화
데이터
응답 쌍의 선호 라벨목적
RLHF는 보상 모델과 PPO 계열을 쓴다. DPO는 보상 모델 없이 선호 쌍을 직접 최적화한다 -
검증 가능한 보상 RL
데이터
정답을 자동으로 검증할 수 있는 수학, 코드 문제목적
정책 경사 계열로 최적화해 긴 추론 과정을 학습시킨다
- 참조 정책과의 KL 페널티로 사전학습 능력에서 크게 벗어나지 않게 한다.
- 주요 위험은 보상 모델의 허점을 파고드는 reward hacking과 평가자에게 맞추려는 경향(sycophancy)이다.
Ouyang et al., 2022 (InstructGPT) · Rafailov et al., 2023 (DPO)
추론 · 디코딩
생성은 한 토큰씩, 병목은 메모리 대역폭이다
- Prefill: 프롬프트 전체를 한 번에 병렬 처리한다. 행렬곱이 커서 연산량이 병목이다(compute-bound).
- Decode: 토큰을 하나씩 만든다. 매 단계마다 모든 가중치와 지금까지의 K, V를 읽어야 해서 대역폭이 병목이다(memory-bound).
- KV cache: 이전 토큰의 K, V를 저장해 재계산을 피한다. 길이와 요청 수에 비례해 커진다.
계산기 · L=32, dhead=128, fp16, 배치 1
MHA는 KV 헤드 32개, GQA는 8개, MQA는 1개로 가정했다. 토큰당 크기는 각각 512 KiB, 128 KiB, 16 KiB이다.
추론 · 확장
병목마다 다른 해법이 있다
| 기법 | 줄이는 비용 | 핵심 아이디어 |
|---|---|---|
| FlashAttention | attention의 메모리 이동 | n × n 점수 행렬을 HBM에 쓰지 않고 SRAM 타일 안에서 online softmax로 계산한다. 결과는 정확히 같고 메모리는 O(n)이다. |
| MQA · GQA | KV cache 크기 | 여러 query 헤드가 K, V 헤드를 공유한다. 품질 손실을 작게 유지하며 cache를 줄인다. |
| MoE | 토큰당 연산량 | FFN을 여러 전문가로 바꾸고 라우터가 토큰마다 일부만 활성화한다. 총 파라미터보다 활성 파라미터가 훨씬 작다. |
| 양자화 | 가중치와 cache의 메모리·대역폭 | 가중치(때로는 KV cache)를 8비트나 4비트로 저장한다. |
| Speculative decoding | 디코딩 단계 수 | 작은 draft 모델이 여러 토큰을 제안하고 큰 모델이 한 번에 검증한다. 출력 분포는 바뀌지 않는다. |
Dao et al., 2022 · Shazeer, 2019 (MQA) · Ainslie et al., 2023 (GQA) · Leviathan et al., 2023
정리
남은 한계와 기억할 다섯 가지
열린 문제
- 길이에 대한 이차 비용과 긴 문맥의 활용. 문맥 중간의 정보를 잘 쓰지 못하는 현상이 보고되었다.
- 사실성과 hallucination. 다음 토큰 예측만으로는 정확성이 보장되지 않는다.
- 데이터와 연산 의존성. 스케일링 곡선은 비용 증가를 전제로 한다.
- 대안 구조. 상태공간 모델과 attention을 섞은 하이브리드가 연구되고 있다.
- Attention은 내용 기반의 가중 평균이며 비용은 O(n²·d)이다.
- 한 층은 attention, FFN, 잔차로 이루어지고 파라미터는 층당 약 12d²이다.
- 위치는 RoPE처럼 상대 거리로 넣는 방식이 주류이다.
- 학습은 next-token 예측과 스케일링 법칙, 이후 사후학습으로 정렬한다.
- 추론은 메모리 대역폭이 병목이며 KV cache, GQA, 양자화가 핵심이다.
참고 문헌
- Vaswani et al., 2017. Attention Is All You Need
- Kaplan et al., 2020. Scaling Laws for Neural Language Models
- Hoffmann et al., 2022. Training Compute-Optimal Large Language Models
- Su et al., 2021. RoFormer: Enhanced Transformer with Rotary Position Embedding
- Dao et al., 2022. FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness
- Ainslie et al., 2023. GQA · Shazeer, 2019. Fast Transformer Decoding: One Write-Head Is All You Need
- Ouyang et al., 2022. Training language models to follow instructions with human feedback
- Rafailov et al., 2023. Direct Preference Optimization
- Leviathan et al., 2023. Fast Inference from Transformers via Speculative Decoding
- Olsson et al., 2022. In-context Learning and Induction Heads
- Liu et al., 2023. Lost in the Middle