C.W.K.
Stream
Lesson 06 of 12 · published

깊이 vs 너비 — 파라미터를 어디 쓸까

~10 min · depth, width, scaling

Level 0Token
0 XP0/94 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

고정 파라미터 예산에서 layer 더 쌓을까(deeper), 각 layer 넓힐까(d_model 크게)? 경험적으로 둘 다 중요한데, 올바른 비율은 자명하지 않아.

모델layerd_modelParamslayer / d_model
Transformer Base651265M1/85
GPT-212768117M1/64
GPT-39612,288175B1/128
Llama 3 (8B)324,0968B1/128
Llama 3.3 (70B)808,19270B1/102
DeepSeek-V361671B (37B active, MoE)

패턴: 모델 스케일하면 깊이와 너비가 같이 성장. layer당 d_head는 64-128 근처 유지, 대부분 모던 아키텍처에서 대략 d_model ≈ 64-128 × n_layers. 정리는 아니지만 강한 경험적 규칙성.

둘 다 중요한 이유: 깊은 모델은 더 많은 구성적 함수 표현 가능(각 layer가 선행을 구성). 넓은 모델은 토큰당 더 풍부한 표현. 실용적 증거는 깊이가 언어 이해에 살짝 더 중요한데 ~80 layer 넘어가면 수확 체감 — 그 시점부턴 더 깊게 가기보다 넓히거나 sparse화(MoE)가 더 생산적.

Code

Param budget split·python
def transformer_total(vocab, d, n_layers, d_ff_mul=4):
    embed = vocab * d
    attn  = 4 * d * d * n_layers
    ffn   = 2 * d * (d_ff_mul * d) * n_layers
    return embed + attn + ffn

# Same total budget, different shapes:
budget = 8_000_000_000
# Deep+narrow: 64 layers, d_model=2048
deep   = transformer_total(128_000, 2048, 64)
# Shallow+wide: 16 layers, d_model=4096
wide   = transformer_total(128_000, 4096, 16)
print(deep/1e9, wide/1e9)
# Both ~8B, but train very differently.

External links

Exercise

동일 총 파라미터, 다른 shape의 작은 Transformer 셋 학습 — (32 layer × d=64), (16 × 128), (8 × 256). 같은 데이터/토큰. 각각 최종 loss 플롯. 깊고 좁은 shape가 어디서 이기고, 얕고 넓은 shape가 어디서 이기나?

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.