Skip to navigation

Getting Started with NeMo Safe Synthesizer

View as Markdown

Get started with NeMo Safe Synthesizer for generating private synthetic versions of sensitive tabular datasets through the platform Jobs service.

Prerequisites

Before using NeMo Safe Synthesizer, complete Setup to install the CLI/SDK.

Using NeMo Safe Synthesizer has the following additional requirements:

  • A GPU-capable Jobs backend with 80GB+ VRAM available for Safe Synthesizer tasks.
  • Sufficient disk space for generated datasets (50GB+ recommended)

For general platform troubleshooting (port conflicts, health checks, and so on), refer to Setup.

When you configure NVIDIA Build with nemo setup, it registers the nvidia-build model provider in the setup workspace (--workspace, otherwise the active context workspace, falling back to default). These tutorials assume setup used default, so they reference default/nvidia-build. If you used another workspace, substitute <workspace>/nvidia-build and list providers in that workspace. This provider routes inference requests to models hosted on build.nvidia.com using the API base URL https://integrate.api.nvidia.com and the NGC API key with Public API Endpoints permissions provided during deployment.

You can verify this provider exists by running nemo inference providers list --workspace default.

The tutorials in these docs use this provider for inference, but you can alternatively create your own and use it instead.

The NVIDIA provider-creation and evaluation examples support NVIDIA_BASE_URL, an OpenAI-compatible API base including /v1. The default is https://integrate.api.nvidia.com/v1. For another service, export its base URL (for example, export NVIDIA_BASE_URL=https://inference-api.nvidia.com/v1) and set NVIDIA_API_KEY to a credential authorized for that service. Model identifiers and access must also match the service. Set NVIDIA_MODEL to the exact chat-model ID from that service’s /v1/models catalog; no override retains each example’s public NVIDIA Build default. Anonymizer examples also support NHX_ANON_GENERAL_MODEL for their general-purpose model. Retrieval examples give the more specific RETRIEVAL_CHAT_MODEL priority over NVIDIA_MODEL and support RETRIEVAL_EMBED_MODEL for the embedding model. This does not automatically change providers you have already registered.


CLI, Jobs API, and SDK

Safe Synthesizer jobs run through the platform Jobs service. Upload input data to the Files service, then create a job with the CLI, Jobs API, or the Python SDK builder.

Example:

nemo files filesets create my-input --exist-ok
nemo files upload ./data.csv my-input
cat <<EOF > ./nss-job.json
{
"data_source": "default/my-input#data.csv",
"config": {
"replace_pii": {
"globals": {
"classify": {
"classify_model_provider": "default/nvidia-build"
}
}
}
}
}
EOF
nemo safe-synthesizer generate \
--workspace default \
--spec-file ./nss-job.json

Note the job name in the command output, then use it to watch the job and download its results:

nemo jobs watch <job-name>
nemo jobs results download synthetic-data --job <job-name> --output-file ./synthetic-data.csv
nemo jobs results download evaluation-report --job <job-name> --output-file ./evaluation_report.html

To create the same job from Python, use SafeSynthesizerJobBuilder, which uploads local data for you; see SDK Resources. To call the Jobs API directly, send the same spec as the request body; see the Safe Synthesizer API Reference.


Next Steps

Create your first synthetic dataset: