검색
← 모듈 로드맵

스케일링 법칙과 연산 예산: 6ND · 친칠라 · 학습 메모리 계산

강의 · 준전문가 · KAITABASE 정리

원제 · Scaling Laws and Compute Budgets

C≈6ND 연산량 · 카플란 vs 친칠라 배분 · 파라미터당 16바이트 학습 메모리를 계산하는 수업

먼저 알아야 할 것

트랜스포머 층의 파라미터 수(12d²)교차 엔트로피 손실지수 표기와 로그 그래프혼합 정밀도 개요

다루는 내용

학습 연산량 공식 C≈6ND를 유도하고 LLaMA 65B 학습 기록으로 검산합니다. 카플란과 친칠라 스케일링 법칙이 모델과 데이터 배분에서 다른 답을 낸 이유와 '토큰 ≈ 파라미터 × 20' 어림, 추론 비용을 고려한 과학습을 다룹니다. 혼합 정밀도 Adam의 16바이트 규칙과 활성화 메모리로 학습 메모리를 계산합니다.

해설

스케일링 법칙과 연산 예산: 6ND · 친칠라 · 학습 메모리 계산

"모델을 얼마나 크게, 데이터를 얼마나 많이, GPU를 몇 대 며칠 쓰면 되나?" 대형 언어 모델을 만드는 사람이 가장 먼저 푸는 질문입니다. 이 수업에서는 학습 연산량을 어림하는 공식 C≈6NDC\approx6ND 를 유도하고, 카플란(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 세기, C≈6NDC\approx6ND, 멱법칙, 카플란 vs 친칠라, 연산 최적 배분, 추론 비용을 고려한 '과학습', 학습 메모리(모델 상태 · 활성화), GPU 시간 어림

들어가기 전에

한눈에 보기

  • 학습 연산량이 왜 대략 "파라미터 수 × 토큰 수 × 6"인지 설명할 수 있습니다.
  • 스케일링 법칙(멱법칙)이 무엇을 예측하고 무엇을 예측하지 않는지 압니다.
  • 친칠라가 "토큰을 파라미터의 약 20배"로 제안하게 된 근거와, 카플란과 달랐던 이유를 압니다.
  • 7B 모델을 학습하려면 GPU 메모리가 왜 100GB를 훌쩍 넘는지 계산합니다.
  • LLaMA 65B의 실제 학습 기록으로 GPU 시간을 어림하고 검산합니다.

1. 연산량 세기: C ≈ 6ND

직관(해설용 비유). 공장에서 부품(토큰) 하나를 가공할 때 기계(파라미터) 하나마다 손이 일정하게 갑니다. 기계 수가 두 배면 일도 두 배, 부품 수가 두 배여도 두 배. 그래서 총 작업량은 '기계 수 × 부품 수 × 상수'입니다.

단계.

  1. 행렬 곱에서 가중치 하나는 토큰 하나당 곱하기 1번 + 더하기 1번 = 2 FLOP 을 씁니다(FLOP: 부동소수점 연산 1회).
  2. 그래서 순전파(forward)는 토큰당 약 2N2N FLOP입니다. 카플란 논문은 Cforward≈2N+2nlayernctxdattnC_\text{forward}\approx 2N + 2n_\text{layer}n_\text{ctx}d_\text{attn} 으로 쓰고, 문맥 길이 항은 dmodeld_\text{model} 이 nctx/12n_\text{ctx}/12 보다 크면 작은 비중이라 뺍니다.
  3. 역전파(backward)는 순전파의 약 두 배입니다(입력에 대한 기울기와 가중치에 대한 기울기를 각각 구하므로). 순전파 + 역전파 = 토큰당 약 6N6N.
  4. 토큰 DD 개를 학습하면 C≈6NDC\approx 6ND.
C≈6 N DC \approx 6\,N\,D
기호뜻
CC학습 전체 연산량(FLOP)
NN파라미터 수(카플란은 임베딩을 뺀 수)
DD학습 토큰 수
6순전파 2 + 역전파 4

숫자로 해 보기. LLaMA 논문 표에 따르면 65.2B 모델을 1.4T 토큰으로 학습했습니다. 6×65.2×109×1.4×1012≈5.5×10236\times65.2\times10^9\times1.4\times10^{12}\approx5.5\times10^{23} FLOP입니다. 같은 논문은 이 모델이 A100 80GB 2,048개에서 GPU당 초당 약 380토큰을 처리해 1.4T 토큰에 약 21일 걸렸다고 적었습니다. 검산하면 380×2048×21×86400≈1.41×1012380\times2048\times21\times86400\approx1.41\times10^{12} 토큰으로 맞습니다.

활용률(MFU) 어림(해설용 계산). GPU 한 장이 실제로 낸 연산은 6×65.2×109×380≈1.49×10146\times65.2\times10^9\times380\approx1.49\times10^{14} FLOP/s, 즉 약 149 TFLOPS입니다. NVIDIA가 밝힌 A100의 BF16 텐서 코어 최대 성능(희소성 없이)은 312 TFLOPS이므로 약 48%를 쓴 셈입니다. 이론 최대의 절반 안팎이면 대형 학습에서 잘 돌린 편이라는 감각을 가지면 됩니다(정확한 활용률은 6ND 근사와 어텐션 연산을 어떻게 세느냐에 따라 달라집니다).

2. 스케일링 법칙: 손실은 멱법칙으로 줄어든다

직관. 모델을 10배 키울 때마다 손실이 "같은 비율로" 줄어듭니다. 로그-로그 그래프에서 직선입니다. 그래서 작은 모델 몇 개로 직선을 그리면, 훨씬 큰 모델의 손실을 미리 예측할 수 있습니다.

카플란 외(2020)의 식. 다른 요소가 병목이 아닐 때 손실은 파라미터 수, 데이터 크기 각각에 대해 멱법칙을 따릅니다.

L(N)=(NcN)αN,L(D)=(DcD)αDL(N) = \left(\frac{N_c}{N}\right)^{\alpha_N},\qquad L(D)=\left(\frac{D_c}{D}\right)^{\alpha_D}
기호논문 값뜻
αN\alpha_N약 0.076파라미터를 늘릴 때 손실이 줄어드는 기울기
NcN_c약 8.8×10138.8\times10^{13}임베딩 제외 파라미터 기준 상수
αD\alpha_D약 0.095데이터를 늘릴 때의 기울기
DcD_c약 5.4×10135.4\times10^{13} 토큰데이터 기준 상수

논문은 일부 경향이 7자리(10의 7제곱 배) 이상의 범위에서 성립했고, 폭 · 깊이 같은 구조 세부는 넓은 범위에서 영향이 작았다고 보고합니다.

숫자로 해 보기(해설용). NN 을 두 배로 하면 손실은 2−0.076≈0.9492^{-0.076}\approx0.949 배, 약 5% 줄어듭니다. 식에 넣으면 N=108N=10^8 일 때 약 2.83, 10910^9 일 때 약 2.38, 101010^{10} 일 때 약 1.99(nats/토큰)입니다. 열 배마다 같은 비율(약 16%)로 줄어드는 것이 멱법칙의 모양입니다. 이 값은 논문 데이터셋(WebText2)과 토크나이저 기준이라 다른 모델의 손실과 직접 비교하면 안 됩니다.

주의. 스케일링 법칙은 사전학습 손실 을 예측합니다. 특정 과제의 정답률이나 "어떤 능력이 생기는가"를 직접 예측하지는 않습니다.

3. 카플란 vs 친칠라: 예산을 어떻게 나누나

연산 예산 CC 가 정해지면 NN 과 DD 는 C≈6NDC\approx6ND 로 묶입니다. 큰 모델을 적게 학습할지, 작은 모델을 많이 학습할지 골라야 합니다. 최적 배분을 Nopt∝CaN_\text{opt}\propto C^a, Dopt∝CbD_\text{opt}\propto C^b 로 쓰면(a+b=1a+b=1):

연구aa (모델)bb (데이터)결론
카플란 외(2020)0.730.27예산이 늘면 주로 모델을 키워라
친칠라(호프만 외, 2022)약 0.50약 0.50모델과 데이터를 같은 비율로 키워라

친칠라의 근거. 7천만~160억 파라미터 모델 400개 이상을 50억~5,000억 토큰으로 학습해, 세 가지 방법(학습 곡선 최솟값, 같은 연산량 곡선, 매개변수 식 맞춤)으로 최적점을 추정했고 모두 a≈b≈0.5a\approx b\approx0.5 근처가 나왔습니다. 결론은 "모델 크기를 두 배로 하면 토큰도 두 배로"입니다.

왜 달랐나(해설). 친칠라 논문은 카플란 연구가 모든 모델에 같은 학습률 스케줄 · 토큰 수를 써서, 작은 모델의 학습이 덜 끝난 상태로 비교되었다는 점 등을 차이의 원인으로 듭니다. 같은 비용이면 모델 크기에 맞춘 스케줄로 끝까지 학습해야 공정하게 비교된다는 것입니다.

검증 실험. 친칠라는 Gopher(2,800억 파라미터, 3,000억 토큰)와 같은 예산으로 700억 파라미터 모델을 1.4조 토큰(약 4배 데이터)으로 학습했고, Gopher · GPT-3 등을 여러 평가에서 앞섰습니다. 6ND로 검산하면 친칠라 5.9×10235.9\times10^{23}, Gopher 5.0×10235.0\times10^{23} FLOP으로 같은 규모입니다.

"토큰 = 파라미터 × 20" 어림. 친칠라 표 3(방법 1 추정)에서 4억 파라미터 → 80억 토큰, 10억 → 202억 토큰, 100억 → 2,051억 토큰이고, 친칠라 자체도 70B · 1.4T입니다. 모두 약 20배입니다. 이 비율을 C=6NDC=6ND 에 넣으면 C=120N2C=120N^2, 즉 Nopt≈C/120N_\text{opt}\approx\sqrt{C/120}.

숫자로 해 보기(해설용). 예산 102310^{23} FLOP이면 N≈1023/120≈2.9×1010N\approx\sqrt{10^{23}/120}\approx2.9\times10^{10} (약 290억 파라미터), D≈5.8×1011D\approx5.8\times10^{11} (약 5,800억 토큰)입니다.

친칠라의 손실 식. 논문의 방법 3은 L^(N,D)=E+ANα+BDβ\hat L(N,D)=E+\frac{A}{N^{\alpha}}+\frac{B}{D^{\beta}} 를 맞췄고 E=1.69E=1.69, A=406.4A=406.4, B=410.7B=410.7, α=0.34\alpha=0.34, β=0.28\beta=0.28 을 얻었습니다. EE 는 아무리 키워도 남는 손실(텍스트 자체의 불확실성), 두 번째 · 세 번째 항은 모델 · 데이터가 유한해서 생기는 손실입니다. 대입하면 친칠라 설정(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을 쓰면 파라미터 하나당:

항목형식바이트
가중치FP162
기울기FP162
가중치 원본 사본FP324
모멘텀FP324
분산FP324
합계16

ZeRO 논문은 15억 파라미터 GPT-2가 FP16 가중치만이면 3GB인데, 모델 상태 전체는 최소 24GB라고 계산합니다.

숫자로 해 보기. 7B 모델은 16×7×109=11216\times7\times10^9=112 GB, 70B는 1,120GB입니다. GPU 한 장(80GB)에 7B 모델 학습 상태조차 다 들어가지 않습니다. 그래서 분산 학습 이 필요합니다.

활성화 메모리. ZeRO 논문은 GPT-2류 구조의 활성화가 대략 12×12\times 은닉 차원 ×\times 배치 ×\times 시퀀스 길이 ×\times 층 수 개라고 적고, 1.5B GPT-2(은닉 1,600, 48층)를 길이 1K · 배치 32로 학습하면 약 60GB가 든다고 합니다. 대입하면 12×1600×32×1024×48≈3.0×101012\times1600\times32\times1024\times48\approx3.0\times10^{10} 개, FP16(2바이트)으로 약 60GB로 맞습니다. 활성화 체크포인팅(일부만 저장하고 역전파 때 다시 계산)은 약 33% 재계산 비용으로 이를 약 8GB까지 줄인다고 논문은 설명합니다.

mermaid
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]

연습 문제

  1. 13B 모델을 1T 토큰으로 학습하면 연산량은?
    • 풀이: 6×13×109×1012=7.8×10226\times13\times10^9\times10^{12}=7.8\times10^{22} FLOP입니다.
  2. 1번을 GPU당 실효 150 TFLOPS인 GPU 1,024장으로 하면 며칠?
    • 풀이: 7.8×1022÷(1.5×1014×1024)≈5.1×1057.8\times10^{22}\div(1.5\times10^{14}\times1024)\approx5.1\times10^5 초, 약 5.9일입니다.
  3. 친칠라 비율로 3B 파라미터 모델에 맞는 토큰 수와 연산량은?
    • 풀이: 토큰 약 600억(60B), C=6×3×109×6×1010≈1.1×1021C=6\times3\times10^9\times6\times10^{10}\approx1.1\times10^{21} FLOP입니다.
  4. 13B 모델의 혼합 정밀도 Adam 모델 상태 메모리는?
    • 풀이: 16×13=20816\times13=208 GB입니다. 활성화는 따로입니다.

스스로 점검

  1. 왜 계수가 2가 아니라 6인가요?
    • 답: 순전파가 토큰당 약 2N2N(곱+덧셈), 역전파가 그 두 배인 약 4N4N 이라 합쳐 6N6N 이기 때문입니다.
  2. 친칠라가 카플란과 다른 결론을 낸 핵심 이유는?
    • 답: 모델 크기마다 학습 스케줄을 맞춰 끝까지 학습한 비교에서, 모델과 데이터를 같은 비율로 키우는 것이 최적이라는 결과가 나왔기 때문입니다.
  3. 친칠라 비율보다 데이터를 훨씬 많이 쓰는 것이 합리적인 경우는?
    • 답: 모델을 배포해 오래, 많이 쓸 때입니다. 작은 모델은 추론 비용이 싸므로, 학습을 더 들여서라도 작게 만드는 편이 총비용이 낮습니다.

용어 정리

용어쉬운 뜻
FLOP부동소수점 연산 1회(곱하기 또는 더하기)
연산 예산학습에 쓸 총 연산량 CC
스케일링 법칙크기 · 데이터 · 연산을 늘릴 때 손실이 줄어드는 규칙(멱법칙)
멱법칙y∝x−αy\propto x^{-\alpha} 꼴. 로그-로그 그래프에서 직선
연산 최적(compute-optimal)정해진 연산 예산에서 손실이 가장 낮은 NN · DD 조합
MFU이론 최대 연산 대비 실제로 쓴 비율
모델 상태가중치 · 기울기 · 옵티마이저 값
활성화 체크포인팅중간값 일부만 저장하고 필요할 때 다시 계산해 메모리를 아끼는 기법

더 깊이 보려면

다음에 볼 것

라이선스

본문은 KAITABASE 자체 해설입니다. 논문 수치는 각 arXiv 원문(카플란 · 친칠라 · ZeRO · LLaMA)과 NVIDIA A100 공식 제품 페이지에서 확인한 것만 옮겼고, 대입 · 어림 계산은 파이썬으로 검산한 해설용 계산입니다.

출처

AI 원리부터 이해하기 · 스케일링·효율 모듈

스케일링·효율 모듈 학습

이 글은 스케일링·효율 모듈의 학습 자료입니다. 전체 19개 자료 중 1번째입니다.

AI 기초 과정은 현재 진도 저장을 지원하지 않습니다.

출처·원문

원문 보기

요약만

본문 자체 작성 · 참고 자료 arXiv 원 논문 · How to Scale Your Model