Generate Realistic Persons#
Data Designer’s sampler column type can be used to sample realistic person data and synthetic personas. Generated using Data Designer itself, as well as a Probabilistic Graphical Model trained on census data, the sampled datasets are grounded in real-world demographic, geographic and personality trait distributions to capture the diversity and richness of the population.
Person Objects in Data Designer#
Creating Person Samplers#
Person samplers generate realistic person entities with configurable attributes and optional synthetic persona data. Each sampler creates a different person object that you can reference throughout your data design.
builder.add_column(
name="customer",
column_type="sampler",
sampler_type="person",
params={
"locale": "en_US",
"sex": "Male",
"with_synthetic_personas": True
},
)
builder.add_column(
name="employee",
column_type="sampler",
sampler_type="person",
params={
"locale": "en_GB",
"sex": "Female",
"with_synthetic_personas": False
},
)
builder.add_column(
name="random_person",
column_type="sampler",
sampler_type="person",
)
Configuration Options#
Person samplers accept these configuration parameters:
Basic Configuration:
sex: Specify “Male” or “Female” (optional)locale: Language and region code (optional, e.g., “en_US”, “fr_FR”, “de_DE”)city: Filter on cities within the specified locale (optional)age_range: Age range for filtering (default: ages above 18 only)state: Filter on US states, only valid when locale is set to “en_US” (optional)
Synthetic Personas Configuration:
with_synthetic_personas(default: False): When set to True, samples detailed personality profiles, cultural backgrounds, skills, interests, and context-specific personas for comprehensive character modeling. The personas are sampled from expanded versions of NVIDIA’s Nemotron-Personas datasets.
Filtering Notes:
When using US locale (“en_US”), you can filter on age range, sex, city, and state
For non-US locales, filtering is limited to age range, sex, and city only
You can choose either city or state when filtering, not both
Locale Support and Data Quality#
Grounded in real-world demographic data: The best quality person / synthetic persona data is generated by sampling a superset of the Nemotron-Personas datasets. This is currently supported for the following locales: “en_US”, “ja_JP”, “hi_IN”, and “en_IN”.
Other Locales: Data Designer uses the Faker library to generate person data (synthetic personas are not supported). While Faker provides basic attributes like names and addresses, it doesn’t maintain the same demographic accuracy or attribute relationships as the Nemotron-Personas datasets.
Synthetic Personas: Available for all locales when with_synthetic_personas=True. Persona generation adapts to cultural context based on the specified locale and demographic information.
Person Data Structure#
Core Demographic Fields (Always Available)#
Field Name |
Type |
Description |
|---|---|---|
uuid |
str |
Unique identifier |
first_name |
str |
Person’s first name |
last_name |
str |
Person’s last name |
sex |
categorical |
Person’s sex (Male or Female) |
age |
int |
Person’s age |
street_number |
int |
str |
street_name |
str |
Name of the street |
city |
str |
City name |
country |
str |
Country name |
marital_status |
categorical |
None |
education_level |
categorical |
None |
bachelors_field |
categorical |
None |
occupation |
str |
None |
birth_date |
date |
Calculated birth date based on age |
locale |
str |
Locale |
In addition to the above fields, person objects also contain locale-specific fields for such as “state” for “en_US” or “area” for “ja_JP”.
Personality Traits (Available when with_synthetic_personas=True)#
Big Five personality model with t-scores and interpretive labels:
Field Name |
Type |
Description |
|---|---|---|
openness |
dict |
Openness to experience (t_score, label, description) |
conscientiousness |
dict |
Conscientiousness (t_score, label, description) |
extraversion |
dict |
Extraversion (t_score, label, description) |
agreeableness |
dict |
Agreeableness (t_score, label, description) |
neuroticism |
dict |
Neuroticism (t_score, label, description) |
Each personality trait contains:
t_score: Standardized score (typically 0-100)label: Interpretive label (“low”, “average”, “high”, “very high”)description: Detailed behavioral description
Synthetic Persona Fields (Available when with_synthetic_personas=True)#
Background and Development#
Field Name |
Type |
Description |
|---|---|---|
cultural_background |
str |
Detailed narrative about cultural influences and upbringing |
skills_and_expertise |
str |
Comprehensive description of professional and personal capabilities |
skills_and_expertise_list |
str |
List format of key skills and competencies |
hobbies_and_interests |
str |
Detailed description of personal interests and activities |
hobbies_and_interests_list |
str |
List format of hobbies and interests |
career_goals_and_ambitions |
str |
Professional aspirations and long-term objectives |
Persona Profiles#
Field Name |
Type |
Description |
|---|---|---|
persona |
str |
Brief summary personality profile |
detailed_persona |
str |
Comprehensive personality and behavioral description |
professional_persona |
str |
Work environment personality and career approach |
finance_persona |
str |
Financial decision-making style and money management approach |
healthcare_persona |
str |
Health and wellness attitudes and behaviors |
sports_persona |
str |
Sports interests and physical activity preferences |
arts_persona |
str |
Artistic tastes, cultural interests, and creative preferences |
travel_persona |
str |
Travel style, preferences, and exploration approach |
culinary_persona |
str |
Food interests, cooking style, and dining preferences |
Best Practices#
Choosing Configuration Options#
Use locales that are backed by a Nemotron-Personas dataset for maximum demographic accuracy and realism
Enable
with_synthetic_personas=Truewhen you need rich character development, personalized content generation, or comprehensive behavioral modelingDisable synthetic personas for basic demographic testing or when computational efficiency is prioritized
Effective Persona Usage#
Match persona depth to use case: Use basic personas for simple applications, detailed personas for comprehensive character modeling
Leverage context-specific personas: Use
professional_personafor workplace scenarios,culinary_personafor food-related applicationsCombine multiple persona fields in prompts for richer, more nuanced content generation
Performance Considerations#
Synthetic personas add processing time: Only enable when the additional data provides value
Cache person objects when using the same personas across multiple columns
Consider batch generation for large datasets requiring consistent persona quality
Quality Assurance#
Validate persona consistency: Ensure generated content aligns with personality traits and demographic information
Test across different locales to understand quality variations
Review persona coherence when using multiple context-specific personas for the same individual