Getting started
Migrating from a closed model API to an open-weight fine-tune
How do I replace a closed model API with a fine-tuned open-weight model?
Capture real production traffic, filter it to responses that were genuinely good, fine-tune a model around 8B, and gate the candidate against the incumbent on held-out cases before switching any traffic. Narrow tasks move successfully; general ones do not.
Decide whether the task is narrow enough
This works on tasks doing one job on one distribution. It does not work on a model doing everything, and no amount of training data changes that.
The practical test: can you describe what the model does in one sentence without using the word "and"? If not, split it into separate models and migrate them one at a time.
Capture, then filter — the step people skip
Your existing model was not right every time. Training on its complete output teaches the small model to reproduce its mistakes alongside its successes, and those mistakes then become permanent rather than occasional.
Filter to responses that were accepted, unedited, acted on, or otherwise known good. Wherever a downstream outcome signal exists, use it — it is a better filter than reading the examples.
Start around 8B
That is where most single-task replacements land. Below it, quality often drops enough to notice; above it, the cost advantage that motivated the migration starts eroding.
Move down afterwards, not up. Once the 8B passes the gate, try the same dataset at 4B and then smaller — the gate makes that a measurement rather than a guess, and the saving is on every request forever.
Gate against the incumbent before switching anything
Set the closed model as the baseline and run the comparison blinded on held-out cases from your own traffic. This is precisely the decision the gate exists for, and it turns "we think this is as good" into a win rate with an interval.
A fail is a cheap answer. It usually points at data — more coverage, better filtering — rather than at the idea being wrong.
What you gain and what you give up
You gain weights you hold, an endpoint you control, and a cost structure that is a GPU-hour rate rather than a token rate — materially cheaper at volume and much easier to forecast. The long system prompt disappears into the weights, and at high volume that prompt was usually where the money went.
You give up a very strong general model and a two-call API where nobody thinks about VRAM. If you have no portability requirement and no cost pressure, staying is a perfectly reasonable decision.
Frequently asked questions
Can I migrate my existing fine-tune directly?
Not the model — closed weights cannot be exported. You migrate the training data, which you still have, and retrain against an open-weight base.
How do I switch traffic safely?
Route a small percentage first, keep the incumbent as a fallback, and compare outcomes on live traffic. The gate is a pre-deployment check, not a substitute for a careful rollout.
Terms used here
More on getting started
Last verified 6 August 2026.
Start with the free tier
A magic link creates your account, your tenant and your first API key. No card until you ask for compute.