스케일링 법칙과 연산 예산: 6ND · 친칠라 · 학습 메모리 계산
C≈6ND 연산량 · 카플란 vs 친칠라 배분 · 파라미터당 16바이트 학습 메모리를 계산하는 수업
먼저 알아야 할 것
다루는 내용
학습 연산량 공식 C≈6ND를 유도하고 LLaMA 65B 학습 기록으로 검산합니다. 카플란과 친칠라 스케일링 법칙이 모델과 데이터 배분에서 다른 답을 낸 이유와 '토큰 ≈ 파라미터 × 20' 어림, 추론 비용을 고려한 과학습을 다룹니다. 혼합 정밀도 Adam의 16바이트 규칙과 활성화 메모리로 학습 메모리를 계산합니다.
해설
스케일링 법칙과 연산 예산: 6ND · 친칠라 · 학습 메모리 계산
"모델을 얼마나 크게, 데이터를 얼마나 많이, GPU를 몇 대 며칠 쓰면 되나?" 대형 언어 모델을 만드는 사람이 가장 먼저 푸는 질문입니다. 이 수업에서는 학습 연산량을 어림하는 공식 를 유도하고, 카플란(2020)과 친칠라(2022) 스케일링 법칙이 "같은 예산을 모델과 데이터에 어떻게 나눌지"에 대해 서로 다른 답을 낸 이유를 봅니다. 마지막으로 학습에 필요한 GPU 메모리를 "파라미터당 16바이트" 규칙과 활성화 메모리로 직접 계산합니다.
| 항목 | 내용 |
|---|---|
| 참고 출처 | Kaplan 외, Scaling Laws for Neural Language Models(arXiv 2001.08361) · Hoffmann 외, Chinchilla(arXiv 2203.15556) · Rajbhandari 외, ZeRO(arXiv 1910.02054) · LLaMA(arXiv 2302.13971) · How to Scale Your Model |
| 트랙 · 수준 | 스케일링·효율 · 중급 |
| 이 수업이 다루는 범위 | FLOP 세기, , 멱법칙, 카플란 vs 친칠라, 연산 최적 배분, 추론 비용을 고려한 '과학습', 학습 메모리(모델 상태 · 활성화), GPU 시간 어림 |
들어가기 전에
- 트랜스포머 블록 한 층을 손으로 — 층 하나의 파라미터가 약 라는 계산. 이 수업은 여기서 출발합니다.
- 언어 모델의 기본: 다음 토큰 예측 · 퍼플렉서티 — '손실(교차 엔트로피)이 낮을수록 좋은 모델'이라는 감각.
- 지수 표기()와 로그 그래프가 "곱하기를 더하기로 바꾼다"는 정도만 알면 됩니다.
한눈에 보기
- 학습 연산량이 왜 대략 "파라미터 수 × 토큰 수 × 6"인지 설명할 수 있습니다.
- 스케일링 법칙(멱법칙)이 무엇을 예측하고 무엇을 예측하지 않는지 압니다.
- 친칠라가 "토큰을 파라미터의 약 20배"로 제안하게 된 근거와, 카플란과 달랐던 이유를 압니다.
- 7B 모델을 학습하려면 GPU 메모리가 왜 100GB를 훌쩍 넘는지 계산합니다.
- LLaMA 65B의 실제 학습 기록으로 GPU 시간을 어림하고 검산합니다.
1. 연산량 세기: C ≈ 6ND
직관(해설용 비유). 공장에서 부품(토큰) 하나를 가공할 때 기계(파라미터) 하나마다 손이 일정하게 갑니다. 기계 수가 두 배면 일도 두 배, 부품 수가 두 배여도 두 배. 그래서 총 작업량은 '기계 수 × 부품 수 × 상수'입니다.
단계.
- 행렬 곱에서 가중치 하나는 토큰 하나당 곱하기 1번 + 더하기 1번 = 2 FLOP 을 씁니다(FLOP: 부동소수점 연산 1회).
- 그래서 순전파(forward)는 토큰당 약 FLOP입니다. 카플란 논문은 으로 쓰고, 문맥 길이 항은 이 보다 크면 작은 비중이라 뺍니다.
- 역전파(backward)는 순전파의 약 두 배입니다(입력에 대한 기울기와 가중치에 대한 기울기를 각각 구하므로). 순전파 + 역전파 = 토큰당 약 .
- 토큰 개를 학습하면 .
| 기호 | 뜻 |
|---|---|
| 학습 전체 연산량(FLOP) | |
| 파라미터 수(카플란은 임베딩을 뺀 수) | |
| 학습 토큰 수 | |
| 6 | 순전파 2 + 역전파 4 |
숫자로 해 보기. LLaMA 논문 표에 따르면 65.2B 모델을 1.4T 토큰으로 학습했습니다. FLOP입니다. 같은 논문은 이 모델이 A100 80GB 2,048개에서 GPU당 초당 약 380토큰을 처리해 1.4T 토큰에 약 21일 걸렸다고 적었습니다. 검산하면 토큰으로 맞습니다.
활용률(MFU) 어림(해설용 계산). GPU 한 장이 실제로 낸 연산은 FLOP/s, 즉 약 149 TFLOPS입니다. NVIDIA가 밝힌 A100의 BF16 텐서 코어 최대 성능(희소성 없이)은 312 TFLOPS이므로 약 48%를 쓴 셈입니다. 이론 최대의 절반 안팎이면 대형 학습에서 잘 돌린 편이라는 감각을 가지면 됩니다(정확한 활용률은 6ND 근사와 어텐션 연산을 어떻게 세느냐에 따라 달라집니다).
2. 스케일링 법칙: 손실은 멱법칙으로 줄어든다
직관. 모델을 10배 키울 때마다 손실이 "같은 비율로" 줄어듭니다. 로그-로그 그래프에서 직선입니다. 그래서 작은 모델 몇 개로 직선을 그리면, 훨씬 큰 모델의 손실을 미리 예측할 수 있습니다.
카플란 외(2020)의 식. 다른 요소가 병목이 아닐 때 손실은 파라미터 수, 데이터 크기 각각에 대해 멱법칙을 따릅니다.
| 기호 | 논문 값 | 뜻 |
|---|---|---|
| 약 0.076 | 파라미터를 늘릴 때 손실이 줄어드는 기울기 | |
| 약 | 임베딩 제외 파라미터 기준 상수 | |
| 약 0.095 | 데이터를 늘릴 때의 기울기 | |
| 약 토큰 | 데이터 기준 상수 |
논문은 일부 경향이 7자리(10의 7제곱 배) 이상의 범위에서 성립했고, 폭 · 깊이 같은 구조 세부는 넓은 범위에서 영향이 작았다고 보고합니다.
숫자로 해 보기(해설용). 을 두 배로 하면 손실은 배, 약 5% 줄어듭니다. 식에 넣으면 일 때 약 2.83, 일 때 약 2.38, 일 때 약 1.99(nats/토큰)입니다. 열 배마다 같은 비율(약 16%)로 줄어드는 것이 멱법칙의 모양입니다. 이 값은 논문 데이터셋(WebText2)과 토크나이저 기준이라 다른 모델의 손실과 직접 비교하면 안 됩니다.
주의. 스케일링 법칙은 사전학습 손실 을 예측합니다. 특정 과제의 정답률이나 "어떤 능력이 생기는가"를 직접 예측하지는 않습니다.
3. 카플란 vs 친칠라: 예산을 어떻게 나누나
연산 예산 가 정해지면 과 는 로 묶입니다. 큰 모델을 적게 학습할지, 작은 모델을 많이 학습할지 골라야 합니다. 최적 배분을 , 로 쓰면():
| 연구 | (모델) | (데이터) | 결론 |
|---|---|---|---|
| 카플란 외(2020) | 0.73 | 0.27 | 예산이 늘면 주로 모델을 키워라 |
| 친칠라(호프만 외, 2022) | 약 0.50 | 약 0.50 | 모델과 데이터를 같은 비율로 키워라 |
친칠라의 근거. 7천만~160억 파라미터 모델 400개 이상을 50억~5,000억 토큰으로 학습해, 세 가지 방법(학습 곡선 최솟값, 같은 연산량 곡선, 매개변수 식 맞춤)으로 최적점을 추정했고 모두 근처가 나왔습니다. 결론은 "모델 크기를 두 배로 하면 토큰도 두 배로"입니다.
왜 달랐나(해설). 친칠라 논문은 카플란 연구가 모든 모델에 같은 학습률 스케줄 · 토큰 수를 써서, 작은 모델의 학습이 덜 끝난 상태로 비교되었다는 점 등을 차이의 원인으로 듭니다. 같은 비용이면 모델 크기에 맞춘 스케줄로 끝까지 학습해야 공정하게 비교된다는 것입니다.
검증 실험. 친칠라는 Gopher(2,800억 파라미터, 3,000억 토큰)와 같은 예산으로 700억 파라미터 모델을 1.4조 토큰(약 4배 데이터)으로 학습했고, Gopher · GPT-3 등을 여러 평가에서 앞섰습니다. 6ND로 검산하면 친칠라 , Gopher FLOP으로 같은 규모입니다.
"토큰 = 파라미터 × 20" 어림. 친칠라 표 3(방법 1 추정)에서 4억 파라미터 → 80억 토큰, 10억 → 202억 토큰, 100억 → 2,051억 토큰이고, 친칠라 자체도 70B · 1.4T입니다. 모두 약 20배입니다. 이 비율을 에 넣으면 , 즉 .
숫자로 해 보기(해설용). 예산 FLOP이면 (약 290억 파라미터), (약 5,800억 토큰)입니다.
친칠라의 손실 식. 논문의 방법 3은 를 맞췄고 , , , , 을 얻었습니다. 는 아무리 키워도 남는 손실(텍스트 자체의 불확실성), 두 번째 · 세 번째 항은 모델 · 데이터가 유한해서 생기는 손실입니다. 대입하면 친칠라 설정(70B, 1.4T)은 약 1.937, Gopher 설정(280B, 300B)은 약 1.993으로, 비슷한 예산에서 친칠라 쪽이 낮게 나옵니다(해설용 대입).
4. 연산 최적이 늘 정답은 아니다: 추론 비용
친칠라 최적은 학습 비용만 따집니다. 모델은 학습 뒤 수백만 번 쓰이고, 쓸 때마다 비용은 모델 크기에 비례합니다. LLaMA 논문은 이 점을 짚어, 친칠라 식이 10B 모델에 200B 토큰을 권하더라도 7B 모델이 1T 토큰을 넘어서까지 계속 좋아졌다고 보고합니다. 그래서 LLaMA는 7B · 13B를 1.0T, 33B · 65B를 1.4T 토큰으로 학습했습니다. 7B에 1T면 파라미터당 약 140토큰으로, 친칠라 비율보다 훨씬 '과학습'한 셈입니다.
정리. 학습 한 번에 최고 성능 → 친칠라 비율. 배포해서 많이 쓸 모델 → 더 작은 모델을 더 오래 학습.
5. 학습 메모리: 파라미터당 16바이트
직관. 학습 중 GPU에는 가중치만 있는 것이 아닙니다. 기울기, 옵티마이저의 기억(Adam의 모멘텀 · 분산), 그리고 역전파를 위해 남겨 둔 중간값(활성화)이 함께 있습니다.
모델 상태(ZeRO 논문의 계산). 혼합 정밀도(→ 수치 형식 · 혼합 정밀도 · 양자화)로 Adam을 쓰면 파라미터 하나당:
| 항목 | 형식 | 바이트 |
|---|---|---|
| 가중치 | FP16 | 2 |
| 기울기 | FP16 | 2 |
| 가중치 원본 사본 | FP32 | 4 |
| 모멘텀 | FP32 | 4 |
| 분산 | FP32 | 4 |
| 합계 | 16 |
ZeRO 논문은 15억 파라미터 GPT-2가 FP16 가중치만이면 3GB인데, 모델 상태 전체는 최소 24GB라고 계산합니다.
숫자로 해 보기. 7B 모델은 GB, 70B는 1,120GB입니다. GPU 한 장(80GB)에 7B 모델 학습 상태조차 다 들어가지 않습니다. 그래서 분산 학습 이 필요합니다.
활성화 메모리. ZeRO 논문은 GPT-2류 구조의 활성화가 대략 은닉 차원 배치 시퀀스 길이 층 수 개라고 적고, 1.5B GPT-2(은닉 1,600, 48층)를 길이 1K · 배치 32로 학습하면 약 60GB가 든다고 합니다. 대입하면 개, FP16(2바이트)으로 약 60GB로 맞습니다. 활성화 체크포인팅(일부만 저장하고 역전파 때 다시 계산)은 약 33% 재계산 비용으로 이를 약 8GB까지 줄인다고 논문은 설명합니다.
flowchart LR
B[연산 예산 C] --> S{배분}
S -->|친칠라: D ≈ 20N| N[모델 크기 N = √C/120]
S -->|추론 많이 쓸 모델| O[더 작은 N, 더 큰 D]
N --> M[메모리: 16N 바이트 + 활성화]
O --> M
M --> P[GPU 수 · 병렬화 방식 결정]
P --> T[학습 시간 = C ÷ 총 실효 FLOP/s]연습 문제
- 13B 모델을 1T 토큰으로 학습하면 연산량은?
- 풀이: FLOP입니다.
- 1번을 GPU당 실효 150 TFLOPS인 GPU 1,024장으로 하면 며칠?
- 풀이: 초, 약 5.9일입니다.
- 친칠라 비율로 3B 파라미터 모델에 맞는 토큰 수와 연산량은?
- 풀이: 토큰 약 600억(60B), FLOP입니다.
- 13B 모델의 혼합 정밀도 Adam 모델 상태 메모리는?
- 풀이: GB입니다. 활성화는 따로입니다.
스스로 점검
- 왜 계수가 2가 아니라 6인가요?
- 답: 순전파가 토큰당 약 (곱+덧셈), 역전파가 그 두 배인 약 이라 합쳐 이기 때문입니다.
- 친칠라가 카플란과 다른 결론을 낸 핵심 이유는?
- 답: 모델 크기마다 학습 스케줄을 맞춰 끝까지 학습한 비교에서, 모델과 데이터를 같은 비율로 키우는 것이 최적이라는 결과가 나왔기 때문입니다.
- 친칠라 비율보다 데이터를 훨씬 많이 쓰는 것이 합리적인 경우는?
- 답: 모델을 배포해 오래, 많이 쓸 때입니다. 작은 모델은 추론 비용이 싸므로, 학습을 더 들여서라도 작게 만드는 편이 총비용이 낮습니다.
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| FLOP | 부동소수점 연산 1회(곱하기 또는 더하기) |
| 연산 예산 | 학습에 쓸 총 연산량 |
| 스케일링 법칙 | 크기 · 데이터 · 연산을 늘릴 때 손실이 줄어드는 규칙(멱법칙) |
| 멱법칙 | 꼴. 로그-로그 그래프에서 직선 |
| 연산 최적(compute-optimal) | 정해진 연산 예산에서 손실이 가장 낮은 · 조합 |
| MFU | 이론 최대 연산 대비 실제로 쓴 비율 |
| 모델 상태 | 가중치 · 기울기 · 옵티마이저 값 |
| 활성화 체크포인팅 | 중간값 일부만 저장하고 필요할 때 다시 계산해 메모리를 아끼는 기법 |
더 깊이 보려면
- 신경망 언어 모델의 스케일링 법칙 — 카플란 논문 해설
- 연산 최적 대형 언어 모델 학습 (Chinchilla) — 친칠라 논문 해설
- How to Scale Your Model(jax-ml.github.io/scaling-book) — 연산 · 메모리 · 통신을 숫자로 따지는 공개 교재
다음에 볼 것
- 신경망 언어 모델의 스케일링 법칙 — 오늘 쓴 멱법칙 식의 원 논문
- 연산 최적 대형 언어 모델 학습 (Chinchilla) — 20배 규칙이 나온 실험
- 수치 형식 · 혼합 정밀도 · 양자화 — 16바이트 중 '2바이트 · 4바이트'가 무엇인지
라이선스
본문은 KAITABASE 자체 해설입니다. 논문 수치는 각 arXiv 원문(카플란 · 친칠라 · ZeRO · LLaMA)과 NVIDIA A100 공식 제품 페이지에서 확인한 것만 옮겼고, 대입 · 어림 계산은 파이썬으로 검산한 해설용 계산입니다.
출처
- Kaplan 외, Scaling Laws for Neural Language Models (2020): arxiv.org/abs/2001.08361
- Hoffmann 외, Training Compute-Optimal Large Language Models (2022): arxiv.org/abs/2203.15556
- Rajbhandari 외, ZeRO: Memory Optimizations Toward Training Trillion Parameter Models (2019): arxiv.org/abs/1910.02054
- Touvron 외, LLaMA: Open and Efficient Foundation Language Models (2023): arxiv.org/abs/2302.13971
- Radford 외, Language Models are Unsupervised Multitask Learners (GPT-2, 2019): cdn.openai.com/better-language-models/lan…
- NVIDIA A100 제품 페이지: nvidia.com/en-us/data-center/a100
AI 원리부터 이해하기 · 스케일링·효율 모듈
스케일링·효율 모듈 학습
이 글은 스케일링·효율 모듈의 학습 자료입니다. 전체 19개 자료 중 1번째입니다.
출처·원문
원문 보기요약만