| name | tinker-training-cost |
| description | Calculate training costs for Tinker fine-tuning jobs. Use when estimating costs for Tinker LLM training, counting tokens in datasets, or comparing Tinker model training prices. Tokenizes datasets using the correct model tokenizer and provides accurate cost estimates. |
Tinker Training Cost Calculator
Calculate training costs for Tinker fine-tuning jobs by tokenizing your dataset with the correct model tokenizer and applying current pricing.
Quick Start
Use the bundled script to calculate training costs:
python scripts/calculate_cost.py --list-models
python scripts/calculate_cost.py training_data.jsonl --model Qwen3-8B --epochs 3
python scripts/calculate_cost.py training_data.jsonl --model Inkling --json
The script:
- Loads the correct tokenizer for the selected model (via
tinker-cookbook if installed, else transformers)
- Counts tokens in your JSONL file (supports chat, text, and instruction formats)
- Calculates the estimated training cost
Cost Formula
Training Cost = (total_tokens × epochs × train_price_per_million) / 1_000_000
Tinker Pricing
Prices effective July 17, 2026 (prefill/sample rose ~50%, train ~10% on that date)
Source: https://tinker-docs.thinkingmachines.ai/tinker/models/
All prices in USD per million tokens. Prefill = input context (inference), Sample = output tokens (inference), Train = training tokens. Cached prefill tokens get an 80% discount. :peft:<context> = extended-context variant.
| Model | Prefill | Sample | Train |
|---|
| thinkingmachines/Inkling* | $1.87 | $4.68 | $5.61 |
| thinkingmachines/Inkling:peft:262144* | $3.74 | $9.36 | $11.23 |
| nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16* | $2.49 | $6.225 | $5.478 |
| nvidia/NVIDIA-Nemotron-3-Ultra-550B-A55B-BF16:peft:262144* | $3.32 | $8.30 | $9.96 |
| nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16* | $0.57 | $1.44 | $1.276 |
| nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16:peft:262144* | $0.76 | $1.92 | $2.32 |
| nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16* | $0.195 | $0.495 | $0.44 |
| moonshotai/Kimi-K2.6 | $2.205 | $5.49 | $4.84 |
| moonshotai/Kimi-K2.6:peft:131072 | $5.15 | $12.81 | $15.40 |
| Qwen/Qwen3.6-35B-A3B | $0.54 | $1.335 | $1.177 |
| Qwen/Qwen3.6-27B | $1.86 | $5.595 | $4.103 |
| Qwen/Qwen3.5-397B-A17B | $3.00 | $7.50 | $6.60 |
| Qwen/Qwen3.5-397B-A17B:peft:262144 | $4.00 | $10.00 | $12.00 |
| Qwen/Qwen3.5-35B-A3B-Base | $0.54 | $1.335 | $1.177 |
| Qwen/Qwen3.5-9B (+ -Base) | $0.66 | $1.995 | $1.463 |
| Qwen/Qwen3.5-4B | $0.33 | $1.005 | $0.737 |
| Qwen/Qwen3-8B | $0.195 | $0.60 | $0.44 |
| openai/gpt-oss-120b | $0.33 | $0.84 | $0.737 |
| openai/gpt-oss-120b:peft:131072 | $0.78 | $1.94 | $2.33 |
| openai/gpt-oss-20b | $0.18 | $0.45 | $0.396 |
| deepseek-ai/DeepSeek-V3.1 | $1.695 | $4.215 | $3.718 |
* Inkling and Nemotron prices reflect a limited-time 50% discount.
Checkpoint storage: $0.10 per GB per month.
Tokenization
Every model's tokenizer resolves from its Tinker model ID (verified for all models above):
from tinker_cookbook.tokenizer_utils import get_tokenizer
tokenizer = get_tokenizer("Qwen/Qwen3-8B")
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-8B", trust_remote_code=True)
token_count = len(tokenizer.encode("Your training text here"))
Supported JSONL Formats
Chat format (recommended):
{"messages": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
Text format:
{"text": "Your training text here"}
Instruction format (Alpaca-style):
{"instruction": "...", "input": "...", "output": "..."}
Quick Cost Examples
Example 1: Qwen3-8B on 1M tokens, 3 epochs
Training tokens: 1,000,000 × 3 = 3,000,000
Cost: 3.0M × $0.44/M = $1.32
Example 2: Qwen3.6-35B-A3B on 5M tokens, 2 epochs
Training tokens: 5,000,000 × 2 = 10,000,000
Cost: 10.0M × $1.177/M = $11.77
Example 3: Inkling on 2M tokens, 4 epochs
Training tokens: 2,000,000 × 4 = 8,000,000
Cost: 8.0M × $5.61/M = $44.88
Important Notes
- LoRA Fine-Tuning: Tinker uses Low-Rank Adaptation (LoRA), not full fine-tuning
- Token Counting: Always use the model's native tokenizer - different tokenizers produce different counts for the same text
- RL costs more than the train rate alone: rollouts are billed at sample/prefill rates on top of training tokens
- Multimodal inputs (Inkling images/audio) add tokens beyond text tokenization