Data Designer CLI

View as Markdown

The NeMo Data Designer plugin adds the nemo data-designer command group. Use it to execute Data Designer workloads on NeMo Platform.

Configuration Sources

The preview and create commands accept a configuration source path. The most flexible form is a Python file that defines load_config_builder() and returns a configured DataDesignerConfigBuilder instance. This file can have any name; the examples below use product_reviews.py.

import data_designer.config as dd
def load_config_builder() -> dd.DataDesignerConfigBuilder:
model_configs = [
dd.ModelConfig(
provider="default/nvidia-build",
model="nvidia/nemotron-3.5-lightning-30b-a3b",
alias="text",
)
]
config_builder = dd.DataDesignerConfigBuilder(model_configs)
# Add columns, constraints, seed datasets, processors, and profilers here.
return config_builder
nemo data-designer preview product_reviews.py --workspace default
nemo data-designer create product_reviews.py --workspace default

Validate

The validate command checks a configuration before you spend time on a preview or a create job. It accepts the same configuration sources as preview and create.

nemo data-designer validate product_reviews.py
────────────────────────── Data Designer Validate ──────────────────────────
Config: product_reviews.py
✅ ✔ Configuration is valid

Validation covers both the configuration itself and the NeMo Platform resources it depends on: Inference Gateway provider references, Files service seed sources, Nemotron Personas filesets, and the seed source types the service supports.

It does not check whether the models you reference actually respond. A provider can resolve while still refusing to serve the model named alongside it, so a green validate is not a promise that a preview will run. Use check-models for that.

A single run reports every problem it detects rather than stopping at the first one:

❌ ✘ The NeMo Platform Data Designer service only supports seed data from
HuggingFace or the NeMo Platform Files service (FilesetFile, Directory, or
FileContents seed sources referencing fileset paths). Upload your data to the
Files service, adjust your config, and try again.
❌ ✘ Errors in model configs: ["Cannot access provider
'default/does-not-exist'. Check that it exists and you have access to it."]

The command exits 0 only when no errors are reported, so you can gate a pipeline on it.

OptionDescription
--workspace <WORKSPACE>Workspace used to resolve provider references and seed sources. Defaults to the workspace of the active CLI context, or default.
--output <text|json>Output format. Defaults to text.

Use --output json to consume results programmatically:

nemo data-designer validate product_reviews.py --output json
{
"config_source": "product_reviews.py",
"errors": [
{
"message": "Errors in model configs: [\"Cannot access provider 'default/does-not-exist'. Check that it exists and you have access to it.\"]"
}
],
"ok": false
}

Check Models

The check-models command probes every model your configuration references, without running a workload. It sends a tiny generation request to each model alias, routed through the Inference Gateway, and reports whether it came back.

nemo data-designer check-models product_reviews.py
──────────────────────── Data Designer Check Models ────────────────────────
Config: product_reviews.py
🩺 Running health checks for models...
👀 Checking 'nvidia/nemotron-3.5-lightning-30b-a3b' in provider named 'default/nvidia-build' for model alias 'text'...
✅ Passed!
✅ ✔ All models responded successfully

This is the companion to validate, and the two answer different questions:

CommandQuestionCost
validateIs my configuration well-formed, and do the resources it names resolve?No inference
check-modelsDo the models it names actually respond?One small generation per model alias

Because only a live request can tell you a model works, check-models is what catches a model name that a provider advertises but cannot serve. Run it once before your first preview, and again after changing a model or provider — not on every edit, since each run bills a real generation.

Models configured with skip_health_check=True are skipped. A failing probe stops at the first bad model rather than reporting every problem at once, so fix and re-run. The per-model log lines above tell you which alias failed.

❌ ✘ Model health check failed (ModelNotFoundError): Model
'nvidia/this-does-not-exist' not found

The command exits 0 only when every probe succeeds, so you can gate a pipeline on it.

OptionDescription
--workspace <WORKSPACE>Workspace used to resolve provider references and seed sources. Defaults to the workspace of the active CLI context, or default.
--output <text|json>Output format. Defaults to text. With json, the report is the only thing on stdout; per-model log lines go to stderr so stdout stays parseable.
nemo data-designer check-models product_reviews.py --output json
{
"config_source": "product_reviews.py",
"errors": [
{
"error_type": "ModelNotFoundError",
"message": "Model 'nvidia/this-does-not-exist' not found"
}
],
"ok": false
}

Retrieval SDG

Nemotron retrieval Stage 0/1 use dedicated jobs, not create. See Retrieval SDG.

nemo data-designer retrieval generate \
--corpus default/my-docs \
--provider default/nvidia-build \
--chat-model nvidia/nemotron-3.5-lightning-30b-a3b \
--embed-model nvidia/nemotron-3-embed-1b
nemo data-designer retrieval-prepare --spec '{"sdg_input":"default/stage0-out"}'

Personas

The plugin provides commands for Nemotron Personas datasets.

Create a Files API Fileset for a persona locale so workloads can use it:

nemo data-designer personas make-fileset \
--locale en_US \
--api-key-secret system/ngc-api-key

If you need to create the secret during the same command, set an environment variable with the NGC API key and pass --api-key-env-var:

nemo data-designer personas make-fileset \
--locale en_US \
--api-key-secret system/ngc-api-key \
--api-key-env-var NGC_API_KEY