Transformer의 FLOPs·파라미터·메모리를 세려면 먼저 한 글자 기호들의 의미를 알아야 한다. 스케일링 북은 배열의 모양을 한 글자로 표기하고, 도식에서 contracting 차원은 빨강, batching 차원은 파랑으로 표시한다.
크기 (sizes)
| 기호 | 의미 | 비고 |
|---|
| B | batch size | 시퀀스 개수 |
| T | query 시퀀스 길이 | 처리 중인 토큰 수 |
| S | key/value 시퀀스 길이 | self-attention이면 T = S |
| L | 레이어 수 | |
| V | vocab 크기 | 어휘 사전 크기 |
모델 차원 (model dims)
| 기호 | 의미 | 전형값 |
|---|
| D | d_model, residual stream 폭 | 임베딩 차원 |
| F | d_ff, MLP 은닉 폭 | 보통 F ≈ 4D |
| H | head 차원 (헤드 하나의 크기) | 보통 D = N·H |
어텐션 헤드 (attention heads)
| 기호 | 의미 | 비고 |
|---|
| N | query 헤드 수 | |
| K | key/value 헤드 수 | MHA: K=N, MQA: K=1, GQA: K가 N을 나눔 |
| G | KV 헤드당 query 헤드 수 = N/K | GQA의 group 크기 |
MoE
| 기호 | 의미 | 비고 |
|---|
| E | expert 수 | DeepSeek v3: E=256 |
| k | 토큰당 활성 expert 수 | DeepSeek v3: k=8 |
주요 배열 모양
| 배열 | 모양 |
|---|
입력 활성화 A | [B, T, D] |
MLP 가중치 W_in1, W_in2 | [D, F] |
MLP 출력 가중치 W_out | [F, D] |
W_Q | [D, N, H] |
W_K, W_V | [D, K, H] |
W_O | [N, H, D] |
| Q (reshape 후) | [B, T, K, G, H] |
| K, V | [B, S, K, H] |
| KV 캐시 | [2, S, L, K, H] (2 = key + value) |
자주 쓰는 관계
- F≈4D (MLP는 residual보다 4배 넓다)
- D=N⋅H (전체 헤드 폭 = 모델 폭)
- MHA면 N=K, GQA면 K<N이고 N=K⋅G
이 기호들 위에서 transformer-flops를 세고, arithmetic-intensity를 계산한다.