앞의 두 편에서 확인한 건 하나다 — 무엇을 세느냐가 지수를 0.2 움직인다. Kaplan은 마지막 레이어를 안 셌고, 임베딩도 안 셌다. 그래서 이 질문이 남는다. 우리가 견적서 첫 줄에 쓰는 C = 6ND는 정확히 무엇을 세고 있는가. 그리고 언제 그 식이 깨지는가.
6N의 유도, 그리고 놀라운 정확도
유도는 세 줄이다.
- 순전파: 파라미터 하나당 토큰당 곱셈 1 + 덧셈 1 = 2N
- 역전파: 입력에 대한 그래디언트와 가중치에 대한 그래디언트, 순전파의 2배 = 4N
- 합쳐서 토큰당 6N, 전체 C = 6ND
출처는 친칠라가 아니라 Kaplan 2020이고, 친칠라는 부록에서 정밀 계산 대비 비율이 0.99~1.10임을 확인했다. 근사치치고는 이례적으로 잘 맞는다. 실제 공개 모델로 검산해 보면 더 인상적이다.
| 모델 | 공식 보고 FLOPs | 6ND 계산 | 오차 |
|---|---|---|---|
| OLMo 2 32B | 1.3×10²⁴ | 1.27×10²⁴ | 2% |
| Llama 3 405B | 3.8×10²⁵ | 3.79×10²⁵ | 0.3% |
| EXAONE 4.0 32B | 2.69×10²⁴ | 2.688×10²⁴ | 0.07% |
즉 국내외 팀이 실제로 6ND로 컴퓨트를 회계한다. 카카오 Kanana는 아예 그림 캡션에 "6 × 학습 토큰 × 모델 크기"라고 공식을 적어 놓았다. 그러니 이 식을 믿어도 된다 — 세 군데만 조심하면.
균열 ① 긴 컨텍스트 — 128K에서는 절반 이하로 과소평가한다
6ND에는 어텐션의 QK·AV 행렬곱이 빠져 있다. 파라미터에 비례하지 않고 시퀀스 길이에 비례하기 때문이다. 어텐션 항과 파라미터 항의 비율은 대략 이렇다.
어텐션 / 파라미터 ≈ s / (12 · d_model)
- d_model 8,192, 시퀀스 2,048 → 2.1%. 무시해도 된다. Kaplan이 "d_model이 컨텍스트의 12분의 1보다 훨씬 크면 된다"고 조건을 단 이유다.
- 같은 모델, 시퀀스 128K → 약 133%. 어텐션이 파라미터 항보다 커진다. 6ND가 실제 컴퓨트를 절반 이하로 과소평가한다.
롱컨텍스트 학습을 예산에 넣는다면 이 항을 따로 세야 한다. 실무에서 이 문제를 회피하는 방식이 "롱컨텍스트는 마지막에 붙이기"다 — 네이버 HyperCLOVA X는 학습의 90%를 4K로 하고 마지막 10%만 32K로 돌렸다. DeepSeek-V3의 컨텍스트 확장 단계도 119K GPU-시간으로 전체의 4.3%에 불과하다.
균열 ② MoE — 어느 파라미터를 세느냐로 결론이 뒤집힌다
MoE에서는 N에 총 파라미터가 아니라 토큰당 활성 파라미터를 넣어야 한다. 이건 추측이 아니라 국내 리포트가 스스로 증명한다 — LG의 K-EXAONE(총 236B / 활성 23B)이 보고한 1.52×10²⁴ FLOPs를 검산하면 6 × 23e9(활성) × 11e12 = 1.52e24로 정확히 맞는다.
문제는 이 선택이 결론을 뒤집는다는 것이다. SKT A.X K1(총 519B / 활성 33B / 약 10T 토큰)을 보자.
- 총 파라미터 기준: 10T ÷ 519B = 19.3:1 — 우연히도 친칠라와 판박이다.
- 활성 파라미터 기준: 10T ÷ 33B = 303:1 — 16배 과학습이다.
같은 모델이 정의만 바꾸면 "교과서적 최적"과 "극단적 과학습" 사이를 오간다. 그러니 MoE 모델의 "친칠라 최적" 주장을 볼 때는 어느 쪽을 셌는지부터 확인해야 한다. 실무 규칙은 명확하다 — 컴퓨트는 활성 파라미터에, 메모리는 총 파라미터에 붙는다. 이 분리가 만드는 결과는 ⑧편에서 따로 다룬다.
균열 ③ 회계 방식 자체 — 재계산과 벽시계
마지막 균열은 미묘하다. 6ND는 해석적 FLOPs이지 실제로 소비한 연산이 아니다.
메모리를 아끼려고 활성값을 버렸다가 역전파에서 다시 계산하는 activation checkpointing을 쓰면 순전파를 한 번 더 하는 셈이라 실무 컴퓨트는 약 8ND가 된다. 33% 차이다. 대부분의 견적표(이 시리즈의 것을 포함해)가 이걸 6ND로 계산하고 넘어간다는 점은 정직하게 밝혀 둔다.
더 흥미로운 건 아예 다른 회계를 쓰는 팀이 있다는 것이다. SKT A.X K1은 총 예산을 2.548×10²⁴ FLOPs로 보고했는데, 6ND로는 6 × 33e9 × 10e12 = 1.98×10²⁴다. 보고값이 1.29배 크다. 오류가 아니다 — 하드웨어 기준으로 역산하면(H200 약 1,280장 × GPU당 301.72 TFLOPs × 73일) 2.5e24 대역에 정확히 들어온다. 즉 SKT는 "이론 FLOPs"가 아니라 "실효 스루풋 × 시간"으로 보고했다.
둘 다 정당한 회계지만 나란히 놓고 비교하면 안 된다. LG·카카오의 숫자는 6ND이고 SKT의 숫자는 벽시계다. 국내 모델의 효율을 비교하려 할 때 이 차이를 모르면 30% 오독한다.
그래서 견적서를 어떻게 쓰나
- 기본은 6ND를 쓰라. 실측과 0.07~2% 오차로 맞는다. 이건 근사가 아니라 사실상 정답이다.
- 시퀀스가 32K를 넘어가는 구간이 있으면 어텐션 항을 따로 더하라. 아니면 아예 그 구간을 학습 후반 10%로 몰아라.
- MoE면 활성 파라미터로 계산하고, 그 사실을 표에 명시하라.
- 재계산을 쓸 계획이면 ×1.33을 각오하라. 그리고 이건 뒤에서 볼 실패·재시작 오버헤드(×1.15)와는 별개다.
- 남의 보고 FLOPs를 인용할 때는 6ND로 검산하라. 안 맞으면 회계 방식이 다른 것이고, 그 자체가 정보다.
여기까지가 학습 비용이다. 그런데 이 식 전체에 빠진 게 하나 있다. 모델은 만들고 끝이 아니라 팔아야 한다. 친칠라의 목적함수에는 그 항이 없고, 그 항을 넣는 순간 최적점이 통째로 이동한다.
— 친칠라 법칙 시리즈 ③ / 다음 글: 식에 빠진 항 하나 — 추론을 넣으면 답이 뒤집힌다
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.