Skip to navigation

Parameters Reference

View as Markdown

This page summarizes the main configuration groups available when creating NeMo Safe Synthesizer jobs. For generated REST API schema details, see the Safe Synthesizer API Reference.

Job Spec (Plugin / REST)

Top-level fields on the Safe Synthesizer job spec (alongside config):

FieldDescription
data_sourceInput data as a platform fileset URL (workspace/fileset#path). When you use the Python SDK, SafeSynthesizerJobBuilder.with_data_source() also accepts a pandas DataFrame or a local .csv, .parquet, .json, or .jsonl file; the builder uploads it to Files and sets data_source for you.
pretrained_model_jobPrior completed job whose adapter result in Files is reused for generation-only synthesis. Format: <job> or <workspace>/<job>. Takes precedence over config.training.pretrained_model.
hf_token_secretPlatform secret name for Hugging Face token during model initialization

Top-Level Configuration

The SafeSynthesizerParameters schema defines the main configuration structure for Safe Synthesizer jobs. It comes from the upstream NeMo Safe Synthesizer library, and NeMo Helix passes it through unchanged. For each section’s fields, defaults, and tuning guidance, follow the link to the upstream Configuration Reference.

SafeSynthesizerParameters

All fields are optional at the top level. For nested field constraints, you can also search for the schema name from the Type column in the Safe Synthesizer API Reference.

FieldTypeSDK builder methodConstraints / description
dataDataParameterswith_data()Controls grouping, ordering, and train/evaluation holdout behavior. See Data.
evaluationEvaluationParameterswith_evaluate()Controls synthetic data quality and privacy evaluation settings. See Evaluation.
trainingTrainingHyperparamswith_train()Controls fine-tuning behavior such as learning rate, batch size, LoRA settings, and optimization settings. See Training.
generationGenerateParameterswith_generate()Controls synthetic data generation, including record count, sampling, structured generation, and validation. See Generation.
privacyDifferentialPrivacyHyperparamswith_differential_privacy()Configures DP-SGD. When omitted, differential privacy is disabled. See Differential Privacy.
time_seriesTimeSeriesParameterswith_time_series()Configures experimental time-series mode, including timestamp and interval handling. See Time Series.
replace_piiPiiReplacerConfigwith_replace_pii()Configures PII detection and replacement. If provided directly, steps must contain 1 to 10 transformation steps. See Replacing PII and PII Replacement below for NeMo Helix differences.

The builder methods accept the same field names as keyword arguments, for example .with_train(learning_rate=0.0005) sets config.training.learning_rate.

NeMo Helix Differences

The following behavior is specific to running Safe Synthesizer as a NeMo Helix job.

PII Replacement

PII replacement is on by default for jobs created through the CLI or REST API; set config.enable_replace_pii to false to disable it. The Python SDK builder runs PII replacement only when you call .with_replace_pii().

Column Classification (replace_pii.globals.classify)

Column classification uses an LLM served through the Inference Gateway, selected by replace_pii.globals.classify.classify_model_provider instead of the upstream NSS_INFERENCE_KEY and NSS_INFERENCE_ENDPOINT environment variables. Set it with the SDK builder’s .with_classify_model_provider(provider_name) method. The provider name can be unqualified (the builder prepends the current workspace) or fully-qualified as workspace/provider_name.

If omitted, column classification is skipped and PII detection falls back to heuristic defaults, which may reduce accuracy.

Pretrained Model

config.training.pretrained_model is not an Inference Gateway model. It names the base model that the job fine-tunes inside its own container. The default, HuggingFaceTB/SmolLM3-3B, is loaded from the default/smollm3-3b fileset when your deployment has it staged in Files. Any other model ID is downloaded from Hugging Face Hub at job start, which requires outbound network access from the job; set hf_token_secret (or call .with_hf_token_secret()) for gated models or to avoid rate limits. For supported model families, refer to the upstream Training reference.

To reuse a model trained by an earlier job, set pretrained_model_job instead.


Example Configuration

Here’s an example showing a complete job configuration using the Python SDK:

import time
import pandas as pd
from nemo_helix_plugin.client.client import NemoClient
from nemo_safe_synthesizer_plugin.sdk.job_builder import SafeSynthesizerJobBuilder
df = pd.DataFrame({"text": [f"sample record {i}" for i in range(200)]})
client = NemoClient.from_config()
builder = (
SafeSynthesizerJobBuilder(client)
.with_data_source(df)
.with_classify_model_provider("default/nvidia-build")
.with_train(
num_input_records_to_sample=10000,
learning_rate=0.0005,
batch_size=1,
)
.with_generate(
num_records=5000,
temperature=0.9,
)
.with_differential_privacy(
dp_enabled=True,
epsilon=8.0,
)
.with_replace_pii()
.synthesize()
)
job = builder.create_job(name=f"my-job-{int(time.time())}")