Skip to content

Overview

Everything the platform does starts from a seed dataset, and there are two ways to get one: from production traces you already have, or from a small labelled dataset you prepare by hand.

        have production traces from an existing LLM app?

              yes ────────┴──────── no
               │                     │
       trace processing        prepare one from
       turns them into a       your labelled data
       seed dataset            by hand
               │                     │
               └──────────┬──────────┘

                    SEED DATASET


                  teacher evaluation      can the teacher solve this at all?


              synthetic data generation   the teacher writes the training data


                     model training       the student learns the task


                      deployment

From teacher evaluation onward the two paths are the same, with one addition for traces: the original production model’s score becomes a baseline your trained student can be measured against.

Stage What it does Roughly how long
Task selection Pick the task type, which sets the shape of your data -
Trace processing Turns raw logs into a seed dataset up to 45 min
Seed dataset Prepares a seed dataset from labelled examples -
Teacher evaluation Feasibility gate: can the teacher do it? up to 30 min
Synthetic data generation The teacher writes the training set up to 90 min
Model training Fine-tunes and evaluates the student up to 90 min
Deployment Serves the model up to 40 min

Task selection comes first, since the task type determines the shape of everything you prepare afterwards. Then you take one of the two entry points, and from teacher evaluation onward every build follows the same path.

Both entry points need the same two files, config.yaml and job_description.json. Their pages cover what goes in them for that path.

Run teacher evaluation before you spend anything

Section titled “Run teacher evaluation before you spend anything”

Synthetic data generation and model training are the two stages that cost real money. Each is credit-gated and takes up to 90 minutes. Teacher evaluation costs one credit, takes minutes, and tells you whether the task is solvable at all: if the teacher can’t do it, the student won’t learn it either.

Read your balance with distil credits-balance against your whole plan, not the next command. A generation run with no training credit left spends a credit on data you then can’t train on.

config.yaml says which task type you’re training for, which student model you’re training, and which teacher is doing the teaching. Three fields are enough to start:

base:
  task: classification              # see Task selection
  student_model_name: Qwen3-0.6B    # the small model you're training
  teacher_model_name: openai.gpt-oss-120b  # the large model that teaches it

Everything else has a default. Each stage page introduces the config section it cares about at the point where it matters: teacher evaluation introduces evaluation, generation introduces synthgen, training introduces tuning. The complete table is Config file.

Pick the models from Supported models, and note that tool-calling tasks restrict the choice.