여기까지가 설계였다. 이번 편은 "그래서 우리 회사는 얼마짜리 모델을 만들 수 있나"에 답한다. 산수는 세 줄이면 끝난다.
- C(FLOPs) = 6 × N × D
- GPU-시간 = C ÷ (피크 FLOPS × MFU × 3600)
- 비용 = GPU-시간 × 시간당 단가
문제는 2번의 분모다. 여기서 순진한 계산과 실제 청구서가 몇 배씩 벌어진다. 그리고 이 편의 결론을 미리 말하면 — 틀리는 건 FLOPs가 아니라 단가다.
스펙시트 숫자를 그대로 쓰면 안 되는 이유
NVIDIA 제품 페이지의 Tensor Core 성능은 전부 희소성(sparsity) 포함 값이다. 학습에는 쓸 수 없으므로 2로 나눠야 한다.
| GPU | 표기값(sparse) | BF16 dense(실사용) | 메모리 |
|---|---|---|---|
| H100 SXM | 1,979 TFLOPS | 989.5 | 80GB |
| H200 SXM | 1,979 TFLOPS | 989.5 | 141GB |
| B200 | — | 2,250 | 180GB |
놓치기 쉬운 사실 하나 — H200은 H100과 연산력이 완전히 동일하다. 141GB 메모리와 4.8TB/s 대역폭만 다르다. 학습 FLOPs 예산에서 둘은 같은 칩으로 취급해야 한다(⑨편에서 봤듯 그 메모리 차이는 서빙에서 값을 한다). H800도 H100과 BF16 연산력이 같고 NVLink 대역폭만 잘렸다(900→400GB/s) — DeepSeek의 최적화가 전부 "통신 숨기기"에 집중된 이유다.
MFU 40%는 한국 팀 실측을 맞춘다
다음은 MFU(Model FLOPs Utilization)다. 공개된 최고 기록은 Megatron-LM의 52%이고, Llama 3 405B는 8K GPU에서 43%, 16K에서 41%였다. 그래서 흔히 "중소 규모는 25~35%로 잡으라"고 조언하는데, 국내 실측을 대입해 보면 40%가 오히려 정확했다.
Trillion Labs가 공개한 Trillion-7B로 검산해 보자. 7B 모델에 2T 토큰이면 6ND = 8.4×10²² FLOPs다. H100 dense 989.5 TFLOPS에 MFU 40%를 가정하면 GPU-시간당 1.425×10¹⁸ FLOPs이므로, 필요한 시간은 약 59,000시간으로 계산된다.
실제 보고값은 59.4K H100-시간이다. 오차 1% 미만이다.
그런데 같은 리포트가 밝힌 실제 비용은 $148K다. 나눠 보면 $148K ÷ 59.4K시간 = $2.49/GPU-시간. 즉 컴퓨트 추정은 맞았고, 어긋난 건 오직 단가다.
실무 규칙이 여기서 나온다 — 안전계수는 FLOPs가 아니라 $/시간에 곱하라. 6ND와 MFU 40%는 믿어도 되고, 대신 시간당 단가에 1.25~1.5배를 잡아라. 이건 이 시리즈에서 직접 검증한 가장 실용적인 결론이다.
다만 논문 MFU로도 17%가 모자란다 — 실패 비용
Llama 3 405B로 한 번 더 검산하면 다른 종류의 격차가 보인다. 6ND는 3.79×10²⁵로 논문 보고값 3.8×10²⁵와 정확히 맞는다. 그런데 논문의 MFU 41%로 나누면 26.3M GPU-시간인데, 공식 모델카드는 30.84M H100-시간이라고 적었다. 17% 차이이고 실효 MFU는 34.5%다.
정체가 흥미롭다. 405B 사전학습 54일 동안 작업 중단이 466회였고, 419회가 비계획, 비계획의 약 78%가 하드웨어 문제였다(GPU 관련이 비계획 전체의 58.7%). 유효 학습 시간 90% 이상을 유지한 게 성취인데, 뒤집으면 10%는 증발한다.
그래서 견적에는 ×1.15를 곱한다. 그리고 이 대목이 원가절감 포인트이기도 하다 — 체크포인트·재시작이 견고하면 스팟 인스턴스를 쓸 수 있고, 그것만으로 60% 절감(CoreWeave 기준 $6.16 → $2.46)이 가능하다. 참고로 체크포인트 크기는 파라미터당 16바이트(BF16 가중치 2 + 그래디언트 2 + Adam 상태 12)이므로 7B가 112GB, 405B가 약 6.5TB다.
$5.576M의 진실 — DeepSeek이 각주에 써 둔 문장
가장 많이 인용되는 숫자를 정확히 읽어 보자. DeepSeek-V3 리포트 Table 1은 사전학습 2,664K + 컨텍스트 확장 119K + 사후학습 5K = 총 2,788K H800-시간, $2/시간 가정으로 $5.576M이라고 적었다.
그런데 논문 스스로 각주를 달았다 — 이 비용은 "공식 학습만 포함하며, 아키텍처·알고리즘·데이터에 대한 사전 연구와 어블레이션 실험 비용은 제외한다." 즉 $5.576M은 마지막에 성공한 런 하나의 GPU 임대료이지 회사가 쓴 돈이 아니다. 빠진 것: 실패한 런, 클러스터 CAPEX, 데이터 파이프라인, 연구원 인건비. Epoch AI의 분해로는 프런티어 학습 총비용에서 하드웨어 47~67%, 연구 인력 29~49%, 에너지 2~6%다. GPU 값만 계산한 견적서는 절반짜리다.
이 숫자에서 MFU를 역산하면 활성 37B 기준 6ND = 3.29×10²⁴ FLOPs, GPU당 343 TFLOPS로 BF16 대비 34.7%다. 그런데 DeepSeek은 FP8로 학습했으므로 FP8 피크(1,979) 대비로는 17.3%다. FP8은 피크를 2배 올리는 대신 MFU를 반으로 깎는다. 저정밀도 학습을 검토한다면 이 상쇄를 감안해야 한다.
같은 H100이 4.6배 — 2026년 가격표
| 제공자 | H100 GPU-시간당 |
|---|---|
| CoreWeave 스팟 | $2.46 |
| RunPod Community | $2.69 |
| AWS p5 예약(실효) | $2.97 |
| VESSL AI (국내) — 이 시리즈 기준가 | $2.98 (약 ₩4,112) |
| Lambda 온디맨드 | $3.99 |
| AWS p5 온디맨드 | $6.88 |
| Azure 정가 | $12.29 |
최저와 최고가 4.6배 차이 난다. 더 재미있는 건 달러당 실효 FLOPs로 줄 세우면 AWS의 B200이 Lambda의 H100보다 나쁘다는 점이다(2.28×10¹⁷ vs 3.57×10¹⁷). 칩 세대보다 공급처가 더 큰 변수다. 앞서 "안전계수를 단가에 곱하라"고 한 이유가 이 표다.
국내 사정도 짚어 두자. 네이버클라우드·KT클라우드·NHN클라우드·카카오클라우드는 GPU 시간당 요금을 공개 페이지에 게시하지 않는다. 전부 요금 계산기나 영업 문의로 유도한다. 가격을 공개한 국내 사업자는 사실상 VESSL AI 하나이고, 그래서 이 시리즈는 $2.98/시간을 기준가로 쓴다(환율 1,380원). 국내 클라우드는 GPU를 카탈로그가 아니라 견적으로 판다.
국가 자원은 어떤가. 국가AI컴퓨팅센터가 전남 해남에 2026년 8월 착공, 2028년 준공 일정으로 GPU 약 1.5만 장, 전력 40MW 규모로 추진 중이다(총 투자 2조 원대, 보도마다 편차가 있다). 지금 손에 쥘 수 있는 건 훨씬 작다 — 스타트업 대상 무상 GPU는 264장 규모였고 수요가 공급의 4배를 넘었다. 수 장에서 수십 장, 몇 개월이 현실적 기대치이고, 이는 처음부터 학습이 아니라 파인튜닝·계속사전학습에 쓰라는 뜻이다.
그래서 얼마인가 — 워크드 예제
가정: H100 dense 989.5 TFLOPS, MFU 40%, $2.98/시간, 환율 1,380원. 오버헤드 미포함 순수 6ND 기준이다.
| 모델 / 비율 | 토큰 | GPU-시간 | 비용 |
|---|---|---|---|
| 1B / 20:1 | 20B | 84 | ₩35만 |
| 3B / 20:1 | 60B | 758 | ₩312만 |
| 7B / 20:1 | 140B | 4,127 | ₩1,697만 |
| 1B / 200:1 | 200B | 842 | ₩346만 |
| 3B / 200:1 | 600B | 7,580 | ₩3,117만 |
| 7B / 200:1 | 1.4T | 41,266 | ₩1.70억 |
7B를 200:1로 처음부터 학습하면 오버헤드(×1.15)까지 넣어 약 47,500 GPU-시간, ₩1.95억이다. H100 8장 노드 하나로는 215일, 64장이면 27일이다. 감도를 보면: MFU가 30%로 떨어지면 ₩2.60억, Lambda 단가($3.99)면 ₩2.61억, AWS 온디맨드($6.88)면 ₩4.50억이다. 같은 모델의 견적이 공급처에 따라 2.3배 흔들린다.
GPU를 몇 장까지 쓸 수 있나 — 임계 배치가 정하는 상한
"64장이면 27일"이라고 썼는데, 여기엔 함정이 있다. GPU를 늘린다고 무한히 빨라지지 않는다. 배치를 키우면 스텝당 처리량은 늘지만, 어느 지점부터는 스텝 수가 더 이상 줄지 않는다. 그 지점이 임계 배치 크기다.
7B를 1.4T 토큰으로 학습하는 경우로 계산해 보자. 목표 손실을 약 2.04 nats로 두고 임계 배치를 추정하면 약 680만 토큰, 시퀀스 4,096 기준 약 1,650 시퀀스다. GPU당 4시퀀스를 얹는다면 데이터 병렬을 약 413장까지 키울 수 있다는 뜻이다. 그 지점의 벽시계는 약 100시간이다.
중요한 건 그 너머의 수익 곡선이다(전부 필자 계산).
- GPU를 4배 늘리면 속도는 1.6배, 비용은 2.5배가 된다.
- 16배 늘리면 속도는 1.88배, 비용은 8.5배가 된다.
- 그리고 아무리 GPU를 부어도 넘을 수 없는 직렬 하한이 약 50시간 존재한다.
또 하나 실무적인 함의가 있다. 임계 배치는 학습이 진행되며 커진다 — 손실이 3.0일 때 87만 토큰이던 것이 2.04에서 680만이 된다. 즉 학습 초반에 큰 배치를 쓰면 낭비이고, 배치를 점진적으로 키우는 것(batch ramping)은 취향이 아니라 필수다. 초반부터 최대 배치로 돌리면 그만큼 컴퓨트를 버린다.
다만 이 추정에는 불확실성이 있다. 데이터 크기 기반의 최신 적합식을 그대로 외삽하면 1.4T 지점에서 35만 토큰이라는 훨씬 작은 값이 나오는데, 이는 Llama-2-7B가 실제로 쓴 400만 토큰 배치와 모순된다. 보수적으로는 위 값을 상한으로 보고, 실제 배치는 자체 스윕으로 정하는 게 맞다(⑫편).
어쨌든 CTO에게 답이 되는 문장은 이것이다 — 7B급 학습에 GPU 400장 이상을 붙이는 건 돈을 태우는 것이고, 그보다 적은 장수에서는 대체로 선형에 가깝게 빨라진다. 국내에서 손에 넣을 수 있는 규모(수십 장)는 이 상한에 한참 못 미치므로, 가진 GPU를 전부 쓰는 게 맞다.
그런데 대안이 훨씬 싸다
대안의 가격표가 이 편의 진짜 결론이다.
- 한국어 계속사전학습(CPT) 7B에 20B 토큰: 590 GPU-시간, ₩243만 — 처음부터 학습의 1.43%
- 전체 파라미터 SFT(500M 토큰): 15시간, 약 ₩6만
- LoRA SFT(50M 토큰): 1.5시간, 약 ₩6천
LoRA에 대해 두 가지를 덧붙인다. 첫째, LoRA를 쓰는 이유가 돈이 아닐 때가 많다. 7B 전체 파인튜닝은 파라미터당 16바이트 = 112GB에 활성값까지 필요해서 H100 80GB 한 장에 안 들어간다. "돈이 없어서"가 아니라 "메모리가 없어서" LoRA를 쓴다.
둘째, 이 ₩6천짜리 선택지를 CPT에 쓰면 안 된다. 지시를 가르치는 것과 언어 능력을 새로 넣는 것은 다른 일이고, 실측으로 랭크를 256까지 올려도 전체 파라미터 CPT 대비 3.9~9.1점 뒤처지며 토큰을 더 넣어도 격차가 좁혀지지 않는다. 위 표에서 한국어 CPT를 ₩243만으로 잡은 건 전체 파라미터 학습 기준이다. 여기서 아끼려다 결과를 통째로 잃는다.
정리하면 이렇다. "자체 LLM"은 2억 원짜리 문장이고, "한국어 특화"는 240만 원짜리 문장이다. 그 사이가 80배다. 그런데 성능 차이는 80배가 아니다 — 다음 편에서 국내 팀들이 실제로 어느 쪽을 골랐는지, 그리고 그 결과가 어땠는지를 본다.
— 친칠라 법칙 시리즈 ⑩ / 다음 글: 아무도 친칠라를 지키지 않았고, 아무도 밑바닥부터 만들지 않았다
댓글 없음:
댓글 쓰기
국정원의 댓글 공작을 지탄합니다.