Your agents and assistants work, and the bill grows with every user. We review what the systems you already run spend and where, then cut it: better use of your current provider, synthetic training data, and small tuned models that take over routine steps. Nothing changes until an evaluation built on your own cases says quality held.
Take one, or run them in order. The review usually shows which of the other two is worth doing.
We read the traces, token counts and invoices of the systems you already run and work out the cost of each completed task, not each token. You get a report that ranks changes by saving and by risk: prompt caching and shorter context, routing simple steps to cheaper models, batch endpoints for work that is not urgent, and the steps a tuned small model could take over. Each recommendation comes with the test that would prove quality held.
Training and evaluation data built from your own records, for tasks where real examples are scarce, sensitive or cannot leave your environment. Seeds come from real data, variety is set on purpose with personas and taxonomies, and every sample that code or tests can check is checked. Duplicates and overlap with your evaluation set are removed, and each dataset ships with a datasheet recording where every row came from, which is what EU AI Act Article 10 and procurement reviews ask for.
LoRA adapters on open-weight models (Qwen, Llama, Mistral, Gemma) that take over a defined job from a larger, more expensive model: classification and routing, extraction, tool calling, a task assistant, or a coding agent inside the harness your team already uses. Supervised tuning first, then reinforcement learning with rewards computed by code where the task allows it. You own the weights, can run them on your own infrastructure, and several adapters can share one base model.
Work in progress, not a result yet. Figures below are published research and vendor list prices, September 2026.
Traces show where the money goes per basket: the system prompt and tool definitions resent on every turn, long search results in context, the large model used for steps a lookup could answer. Caching and trimming come first, before any training.
A sandboxed copy of the catalogue and basket API. Synthetic shoppers built from budgets, diets and household sizes, and every conversation checked by code: each item exists, is in stock, meets the request, and the total fits the budget. Real anonymised sessions stay in the mix, and a held-out set of them decides sign-off.
A small open model with a LoRA adapter: supervised tuning on verified conversations, then reinforcement learning scored by the same checks. In published research a 4B model trained this way scored 63.5% on a long shopping benchmark against 64.5% for GPT-5. Managed training for a model this size costs under $20.
Neomi owns the adapter and serves it on hardware it rents, so cost per basket stops following a provider's pricing and the product stays affordable as it grows. The frontier model remains a fallback for conversations the small model is unsure of, and no release reaches shoppers without passing the same evaluation.
The evaluation is agreed before anything changes, and a change that fails it goes back a step.
%%{init: {"theme":"base","themeVariables":{"background":"#0a0b0c","primaryColor":"#a9dbe6","primaryTextColor":"#efefe8","primaryBorderColor":"#a9dbe6","lineColor":"rgba(239,239,232,.3)","secondaryColor":"#0d0f11","tertiaryColor":"#0d0f11","textColor":"#efefe8","mainBkg":"#0d0f11","secondBkg":"#0a0b0c","border1":"rgba(239,239,232,.12)","border2":"rgba(239,239,232,.06)"}}}%%
flowchart LR
subgraph Phase1["Review"]
R1[Traces and invoices]
R2[Cost per task]
R3[Evaluation baseline]
end
subgraph Phase2["Data"]
D1[Real seed records]
D2[Synthetic generation]
D3[Verify and dedup]
end
subgraph Phase3["Tune"]
T1[Model choice]
T2[LoRA fine-tuning]
T3[RL with coded rewards]
end
subgraph Phase4["Evaluate"]
E1[Held-out real cases]
E2[Cost and latency]
E3[Quality gate]
end
subgraph Phase5["Ship"]
S1[Shadow traffic]
S2[Canary routing]
S3[Monitoring]
end
Phase1 --> Phase2
Phase2 --> Phase3
Phase3 --> Phase4
Phase4 -->|Pass| Phase5
Phase4 -->|Fail| Phase2
Cost is rarely the only problem. These sit alongside the work above.
Hybrid dense and sparse retrieval with cross-encoder reranking. Vector database tuning (Qdrant, Milvus, pgvectorscale). Source citations on every answer, so responses can be audited.
Structured output patterns, prompt versioning and regression tests, and A/B comparisons on real traffic. Shorter prompts that score the same are a saving on every call.
Continuous batching, KV-cache management and quantisation (AWQ, GPTQ) for self-hosted models. Several LoRA adapters served from one base model, so a new task does not mean a new GPU.
Golden datasets kept current, task-specific suites in CI, RAGAS for retrieval (faithfulness, answer relevance, context precision), and drift monitoring with alerts in production.
Llama 3 70B fine-tuned on 25,000 anonymised claim interactions, RAG grounded in policy documents, RAGAS in CI with canary rollback. Manual load down 80%, citations on 100% of responses.
Read the case →30-minute call. Engineering discovery memo within five working days.