Evals first
The scoring set is built before any training run starts
Open weights
Permissively licensed bases you can host and modify
Honest baseline
Every model scored against the API it would replace
3–8 weeks
Typical time from dataset design to a served endpoint
Most teams who ask for fine-tuning need better retrieval
Fine-tuning changes how a model behaves. It is a poor way to teach it what is true. When a team tells us their model ‘doesn’t know our product catalogue’ or ‘gets our refund policy wrong’, the fix is almost always retrieval — those facts belong in an index you can update on a Tuesday afternoon, not baked into weights you would have to retrain. Fine-tune a fact in and it goes stale the moment the fact does.
The second most common request is output shape: responses too long, tone slightly off, JSON that is valid four times out of five. Try a tighter prompt first, then few-shot examples, then a structured-output schema or constrained decoding. Those cost an afternoon. A fine-tune costs weeks and hands you an artefact you now have to version, evaluate, host and monitor forever. Do the cheap thing until it demonstrably stops working.
Then there are the cases where fine-tuning is clearly right, and they are worth being precise about. Cost at volume: when one narrow, repetitive task runs at tens of millions of tokens a month, the gap between frontier API pricing and a small model on hardware you amortise stops being close. Latency: a quantised 7B model on a GPU you control answers in a fraction of the time, with no network hop and no shared rate limit. And behaviour that resists prompting: rigid output formats held at high reliability, a house style prompts keep drifting away from, or domain vocabulary — clinical, legal, industrial — the base model has barely seen. If your problem is on that list, the economics usually work. If it is not, we will say so on the first call.
Core Capabilities
Fine-tuning vs. RAG vs. prompt engineering
Three ways to make a model do what you want. They solve different problems, cost different amounts, and fail in different places.
Try them in that order — prompt, then retrieval, then fine-tuning — and stop as soon as the numbers are good enough. They also compose: the strongest production systems we see run a fine-tuned small model over the routine majority, with retrieval supplying the facts and a frontier model held in reserve for the hard tail. Fine-tuning is the last of the three to reach for, and anyone recommending it before you have tried the other two is selling rather than diagnosing.
Our Process
Feasibility & Cost Model
Before anything is spent on GPUs we answer two questions against a sample of your real traffic: can a small model hold the accuracy bar, and does the arithmetic work. The shape is simple — monthly token volume multiplied by the price gap between the frontier API and self-hosted inference, set against a one-off training cost plus a fixed monthly hosting bill. Below a crossover volume the fixed cost never amortises and you should stay on the API. We tell you when that is the answer.
Dataset Construction
We assemble and clean the training set from your logs, tickets and documents, cutting the evaluation split before any training begins and decontaminating the training data against it. Where volume is thin, a frontier model generates candidates under rejection sampling and a human reviews them. Most of the calendar goes here, and that is the right place for it.
Train & Iterate
LoRA or QLoRA adapters on an open-weight base, with short sweeps over rank, learning rate and target modules rather than one hopeful long run. Every checkpoint is scored on the held-out set and every run is logged, so you can trace the artefact you deploy back to the exact configuration that produced it.
Benchmark Against the Incumbent
The only comparison that matters is against the system you are replacing. We score the fine-tuned model and your current frontier prompt on the same set with the same metrics, and report task accuracy, cost per thousand requests and p95 latency side by side. If the small model loses, that is a legitimate outcome — and you found out for the price of an experiment rather than a migration.
Serve, Monitor & Hand Over
Quantisation, vLLM serving, a load test at your real concurrency, and deployment into your infrastructure. You receive the weights and adapters, the training and evaluation code, the dataset pipeline and a retraining runbook. Drift monitoring and a scheduled retrain are wired in if you want them.
Tech Stack
We choose the right tool for the job — not the trendiest one.
PyTorch
Python
AWS

