From a dataset idea to a first batch of examples
A no-code generator turns plain-language descriptions into classification and chat data.

Use synthetic generation to accelerate dataset drafting, then review what it produces.
Hugging Face introduced an interface for generating datasets from a description of the intended task. At launch, it supported text classification and conversational examples, with Distilabel powering the underlying generation workflow.
A graphical starting point can help domain specialists contribute examples without writing the whole pipeline themselves. But generated data is still a draft: label ambiguity, repeated patterns, and unrealistic conversations can all enter a dataset more quickly than they are noticed.
Describe a narrow use case and inspect a small output batch first. Check category boundaries and difficult examples before scaling up. The announcement links sample datasets that make it easier to understand the expected structure and the difference between classification and chat records.
Generated examples are proposals, not automatic ground truth
Synthetic data can help turn a task idea into an initial collection of examples. It is especially useful for exploring formats, producing candidate variations or identifying what a labeling scheme should look like. The generated output still needs review because a model can create internally inconsistent, repetitive or unrealistic examples.
The first decision is what the data is meant to teach. A collection for classification, extraction or conversational behaviour needs different structures and different quality checks. Generating more rows before defining the task can produce volume without useful supervision.
Start with a small specification
Write the expected input and output fields, allowed labels and conventions for missing information. Include a few carefully reviewed examples. These anchors help reveal whether the generator follows the intended contract or merely imitates the surface style of a dataset.
Generate a modest pilot batch and inspect every row. Look for repeated templates, label shortcuts and examples where the answer is obvious for the wrong reason. A classifier trained on such patterns may learn the generator’s habits instead of the real task.
Keep evaluation data separate
Do not use the same generation recipe to create both training and evaluation examples and then treat high performance as evidence of real-world generalization. The two sets can share artificial patterns even when their individual rows differ.
Use independently collected or human-reviewed evaluation material where possible. Include realistic difficult cases and inputs that the synthetic process tends to omit. The evaluation should challenge the intended behaviour, not reward familiarity with the generator’s format.
Track origin and review status
Mark which examples are generated and which have been reviewed or corrected. Preserve the generation prompt, model identity and any filtering rules. This makes it possible to investigate a systematic error later rather than treating the dataset as an anonymous table.
Avoid using sensitive source examples casually in generation prompts. The fact that the output is synthetic does not erase the data-handling requirements of the inputs used to produce it.
Scale only after the pilot teaches you something
Measure diversity and task validity before increasing volume. More near-duplicate examples can increase cost without adding useful coverage. Consider targeted generation for underrepresented cases instead of requesting a large undifferentiated batch.
Synthetic data is most valuable as a controlled part of a data-development process. It can accelerate exploration and broaden a reviewed collection, but its quality comes from a clear task, independent checks and traceable provenance. The goal is not to fill a dataset quickly; it is to produce examples that teach the behaviour the eventual application actually needs.
Source: Introducing the Synthetic Data Generator - Build Datasets with Natural Language ↗ · davidberenstein1957, sdiazlor, Leiyre, dvilasuero, Ameeeee, burtenshaw. How we write


