Skip to main content
Calculating a Training cost estimate is free. Starting a Training Run places a hold on the team balance, and the Training Run settles its final charge when training ends. For the balance shared by Data Labeling and Train, see Billing.

From estimate to settlement

  1. toloka training cost <training> prepares and validates the selected rows from the Training’s frozen slice.
  2. A ready estimate reports the Maximum charge.
  3. Starting a Training Run places a hold for that maximum charge.
  4. The platform measures billable GPU seconds during training.
  5. The Training Run charges the settled amount, never more than the maximum charge, and returns the unused hold.
A ready estimate expires 24 hours after you request it. A Training can have at most three open estimates, and each estimate starts at most one Training Run. Editing the Training invalidates a saved estimate.

How the maximum charge is calculated

The estimate calculates training work from tokens and settings:
  • SFT counts training tokens once per epoch and validation tokens once.
  • Gisting counts training tokens twice per epoch and validation tokens once.
  • The maximum charge grows with training tokens, epochs, and validation data.
  • LoRA rank, gist token count, learning rate, batch size, and maximum sequence length do not directly change the maximum charge.
The estimate reports estimated GPU usage, maximum training time, and the maximum charge. Maximum GPU seconds equal maximum wall time multiplied by the Base model’s GPU count. The monetary amount is rounded up to the cent. The maximum quote and any nonzero settled charge have a minimum of $1 per GPU. That is a $1 floor on a one-GPU Training Run and an $8 floor on an eight-GPU Training Run. The ready estimate shows the authoritative amount before you start. Gisting supports only the one-GPU qwen3-4b and qwen3-8b Base models. SFT can also use the eight-GPU qwen3-32b and qwen3-235b models. The estimate allows an eight-GPU SFT model about eight times the token workload within the six-hour limit. For a fixed token workload and settings, its maximum charge is about the same as a one-GPU SFT model’s, except where the per-GPU minimum applies. See Base models for GPU counts and Training settings for the settings that affect work.

Review an estimate

Run:
Open estimate.json, require status: "ready", and review the selected training rows and tokens, maximum GPU seconds, maximumCharge, and fingerprint. The fingerprint identifies the exact frozen inputs and configuration. Keep the file to start a run with this same estimate. A blocked estimate exits with code 1 and prints:
Fix every issue and calculate again. Common causes include invalid examples, empty selections, too many rows, examples over maxSequenceLength, too few rows in the selected train parts to fill a batch after any fallback validation holdout, and estimated training longer than six hours. See Training errors.

Start only after approving the hold

Starting a Training Run places a hold for the saved estimate’s maximum charge on the team balance. Do not run the command until you accept that amount.
Use the saved estimate you reviewed:
Without --estimate-file, the CLI calculates a fresh estimate and immediately creates the run; it does not reuse the amount you previously reviewed. If the saved estimate is rejected or expires, calculate and review a new one before retrying. A Training Run that lasts longer than its estimate remains capped at the approved maximum charge. It can continue training and publish its Model Version.

Final charge and returned hold

Completed Training Runs and Training Runs canceled after training starts are charged for billable GPU seconds, subject to the per-GPU minimum and the approved maximum. The unused hold returns to the team balance. Nothing is charged when:
  • The Training Run stops before training starts.
  • The platform fails the Training Run.
  • The trained files fail the platform’s output checks.
  • The payment window expires.
A platform failure can still leave measured GPU seconds visible in Training Run status. Those seconds are not charged when the failure is attributable to the platform. Canceling while training publishes no Model Version. Cancellation is unavailable after output validation begins and while final payment is blocked.

Insufficient funds and payment failures

If the initial hold cannot be placed, status is blocked with reason funds. Add funds, then run:
You can instead cancel while blocked on the initial hold. If training finished but the final charge cannot be collected, status is blocked with reason payment. Add funds and resume before the payment deadline. Cancellation is unavailable in this state. The payment window is seven days. When it expires, the Training Run fails with payment_window_expired, cannot resume, and is not charged. If status is blocked with reason billing_review, Toloka staff must resolve it. Resume and cancel are unavailable. Use Manage your team and balance to add funds.