Overview
NeMo Data Designer is an open-source Python library from NVIDIA for generating synthetic datasets, either from scratch or from your own seed data. Instead of one-off LLM prompting, you describe a dataset as a set of columns, where each column is filled by a statistical sampler, an LLM, or an existing dataset.
It is aimed at developers and ML teams who need realistic training or test data with control over field distributions and the relationships between fields. You can validate generated rows with Python, SQL, and custom local or remote validators, and score outputs using an LLM as a judge.
As a synthetic-data and labeling tool, it sits between simple prompt scripts and full data platforms: a configuration-driven framework where you build a column schema, preview a sample, then run full generation. It works with NVIDIA Build, OpenAI, and OpenRouter model providers out of the box.
What it does
- Generate data from statistical samplers, LLM columns, or existing seed datasets
- Dependency-aware generation that controls relationships between fields
- Built-in Python, SQL, and custom local or remote validators for quality checks
- LLM-as-a-judge scoring to assess output quality
- Preview mode to inspect sample records before full-scale generation
- Async engine (default) that overlaps independent columns and adapts concurrency per provider and model
Getting started
Install the package, set a provider API key, then define columns and preview a sample before generating at scale.
Install
Install Data Designer from PyPI.
pip install data-designerSet your API key
Set the environment variable for one of the default providers (NVIDIA Build, OpenAI, or OpenRouter).
export NVIDIA_API_KEY="your-api-key-here"Define columns and preview
Build a config with a sampler column and an LLM text column, then preview a sample record.
import data_designer.config as dd
from data_designer.interface import DataDesigner
data_designer = DataDesigner()
config_builder = dd.DataDesignerConfigBuilder()
config_builder.add_column(
dd.SamplerColumnConfig(
name="product_category",
sampler_type=dd.SamplerType.CATEGORY,
params=dd.CategorySamplerParams(
values=["Electronics", "Clothing", "Home & Kitchen", "Books"],
),
)
)
config_builder.add_column(
dd.LLMTextColumnConfig(
name="review",
model_alias="nvidia-text",
prompt="Write a brief product review for a {{ product_category }} item you recently purchased.",
)
)
preview = data_designer.preview(config_builder=config_builder)
preview.display_sample_record()Configure providers and models via CLI
Use the CLI to set up model providers and view current settings.
data-designer config providers
data-designer config models
data-designer config listCommands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Generate synthetic training data with controlled statistical distributions and field correlations
- Create realistic test datasets from a small seed dataset for ML pipelines
- Produce validated, scored sample data (for example product reviews tied to categories) for prototyping
- Augment existing data with dependency-aware fields while checking quality with Python or SQL validators
How NeMo Data Designer compares
NeMo Data Designer alongside other open-source synthetic data tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| Easy Dataset | ★ 15k | An application that parses your documents and converts them into structured question-answer datasets for fine-tuning, RAG, and model evaluation. |
| SDV (Synthetic Data Vault) | ★ 3.6k | A Python library that learns patterns from real tabular data and generates realistic synthetic tables. |
| distilabel | ★ 3.4k | A framework for building synthetic-data and AI-feedback pipelines that call any LLM to generate and judge datasets. |
| NeMo Data Designer | ★ 2.4k | Build production-grade synthetic datasets with samplers, LLMs, and validation |
| Augmentoolkit | ★ 1.9k | A tool that turns raw documents into synthetic instruction and conversation datasets for fine-tuning models. |
| NeMo Curator | ★ 1.8k | An NVIDIA toolkit for cleaning, deduplicating, and curating large text datasets used to train LLMs. |
| Curator | ★ 1.8k | A Python library for generating and curating large synthetic datasets to train and post-train language models. |
| ydata-synthetic | ★ 1.7k | A collection of generators for creating synthetic tabular and time-series data from real datasets. |

