Fine-Tuning Calculator

Estimate what fine-tuning a model would cost — the one-time training bill from your dataset size and epochs, plus what running the tuned model costs every month.

Prices updated 2026-07-17
1,000
500
3
5M
1M
Training job: 1.5M tokens (1,000 examples × 500 tokens × 3 epochs)
Training + first month of serving, cheapest first
ModelTrain $/1MTraining (one-time)Serving / monthFirst month total

Training = dataset tokens × epochs × the provider's per-1M training rate. Serving uses the fine-tuned model's inference prices, which several providers bill above base rates. Rows marked ~ are representative rates (open-weight rows assume LoRA fine-tuning via a host like Together AI). Figures exclude job minimums, model storage fees, and dedicated-endpoint hosting.

Questions

How is the cost calculated?

Training cost = examples × average tokens per example × epochs, divided by one million, times the provider's per-1M-token training rate. So 1,000 examples of 500 tokens for 3 epochs is 1.5M training tokens — $4.50 on a $3/1M model. Serving cost = your monthly input and output token volumes times the fine-tuned model's inference prices. Estimate your per-example token count by pasting a sample into the token counter.

Can I fine-tune Claude models?

Not self-serve: Anthropic doesn't offer public fine-tuning for Claude models through its API, which is why no Claude rows appear here. In practice teams get Claude-level quality on narrow tasks with prompting, few-shot examples, and prompt caching instead — compare base-model costs in the cost calculator.

When is fine-tuning worth it over prompting?

Try prompting first — a good system prompt with a handful of examples (cached, so you don't re-pay for it) covers most use cases. Fine-tuning earns its cost when you need consistent output format or style at high volume, when you're distilling a big model's behaviour into a smaller and cheaper one, or when few-shot examples eat too much of your context window. The training bill is usually small; the real comparison is the tuned model's per-token serving price against the prompt-engineered alternative.

Why do some rows show a "~"?

Open-weight models like Llama can be fine-tuned through many services at different rates (or on your own GPUs), so those rows show a representative LoRA rate from a hosted provider. A "~" can also mean the provider's rate couldn't be fully re-verified at the last weekly refresh.