Curate
Import traces, isolate held-out splits, and freeze every source, label, and hash.
Describe how a large model becomes a small one. Keep the model—and the evidence.
distillery = Distillery(base_url=os.environ["DISTILLERY_URL"])
dataset = distillery.datasets.create("./finance_world.jsonl")
run = distillery.distill(dataset, recipe="auto").wait()Distillery exposes the actual decisions behind distillation: which labels to keep, when to call a teacher, what counts as valid, and which examples reach training. Built-in and user-defined recipes run through the same immutable data path and evaluation gate.
Import traces, isolate held-out splits, and freeze every source, label, and hash.
Ask a teacher only for missing training labels. Preserve provenance and reject invalid outputs.
Resolve a built-in or user-defined recipe, then run one finite, sealed training job.
Compare the student on frozen data and make quality, cost, and failure states visible.
We ran two recipes through the same sealed pipeline: standard sequence distillation and a user-defined rejection-sampling method. The same 0.5B student, the same frozen evaluation, and losing states left intact.
Open documentation