Models

Models trained on
your distribution.

A foundation model has read the internet. It has never read your contracts, your tickets or your edge cases. We adapt it to your data and prove the difference with an evaluation harness you own.

02Hawthorn AI Labs
hawthorn@labs:~/train

$hawthorn train --base llama-3.3-70b --method lora

$shuffling 42,180 examples · 6 capability buckets

$epoch 3 · eval 71.2 → 89.8 (+18.6)

$safety suite 128/128 passed

$artifact → registry/models/finance-qa@v4

candidate promoted

Typical lift
+15–22 pts
Iteration cycle
Weekly
Base options
Open + frontier
Serving
vLLM / TGI
02 / How we train

Four methods. Chosen on evidence.

We run the cheapest experiment that can answer the question. Full fine-tuning is a last resort, not a default.

Supervised

Supervised fine-tuning

The workhorse. We build curated instruction data from your systems of record, filter it ruthlessly, and train until the held-out set moves.

  • Curriculum-ordered examples, not a dump of tickets
  • Deduplicated, decontaminated and split by entity, not by row
  • LoRA for iteration speed; full-parameter for the final model
  • Loss tracked per capability, not just as one aggregate
03 / Data

The model is the easy part.

Almost every failed fine-tune is a data problem wearing a training problem's clothes. This is where the weeks actually go.

01ingest

Source & contract

Pull from the systems of record with a documented contract: owner, refresh, retention, permitted use.

02clean

Filter & deduplicate

Remove near-duplicates, PII you are not allowed to train on, and the 40% of rows that teach nothing.

03split

Entity-level splitting

Split by customer, document or account — never by row — so the eval set cannot leak into training.

04label

Expert review loop

Your domain experts adjudicate the hard cases; their decisions become both training signal and the rubric.

05train

Train & ablate

Small, cheap runs across data mixtures and hyperparameters before any expensive commitment.

06gate

Evaluate & promote

The candidate must clear every gate below. It either promotes or it goes back with a diagnosis.

04 / Evaluation

Every release has a gate.

A number nobody agreed on is not a metric. These are set with you before the first run and enforced automatically thereafter.

MetricWhat it measuresRelease gate
Task accuracyDoes it do the job on held-out, entity-split data?≥ baseline + 5 pts
GroundednessAre claims supported by retrieved or supplied context?≥ 95%
Schema validityDoes structured output parse and validate every time?≥ 99.5%
Refusal precisionDoes it decline out-of-scope asks without blocking valid ones?≥ 98%
p95 latencyEnd-to-end response time under production load.agreed per route
Cost / 1k runsFully-loaded inference cost including retrieval and tools.budget ceiling
Safety suiteInjection, exfiltration, prompt-leak and jailbreak battery.0 criticals
Serving & training stack
PyTorch/TRL/vLLM/Hugging Face/MLflow/Weights & Biases/Ray/DeepSpeed/ONNX/TensorRT/Airflow/Postgres/
Custom models

Bring a baseline.
We'll beat it.

Send us a held-out sample and the metric you care about. You get a scored baseline before any contract is signed.

Typical first response within 24 hours · NDA-friendly