Skip to main content

OVERVIEW

A data synthesis recipe captures the configuration for generating a synthetic dataset, including which model to use, inference settings, and how to structure and split the output. It is stored as a reusable JSON template. Running a synthesis recipe produces a new dataset that appears in your Datasets page once the job completes. For instructions on accessing and running synthesis recipes from the UI, see Data synthesis recipes. For the full schema reference, see Dataset recipe schema.

SYNTHESIS TYPES

  • General: Generate data from sampled attributes, datasets, structured data sources, documents, or inline examples. General synthesis also supports multi-turn data and tool environments.
  • Document Q&A: Generate question-answer data from tagged documents.
  • Improved samples: Generate training or evaluation data from evaluation feedback and failure modes.

COMMON RECIPE PATTERNS

GENERAL DATASET SYNTHESIS

Generates a new dataset by running an existing seed dataset through a synthesis model. The most common starting configuration.
When to use: Expanding a small seed dataset into a larger training set, or generating diverse variations of existing examples.

FAILURE MODE TARGETED SYNTHESIS

Generates targeted training data from failure modes identified during an evaluation run. By synthesizing examples that specifically address identified weaknesses, each training iteration becomes more intentional.
To use this pattern, first run an evaluation with generateFailureModes: true. Use its evaluation ID and the failure mode IDs you want to address.
When to use: Targeted improvement iterations after evaluation reveals specific, recurring failure patterns. This closes the evaluate → synthesize → train loop.

TIPS

  • Use a stronger model for synthesis. A larger or more capable model produces higher-quality synthetic examples that are better training signal for a smaller student model.
  • Keep inferenceSeed fixed for reproducible synthesis runs; remove it (or randomize) when you want maximum diversity.
  • Adjust train/validation/test splits based on your needs. If you have a separate validation dataset already, you can set validation: 0.0 and allocate everything to training.
  • Rate-limit thoughtfully: Lower requestsPerMinute avoids hitting API throttle limits when synthesizing against an external model provider.
  • Validate synthesized data in the Data explorer before using it for training. Inspect for formatting issues, degenerate outputs, or off-topic examples.