스케일링 법칙 (Scaling laws): 왜 모델 손실(loss)은 로그-로그 그래프에서 직선을 그리며, 왜 GPT-3는 학습
요약
모델의 테스트 손실이 연산량에 따라 거듭제곱 법칙(power law)을 따르며 감소한다는 스케일링 법칙을 설명합니다. 로그-로그 그래프에서의 직선 관계와 언어의 내재적 엔트로피로 인한 하한선(L0)의 존재를 다룹니다.
핵심 포인트
- 모델 손실은 연산량 증가에 따라 로그-로그 축에서 직선 형태로 감소함
- 언어의 내재적 엔트로피로 인해 도달할 수 없는 하한선(L0)이 존재함
- 파라미터(N), 토큰(D), 연산량(C) 사이의 트레이드오프 관계가 핵심임
- 소규모 실험 데이터를 통해 대규모 모델의 성능을 예측하여 리스크를 줄임
더 큰 언어 모델을 학습시키는 것이 도박이라고 생각할 수도 있습니다. 하지만 그렇지 않습니다. 그리고 이것은 현대 AI에서 가장 유용한 사실 중 하나입니다. 여러 자릿수(orders of magnitude)에 걸쳐, 모델의 테스트 손실(test loss)은 투입되는 연산량(compute)에 따라 매끄러운 **거듭제곱 법칙 (power law)**을 따르며 감소합니다. 로그-로그 축(log-log axes)에 손실과 연산량을 플롯하면 데이터 포인트들은 직선 위에 놓입니다. 저는 브라우저에서 실제 곡선을 계산하는 두 개의 데모를 만들었으며, 이들은 연구소들이 어떻게 수억 달러 규모의 학습 실행을 계획할 수 있는지, 그리고 왜 하필 GPT-3가 "학습 부족 (undertrained)" 상태였는지를 함께 설명해 줍니다.
손실은 줄일 수 없는 하한선(irreducible floor)까지 거듭제곱 법칙을 따른다
전체 법칙은 두 부분으로 구성됩니다: 규모에 따라 거듭제곱 형태로 줄어드는 줄일 수 있는 (reducible) 항, 그리고 결코 넘을 수 없는 줄일 수 없는 하한선 (irreducible floor) L₀입니다. 이 하한선은 언어의 내재적 엔트로피(intrinsic entropy)입니다. 즉, 완벽한 모델이라 할지라도 다음 토큰을 확실하게 예측할 수는 없습니다.
def loss(C, L0, Cc, alpha):
return L0 + (C / Cc) ** (-alpha)
# reducible part -> C가 커짐에 따라 0이 되므로, loss -> L0 (하한선)
줄일 수 있는 항인 (C/Cc)^(−α)는 로그-로그 플롯에서 직선을 이룹니다. 연산량이 증가함에 따라 곡선은 해당 직선을 따라가다가, L₀ 위에서 평평하게 꺾입니다 (bends flat). α가 가파를수록 FLOP당 이득이 더 큽니다. 실질적인 보상은 _외삽 (extrapolation)_에 있습니다. 몇 개의 작고 저렴한 실행 결과에 곡선을 맞추고(fit), 하한선을 뺀 뒤, 로그-로그 공간에서 직선을 맞추면, 실제 비용을 지불하기 전에 100배 또는 1000배 더 큰 모델을 예측할 수 있습니다. 이것이 바로 프런티어(frontier) 모델 학습의 리스크를 줄이는 데 사용되는 정확한 기술입니다.
C = np.array([1e17, 3e17, 1e18, 3e18, 1e19])
loss = np.array([3.10, 2.74, 2.45, 2.22, 2.04])
L0 = 1.69
...
하지만 하한선을 존중해야 합니다. C가 커짐에 따라 줄일 수 있는 부분은 사라지고 예측값은 L₀에 점근(asymptote)합니다. 절대 그 아래를 예측하지 마십시오. 또한, 측정된 범위를 벗어나면 피팅(fit) 자체가 휘거나 깨질 수 있으므로 먼 거리의 외삽은 주의해서 다루어야 합니다. 저의 첫 번째 데모를 사용하면 곡선을 따라 연산량을 드래그하며 하한선에 접근할 때 FLOP당 수익률(returns-per-FLOP)이 어떻게 붕괴하는지 관찰할 수 있습니다.
세 가지 노브(knobs), 그리고 C ≈ 6ND
세 가지 수량이 모든 것을 주도합니다: N 파라미터(parameters), D 학습 토큰(training tokens), C 연산량(compute, FLOPs). 이들은 경험 법칙(rule of thumb)에 의해 연결되어 있습니다. 데이터에 대한 순전파(forward) + 역전파(backward) 패스는 약 C ≈ 6·N·D의 비용이 듭니다. 따라서 고정된 연산 예산은 (N, D) 간의 트레이드오프(trade-off) 곡선이 됩니다. 즉, 모델이 더 커지면 감당할 수 있는 토큰 수는 줄어들고, 그 반대도 마찬가지입니다. 여기서 진짜 질문이 생깁니다. 고정된 예산이 주어졌을 때, 이를 어떻게 나누어야 할까요?
Kaplan은 N을 키우라고 했고, Chinchilla는 둘 다 키우라고 했다.
첫 번째 스케일링 법칙(scaling-laws) 논문(Kaplan et al., 2020)은 새로운 연산량의 대부분을 모델을 키우는 데 사용해야 하며, 데이터는 완만하게 늘려야 한다고 결론지었습니다. GPT-3(175B 파라미터, ~300B 토큰)는 그 시대의 대표적인 사례입니다. 이후 DeepMind의 Chinchilla(2022)는 크기와 데이터 모두에 대해 손실 표면(loss surface)을 다시 맞추었으며(re-fit), Kaplan이 모든 모델을 학습 부족(undertrained) 상태로 만들었음을 보여주었습니다.
# Chinchilla 매개변수 적합(parametric fit):
# L(N, D) = E + A / N^alpha + B / D^beta
E, A, B = 1.69, 406.4, 410.7
...
어느 한 항도 단독으로 승리할 수 없습니다. N이나 D 중 하나라도 굶기면 손실(loss)은 상승합니다. 고정된 C = 6ND에서 해당 표면을 최소화하면, 최적값은 N과 D를 거의 동일한 비율로 성장시키므로, 그 비율은 파라미터당 약 20개의 토큰으로 대략 일정하게 유지됩니다. 이 단일 수치가 핵심 결과입니다.
def optimal_split(C):
best = None
for r in np.logspace(-1, 3, 400): # 다양한 토큰/파라미터 비율을 시도
...
왜 "GPT-3는 학습 부족(undertrained) 상태였는가"
GPT-3를 곡선 위에 놓아봅시다: 175B 파라미터이지만 토큰은 약 ~300B에 불과합니다 ≈ 파라미터당 약 1.7개의 토큰 — 이는 최적값인 ~20에서 멀리 떨어진 왼쪽, 즉 학습 부족(undertrained) 영역 깊숙이 위치합니다. 여기서 "학습 부족"의 정확한 의미는 GPT-3가 나빴다는 것이 아니라, 동일한 연산량으로 더 좋고 더 저렴한 모델을 만들 수 있었다는 뜻입니다. Chinchilla는 동일한 연산량으로 1.4T 토큰(20:1 비율)을 사용하여 70B 모델을 학습시킴으로써 이를 직접 증명했으며, 280B 규모의 Gopher를 능가했습니다. Gopher보다 2.5배 더 작고 서빙(serve) 비용도 훨씬 저렴한 모델입니다. 저의 두 번째 데모는 U자형 손실-대-비율(loss-vs-ratio) 곡선으로, GPT-3, Chinchilla 최적값, 또는 과잉 학습(over-fed) 상태로 이동하며 각 경우의 손실을 읽을 수 있는 마커가 포함되어 있습니다.
한계 파악하기
스케일링 법칙 (Scaling laws)은 예측일 뿐, 보증이 아닙니다. 손실 (Loss)은 L₀ 아래로 떨어질 수 없습니다. 연산 최적화 (compute-optimal) 레시피는 결국 _존재하는 것보다 더 많은 토큰_을 요구하게 되며 (데이터 벽 (data wall) — 합성 데이터 (synthetic data)가 하나의 해답입니다), 이 법칙은 _손실 (loss)_을 예측할 뿐 하위 작업 능력 (downstream capability)을 예측하지는 않습니다. 능력은 놀라운 방식으로 급증할 수 있습니다. 또한 최신 모델들 (Llama 스타일)은 학습 최적화된 손실 (training-optimal loss)이 아니라 저렴한 _추론 (inference)_을 위해 최적화하기 때문에, 의도적으로 파라미터당 20개 이상의 토큰을 사용하여 학습합니다. 여기서 얻을 교훈은 "더 크게 만들어라"가 아니라, "N과 D를 함께 성장시키고, 곡선이 평탄해지는 시점을 파악하라"는 것입니다.
assert predicted_loss > L0 # 바닥을 돌파할 수 없음
assert 20 * N < tokens_available # 그렇지 않으면 데이터 벽 (DATA WALL)에 부딪힘
연산량 (compute)과 N/D 분할을 드래그하며 곡선의 변화를 관찰하세요:
https://dev48v.infy.uk/ai/days/day40-scaling-laws.html
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기