๐จ Data Designer Tutorial: Seeding Synthetic Data Generation with an External Datasetยถ
๐ What you'll learnยถ
In this notebook, we will demonstrate how to seed synthetic data generation in Data Designer with an external dataset.
If this is your first time using Data Designer, we recommend starting with the first notebook in this tutorial series.
๐ฆ Import the essentialsยถ
- The
essentialsmodule provides quick access to the most commonly used objects.
from data_designer.essentials import (
DataDesigner,
DataDesignerConfigBuilder,
InferenceParameters,
ModelConfig,
SeedConfig,
)
โ๏ธ Initialize the Data Designer interfaceยถ
DataDesigneris the main object is responsible for managing the data generation process.When initialized without arguments, the default model providers are used.
data_designer_client = DataDesigner()
๐๏ธ Define model configurationsยถ
Each
ModelConfigdefines a model that can be used during the generation process.The "model alias" is used to reference the model in the Data Designer config (as we will see below).
The "model provider" is the external service that hosts the model (see the model config docs for more details).
By default, we use build.nvidia.com as the model provider.
# This name is set in the model provider configuration.
MODEL_PROVIDER = "nvidia"
# The model ID is from build.nvidia.com.
MODEL_ID = "nvidia/nvidia-nemotron-nano-9b-v2"
# We choose this alias to be descriptive for our use case.
MODEL_ALIAS = "nemotron-nano-v2"
# This sets reasoning to False for the nemotron-nano-v2 model.
SYSTEM_PROMPT = "/no_think"
model_configs = [
ModelConfig(
alias=MODEL_ALIAS,
model=MODEL_ID,
provider=MODEL_PROVIDER,
inference_parameters=InferenceParameters(
temperature=0.5,
top_p=1.0,
max_tokens=1024,
),
)
]
๐๏ธ Initialize the Data Designer Config Builderยถ
The Data Designer config defines the dataset schema and generation process.
The config builder provides an intuitive interface for building this configuration.
The list of model configs is provided to the builder at initialization.
config_builder = DataDesignerConfigBuilder(model_configs=model_configs)
๐ฅ Prepare a seed datasetยถ
For this notebook, we'll create a synthetic dataset of patient notes.
We will seed the generation process with a symptom-to-diagnosis dataset.
We already have the dataset downloaded in the data directory of this repository.
๐ฑ Why use a seed dataset?
Seed datasets let you steer the generation process by providing context that is specific to your use case.
Seed datasets are also an excellent way to inject real-world diversity into your synthetic data.
During generation, prompt templates can reference any of the seed dataset fields.
# Download sample dataset from Github
import urllib.request
url = "https://raw.githubusercontent.com/NVIDIA/GenerativeAIExamples/refs/heads/main/nemo/NeMo-Data-Designer/data/gretelai_symptom_to_diagnosis.csv"
local_filename, headers = urllib.request.urlretrieve(url, "gretelai_symptom_to_diagnosis.csv")
seed_dataset = SeedConfig(dataset=local_filename)
# Pass the reference to the config builder for use during generation.
config_builder.with_seed_dataset(seed_dataset)
DataDesignerConfigBuilder( seed_dataset: 'gretelai_symptom_to_diagnosis.csv' seed_dataset_columns: ['diagnosis', 'patient_summary'] )
๐จ Designing our synthetic patient notes datasetยถ
Here we use
add_columnwith keyword arguments (rather than imported config objects).Generally, we recommend using concrete objects, but this is a convenient shorthand.
Note: The prompt template can reference fields from our seed dataset:
{{ diagnosis }}- the medical diagnosis from the seed data{{ patient_summary }}- the symptom description from the seed data
config_builder.add_column(
name="patient_sampler",
column_type="sampler",
sampler_type="person_from_faker",
)
config_builder.add_column(
name="doctor_sampler",
column_type="sampler",
sampler_type="person_from_faker",
)
config_builder.add_column(
name="patient_id",
column_type="sampler",
sampler_type="uuid",
params={
"prefix": "PT-",
"short_form": True,
"uppercase": True,
},
)
config_builder.add_column(
name="first_name",
column_type="expression",
expr="{{ patient_sampler.first_name}}",
)
config_builder.add_column(
name="last_name",
column_type="expression",
expr="{{ patient_sampler.last_name }}",
)
config_builder.add_column(
name="dob",
column_type="expression",
expr="{{ patient_sampler.birth_date }}",
)
config_builder.add_column(
name="symptom_onset_date",
column_type="sampler",
sampler_type="datetime",
params={"start": "2024-01-01", "end": "2024-12-31"},
)
config_builder.add_column(
name="date_of_visit",
column_type="sampler",
sampler_type="timedelta",
params={"dt_min": 1, "dt_max": 30, "reference_column_name": "symptom_onset_date"},
)
config_builder.add_column(
name="physician",
column_type="expression",
expr="Dr. {{ doctor_sampler.last_name }}",
)
config_builder.add_column(
name="physician_notes",
column_type="llm-text",
prompt="""\
You are a primary-care physician who just had an appointment with {{ first_name }} {{ last_name }},
who has been struggling with symptoms from {{ diagnosis }} since {{ symptom_onset_date }}.
The date of today's visit is {{ date_of_visit }}.
{{ patient_summary }}
Write careful notes about your visit with {{ first_name }},
as Dr. {{ doctor_sampler.first_name }} {{ doctor_sampler.last_name }}.
Format the notes as a busy doctor might.
""",
model_alias=MODEL_ALIAS,
system_prompt=SYSTEM_PROMPT,
)
config_builder.validate()
[02:32:28] [INFO] โ Validation passed
DataDesignerConfigBuilder( seed_dataset: 'gretelai_symptom_to_diagnosis.csv' seed_dataset_columns: ['diagnosis', 'patient_summary'] sampler_columns: [ "patient_sampler", "doctor_sampler", "patient_id", "symptom_onset_date", "date_of_visit" ] llm_text_columns: ['physician_notes'] expression_columns: [ "first_name", "last_name", "dob", "physician" ] )
๐ Iteration is key โย preview the dataset!ยถ
Use the
previewmethod to generate a sample of records quickly.Inspect the results for quality and format issues.
Adjust column configurations, prompts, or parameters as needed.
Re-run the preview until satisfied.
preview = data_designer_client.preview(config_builder, num_records=2)
[02:32:28] [INFO] ๐ต๏ธ Preview generation in progress
[02:32:28] [INFO] โ Validation passed
[02:32:28] [INFO] โ๏ธ Sorting column configs into a Directed Acyclic Graph
[02:32:28] [INFO] ๐ฉบ Running health checks for models...
[02:32:28] [INFO] |-- ๐ Checking 'nvidia/nvidia-nemotron-nano-9b-v2' in provider named 'nvidia' for model alias 'nemotron-nano-v2'...
[02:32:29] [INFO] |-- โ Passed!
[02:32:29] [INFO] ๐ฑ Sampling 2 records from seed dataset
[02:32:29] [INFO] |-- seed dataset size: 820 records
[02:32:29] [INFO] |-- sampling strategy: ordered
[02:32:29] [INFO] ๐ฒ Preparing samplers to generate 2 records across 5 columns
[02:32:29] [INFO] (๐พ + ๐พ) Concatenating 2 datasets
[02:32:29] [INFO] ๐งฉ Generating column `first_name` from expression
[02:32:29] [INFO] ๐งฉ Generating column `last_name` from expression
[02:32:29] [INFO] ๐งฉ Generating column `dob` from expression
[02:32:29] [INFO] ๐งฉ Generating column `physician` from expression
[02:32:29] [INFO] ๐ Preparing llm-text column generation
[02:32:29] [INFO] |-- column name: 'physician_notes'
[02:32:29] [INFO] |-- model config:
{
"alias": "nemotron-nano-v2",
"model": "nvidia/nvidia-nemotron-nano-9b-v2",
"inference_parameters": {
"temperature": 0.5,
"top_p": 1.0,
"max_tokens": 1024,
"max_parallel_requests": 4,
"timeout": null,
"extra_body": null
},
"provider": "nvidia"
}
[02:32:29] [INFO] ๐ Processing llm-text column 'physician_notes' with 4 concurrent workers
[02:32:38] [INFO] ๐ Model usage summary:
{
"nvidia/nvidia-nemotron-nano-9b-v2": {
"token_usage": {
"prompt_tokens": 267,
"completion_tokens": 1701,
"total_tokens": 1968
},
"request_usage": {
"successful_requests": 2,
"failed_requests": 0,
"total_requests": 2
},
"tokens_per_second": 224,
"requests_per_minute": 13
}
}
[02:32:38] [INFO] ๐ Measuring dataset column statistics:
[02:32:38] [INFO] |-- ๐ฑ column: 'diagnosis'
[02:32:38] [INFO] |-- ๐ฑ column: 'patient_summary'
[02:32:38] [INFO] |-- ๐ฒ column: 'patient_sampler'
[02:32:38] [INFO] |-- ๐ฒ column: 'doctor_sampler'
[02:32:38] [INFO] |-- ๐ฒ column: 'patient_id'
[02:32:38] [INFO] |-- ๐งฉ column: 'first_name'
[02:32:38] [INFO] |-- ๐งฉ column: 'last_name'
[02:32:38] [INFO] |-- ๐งฉ column: 'dob'
[02:32:38] [INFO] |-- ๐ฒ column: 'symptom_onset_date'
[02:32:38] [INFO] |-- ๐ฒ column: 'date_of_visit'
[02:32:38] [INFO] |-- ๐งฉ column: 'physician'
[02:32:38] [INFO] |-- ๐ column: 'physician_notes'
[02:32:38] [INFO] ๐ Preview complete!
# Run this cell multiple times to cycle through the 2 preview records.
preview.display_sample_record()
Seed Columns โโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Name โ Value โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ diagnosis โ cervical spondylosis โ โโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ patient_summary โ I've been having a lot of pain in my neck and back. I've also been having trouble with my โ โ โ balance and coordination. I've been coughing a lot and my limbs feel weak. โ โโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Generated Columns โโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Name โ Value โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ patient_sampler โ { โ โ โ 'uuid': '5fb6fb3a-e55e-4591-94f8-97e35484bbec', โ โ โ 'locale': 'en_US', โ โ โ 'first_name': 'Edward', โ โ โ 'last_name': 'Harrell', โ โ โ 'middle_name': None, โ โ โ 'sex': 'Male', โ โ โ 'street_number': '381', โ โ โ 'street_name': 'Baker Bypass', โ โ โ 'city': 'Ramirezmouth', โ โ โ 'state': 'Virginia', โ โ โ 'postcode': '06309', โ โ โ 'age': 59, โ โ โ 'birth_date': '1966-11-01', โ โ โ 'country': 'French Guiana', โ โ โ 'marital_status': 'married_present', โ โ โ 'education_level': 'bachelors', โ โ โ 'unit': '', โ โ โ 'occupation': 'Records manager', โ โ โ 'phone_number': '+1-688-526-4494x033', โ โ โ 'bachelors_field': 'stem' โ โ โ } โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ doctor_sampler โ { โ โ โ 'uuid': '79c7f2c9-7881-4a43-ba5e-90a89de9c704', โ โ โ 'locale': 'en_US', โ โ โ 'first_name': 'Natalie', โ โ โ 'last_name': 'Sloan', โ โ โ 'middle_name': None, โ โ โ 'sex': 'Female', โ โ โ 'street_number': '8500', โ โ โ 'street_name': 'Joseph Point', โ โ โ 'city': 'Jeremyland', โ โ โ 'state': 'Ohio', โ โ โ 'postcode': '20884', โ โ โ 'age': 44, โ โ โ 'birth_date': '1981-07-29', โ โ โ 'country': 'Burkina Faso', โ โ โ 'marital_status': 'widowed', โ โ โ 'education_level': 'some_college', โ โ โ 'unit': '', โ โ โ 'occupation': 'Location manager', โ โ โ 'phone_number': '(239)456-4789x73996', โ โ โ 'bachelors_field': 'no_degree' โ โ โ } โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ patient_id โ PT-09B371B5 โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ symptom_onset_date โ 2024-01-06 โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ date_of_visit โ 2024-01-07 โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ first_name โ Edward โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ last_name โ Harrell โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ dob โ 1966-11-01 โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ physician โ Dr. Sloan โ โโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ physician_notes โ **Patient Name:** Edward Harrell โ โ โ **Date of Visit:** 2024-01-07 โ โ โ **Primary Concern:** Neck and back pain, balance/coordination issues, cough, and limb โ โ โ weakness โ โ โ **Chief Complaint (CC):** "I've been having a lot of pain in my neck and back, trouble โ โ โ with my balance and coordination, a persistent cough, and my limbs feel weak." โ โ โ โ โ โ --- โ โ โ โ โ โ **History of Present Illness (HPI):** โ โ โ Edward presents with a 1-day history of worsening neck and back pain, rated 7/10 in โ โ โ severity, localized to the cervical and upper thoracic regions. He reports associated โ โ โ symptoms of dizziness and imbalance, particularly when walking or turning, which he notes โ โ โ began concurrently with his neck pain. He also endorses a non-productive cough, occurring โ โ โ 5โ6 times hourly, and generalized weakness in both upper and lower extremities, described โ โ โ as "like my arms and legs just give out." โ โ โ โ โ โ No fever, chest pain, or shortness of breath reported. No trauma or recent falls. โ โ โ โ โ โ **Past Medical History (PMHx):** โ โ โ - Cervical spondylosis diagnosed in 2024-01-06 (initial visit). โ โ โ - No prior surgeries or hospitalizations. โ โ โ - No known allergies. โ โ โ โ โ โ **Medications:** โ โ โ - Currently on acetaminophen 500mg PRN for pain (last dose 2 hours ago). โ โ โ โ โ โ **Social History:** โ โ โ - Non-smoker, occasional alcohol use. โ โ โ - Sedentary due to pain. โ โ โ โ โ โ **Review of Systems (ROS):** โ โ โ - **Constitutional:** No fever, chills, or weight loss. โ โ โ - **Respiratory:** Persistent cough, no sputum production or hemoptysis. โ โ โ - **Neurological:** Weakness in all four limbs, no numbness or paresthesia. โ โ โ Balance/coordination issues only with activity. โ โ โ - **Musculoskeletal:** Neck and back pain, no radiation or radiation pattern noted. โ โ โ - **Other:** No gastrointestinal, urinary, or visual changes. โ โ โ โ โ โ **Physical Examination:** โ โ โ - **Vital Signs:** Temp 98.6ยฐF, HR 78, BP 120/78, RR 16, SpO2 98% RA. โ โ โ - **Neck:** Limited range of motion, tenderness to palpation along C5-C6. No motor โ โ โ deficits on passive testing. โ โ โ - **Spine:** Mild tenderness in upper thoracic region, no focal neurological deficits. โ โ โ - **Extremities:** 4+/5 strength in all limbs; no atrophy or fasciculations. โ โ โ - **Respiratory:** Clear breath sounds bilaterally; cough productive of clear sputum. โ โ โ - **Neurological:** Intact cranial nerves. Mild ataxia noted on Romberg test. โ โ โ โ โ โ **Assessment:** โ โ โ 1. **Exacerbation of cervical spondylosis** likely contributing to neck/back pain and โ โ โ possible radicular symptoms. โ โ โ 2. **Acute onset of balance/coordination issues** โ concerning for possible cervical โ โ โ radiculopathy, myelopathy, or associated neurological involvement. โ โ โ 3. **New cough** โ differential includes viral upper respiratory infection, asthma โ โ โ exacerbation, or atypical presentation of a systemic process. โ โ โ 4. **Generalized limb weakness** โ raises concern for central or peripheral neuropathy, โ โ โ myopathy, or secondary to an inflammatory/autoimmune process. โ โ โ โ โ โ **Differential Diagnoses:** โ โ โ - Cervical radiculopathy (C5-C6) โ โ โ - Cervical myelopathy โ โ โ - Viral upper respiratory infection with atypical neurological presentation โ โ โ - Autoimmune myopathy or Guillain-Barrรฉ syndrome (less likely but must be ruled out) โ โ โ - Decompensated cervical spondylosis with neurological compromise โ โ โ โ โ โ **Plan:** โ โ โ 1. **Imaging:** Order MRI of cervical spine with contrast to evaluate for cord โ โ โ compression, disc herniation, or myelopathy. โ โ โ 2. **Neurological Consultation:** Refer to neurology for further evaluation of weakness โ โ โ and ataxia. โ โ โ 3. **Respiratory Workup:** Consider chest X-ray or sputum culture if cough persists or โ โ โ worsens. โ โ โ 4. **Lab Work:** CBC, ESR/CRP, creatine kinase, and autoimmune panel if myopathy โ โ โ suspected. โ โ โ 5. **Symptom Management:** โ โ โ - Continue acetaminophen PRN. โ โ โ - Consider short-term NSAID if no contraindications. โ โ โ - Physical therapy referral for cervical stabilization and balance exercises. โ โ โ 6. **Follow-Up:** โ โ โ - Neurology within 2 weeks. โ โ โ - Return if cough worsens, weakness progresses, or new neurological symptoms develop. โ โโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ [index: 0]
# The preview dataset is available as a pandas DataFrame.
preview.dataset
| diagnosis | patient_summary | patient_sampler | doctor_sampler | patient_id | symptom_onset_date | date_of_visit | first_name | last_name | dob | physician | physician_notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | cervical spondylosis | I've been having a lot of pain in my neck and ... | {'uuid': '5fb6fb3a-e55e-4591-94f8-97e35484bbec... | {'uuid': '79c7f2c9-7881-4a43-ba5e-90a89de9c704... | PT-09B371B5 | 2024-01-06 | 2024-01-07 | Edward | Harrell | 1966-11-01 | Dr. Sloan | **Patient Name:** Edward Harrell \n**Date of ... |
| 1 | impetigo | I have a rash on my face that is getting worse... | {'uuid': 'd7d8a0c6-d3a9-4f0c-ba9c-42ff3eeadac9... | {'uuid': 'f4a97df8-c60d-40cd-8fcb-075073a9839b... | PT-53FEC76A | 2024-04-16 | 2024-04-22 | Sarah | Lowery | 1952-12-21 | Dr. Morgan | **Patient Name:** Sarah Lowery \n**Date of Vi... |
๐ Analyze the generated dataยถ
Data Designer automatically generates a basic statistical analysis of the generated data.
This analysis is available via the
analysisproperty of generation result objects.
# Print the analysis as a table.
preview.analysis.to_report()
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐จ Data Designer Dataset Profile โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Dataset Overview โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ number of records โ number of columns โ percent complete records โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ 2 โ 12 โ 100.0% โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ฑ Seed-Dataset Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ diagnosis โ string โ 2 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ patient_summary โ string โ 2 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ฒ Sampler Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ sampler type โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ patient_sampler โ dict โ 2 (100.0%) โ person_from_faker โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ doctor_sampler โ dict โ 2 (100.0%) โ person_from_faker โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ patient_id โ string โ 2 (100.0%) โ uuid โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ symptom_onset_date โ string โ 2 (100.0%) โ datetime โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ date_of_visit โ string โ 2 (100.0%) โ timedelta โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ LLM-Text Columns โโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ โ prompt tokens โ completion tokens โ โ column name โ data type โ number unique values โ per record โ per record โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ physician_notes โ string โ 2 (100.0%) โ 116.5 +/- 3.5 โ 806.0 +/- 248.9 โ โโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโ ๐งฉ Expression Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ first_name โ string โ 2 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ last_name โ string โ 2 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ dob โ string โ 2 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ physician โ string โ 2 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Table Notes โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ โ โ 1. All token statistics are based on a sample of max(1000, len(dataset)) records. โ โ 2. Tokens are calculated using tiktoken's cl100k_base tokenizer. โ โ โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ Scale up!ยถ
Happy with your preview data?
Use the
createmethod to submit larger Data Designer generation jobs.
job_results = data_designer_client.create(config_builder, num_records=10)
[02:32:38] [INFO] ๐จ Creating Data Designer dataset
[02:32:38] [INFO] โ Validation passed
[02:32:38] [INFO] โ๏ธ Sorting column configs into a Directed Acyclic Graph
[02:32:38] [INFO] ๐ Dataset path '/home/runner/work/DataDesigner/DataDesigner/docs/notebook_source/artifacts/dataset' already exists. Dataset from this session will be saved to '/home/runner/work/DataDesigner/DataDesigner/docs/notebook_source/artifacts/dataset_12-11-2025_023238' instead.
[02:32:38] [INFO] ๐ฉบ Running health checks for models...
[02:32:38] [INFO] |-- ๐ Checking 'nvidia/nvidia-nemotron-nano-9b-v2' in provider named 'nvidia' for model alias 'nemotron-nano-v2'...
[02:32:39] [INFO] |-- โ Passed!
[02:32:39] [INFO] โณ Processing batch 1 of 1
[02:32:39] [INFO] ๐ฑ Sampling 10 records from seed dataset
[02:32:39] [INFO] |-- seed dataset size: 820 records
[02:32:39] [INFO] |-- sampling strategy: ordered
[02:32:39] [INFO] ๐ฒ Preparing samplers to generate 10 records across 5 columns
[02:32:39] [INFO] (๐พ + ๐พ) Concatenating 2 datasets
[02:32:39] [INFO] ๐งฉ Generating column `first_name` from expression
[02:32:39] [INFO] ๐งฉ Generating column `last_name` from expression
[02:32:39] [INFO] ๐งฉ Generating column `dob` from expression
[02:32:39] [INFO] ๐งฉ Generating column `physician` from expression
[02:32:39] [INFO] ๐ Preparing llm-text column generation
[02:32:39] [INFO] |-- column name: 'physician_notes'
[02:32:39] [INFO] |-- model config:
{
"alias": "nemotron-nano-v2",
"model": "nvidia/nvidia-nemotron-nano-9b-v2",
"inference_parameters": {
"temperature": 0.5,
"top_p": 1.0,
"max_tokens": 1024,
"max_parallel_requests": 4,
"timeout": null,
"extra_body": null
},
"provider": "nvidia"
}
[02:32:39] [INFO] ๐ Processing llm-text column 'physician_notes' with 4 concurrent workers
[02:32:58] [INFO] ๐ Model usage summary:
{
"nvidia/nvidia-nemotron-nano-9b-v2": {
"token_usage": {
"prompt_tokens": 1302,
"completion_tokens": 7458,
"total_tokens": 8760
},
"request_usage": {
"successful_requests": 10,
"failed_requests": 0,
"total_requests": 10
},
"tokens_per_second": 452,
"requests_per_minute": 30
}
}
[02:32:58] [INFO] ๐ Measuring dataset column statistics:
[02:32:58] [INFO] |-- ๐ฑ column: 'diagnosis'
[02:32:58] [INFO] |-- ๐ฑ column: 'patient_summary'
[02:32:58] [INFO] |-- ๐ฒ column: 'patient_sampler'
[02:32:58] [INFO] |-- ๐ฒ column: 'doctor_sampler'
[02:32:58] [INFO] |-- ๐ฒ column: 'patient_id'
[02:32:58] [INFO] |-- ๐งฉ column: 'first_name'
[02:32:58] [INFO] |-- ๐งฉ column: 'last_name'
[02:32:58] [INFO] |-- ๐งฉ column: 'dob'
[02:32:58] [INFO] |-- ๐ฒ column: 'symptom_onset_date'
[02:32:58] [INFO] |-- ๐ฒ column: 'date_of_visit'
[02:32:58] [INFO] |-- ๐งฉ column: 'physician'
[02:32:58] [INFO] |-- ๐ column: 'physician_notes'
# Load the generated dataset as a pandas DataFrame.
dataset = job_results.load_dataset()
dataset.head()
| diagnosis | patient_summary | patient_sampler | doctor_sampler | patient_id | symptom_onset_date | date_of_visit | first_name | last_name | dob | physician | physician_notes | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | cervical spondylosis | I've been having a lot of pain in my neck and ... | {'age': 98, 'bachelors_field': 'stem', 'birth_... | {'age': 93, 'bachelors_field': 'arts_humanitie... | PT-C125261D | 2024-03-02 | 2024-03-24 | Timothy | Khan | 1927-05-30 | Dr. Anderson | **Dr. Kelly Anderson** **Primary Care Physic... |
| 1 | impetigo | I have a rash on my face that is getting worse... | {'age': 82, 'bachelors_field': 'business', 'bi... | {'age': 31, 'bachelors_field': 'business', 'bi... | PT-52B720E0 | 2024-12-14 | 2025-01-09 | Glenn | Bell | 1943-11-08 | Dr. Doyle | **Dr. Corey Doyle** **Primary Care Physician... |
| 2 | urinary tract infection | I have been urinating blood. I sometimes feel ... | {'age': 40, 'bachelors_field': 'education', 'b... | {'age': 88, 'bachelors_field': 'business', 'bi... | PT-5A792396 | 2024-01-04 | 2024-01-31 | Jordan | Hill | 1984-12-30 | Dr. Ponce | **Dr. Michael Ponce** **Primary Care Physici... |
| 3 | arthritis | I have been having trouble with my muscles and... | {'age': 27, 'bachelors_field': 'no_degree', 'b... | {'age': 81, 'bachelors_field': 'business', 'bi... | PT-5DE9890A | 2024-11-22 | 2024-12-16 | Jill | Green | 1998-05-21 | Dr. Ford | **Dr. Carmen Ford** **Primary Care Physician... |
| 4 | dengue | I have been feeling really sick. My body hurts... | {'age': 40, 'bachelors_field': 'no_degree', 'b... | {'age': 100, 'bachelors_field': 'arts_humaniti... | PT-3BA7CD8F | 2024-01-06 | 2024-01-19 | Christina | Ferrell | 1985-05-16 | Dr. Mclaughlin | **Dr. Adam Mclaughlin** **Primary Care Physi... |
# Load the analysis results into memory.
analysis = job_results.load_analysis()
analysis.to_report()
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐จ Data Designer Dataset Profile โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Dataset Overview โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ number of records โ number of columns โ percent complete records โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ 10 โ 12 โ 100.0% โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ฑ Seed-Dataset Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ diagnosis โ string โ 7 (70.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ patient_summary โ string โ 10 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ฒ Sampler Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ sampler type โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ patient_sampler โ dict โ 10 (100.0%) โ person_from_faker โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ doctor_sampler โ dict โ 10 (100.0%) โ person_from_faker โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ patient_id โ string โ 10 (100.0%) โ uuid โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ symptom_onset_date โ string โ 10 (100.0%) โ datetime โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ date_of_visit โ string โ 10 (100.0%) โ timedelta โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ LLM-Text Columns โโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ โ prompt tokens โ completion tokens โ โ column name โ data type โ number unique values โ per record โ per record โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ physician_notes โ string โ 10 (100.0%) โ 111.0 +/- 5.6 โ 694.0 +/- 117.7 โ โโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโ ๐งฉ Expression Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ first_name โ string โ 10 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ last_name โ string โ 10 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ dob โ string โ 10 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ physician โ string โ 10 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Table Notes โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ โ โ โ 1. All token statistics are based on a sample of max(1000, len(dataset)) records. โ โ 2. Tokens are calculated using tiktoken's cl100k_base tokenizer. โ โ โ โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โญ๏ธ Next Stepsยถ
Use Data Designer to generate synthetic data for your specific use case!