학습 견적은 작았는데, 운영 견적에서 숫자가 달라진다
오픈웨이트 모델을 파인튜닝하려고 견적을 내면 첫 숫자는 의외로 작을 수 있습니다. LoRA는 사전학습된 가중치를 고정하고 작은 저랭크 행렬만 학습해, 전체 파인튜닝보다 학습 대상 파라미터를 줄이는 방식이니까요. 다만 논문의 큰 절감 수치는 GPT-3 175B와 Adam 전체 파인튜닝을 비교한 결과라서 모든 모델에 그대로 적용할 수는 없습니다.
더 자주 놓치는 숫자는 학습이 끝난 뒤부터 생깁니다. 전용 GPU를 시간 단위로 빌리면 요청이 적은 시간에도 비용이 쌓이고, 토큰 단위 서비스를 쓰면 호출량과 출력 길이에 따라 비용이 변합니다. 비용을 가르는 건 ‘파인튜닝이 싼가’보다 우리 트래픽과 과금 단위가 맞는가입니다.
River는 2026년 8월 발표한 Seed·Series A에서 모두 11억 달러를 조달했고, 학습과 추론을 사용 토큰 단위로 계량해 유휴 GPU 용량 비용을 없애겠다고 제시했습니다. 반대로 전용 GPU는 이용률이 높으면 토큰 과금보다 유리할 수 있어요. 조달 규모는 River의 사업 비전에 대한 큰 투자지만, 제품의 비용 절감이나 성능을 검증한 결과는 아닙니다.
먼저 설치·인증·첫 응답까지 연결하세요
River를 평가하려면 가격표를 비교하기 전에 계정에서 사용할 수 있는 모델과 기본 요청부터 확인하는 편이 좋습니다. 준비물은 Python과 pip를 쓸 수 있는 로컬 환경, River 계정, 콘솔에서 만든 API 키, 샘플 호출에 쓸 소규모 예산입니다. 아래 절차는 공식 문서를 읽어 구성한 것이며 실제 계정으로 실행한 결과는 아닙니다.
- River 콘솔에서 가입하고 API 키를 만듭니다. 키는 다시 확인하기 어려울 수 있으니 안전한 비밀 저장소에 보관하세요. 샘플 호출과 이후 학습에는 비용이 발생할 수 있습니다.
- 터미널에서 공식 클라이언트를 설치하고 키를 현재 셸에 불러옵니다.
rv_...부분만 발급받은 실제 키로 바꾸세요.pip install river-client export RIVER_API_KEY="rv_..." - 다음 코드를 그대로 실행합니다. 설치 패키지 이름은
river-client지만 공식 import 경로는river_client입니다. 계정마다 허용 모델이 다를 수 있으므로 예시 모델명을 고정하지 않고 권한 목록의 첫 모델을 사용합니다.python - <<'PY' import os import river_client as river client = river.Client(api_key=os.environ["RIVER_API_KEY"]) healthy = client.health_check() print("healthy:", healthy) if not healthy: raise RuntimeError("River API health check failed") models = client.get_capabilities() print("available models:", models) if not models: raise RuntimeError("No base models are available for this API key") base = models[0] samples = client.sample( "What is 2 + 2? Answer briefly.", base_model=base, max_tokens=24, ) if not samples: raise RuntimeError("The sample request returned no results") print("base model:", base) print("response:", repr(samples[0].text)) PY - 세 가지 출력으로 성공을 확인합니다.
healthy: True, 비어 있지 않은 모델 목록, 4에 해당하는 비어 있지 않은 응답이 나오면 설치·인증·모델 권한·첫 추론이 연결된 겁니다. 모델 목록이 비어 있으면 문서의 모델명을 임의로 넣지 말고 계정 권한부터 확인하세요. - 파인튜닝은 연결 확인 뒤 작은 데이터로 시작합니다. 공식 SFT 예제는 프롬프트·완성 쌍을 토큰화하고
forward_backward와optim_step을 반복한 뒤, 학습에 없던 입력을model.sample로 확인합니다. 예제 성공은 학습 루프가 연결됐다는 뜻이지 실제 업무 품질이나 운영 안정성을 증명하지는 않습니다.
River는 GPU 시간이 아니라 네 종류의 사용량을 판다
River의 차이는 파인튜닝 기능 자체보다 계량 방식에 있습니다. 공식 설명에 따르면 LoRA와 강화학습을 지원하며, 학습과 추론에 실제로 사용된 토큰을 기준으로 청구합니다. 요청이 없는 동안 전용 GPU 용량을 계속 결제하지 않아도 된다는 제안입니다.
2026년 9월 7일 확인한 프리뷰 가격에서 Qwen3.6-35B-A3B-FP8은 100만 토큰당 입력 $0.33, 캐시 입력 $0.066, 출력 $0.82, 학습 $1.00입니다. 체크포인트 저장에는 월 GB당 $0.10이 별도로 붙습니다. 이 숫자는 현재 가격표의 한 모델 예시이며 다른 모델이나 이후 가격을 대표하지 않습니다.
River 견적은 네 줄로 나누세요.
- 학습비: 학습 토큰 수 ÷ 100만 × 해당 모델의 학습 단가
- 추론비: 입력·캐시 입력·출력 토큰을 각각 100만으로 나눈 뒤 각 단가를 곱한 합계
- 저장비: 체크포인트 용량(GB) × 보관 개월 × 월 GB당 단가
- 재실행비: 평가 호출, 실패한 실험과 재학습에 쓸 예비 사용량
학습 토큰에는 데이터 크기와 반복 횟수가, 추론비에는 입력·출력 비율과 캐시 적중량이 영향을 줍니다. 프리뷰 가격은 바뀔 수 있으므로 장기 예산을 확정하기 전에 최신 가격을 다시 확인해야 합니다.
전용 GPU는 낮은 이용률에서 비싸고, 높은 이용률에서 달라진다
Together의 전용 추론은 요청 토큰이 아니라 ready 상태인 복제본의 하드웨어 사용시간을 분 단위로 청구합니다. 복제본마다 독립적으로 비용이 붙고, 복제본을 중지하거나 0개로 줄이면 해당 과금도 멈춥니다. 높은 이용률에서는 토큰 기반 서버리스보다 저렴할 수 있다는 것이 Together의 설명입니다.
다만 현재 공식 가격 문서 안에서도 H100 단가가 일치하지 않습니다. 지원 하드웨어 표에는 H100 80GB가 시간당 $3.99로 표시되지만, 같은 문서의 비교 예시는 단일 H100 복제본을 시간당 $5.49로 계산합니다. 읽은 자료만으로는 프로모션, 구성 차이, 문서 갱신 지연 중 무엇이 원인인지 확인할 수 없습니다. 따라서 하나의 H100 월비용을 확정값으로 쓰지 말고, 실제 배포 시점의 콘솔이나 견적서에 표시된 단가를 넣어야 합니다.
| 비교 기준 | River 토큰 과금 | Together 전용 추론 |
|---|---|---|
| 주요 과금 단위 | 입력·캐시 입력·출력·학습 토큰 | ready 복제본별 GPU 사용 분 |
| 월 비용 산식 | 토큰 종류별 사용량 × 각 단가 + 저장비 | 복제본별 GPU 수 × 실행 분 × 확인된 시간당 단가 ÷ 60의 합계 |
| 요청이 드물 때 | 사용량과 함께 비용이 줄기 쉬움 | 복제본을 유지하면 요청이 없어도 청구 |
| 요청이 꾸준할 때 | 토큰 사용량에 비례해 증가 | GPU 이용률을 높이면 유리할 수 있음 |
| 견적 전 확인 | 모델별 프리뷰 단가와 저장량 | 실제 적용 단가, GPU 수, 복제본 실행시간 |
결국 “토큰 과금이 싸다”와 “전용 GPU가 비싸다”는 둘 다 조건부 문장입니다. 간헐적인 내부 도구라면 유휴 용량을 없애는 효과가 크지만, 하루 종일 일정한 처리량이 필요하다면 전용 GPU의 고정 용량을 충분히 활용할 수 있습니다. 손익분기점은 모델 처리량, 입력·출력 비율, 캐시 적중률과 지연시간 목표가 있어야 계산됩니다.
같은 요청을 넣어야 손익분기점이 보인다
가격표 비교를 끝내려면 양쪽에서 같은 대표 요청을 처리하고 품질과 속도를 먼저 맞춰야 합니다. 모델 이름이 같아도 서빙 설정과 하드웨어가 다르면 처리량과 지연시간이 달라질 수 있기 때문입니다.
- 대표 요청 세트를 만듭니다. 짧은 입력·긴 입력, 짧은 출력·긴 출력, 피크 시간에 자주 들어오는 요청을 포함하세요. 각 요청에는 정답이나 사람이 판정할 수 있는 업무 통과 기준을 붙입니다.
- 비교 가능한 구성만 남깁니다. 양쪽에서 같은 요청을 반복해 업무 통과율, p95 응답시간과 분당 처리량을 기록합니다. 목표 품질이나 지연시간을 충족하지 못한 구성은 가격이 싸도 제외하세요.
- Together의 필요한 용량을 찾습니다. 목표 피크 처리량을 만족할 때까지 GPU 수와 복제본 수를 조정하고, 각 복제본이
ready상태였던 시간을 기록합니다. 월비용은Σ(복제본별 GPU 수 × 실행 분 × 배포 시점의 시간당 단가 ÷ 60)으로 계산합니다. - River의 월 사용량을 환산합니다. 같은 요청에서 집계한 입력·캐시 입력·출력 토큰에 낮음·평균·피크 시나리오별 요청 횟수를 곱합니다. 학습 토큰과 체크포인트 저장량은 추론비와 분리해 더하세요.
- 트래픽별 선택을 따로 기록합니다. 낮음·평균·피크마다 목표 품질과 p95 지연시간을 만족하는 구성 중 월 총비용이 낮은 쪽을 표시하세요. 한 과금 방식이 모든 구간에서 이길 필요는 없습니다.
비교 완료 기준
각 트래픽 시나리오 한 줄에 품질 통과율, p95 지연시간, 처리량, 월 추론비, 학습비와 저장비가 정리되고, 적용한 토큰 단가 또는 GPU 시간당 단가의 확인 날짜까지 남아 있으면 됩니다. 요청량과 단가는 평가용 가정이 아니라 실제 측정값과 최신 견적값으로 교체하세요.
11억 달러는 절감률의 증명이 아니다
River는 Seed와 Series A를 합쳐 11억 달러를 조달했습니다. General Catalyst와 AMP PBC가 라운드를 주도했고 NVIDIA, AMD Ventures, Y Combinator, Temasek이 참여했습니다. 다만 밸류에이션, 투자자별 금액과 투자 조건은 공개된 자료에서 확인되지 않았습니다.
회사는 복잡한 강화학습 실행을 인프라팀 없이 15~20분에 끝내고 폐쇄형 대안보다 비용을 2~4배 줄일 수 있다고 주장합니다. 공식 발표와 TechCrunch 보도에서 이 수치는 확인되지만, 비교 모델과 데이터, 토큰량, 품질 동등성 기준, 하드웨어와 제3자 재현 결과는 공개되지 않았습니다. 따라서 투자 규모나 회사 측 절감률을 프로덕션 성능의 증거로 읽으면 안 됩니다.
프로덕션 계약 전에 별도로 확인할 항목
- SLA, 지원 리전, 장애 이력과 프로덕션 지원 범위
- 데이터 보존·삭제 정책과 필요한 규제 준수 조건
- 가격 변경이나 예상 밖 피크 트래픽에 적용할 월 지출 상한
river://체크포인트의 외부 반출 가능 여부와 지원 포맷
작은 내부 도구처럼 호출이 드물다면 River식 토큰 과금을 먼저 시험할 이유가 있습니다. 요청이 꾸준하고 GPU 이용률을 높일 수 있다면 전용 추론이 더 낮은 비용을 만들 수 있어요. 학습비가 가장 싼 선택이 아니라, 목표 품질과 속도를 만족하면서 실제 트래픽에서 가장 적게 낭비되는 선택이 맞는 선택입니다.



