파운데이션 모델 엔지니어링

8.1 The Power Law: 딥러닝의 열역학

2020년 이전의 딥러닝 아키텍처 설계는 직관, 휴리스틱(heuristics), 그리고 시행착오에 크게 의존했습니다. 엔지니어들은 모델을 만들고 학습시키면서 손실(loss) 곡선이 만족스러운 수치로 수렴하기만을 바랐습니다. 하지만 특정 모델·데이터·최적화 조건 안에서 신경망 성능이 Scaling Laws (스케일링 법칙) 로 근사할 수 있는 반복적인 경험적 경향을 보인다는 연구가 축적되면서 패러다임이 바뀌었습니다.

Backpropagation (오차역전파)이 딥러닝의 ‘역학(mechanics)‘이라면, Scaling Laws 는 ‘열역학(thermodynamics)‘에 비유할 수 있습니다. 이는 시스템의 거시적인 동작, 즉 Compute (연산량), Data (데이터), Parameters (파라미터 수) 라는 세 가지 핵심 자원을 확장함에 따라 모델의 최종 손실(Loss)이 어떻게 변화하는지를 설명합니다.

이러한 규칙성은 작은 파일럿 실행으로 큰 실행을 예측하는 데 도움을 주지만, 예측은 데이터·아키텍처·최적화·외삽 범위에 조건부이며 반드시 불확실성을 포함해야 합니다.


경험적 발견 (The Empirical Discovery)

예측 가능한 확장에 대한 초기 관찰은 2017년 Hestness 등에 의해 문서화되었지만 [1], 현대의 Large Language Models (LLMs)를 위한 결정적인 공식화는 2020년 OpenAI의 Kaplan 연구진에 의해 발표되었습니다 [2].

수천 개에서 수십억 개의 파라미터를 가진 수십 개의 Transformer 모델을 학습시킨 결과, 이들은 세 가지 변수 중 어느 하나라도 병목(bottleneck)으로 작용하지 않는 한, Cross-entropy test loss (LL)가 Power Law (멱법칙) 에 따라 감소한다는 사실을 발견했습니다.

  1. NN (Parameters) : 임베딩(embedding)을 제외한 파라미터의 수.
  2. DD (Data) : 학습에 사용된 토큰(tokens)의 수.
  3. CC (Compute) : 학습 중 사용된 총 부동소수점 연산량 (FLOPs).

수학적 공식 (The Mathematical Formulation)

Power law 관계는 세 가지 독립적인 방정식으로 표현할 수 있습니다:

L(N)=(NcN)αN+LirreducibleL(N) = \left(\frac{N_c}{N}\right)^{\alpha_N} + L_{\text{irreducible}}

L(D)=(DcD)αD+LirreducibleL(D) = \left(\frac{D_c}{D}\right)^{\alpha_D} + L_{\text{irreducible}}

L(C)=(CcC)αC+LirreducibleL(C) = \left(\frac{C_c}{C}\right)^{\alpha_C} + L_{\text{irreducible}}

여기서:

  • αN,αD,αC\alpha_N, \alpha_D, \alpha_C 는 손실이 얼마나 빨리 떨어지는지를 결정하는 스케일링 지수입니다. Kaplan은 이 값들을 대략 αN0.076\alpha_N \approx 0.076, αD0.095\alpha_D \approx 0.095, αC0.050\alpha_C \approx 0.050 으로 추정했습니다.
  • Nc,Dc,CcN_c, D_c, C_c 는 특성 척도(characteristic scales)를 나타내는 상수입니다.
  • LirreducibleL_{\text{irreducible}} 은 데이터셋에 내재된 본질적 엔트로피 (inherent entropy) 입니다.

scaling_laws_log_log

환원 불가능한 손실의 하한선 (The Irreducible Loss Floor)

LirreducibleL_{\text{irreducible}} 항은 이론적인 최솟값을 의미합니다. 자연어에는 본질적인 모호성, 노이즈, 그리고 관찰되지 않은 컨텍스트가 포함되어 있습니다. 무한한 파라미터와 무한한 연산량을 가진 이론적인 모델조차도 매번 다음 토큰을 완벽하게 예측할 수는 없으며, 단지 이 근본적인 엔트로피 하한선에 근접할 수 있을 뿐입니다. 모델이 기하급수적으로 커짐에 따라 수확 체감의 법칙이 적용되어 손실 곡선은 평평해지며 이 하한선에 점근적으로 다가갑니다.


Log-Log 선형성 (Log-Log Linearity)

Power law 는 Log-Log 그래프(양대수 그래프)에서 가장 명확하게 시각화됩니다. 환원 불가능한 손실을 잠시 무시하고(하한선에서 멀리 떨어져 있다고 가정), 연산량 확장에 대한 방정식에 로그를 취하면 다음과 같습니다:

logL(C)αClogC+log(CcαC)\log L(C) \approx -\alpha_C \log C + \log(C_c^{\alpha_C})

이는 직선의 방정식 (y=mx+by = mx + b)과 동일합니다. 이러한 선형성(linearity)이야말로 엔지니어링 관점에서 스케일링 법칙을 매우 강력하게 만드는 요소입니다. 10M, 100M, 1B 파라미터 모델의 손실을 Log-Log 그래프에 점으로 찍고 그 사이를 관통하는 직선을 그으면, 100B 파라미터 거대 모델의 최종 손실을 놀라울 정도로 정확하게 예측할 수 있습니다.

Interactive Scaling Law: Loss vs. Compute

Predicted Loss: 9.443Irreducible Floor: 1.500
L_irreducibleCompute (Log Scale)Loss (Log Scale)

제약과 불확실성을 포함한 외삽

스케일링 법칙 예측은 정확한 예언이 아니라 엔지니어링 추정입니다. 같은 토크나이저, 데이터 스냅샷, 아키텍처 계열, 평가 하네스, 학습 품질 기준으로 모델 크기 NN, 토큰 예산 DD, 여러 시드의 요인 파일럿 그리드를 구성합니다. 작은 모델의 과소 학습을 스케일링 법칙으로 오해하지 않도록 규모마다 학습률, 배치, 워밍업을 조정합니다.

다음 교육용 피팅은 진폭·지수를 양수로, 하한을 0과 최소 관측 손실 사이로 제한합니다. 연산량 단위는 PetaFLOPs입니다. 1 ExaFLOP = 1,000 PetaFLOPs이므로 목표는 1e6이 아니라 1e3입니다.

import torch
import torch.nn as nn
import torch.nn.functional as F

compute_pf = torch.tensor([10., 30., 100., 300., 1_000.])
validation_loss = torch.tensor([4.65, 4.02, 3.52, 3.18, 2.91])

class ConstrainedPowerLaw(nn.Module):
    def __init__(self, min_observed_loss):
        super().__init__()
        self.raw_amplitude = nn.Parameter(torch.tensor(1.0))
        self.raw_exponent = nn.Parameter(torch.tensor(-2.0))
        self.raw_floor_fraction = nn.Parameter(torch.tensor(0.0))
        self.register_buffer("min_loss", min_observed_loss)

    def forward(self, compute):
        amplitude = F.softplus(self.raw_amplitude)
        exponent = F.softplus(self.raw_exponent)
        floor = self.min_loss * torch.sigmoid(self.raw_floor_fraction)
        return amplitude * compute.pow(-exponent) + floor

model = ConstrainedPowerLaw(validation_loss.min())
optimizer = torch.optim.Adam(model.parameters(), lr=1e-2)
for _ in range(5_000):
    prediction = model(compute_pf)
    loss = F.mse_loss(torch.log(prediction), torch.log(validation_loss))
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

one_exaflop_pf = torch.tensor([1_000.])
print(model(one_exaflop_pf).item())

다섯 개 집계 점만으로 자금 결정을 내리기에는 부족합니다. 전체 파일럿 실행을 부트스트랩 재표집하여 파라미터·예측 구간을 만듭니다. 개별 검증 토큰을 독립 학습 실행처럼 재표집하면 안 됩니다. 최대 규모 제외(leave-largest-out) 시험도 수행합니다. 가장 큰 실행을 빼고 피팅한 뒤 그 실행을 예측하여 오차를 보고하고, 검증한 연산 비율을 크게 넘는 외삽은 거부합니다.

계획한 파일럿 중 가장 큰 규모는 진짜 예측 홀드아웃으로 남깁니다. 예측·실제 검증 손실, 다운스트림 체크포인트 프로브, 실측 FLOP/s, 재시작 오버헤드, 총비용을 비교합니다. 최대 FLOPs가 아니라 실측 활용률로 GPU 시간을 환산하고 데이터, 체크포인트, 평가, 장애 오버헤드를 포함합니다. 실행 여부 구간에는 점 추정뿐 아니라 불확실성과 사업 가치를 반영합니다.


창발적 능력의 “신기루” (The “Mirage” of Emergent Abilities)

스케일링 법칙에서 반드시 짚고 넘어가야 할 중요한 미묘함은 Cross-entropy lossDownstream task accuracy (하위 작업 정확도) 간의 차이입니다.

Cross-entropy loss는 피팅한 범위 안에서 매끄러운 추세를 보이는 경우가 많지만, 특정 벤치마크 성능은 갑작스럽고 불연속적인 도약처럼 보일 수 있습니다. 어느 동작도 측정한 모델·데이터·최적화 범위 밖에서 보장되지는 않습니다.

하지만 Schaeffer 등 (2023)의 연구 [3]는 이러한 창발성이 평가지표(metric)의 선택에 의해 발생하는 신기루에 불과하다고 주장합니다. Cross-entropy 는 연속적(continuous)이며 토큰에 대한 확률 분포를 측정합니다. 만약 모델이 정답에 부여하는 확률을 1%에서 10%로 향상시킨다면, 손실(loss)은 매끄럽게 감소합니다. 하지만 객관식 벤치마크에서는 그 확률이 경쟁하는 오답들의 확률을 뛰어넘을 때까지 모델의 점수는 계속 0점일 것이며, 정답 확률이 오답 확률을 넘어서는 순간 정확도는 갑자기 100%로 치솟게 됩니다.

Schaeffer 등의 연구는 조사한 설정에서 지표 선택이 겉보기 임계값을 만들거나 키울 수 있음을 보여줍니다 [3]. 모든 창발 논쟁이 끝났다는 뜻은 아닙니다. 엔지니어는 매끄러움과 불연속성 어느 쪽도 보편 법칙으로 두지 말고 연속 지표, 오염, 프롬프팅, 신뢰 구간을 함께 검사해야 합니다.


Quizzes

Quiz 1: 스케일링 법칙을 위해 파라미터 수 NN 을 계산할 때, 연구자들이 임베딩(embedding) 파라미터를 명시적으로 제외하는 이유는 무엇일까요? 임베딩 파라미터는 핵심 연산 엔진의 깊이나 구조적 복잡성이 아니라, (고정된) 어휘 사전(vocabulary)의 크기와 은닉 차원(hidden dimension)에 엄격하게 비례하여 커집니다. 이를 포함시키면 실제 연산 능력과 손실 간의 관계가 왜곡될 수 있으며, 특히 전체 파라미터에서 임베딩이 차지하는 비중이 비정상적으로 큰 소규모 모델에서 이러한 왜곡이 심하게 나타나기 때문입니다.

Quiz 2: 방정식 L(C)=(Cc/C)αC+LirreducibleL(C) = (C_c / C)^{\alpha_C} + L_{\text{irreducible}} 에서, LirreducibleL_{\text{irreducible}} 이 나타내는 물리적 또는 이론적 한계는 무엇입니까? 이는 데이터셋의 본질적 엔트로피(또는 베이즈 위험, Bayes risk)를 나타냅니다. 자연어에는 피할 수 없는 모호성, 노이즈, 관찰되지 않은 컨텍스트가 포함되어 있습니다. 무한한 파라미터와 무한한 연산량을 가진 이론적인 모델조차도 매번 다음 토큰을 완벽하게 예측할 수는 없으며, 단지 이 근본적인 엔트로피 하한선에 근접할 수 있을 뿐입니다.

Quiz 3: Kaplan의 초기 연구 결과에 따르면, 연산량(Compute budget)이 10배 증가했을 때 모델 크기와 데이터 양을 동일한 비율로 확장해야 합니까? 아닙니다. Kaplan 연구진은 새로운 연산량의 대부분을 데이터보다는 모델 크기(파라미터)에 할당하는 것이 성능 확장에 더 효율적이라고 결론지었습니다. 즉, 데이터 크기보다 파라미터를 훨씬 더 빠르게 확장해야 한다고 제안했습니다. (참고: 이 결론은 훗날 Chinchilla 스케일링 법칙에 의해 반박되었으며, 1:1의 균형 잡힌 확장 접근법으로 정정되었습니다).

Quiz 4: 스케일링 법칙이 그토록 신뢰할 수 있다면, 왜 모델 학습 도중에 예상 곡선을 벗어나는 갑작스러운 “Loss Spikes (손실 급증)” 현상이 발생하는 것일까요? 스케일링 법칙은 안정적인 학습 조건 하에서의 최적화되고 수렴된 최종 손실을 예측합니다. Loss Spikes 는 잘못된 데이터 배치, 학습률(learning rate) 관리 실패, 또는 수치적 불안정성(예: FP16에서의 Gradient 폭발) 등으로 인해 발생하는 최적화 실패입니다. 이는 이론적인 스케일링 한계가 무너진 것이 아니라, 옵티마이저(optimizer)가 손실 공간(loss landscape)을 탐색하는 데 실패했음을 의미합니다.


References

  1. Hestness, J., et al. (2017). Deep Learning Scaling is Predictable, Empirically. arXiv:1712.00409.
  2. Kaplan, J., et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
  3. Schaeffer, R., et al. (2023). Are Emergent Abilities of Large Language Models a Mirage? arXiv:2304.15004.