Build your own models instead of renting them

distil labs turns your harness and a few examples into agent-specific models that beat the APIs you run today on accuracy and latency, built in hours.

higher efficiency →higher quality on your task →every off-the-shelf modelfrontier APIsefficient APIsself-hosted open modelsyour model

30M+ people use models trained on distil labs today

  • Rocketgraph logo
  • IBM Power logo
  • Knowunity logo
  • Octodet logo
  • MacPaw logo
  • Comand logo
  • Katrum logo

No off-the-shelf model fits your agent

The API your agent runs today caps its quality, and every competitor on the same API ships the same agent. Efficient APIs cost less and lose accuracy. Frontier APIs are accurate, but priced per call and never yours. The model your agent needs has to be built, and in-house that takes a team and months. With distil labs, your team ships it in hours.

How it works

  1. 1

    Start with the data you have

    Your harness spec (system prompt, tools, schemas, policies), a few manual examples, and the traffic you are already cleared to use. Only the harness spec is required: no protected records, and no customer data before you choose to share it.

    > Build a small model for our support agent from this repo: the
      harness spec in harness/, the 24 manual examples and the cleared
      traces in traces/. Go ahead.
    
    ⏺ Bash(distil dataset create --data support-agent/)
      ⎿  Upload successful. Dataset ID: ds-7f3a
         harness spec · 24 examples · 1,900 traces
  2. 2

    An auto-research agent builds your model

    It builds a test set from your harness, simulates your agent's cases to generate training data including the rare ones, trains the model, evaluates it against the API you run today and repeats until it scores higher. Hours of training, minutes of your time.

    > Train a model that beats the API we run today on the test set. Three
      runs at most, keep a log of every iteration. Go ahead.
    
    ⏺ Bash(distil dataset relabel-traces-test ds-7f3a)
      ⎿  ds-8c21 · 312 test conversations
    ⏺ Bash(distil dataset generate-synthetic-data-train ds-8c21)
      ⎿  ds-9d04 · 8,400 simulated conversations, 23% off script
    ⏺ Bash(distil slm create-from-dataset ds-9d04)
      ⎿  slm-2b7e · SFT, then RL · llm-as-a-judge 0.86 vs API today 0.88
    ⏺ Run 1 misses topic switches. Run 2: more of them, 4 epochs.
      ⎿  slm-4c19 · llm-as-a-judge 0.91 vs API today 0.88 ✓ ahead
    1. 1Relabel traces
    2. 2Simulate conversations
    3. 3Post-train (SFT, then RL)
    4. 4Evaluate vs your API
    5. repeat until ahead
  3. 3

    Deploy and evaluate

    Deploy the model on distil labs inference, in your VPC or on-premise, and point your agent at it, with your current API as fallback. Score it on your own evals and on live traffic, side by side with that API, and keep it when it scores higher.

    > Deploy slm-4c19 behind our support endpoint, current API as fallback.
    
    ⏺ Bash(distil deployment create-from-slm slm-4c19)
      ⎿  Deployment started. Deployment ID: dep-5a1c
    ⏺ Bash(distil inference-endpoint create-from-deployment --name support
           --fallback-model "openai/gpt-5" dep-5a1c)
      ⎿  Endpoint Name: support-Qk3bZ1
         Endpoint:      https://inference.distillabs.ai/v1/chat/completions
  4. 4

    Retrain the same day your agent changes

    Your engineers rerun the same auto-research agent we use. The next version ships in about 80 minutes whenever your agent changes or a weak spot shows up, and once you have production traffic it flows back in.

    > Two weeks of production traffic are cleared. Retrain on them.
    
    ⏺ Bash(distil traces create-from-inference-endpoint support-Qk3bZ1)
      ⎿  tr-c4e9 · 12,300 conversations since v1
    ⏺ Bash(distil dataset create-from-traces --config config.yaml
           --job-description job_description.json tr-c4e9)
      ⎿  ds-a310
    ⏺ Bash(distil slm create-from-dataset ds-a310)
      ⎿  slm-6e02 · v2 · SFT, then RL · about 80 minutes

How it works

Step 1 of 4

Start with the data you have

Your harness spec (system prompt, tools, schemas, policies), a few manual examples, and the traffic you are already cleared to use. Only the harness spec is required: no protected records, and no customer data before you choose to share it.

> Build a small model for our support agent from this repo: the
  harness spec in harness/, the 24 manual examples and the cleared
  traces in traces/. Go ahead.

⏺ Bash(distil dataset create --data support-agent/)
  ⎿  Upload successful. Dataset ID: ds-7f3a
     harness spec · 24 examples · 1,900 traces

Step 2 of 4

An auto-research agent builds your model

It builds a test set from your harness, simulates your agent's cases to generate training data including the rare ones, trains the model, evaluates it against the API you run today and repeats until it scores higher. Hours of training, minutes of your time.

> Train a model that beats the API we run today on the test set. Three
  runs at most, keep a log of every iteration. Go ahead.

⏺ Bash(distil dataset relabel-traces-test ds-7f3a)
  ⎿  ds-8c21 · 312 test conversations
⏺ Bash(distil dataset generate-synthetic-data-train ds-8c21)
  ⎿  ds-9d04 · 8,400 simulated conversations, 23% off script
⏺ Bash(distil slm create-from-dataset ds-9d04)
  ⎿  slm-2b7e · SFT, then RL · llm-as-a-judge 0.86 vs API today 0.88
⏺ Run 1 misses topic switches. Run 2: more of them, 4 epochs.
  ⎿  slm-4c19 · llm-as-a-judge 0.91 vs API today 0.88 ✓ ahead

Step 3 of 4

Deploy and evaluate

Deploy the model on distil labs inference, in your VPC or on-premise, and point your agent at it, with your current API as fallback. Score it on your own evals and on live traffic, side by side with that API, and keep it when it scores higher.

> Deploy slm-4c19 behind our support endpoint, current API as fallback.

⏺ Bash(distil deployment create-from-slm slm-4c19)
  ⎿  Deployment started. Deployment ID: dep-5a1c
⏺ Bash(distil inference-endpoint create-from-deployment --name support
       --fallback-model "openai/gpt-5" dep-5a1c)
  ⎿  Endpoint Name: support-Qk3bZ1
     Endpoint:      https://inference.distillabs.ai/v1/chat/completions

Step 4 of 4

Retrain the same day your agent changes

Your engineers rerun the same auto-research agent we use. The next version ships in about 80 minutes whenever your agent changes or a weak spot shows up, and once you have production traffic it flows back in.

> Two weeks of production traffic are cleared. Retrain on them.

⏺ Bash(distil traces create-from-inference-endpoint support-Qk3bZ1)
  ⎿  tr-c4e9 · 12,300 conversations since v1
⏺ Bash(distil dataset create-from-traces --config config.yaml
       --job-description job_description.json tr-c4e9)
  ⎿  ds-a310
⏺ Bash(distil slm create-from-dataset ds-a310)
  ⎿  slm-6e02 · v2 · SFT, then RL · about 80 minutes

What you get

Build your own model in hours, without post-training experience

An auto-research agent turns your harness and examples into curated training data and delivers the first model within hours, then retrains in about 80 minutes, so you change your agent and test the new model the same day.

Nobody on your team needs to have post-trained a model before.

frontier accuracyCommon casesRare casesthe ones your logs barely containAPI you run todayFrontier APIYour model

More accurate than your API, at the same cost

Your model scores higher than the API you run today on your own evals, including the rare cases production traffic barely contains, because we generate training data for uncommon situations and for each failure you describe.

Logs teach a model the cases that went well. Simulated data covers the ones that go off script.

Intelligence your competitors cannot buy

Every model you build turns your harness and data into a model you own. Agents on the same API are the same agent; yours is the one that stands out.

Your engineers run the same auto-research agent and tools we use, so after the first model your team builds and retrains every model itself.

Your competitorsAPIAPIAPIsame API, same agentYoursYour agentharness + dataYour model

What the alternatives cannot do

Larger API modelPost-training agencydistil labs
High quality even on rare conversations
quality goes up
after months
on your own evals
Same cost and latency as today
costs more, slower
depends on the model
smaller model, lower latency
First model in hours
nothing owned
months per project
hours of training
Expertise stays in-house
you own nothing
stays with their engineers
your engineers run the same agent
Start without customer data
nothing to train
needs production traces
harness and a few examples

Ship your first agent-specific model in hours

Bring your harness and a few examples. We show you a model that beats the API you run today on your own evals, including the difficult cases, before any customer data is shared.

Wondering what happens to your harness? Security and data handling

What Our Customers Say

We needed a small model that could power our product on an IBM P11, entirely on-premises. distil labs’ fine-tuned models allowed us to ship a self-contained solution where the SLM and our graph platform coexist on the same hardware. For customers in regulated industries, this means AI-powered query generation with complete data privacy – nothing ever leaves their environment.

David J. Haglin

Co-Founder and CTO at Rocketgraph

The collaboration with distil labs shows what’s possible when you fine-tune small language models and deploy them on IBM Power. It is not just about the performance–it’s about delivering private, accurate AI that’s ready for enterprise scale.

Unnikrishnan Rajagopal

Unnikrishnan Rajagopal

Director at IBM Power

The distil labs platform accelerated the release of our cybersecurity-specialized language model, KINDI, enabling faster iterations with greater confidence. As a result, we ship InovaGuard improvements sooner and continuously boost investigation accuracy with every release.

Samir Bennacer

Samir Bennacer

Co-Founder and CTO at Octodet

From our blog