친칠라는 하나의 예산을 두 축(N, D)에 나누는 문제였다. 2026년은 세 개의 예산을 나누는 문제다 — 사전학습, 사후학습(RL), 그리고 테스트타임. 마지막 편은 이 셋의 비율을 재고, 시리즈가 열두 편 내내 미뤄 둔 계산을 마무리한다. 서빙 원가를 원화로 닫는 일이다.
RL의 몫이 2년 만에 자릿수로 커졌다
| 모델 | 사전학습 : 사후학습 | 사후학습 비중 |
|---|---|---|
| DeepSeek-V3 | 2,664K : 5K H800-시간 | 0.18% |
| Llama-Nemotron Ultra | RL 140K H100-시간 | 0.45% |
| K-EXAONE 2.0 (LG) | 8.8T : 350B 토큰 | 3.8% |
| ScaleRL 8B 단일 런 | RL 100K H100-시간 | 6.8% |
0.18%에서 4~10%로, 20~50배 커졌다. MiniMax-M1은 RL만으로 512×H800을 3주, $534,700을 썼다. 참고로 이 숫자를 나눠 보면 시간당 $2.07로, DeepSeek이 가정한 $2와 맞는다 — 국내 온디맨드(VESSL H100 $2.98)는 그 1.5배다.
다만 이 표를 읽을 때 함정이 둘 있다. 첫째, RL 비중이 큰 모델은 대부분 사전학습을 물려받은 모델이다. 분자가 커진 게 아니라 분모가 사라진 것이다. 둘째, DeepSeek-R1·Kimi K2·Qwen3는 사후학습 컴퓨트를 공개하지 않는다. 그 자체가 신호다 — 경쟁 우위가 그쪽으로 이동했다는 뜻이다.
RL은 멱법칙이 아니라 시그모이드다
이게 예산 배분에서 가장 중요한 차이다. 사전학습은 돈을 부으면 손실이 계속 내려간다(멱법칙). RL은 천장이 있다. 40만 GPU-시간 규모의 체계적 실험에서 적합된 형태는 시그모이드이고, 검증 런에서 도달한 천장 A는 0.61~0.645였다.
실무적으로 결정적인 건 무엇이 천장을 움직이고 무엇이 속도만 움직이는가다.
- 천장 A를 올리는 것: 손실 함수 종류, LM head를 FP32로 두는 것(0.52 → 0.61), 배치 크기, 생성 길이, 그리고 base 모델 크기.
- 속도 B만 올리는 것: 손실 집계 방식, 정규화, 커리큘럼, off-policy 정도. 이걸 아무리 튜닝해도 천장은 그대로다.
그래서 예산 규칙이 단순해진다 — 계획한 RL 예산의 10~20%를 먼저 쓰고, 곡선을 적합해 천장 A를 읽어라. A가 목표에 못 미치면 더 붓지 말고 base 모델이나 손실 함수를 바꿔라. 실제로 8천 스텝에서 1만6천을, 5만 GPU-시간에서 10만을 정확히 외삽했다. RL은 "돈만 부으면 되는 축"이 아니다.
그리고 대안 둘이 있다. 17B×16 MoE가 8B dense를 RL 컴퓨트 6분의 1로 이겼다 — ⑧편의 활성비 논리가 RL에서도 복리로 작동한다. 더 강한 건 Qwen3의 보고다 — 증류가 RL 대비 GPU-시간 10분의 1이고 성능도 더 좋았다. ⑤편의 결론이 여기서 반복된다.
데이터 원가도 비대칭이다. Qwen3의 추론 RL은 검증 가능한 질문-검증기 쌍 3,995개로 했는데, 선호 학습(DPO)용 데이터는 42만 5천 쌍이 필요했다. 사람 선호 데이터 10만 쌍이면 2~3억 원 규모로, 7B를 처음부터 학습하는 비용과 같은 자릿수다. 수학·코드처럼 자동 채점이 가능한 과제를 고르는 것이 곧 예산 절감이다.
테스트타임 — FLOPs로는 이기고 돈으로는 진다
추론 시 여러 번 샘플링해 고르는 테스트타임 스케일링은 FLOPs를 맞춘 조건에서 14배 큰 모델을 이긴다는 결과로 유명하다. 그런데 비용으로 다시 재면 부호가 뒤집힌다.
| 방식 | 출력 100만 토큰당 |
|---|---|
| 7B에 32회 샘플링 | 약 ₩5,456 |
| 32B 한 번에 | 약 ₩286 |
19배 비싸다. FLOPs가 같아도 돈이 같지 않은 이유는 ④편에서 본 그대로다 — 작은 모델을 여러 번 돌리면 가중치 읽기가 그만큼 반복되고, 디코딩은 대역폭 바운드다. 이 둘이 비기려면 어려운 질의 2% 이하에만 다중 샘플링을 라우팅해야 한다. "작은 모델 + 많이 생각하기"는 전량 적용하면 손해이고, 선별 적용해야 이득이다.
그래서 서빙 원가가 얼마인가 — 시리즈의 마지막 계산
기준은 ⑩편과 동일하다(H100 $2.98/시간, 환율 1,380원). 출력 토큰 100만 개당 원가를 배치를 제대로 채운 조건에서 계산하면:
| 모델 | ₩ / 출력 100만 토큰 |
|---|---|
| 30B 총 / 3B 활성 MoE | 약 ₩95 |
| 7B dense | 약 ₩171 |
| 32B dense | 약 ₩286 |
검산이 된다 — 32B 추정치가 상용 서빙 업체의 실제 공시가와 1.35배 이내로 맞는다. 그리고 MoE의 값어치가 여기서 숫자로 보인다. 총 30B짜리가 7B dense보다 싸다. 활성 파라미터가 3B이기 때문이다.
그런데 이 표는 낙관적이다. 위 값은 GPU가 100% 가동될 때의 이야기다. 실제로 월 1,000만 요청 서비스라면 H100 한 장의 가동률이 약 12%에 그치고, 그러면 실효 원가가 ₩1,396 / 100만 토큰으로 8배가 된다. 트래픽이 없으면 GPU는 놀면서 돈을 먹는다.
여기서 이 시리즈에서 가장 불편한 결론이 나온다.
- 8B 모델은 온디맨드 H100에서 100% 가동해도 API 가격을 못 이긴다.
- 32B 자체 서빙이 API보다 싸지는 손익분기가 월 3,600만 요청 수준이다.
⑩편에서 "자체 LLM은 2억 원짜리 문장"이라고 했는데, 그 2억을 쓰고 나서도 서빙 물량이 없으면 API보다 비싸다.
회수 기간을 계산하면 — 100년이 넘는다
이제 ⑪편의 질문에 숫자로 답할 수 있다. 7B를 처음부터 학습하는 비용(약 ₩1.95억)과 한국어 CPT 비용(약 ₩243만)의 차이가 약 ₩1.93억이다. 이걸 서빙 절감으로 회수하려면 얼마나 걸릴까.
토큰 효율이 30% 개선된다고 후하게 가정해도, 월 1,000만 요청 기준 회수 기간이 100년을 훌쩍 넘는다. 24개월 안에 회수하려면 월 수억 건, 초당 수백 건의 트래픽이 필요하다.
더 직관적인 환산도 있다. 누적 10억 요청을 서빙하는 총 원가가 약 ₩3,700만이다. 사전학습 한 번 값의 7분의 1이다. 서빙 비용이 사전학습 비용과 같아지려면 70억 요청이 필요하다.
④편에서 인용한 "손익분기 10억 요청"을 여기서 정정해야 한다. 그건 회수 조건이 아니라 모델 형상 규칙이다 — "10억 요청을 예상하면 모델을 더 작고 더 오래 학습시켜라"는 말이지, "10억 요청이면 자체 학습이 회수된다"는 말이 아니다. 대부분의 한국 서비스에서 처음부터 학습은 재무적으로 회수되지 않는다.
그리고 이미 공짜로 놓인 500억 원
그렇다면 물려받는 쪽의 값어치를 세어 보자. Qwen3-8B는 파라미터당 약 4,500토큰을 먹은 모델이다. ⑩편의 단가로 이 학습을 재현하는 데 드는 돈을 계산하면 약 50억 원이다.
그게 무료로 공개돼 있다. ⑪편에서 본 SKT의 결과 — 밑바닥 34B가 남의 72B에 CPT한 것에 모든 축에서 졌다는 사실 — 은 이 관점에서 당연하다. 한쪽은 2억을 썼고 다른 쪽은 남이 쓴 수백억을 물려받은 뒤 2백만 원을 얹었다.
1년 예산 5억 원을 어떻게 나눌 것인가
지금까지의 모든 숫자를 하나의 예산표로 접으면 이렇게 된다.
| 항목 | 비중 | 근거 |
|---|---|---|
| 사람 · 데이터 · 평가 | 약 46% | 프런티어 총비용 구성에서도 인력이 29~49%(⑩편) |
| 사후학습(RL·SFT) | 약 12% | 업계 비중 4~10%의 상단, 천장 A를 15%로 먼저 측정 |
| CPT · 토크나이저 · 어닐링 | 한 자릿수 % | 7B/20B 토큰 CPT가 ₩243만(⑩편) |
| 서빙 인프라 | 나머지 대부분 | 가동률이 원가를 8배 흔든다 |
| 처음부터 사전학습 | 1% 미만 | 애초에 5억으로는 7B 하나도 못 만든다 |
최종 의사결정 시트
- 누적 요청 수를 먼저 적어라. 10억을 넘길 것 같으면 모델 형상을 "더 작고 더 오래"로 잡아라(④편). 다만 그게 자체 학습을 정당화하지는 않는다.
- 파인튜닝·양자화 계획이 있으면 D/N을 2,000~2,500 아래로. 그리고 배포할 정밀도로 벤치마크하라(⑤편).
- 한국어 고유 토큰이 1,440억에 못 미치면 답은 CPT다. 그 경계는 전이 스케일링 법칙이 주는 숫자이고, 대부분의 국내 팀이 그 아래에 있다(⑦편). 그 CPT는 전체 파라미터로 하고(LoRA 금지), 원본 데이터를 5% 섞어라 — 그것만으로 망각의 71%가 사라진다(⑪편).
- 토크나이저를 먼저 고쳐라. 학습비·추론비·컨텍스트에 동시에 작용하는 유일한 항목이다(⑦편).
- MoE를 쓸 수 있으면 써라. 서빙 원가가 활성 파라미터에 붙으므로, 총 30B/활성 3B가 7B dense보다 싸다(⑧·⑬편).
- RL은 15%를 먼저 쓰고 천장을 읽어라. 안 오르면 더 붓지 말고 base를 바꾸거나 증류로 가라.
- 그래도 직접 계수를 적합하고 싶다면 $1,800이다. 그건 거의 언제나 남는 투자다(⑫편).
- 그리고 로깅하라. 스텝별 손실, 토큰과 바이트, 비임베딩 M, MFU, 시드, 데이터 스냅샷 해시. 최종 손실 하나만 저장하는 게 가장 흔하고 가장 비싼 실수다.
마지막으로
열세 편을 관통하는 문장을 하나만 남긴다면 이것이다. 친칠라의 20:1은 물리 상수가 아니라 (모델 크기 구간 × 스케줄 × 데이터 품질 × 목적함수)의 함수였고, 우리는 그 네 변수가 전부 다른 자리에 서 있다. 국내 어느 팀도 20:1을 지키지 않는 건 무지가 아니라 계산이다.
그리고 그 계산의 끝에는 겸손한 결론이 있다. 자체 LLM은 2억 원짜리 문장이고, 한국어 특화는 240만 원짜리 문장이며, 후자가 전자를 이긴 실측이 국내에 이미 있다. 2억을 아껴 서빙 가동률을 고치고, 마지막 10%의 데이터를 갈아엎고, 토크나이저를 다시 짜라. 스케일링 법칙이 답해 주지 않는 그 일들이 실제 의사결정의 대부분이다.
그리고 남의 숫자로 결정하지 말자. 벤치마크 점수는 누가 돌렸느냐에 따라 10점씩 흔들리고, 대기업 논문의 계수도 틀린다. 우리 팀의 계수는 우리 로그에서만 나온다.
— 친칠라 법칙 시리즈 ⑬ (완결) / 관련 시리즈: LLM 서빙 캐싱(추론 비용), RAG 종류 총정리, RAG 실전, 에이전트 설계, 사용자 의도 분석과 LLM 라우팅
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.