๐จ Data Designer Tutorial: Structured Outputs, Jinja Expressions, and Conditional Generationยถ
๐ What you'll learnยถ
In this notebook, we will continue our exploration of Data Designer, demonstrating more advanced data generation using structured outputs, Jinja expressions, and conditional generation with skip.when.
If this is your first time using Data Designer, we recommend starting with the first notebook in this tutorial series.
๐ฆ Import Data Designerยถ
data_designer.configprovides access to the configuration API.DataDesigneris the main interface for data generation.
import data_designer.config as dd
from data_designer.interface import DataDesigner
โ๏ธ Initialize the Data Designer interfaceยถ
DataDesigneris the main object that is used to interface with the library.When initialized without arguments, the default model providers are used.
data_designer = 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/nemotron-3-nano-30b-a3b"
# We choose this alias to be descriptive for our use case.
MODEL_ALIAS = "nemotron-nano-v3"
model_configs = [
dd.ModelConfig(
alias=MODEL_ALIAS,
model=MODEL_ID,
provider=MODEL_PROVIDER,
inference_parameters=dd.ChatCompletionInferenceParams(
temperature=1.0,
top_p=1.0,
max_tokens=2048,
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
),
)
]
๐๏ธ 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 = dd.DataDesignerConfigBuilder(model_configs=model_configs)
๐งโ๐จ Designing our dataยถ
We will again create a product review dataset, but this time we will use structured outputs and Jinja expressions.
Structured outputs let you specify the exact schema of the data you want to generate.
Data Designer supports schemas specified using either json schema or Pydantic data models (recommended).
We'll define our structured outputs using Pydantic data models
๐ก Why Pydantic?
Pydantic models provide better IDE support and type validation.
They are more Pythonic than raw JSON schemas.
They integrate seamlessly with Data Designer's structured output system.
from decimal import Decimal
from typing import Literal
from pydantic import BaseModel, Field
# We define a Product schema so that the name, description, and price are generated
# in one go, with the types and constraints specified.
class Product(BaseModel):
name: str = Field(description="The name of the product")
description: str = Field(description="A description of the product")
price: Decimal = Field(description="The price of the product", ge=10, le=1000, decimal_places=2)
class ProductReview(BaseModel):
rating: int = Field(description="The rating of the product", ge=1, le=5)
customer_mood: Literal["irritated", "mad", "happy", "neutral", "excited"] = Field(
description="The mood of the customer"
)
review: str = Field(description="A review of the product")
Next, let's design our product review dataset using a few more tricks compared to the previous notebook.
# Since we often only want a few attributes from Person objects, we can
# set drop=True in the column config to drop the column from the final dataset.
config_builder.add_column(
dd.SamplerColumnConfig(
name="customer",
sampler_type=dd.SamplerType.PERSON_FROM_FAKER,
params=dd.PersonFromFakerSamplerParams(),
drop=True,
)
)
config_builder.add_column(
dd.SamplerColumnConfig(
name="product_category",
sampler_type=dd.SamplerType.CATEGORY,
params=dd.CategorySamplerParams(
values=[
"Electronics",
"Clothing",
"Home & Kitchen",
"Books",
"Home Office",
],
),
)
)
config_builder.add_column(
dd.SamplerColumnConfig(
name="product_subcategory",
sampler_type=dd.SamplerType.SUBCATEGORY,
params=dd.SubcategorySamplerParams(
category="product_category",
values={
"Electronics": [
"Smartphones",
"Laptops",
"Headphones",
"Cameras",
"Accessories",
],
"Clothing": [
"Men's Clothing",
"Women's Clothing",
"Winter Coats",
"Activewear",
"Accessories",
],
"Home & Kitchen": [
"Appliances",
"Cookware",
"Furniture",
"Decor",
"Organization",
],
"Books": [
"Fiction",
"Non-Fiction",
"Self-Help",
"Textbooks",
"Classics",
],
"Home Office": [
"Desks",
"Chairs",
"Storage",
"Office Supplies",
"Lighting",
],
},
),
)
)
config_builder.add_column(
dd.SamplerColumnConfig(
name="target_age_range",
sampler_type=dd.SamplerType.CATEGORY,
params=dd.CategorySamplerParams(values=["18-25", "25-35", "35-50", "50-65", "65+"]),
)
)
# Sampler columns support conditional params, which are used if the condition is met.
# In this example, we set the review style to rambling if the target age range is 18-25.
# Note conditional parameters are only supported for Sampler column types.
config_builder.add_column(
dd.SamplerColumnConfig(
name="review_style",
sampler_type=dd.SamplerType.CATEGORY,
params=dd.CategorySamplerParams(
values=["rambling", "brief", "detailed", "structured with bullet points"],
weights=[1, 2, 2, 1],
),
conditional_params={
"target_age_range == '18-25'": dd.CategorySamplerParams(values=["rambling"]),
},
)
)
# Optionally validate that the columns are configured correctly.
data_designer.validate(config_builder)
[03:29:18] [INFO] โ Validation passed
Next, we will use more advanced Jinja expressions to create new columns.
Jinja expressions let you:
Access nested attributes:
{{ customer.first_name }}Combine values:
{{ customer.first_name }} {{ customer.last_name }}Use conditional logic:
{% if condition %}...{% endif %}
# We can create new columns using Jinja expressions that reference
# existing columns, including attributes of nested objects.
config_builder.add_column(
dd.ExpressionColumnConfig(name="customer_name", expr="{{ customer.first_name }} {{ customer.last_name }}")
)
config_builder.add_column(dd.ExpressionColumnConfig(name="customer_age", expr="{{ customer.age }}"))
config_builder.add_column(
dd.LLMStructuredColumnConfig(
name="product",
prompt=(
"Create a product in the '{{ product_category }}' category, focusing on products "
"related to '{{ product_subcategory }}'. The target age range of the ideal customer is "
"{{ target_age_range }} years old. The product should be priced between $10 and $1000."
),
output_format=Product,
model_alias=MODEL_ALIAS,
)
)
# We can even use if/else logic in our Jinja expressions to create more complex prompt patterns.
config_builder.add_column(
dd.LLMStructuredColumnConfig(
name="customer_review",
prompt=(
"Your task is to write a review for the following product:\n\n"
"Product Name: {{ product.name }}\n"
"Product Description: {{ product.description }}\n"
"Price: {{ product.price }}\n\n"
"Imagine your name is {{ customer_name }} and you are from {{ customer.city }}, {{ customer.state }}. "
"Write the review in a style that is '{{ review_style }}'."
"{% if target_age_range == '18-25' %}"
"Make sure the review is more informal and conversational.\n"
"{% else %}"
"Make sure the review is more formal and structured.\n"
"{% endif %}"
"The review field should contain only the review, no other text."
),
output_format=ProductReview,
model_alias=MODEL_ALIAS,
)
)
data_designer.validate(config_builder)
[03:29:18] [INFO] โ Validation passed
๐ฆ Conditional generation with skip.whenยถ
So far, every column is generated for every row. But sometimes an expensive LLM column only makes sense for a subset of rows โ for example, a detailed complaint analysis is only useful when the review is negative.
Data Designer lets you skip column generation on a per-row basis using SkipConfig.
Skipped rows receive None by default, but you can provide a sentinel value with
skip=dd.SkipConfig(when="...", value="N/A") to write a specific value instead.
There are three patterns to know:
| Pattern | How | Effect |
|---|---|---|
| Expression gate | skip=dd.SkipConfig(when="...") |
Skip this column when the Jinja2 expression is truthy |
| Skip propagation (default) | Downstream column depends on a skipped column | Automatically skipped too (propagate_skip=True by default) |
| Propagation opt-out | propagate_skip=False on the downstream column |
Always generates, even if an upstream was skipped |
Pattern 1 โ Expression gate. Only generate a detailed complaint analysis when the customer gave a low rating (1 or 2 stars).
Rows where the rating is 3 or higher will get None for this column.
config_builder.add_column(
dd.LLMTextColumnConfig(
name="complaint_analysis",
model_alias=MODEL_ALIAS,
prompt=(
"A customer reviewed '{{ product.name }}' ({{ product_category }} / {{ product_subcategory }}).\n\n"
"Review: {{ customer_review.review }}\n"
"Rating: {{ customer_review.rating }}/5\n"
"Mood: {{ customer_review.customer_mood }}\n\n"
"Write a short root-cause analysis of why this customer is unhappy "
"and suggest one concrete improvement the product team could make."
),
skip=dd.SkipConfig(when="{{ customer_review.rating > 2 }}"),
)
)
DataDesignerConfigBuilder( sampler_columns: [ "customer", "product_category", "product_subcategory", "target_age_range", "review_style" ] llm_text_columns: ['complaint_analysis'] llm_structured_columns: ['product', 'customer_review'] expression_columns: ['customer_name', 'customer_age'] )
Pattern 2 โ Skip propagation. action_items depends on complaint_analysis.
When complaint_analysis is skipped, action_items auto-skips too because
propagate_skip defaults to True.
config_builder.add_column(
dd.LLMTextColumnConfig(
name="action_items",
model_alias=MODEL_ALIAS,
prompt=(
"Based on this complaint analysis:\n"
"{{ complaint_analysis }}\n\n"
"List 2-3 concrete action items for the product team."
),
)
)
DataDesignerConfigBuilder( sampler_columns: [ "customer", "product_category", "product_subcategory", "target_age_range", "review_style" ] llm_text_columns: ['complaint_analysis', 'action_items'] llm_structured_columns: ['product', 'customer_review'] expression_columns: ['customer_name', 'customer_age'] )
Pattern 3 โ Propagation opt-out. review_summary also depends on complaint_analysis,
but sets propagate_skip=False so it always generates. The prompt uses a Jinja conditional
to handle the case where complaint_analysis is None.
config_builder.add_column(
dd.LLMTextColumnConfig(
name="review_summary",
model_alias=MODEL_ALIAS,
propagate_skip=False,
prompt=(
"Summarize this product review in one sentence:\n"
"Product: {{ product.name }}\n"
"Rating: {{ customer_review.rating }}/5\n"
"Review: {{ customer_review.review }}\n"
"{% if complaint_analysis %}"
"Complaint analysis: {{ complaint_analysis }}\n"
"{% endif %}"
),
)
)
data_designer.validate(config_builder)
[03:29:18] [INFO] โ Validation passed
๐ 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.preview(config_builder, num_records=2)
[03:29:18] [INFO] ๐ Preview generation in progress
[03:29:18] [INFO] |-- ๐ Jinja rendering engine: secure
[03:29:18] [INFO] โ Validation passed
[03:29:18] [INFO] โ๏ธ Sorting column configs into a Directed Acyclic Graph
[03:29:18] [INFO] ๐ฉบ Running health checks for models...
[03:29:18] [INFO] |-- ๐ Checking 'nvidia/nemotron-3-nano-30b-a3b' in provider named 'nvidia' for model alias 'nemotron-nano-v3'...
[03:29:19] [INFO] |-- โ Passed!
[03:29:19] [INFO] ๐ฒ Preparing samplers to generate 2 records across 5 columns
[03:29:19] [INFO] ๐งฉ Generating column `customer_name` from expression
[03:29:19] [INFO] ๐งฉ Generating column `customer_age` from expression
[03:29:19] [INFO] ๐๏ธ llm-structured model config for column 'product'
[03:29:19] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:19] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:19] [INFO] |-- model provider: 'nvidia'
[03:29:19] [INFO] |-- inference parameters:
[03:29:19] [INFO] | |-- generation_type=chat-completion
[03:29:19] [INFO] | |-- max_parallel_requests=4
[03:29:19] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:19] [INFO] | |-- temperature=1.00
[03:29:19] [INFO] | |-- top_p=1.00
[03:29:19] [INFO] | |-- max_tokens=2048
[03:29:19] [INFO] โก๏ธ Processing llm-structured column 'product' with 4 concurrent workers
[03:29:19] [INFO] โฑ๏ธ llm-structured column 'product' will report progress after each record
[03:29:20] [INFO] |-- ๐ฅ llm-structured column 'product' progress: 1/2 (50%) complete, 1 ok, 0 failed, 1.25 rec/s, eta 0.8s
[03:29:21] [INFO] |-- ๐ llm-structured column 'product' progress: 2/2 (100%) complete, 2 ok, 0 failed, 1.86 rec/s, eta 0.0s
[03:29:21] [INFO] ๐๏ธ llm-structured model config for column 'customer_review'
[03:29:21] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:21] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:21] [INFO] |-- model provider: 'nvidia'
[03:29:21] [INFO] |-- inference parameters:
[03:29:21] [INFO] | |-- generation_type=chat-completion
[03:29:21] [INFO] | |-- max_parallel_requests=4
[03:29:21] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:21] [INFO] | |-- temperature=1.00
[03:29:21] [INFO] | |-- top_p=1.00
[03:29:21] [INFO] | |-- max_tokens=2048
[03:29:21] [INFO] โก๏ธ Processing llm-structured column 'customer_review' with 4 concurrent workers
[03:29:21] [INFO] โฑ๏ธ llm-structured column 'customer_review' will report progress after each record
[03:29:22] [INFO] |-- ๐ธ llm-structured column 'customer_review' progress: 1/2 (50%) complete, 1 ok, 0 failed, 0.57 rec/s, eta 1.8s
[03:29:24] [INFO] |-- ๐ฆ llm-structured column 'customer_review' progress: 2/2 (100%) complete, 2 ok, 0 failed, 0.66 rec/s, eta 0.0s
[03:29:24] [INFO] ๐ llm-text model config for column 'complaint_analysis'
[03:29:24] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:24] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:24] [INFO] |-- model provider: 'nvidia'
[03:29:24] [INFO] |-- inference parameters:
[03:29:24] [INFO] | |-- generation_type=chat-completion
[03:29:24] [INFO] | |-- max_parallel_requests=4
[03:29:24] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:24] [INFO] | |-- temperature=1.00
[03:29:24] [INFO] | |-- top_p=1.00
[03:29:24] [INFO] | |-- max_tokens=2048
[03:29:24] [INFO] โก๏ธ Processing llm-text column 'complaint_analysis' with 4 concurrent workers
[03:29:24] [INFO] โฑ๏ธ llm-text column 'complaint_analysis' will report progress after each record
[03:29:24] [INFO] |-- ๐ llm-text column 'complaint_analysis' progress: 1/2 (50%) complete, 0 ok, 0 failed, 1 skipped, 522.80 rec/s, eta 0.0s
[03:29:24] [INFO] |-- ๐ llm-text column 'complaint_analysis' progress: 2/2 (100%) complete, 0 ok, 0 failed, 2 skipped, 779.08 rec/s, eta 0.0s
[03:29:24] [INFO] ๐ llm-text model config for column 'action_items'
[03:29:24] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:24] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:24] [INFO] |-- model provider: 'nvidia'
[03:29:24] [INFO] |-- inference parameters:
[03:29:24] [INFO] | |-- generation_type=chat-completion
[03:29:24] [INFO] | |-- max_parallel_requests=4
[03:29:24] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:24] [INFO] | |-- temperature=1.00
[03:29:24] [INFO] | |-- top_p=1.00
[03:29:24] [INFO] | |-- max_tokens=2048
[03:29:24] [INFO] โก๏ธ Processing llm-text column 'action_items' with 4 concurrent workers
[03:29:24] [INFO] โฑ๏ธ llm-text column 'action_items' will report progress after each record
[03:29:24] [INFO] |-- ๐ llm-text column 'action_items' progress: 1/2 (50%) complete, 0 ok, 0 failed, 1 skipped, 1190.83 rec/s, eta 0.0s
[03:29:24] [INFO] |-- ๐คฉ llm-text column 'action_items' progress: 2/2 (100%) complete, 0 ok, 0 failed, 2 skipped, 1642.23 rec/s, eta 0.0s
[03:29:24] [INFO] ๐ llm-text model config for column 'review_summary'
[03:29:24] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:24] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:24] [INFO] |-- model provider: 'nvidia'
[03:29:24] [INFO] |-- inference parameters:
[03:29:24] [INFO] | |-- generation_type=chat-completion
[03:29:24] [INFO] | |-- max_parallel_requests=4
[03:29:24] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:24] [INFO] | |-- temperature=1.00
[03:29:24] [INFO] | |-- top_p=1.00
[03:29:24] [INFO] | |-- max_tokens=2048
[03:29:24] [INFO] โก๏ธ Processing llm-text column 'review_summary' with 4 concurrent workers
[03:29:24] [INFO] โฑ๏ธ llm-text column 'review_summary' will report progress after each record
[03:29:24] [INFO] |-- ๐ llm-text column 'review_summary' progress: 1/2 (50%) complete, 1 ok, 0 failed, 1.48 rec/s, eta 0.7s
[03:29:24] [INFO] |-- ๐ llm-text column 'review_summary' progress: 2/2 (100%) complete, 2 ok, 0 failed, 2.47 rec/s, eta 0.0s
[03:29:25] [INFO] ๐ Model usage summary:
[03:29:25] [INFO] |-- model: nvidia/nemotron-3-nano-30b-a3b
[03:29:25] [INFO] |-- tokens: input=1748, output=712, total=2460, tps=463
[03:29:25] [INFO] |-- requests: success=6, failed=0, total=6, rpm=67
[03:29:25] [INFO] ๐ Dropping columns: ['customer']
[03:29:25] [INFO] ๐ Measuring dataset column statistics:
[03:29:25] [INFO] |-- ๐ฒ column: 'product_category'
[03:29:25] [INFO] |-- ๐ฒ column: 'product_subcategory'
[03:29:25] [INFO] |-- ๐ฒ column: 'target_age_range'
[03:29:25] [INFO] |-- ๐ฒ column: 'review_style'
[03:29:25] [INFO] |-- ๐งฉ column: 'customer_name'
[03:29:25] [INFO] |-- ๐งฉ column: 'customer_age'
[03:29:25] [INFO] |-- ๐๏ธ column: 'product'
[03:29:25] [INFO] |-- ๐๏ธ column: 'customer_review'
[03:29:25] [INFO] |-- ๐ column: 'complaint_analysis'
[03:29:25] [INFO] |-- ๐ column: 'action_items'
[03:29:25] [INFO] |-- ๐ column: 'review_summary'
[03:29:25] [INFO] ๐ฅณ Preview complete!
# Run this cell multiple times to cycle through the 2 preview records.
# Look for rows where complaint_analysis and action_items are None (skipped)
# vs rows where they were generated (low-rated reviews).
preview.display_sample_record()
Generated Columns โโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ Name โ Value โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ product_category โ Home Office โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ product_subcategory โ Storage โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ target_age_range โ 50-65 โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ review_style โ detailed โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ complaint_analysis โ None โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ action_items โ None โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ review_summary โ A highly praised, sturdy laminated storage cabinet with smooth fullโextension โ โ โ drawers and premium metal hardware that fits neatly under desks, blends modern โ โ โ aesthetics with safetyโfocused design, and delivers reliable, organized performance. โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ product โ { โ โ โ 'name': 'Expandable Laminated Storage Cabinet', โ โ โ 'description': 'A sturdy, roll-out laminated cabinet designed to fit under desks โ โ โ or beside office chairs. Features smooth gliding drawers, sturdy metal hardware, and โ โ โ a sleek, low-profile finish that complements modern home offices. Ideal for โ โ โ organizing papers, office supplies, and personal items within easy reach.', โ โ โ 'price': 84.99 โ โ โ } โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ customer_review โ { โ โ โ 'rating': 5, โ โ โ 'customer_mood': 'happy', โ โ โ 'review': 'The Expandable Laminated Storage Cabinet offers an impressively โ โ โ sturdy construction with smooth-gliding, fullโextension drawers that accommodate โ โ โ papers, office supplies, and personal items with ease. The lowโprofile, laminated โ โ โ finish integrates seamlessly with modern homeโoffice aesthetics, and the robust โ โ โ metal hardware conveys a premium feel while maintaining durability. Its compact โ โ โ dimensions allow effortless placement beneath desks or beside chairs, maximizing โ โ โ workโspace efficiency without compromising accessibility. The streamlined design โ โ โ eliminates cabinet handles, reducing snagging risks and enhancing safety when โ โ โ positioning furniture. Overall, this storage solution combines functional elegance โ โ โ with reliable performance, making it a highly suitable addition to any organized โ โ โ workspace.' โ โ โ } โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ customer_name โ Carl Davis โ โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ customer_age โ 96 โ โโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
# The preview dataset is available as a pandas DataFrame.
# Notice that complaint_analysis, action_items, and review_summary columns
# reflect the skip behavior: None for skipped rows, generated text otherwise.
preview.dataset
| product_category | product_subcategory | target_age_range | review_style | customer_name | customer_age | product | customer_review | complaint_analysis | action_items | review_summary | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Home Office | Storage | 50-65 | detailed | Carl Davis | 96 | {'name': 'Expandable Laminated Storage Cabinet... | {'rating': 5, 'customer_mood': 'happy', 'revie... | None | None | A highly praised, sturdy laminated storage cab... |
| 1 | Books | Classics | 50-65 | detailed | Jessica Pacheco | 37 | {'name': 'Timeless Classics: A Curated Library... | {'rating': 5, 'customer_mood': 'happy', 'revie... | None | None | The Timeless Classics anthology earns a perfec... |
๐ 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 โ 11 โ 100.0% โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ฒ Sampler Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ sampler type โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ product_category โ string โ 2 (100.0%) โ category โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ product_subcategory โ string โ 2 (100.0%) โ subcategory โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ target_age_range โ string โ 1 (50.0%) โ category โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ review_style โ string โ 1 (50.0%) โ category โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ ๐ LLM-Text Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ โ prompt tokens โ completion tokens โ โ column name โ data type โ number unique values โ per record โ per record โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ complaint_analysis โ None โ 0 (0.0%) โ 255.5 +/- 69.5 โ 1.0 +/- 0.0 โ โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ action_items โ None โ 0 (0.0%) โ 22.0 +/- 0.0 โ 1.0 +/- 0.0 โ โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ review_summary โ string โ 2 (100.0%) โ 229.0 +/- 70.0 โ 53.0 +/- 17.0 โ โโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ ๐๏ธ LLM-Structured Columns โโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ โ prompt tokens โ completion tokens โ โ column name โ data type โ number unique values โ per record โ per record โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ product โ dict โ 2 (100.0%) โ 264.0 +/- 0.0 โ 54.5 +/- 37.5 โ โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโค โ customer_review โ dict โ 2 (100.0%) โ 310.0 +/- 25.0 โ 216.0 +/- 96.2 โ โโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโ ๐งฉ Expression Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ customer_name โ string โ 2 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ customer_age โ 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.
results = data_designer.create(config_builder, num_records=10, dataset_name="tutorial-2")
[03:29:25] [INFO] ๐จ Creating Data Designer dataset
[03:29:25] [INFO] |-- ๐ Jinja rendering engine: secure
[03:29:25] [INFO] โ Validation passed
[03:29:25] [INFO] โ๏ธ Sorting column configs into a Directed Acyclic Graph
[03:29:25] [INFO] ๐ฉบ Running health checks for models...
[03:29:25] [INFO] |-- ๐ Checking 'nvidia/nemotron-3-nano-30b-a3b' in provider named 'nvidia' for model alias 'nemotron-nano-v3'...
[03:29:25] [INFO] |-- โ Passed!
[03:29:25] [INFO] โณ Processing batch 1 of 1
[03:29:25] [INFO] ๐ฒ Preparing samplers to generate 10 records across 5 columns
[03:29:25] [INFO] ๐งฉ Generating column `customer_name` from expression
[03:29:25] [INFO] ๐งฉ Generating column `customer_age` from expression
[03:29:25] [INFO] ๐๏ธ llm-structured model config for column 'product'
[03:29:25] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:25] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:25] [INFO] |-- model provider: 'nvidia'
[03:29:25] [INFO] |-- inference parameters:
[03:29:25] [INFO] | |-- generation_type=chat-completion
[03:29:25] [INFO] | |-- max_parallel_requests=4
[03:29:25] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:25] [INFO] | |-- temperature=1.00
[03:29:25] [INFO] | |-- top_p=1.00
[03:29:25] [INFO] | |-- max_tokens=2048
[03:29:25] [INFO] โก๏ธ Processing llm-structured column 'product' with 4 concurrent workers
[03:29:25] [INFO] โฑ๏ธ llm-structured column 'product' will report progress after each record
[03:29:26] [INFO] |-- ๐ถ llm-structured column 'product' progress: 1/10 (10%) complete, 1 ok, 0 failed, 1.09 rec/s, eta 8.3s
[03:29:27] [INFO] |-- ๐ถ llm-structured column 'product' progress: 2/10 (20%) complete, 2 ok, 0 failed, 1.73 rec/s, eta 4.6s
[03:29:27] [INFO] |-- ๐ด llm-structured column 'product' progress: 3/10 (30%) complete, 3 ok, 0 failed, 2.31 rec/s, eta 3.0s
[03:29:27] [INFO] |-- ๐ด llm-structured column 'product' progress: 4/10 (40%) complete, 4 ok, 0 failed, 2.42 rec/s, eta 2.5s
[03:29:27] [INFO] |-- ๐ llm-structured column 'product' progress: 5/10 (50%) complete, 5 ok, 0 failed, 2.54 rec/s, eta 2.0s
[03:29:28] [INFO] |-- ๐ llm-structured column 'product' progress: 6/10 (60%) complete, 6 ok, 0 failed, 2.42 rec/s, eta 1.7s
[03:29:28] [INFO] |-- ๐ llm-structured column 'product' progress: 7/10 (70%) complete, 7 ok, 0 failed, 2.46 rec/s, eta 1.2s
[03:29:28] [INFO] |-- โ๏ธ llm-structured column 'product' progress: 8/10 (80%) complete, 8 ok, 0 failed, 2.63 rec/s, eta 0.8s
[03:29:28] [INFO] |-- โ๏ธ llm-structured column 'product' progress: 9/10 (90%) complete, 9 ok, 0 failed, 2.96 rec/s, eta 0.3s
[03:29:29] [INFO] |-- ๐ llm-structured column 'product' progress: 10/10 (100%) complete, 10 ok, 0 failed, 2.81 rec/s, eta 0.0s
[03:29:29] [INFO] ๐๏ธ llm-structured model config for column 'customer_review'
[03:29:29] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:29] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:29] [INFO] |-- model provider: 'nvidia'
[03:29:29] [INFO] |-- inference parameters:
[03:29:29] [INFO] | |-- generation_type=chat-completion
[03:29:29] [INFO] | |-- max_parallel_requests=4
[03:29:29] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:29] [INFO] | |-- temperature=1.00
[03:29:29] [INFO] | |-- top_p=1.00
[03:29:29] [INFO] | |-- max_tokens=2048
[03:29:29] [INFO] โก๏ธ Processing llm-structured column 'customer_review' with 4 concurrent workers
[03:29:29] [INFO] โฑ๏ธ llm-structured column 'customer_review' will report progress after each record
[03:29:30] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 1/10 (10%) complete, 1 ok, 0 failed, 0.86 rec/s, eta 10.4s
[03:29:31] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 2/10 (20%) complete, 2 ok, 0 failed, 1.14 rec/s, eta 7.0s
[03:29:31] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 3/10 (30%) complete, 3 ok, 0 failed, 1.18 rec/s, eta 6.0s
[03:29:32] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 4/10 (40%) complete, 4 ok, 0 failed, 1.17 rec/s, eta 5.1s
[03:29:33] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 5/10 (50%) complete, 5 ok, 0 failed, 1.24 rec/s, eta 4.0s
[03:29:34] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 6/10 (60%) complete, 6 ok, 0 failed, 1.27 rec/s, eta 3.1s
[03:29:34] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 7/10 (70%) complete, 7 ok, 0 failed, 1.46 rec/s, eta 2.1s
[03:29:34] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 8/10 (80%) complete, 8 ok, 0 failed, 1.53 rec/s, eta 1.3s
[03:29:35] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 9/10 (90%) complete, 9 ok, 0 failed, 1.46 rec/s, eta 0.7s
[03:29:36] [INFO] |-- ๐ llm-structured column 'customer_review' progress: 10/10 (100%) complete, 10 ok, 0 failed, 1.41 rec/s, eta 0.0s
[03:29:36] [INFO] ๐ llm-text model config for column 'complaint_analysis'
[03:29:36] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:36] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:36] [INFO] |-- model provider: 'nvidia'
[03:29:36] [INFO] |-- inference parameters:
[03:29:36] [INFO] | |-- generation_type=chat-completion
[03:29:36] [INFO] | |-- max_parallel_requests=4
[03:29:36] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:36] [INFO] | |-- temperature=1.00
[03:29:36] [INFO] | |-- top_p=1.00
[03:29:36] [INFO] | |-- max_tokens=2048
[03:29:36] [INFO] โก๏ธ Processing llm-text column 'complaint_analysis' with 4 concurrent workers
[03:29:36] [INFO] โฑ๏ธ llm-text column 'complaint_analysis' will report progress after each record
[03:29:36] [INFO] |-- ๐ง๏ธ llm-text column 'complaint_analysis' progress: 1/10 (10%) complete, 0 ok, 0 failed, 1 skipped, 984.40 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ง๏ธ llm-text column 'complaint_analysis' progress: 2/10 (20%) complete, 0 ok, 0 failed, 2 skipped, 1278.36 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ฆ๏ธ llm-text column 'complaint_analysis' progress: 3/10 (30%) complete, 0 ok, 0 failed, 3 skipped, 1359.76 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ฆ๏ธ llm-text column 'complaint_analysis' progress: 4/10 (40%) complete, 0 ok, 0 failed, 4 skipped, 1489.35 rec/s, eta 0.0s
[03:29:36] [INFO] |-- โ llm-text column 'complaint_analysis' progress: 5/10 (50%) complete, 0 ok, 0 failed, 5 skipped, 1539.71 rec/s, eta 0.0s
[03:29:36] [INFO] |-- โ llm-text column 'complaint_analysis' progress: 6/10 (60%) complete, 0 ok, 0 failed, 6 skipped, 1582.19 rec/s, eta 0.0s
[03:29:36] [INFO] |-- โ llm-text column 'complaint_analysis' progress: 7/10 (70%) complete, 0 ok, 0 failed, 7 skipped, 1586.89 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ค๏ธ llm-text column 'complaint_analysis' progress: 8/10 (80%) complete, 0 ok, 0 failed, 8 skipped, 1604.89 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ค๏ธ llm-text column 'complaint_analysis' progress: 9/10 (90%) complete, 0 ok, 0 failed, 9 skipped, 1640.46 rec/s, eta 0.0s
[03:29:36] [INFO] |-- โ๏ธ llm-text column 'complaint_analysis' progress: 10/10 (100%) complete, 0 ok, 0 failed, 10 skipped, 1644.11 rec/s, eta 0.0s
[03:29:36] [INFO] ๐ llm-text model config for column 'action_items'
[03:29:36] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:36] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:36] [INFO] |-- model provider: 'nvidia'
[03:29:36] [INFO] |-- inference parameters:
[03:29:36] [INFO] | |-- generation_type=chat-completion
[03:29:36] [INFO] | |-- max_parallel_requests=4
[03:29:36] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:36] [INFO] | |-- temperature=1.00
[03:29:36] [INFO] | |-- top_p=1.00
[03:29:36] [INFO] | |-- max_tokens=2048
[03:29:36] [INFO] โก๏ธ Processing llm-text column 'action_items' with 4 concurrent workers
[03:29:36] [INFO] โฑ๏ธ llm-text column 'action_items' will report progress after each record
[03:29:36] [INFO] |-- ๐ฅ llm-text column 'action_items' progress: 1/10 (10%) complete, 0 ok, 0 failed, 1 skipped, 1360.69 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ฅ llm-text column 'action_items' progress: 2/10 (20%) complete, 0 ok, 0 failed, 2 skipped, 1817.71 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ฃ llm-text column 'action_items' progress: 3/10 (30%) complete, 0 ok, 0 failed, 3 skipped, 2048.70 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ฃ llm-text column 'action_items' progress: 4/10 (40%) complete, 0 ok, 0 failed, 4 skipped, 2181.22 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ฅ llm-text column 'action_items' progress: 5/10 (50%) complete, 0 ok, 0 failed, 5 skipped, 2268.57 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ฅ llm-text column 'action_items' progress: 6/10 (60%) complete, 0 ok, 0 failed, 6 skipped, 2351.54 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ฅ llm-text column 'action_items' progress: 7/10 (70%) complete, 0 ok, 0 failed, 7 skipped, 2408.85 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ค llm-text column 'action_items' progress: 8/10 (80%) complete, 0 ok, 0 failed, 8 skipped, 2467.52 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ค llm-text column 'action_items' progress: 9/10 (90%) complete, 0 ok, 0 failed, 9 skipped, 2478.11 rec/s, eta 0.0s
[03:29:36] [INFO] |-- ๐ llm-text column 'action_items' progress: 10/10 (100%) complete, 0 ok, 0 failed, 10 skipped, 2494.27 rec/s, eta 0.0s
[03:29:36] [INFO] ๐ llm-text model config for column 'review_summary'
[03:29:36] [INFO] |-- model: 'nvidia/nemotron-3-nano-30b-a3b'
[03:29:36] [INFO] |-- model alias: 'nemotron-nano-v3'
[03:29:36] [INFO] |-- model provider: 'nvidia'
[03:29:36] [INFO] |-- inference parameters:
[03:29:36] [INFO] | |-- generation_type=chat-completion
[03:29:36] [INFO] | |-- max_parallel_requests=4
[03:29:36] [INFO] | |-- extra_body={'chat_template_kwargs': {'enable_thinking': False}}
[03:29:36] [INFO] | |-- temperature=1.00
[03:29:36] [INFO] | |-- top_p=1.00
[03:29:36] [INFO] | |-- max_tokens=2048
[03:29:36] [INFO] โก๏ธ Processing llm-text column 'review_summary' with 4 concurrent workers
[03:29:36] [INFO] โฑ๏ธ llm-text column 'review_summary' will report progress after each record
[03:29:37] [INFO] |-- ๐ด llm-text column 'review_summary' progress: 1/10 (10%) complete, 1 ok, 0 failed, 1.89 rec/s, eta 4.8s
[03:29:37] [INFO] |-- ๐ด llm-text column 'review_summary' progress: 2/10 (20%) complete, 2 ok, 0 failed, 2.76 rec/s, eta 2.9s
[03:29:37] [INFO] |-- ๐ฅฑ llm-text column 'review_summary' progress: 3/10 (30%) complete, 3 ok, 0 failed, 3.69 rec/s, eta 1.9s
[03:29:37] [INFO] |-- ๐ฅฑ llm-text column 'review_summary' progress: 4/10 (40%) complete, 4 ok, 0 failed, 3.99 rec/s, eta 1.5s
[03:29:37] [INFO] |-- ๐ llm-text column 'review_summary' progress: 5/10 (50%) complete, 5 ok, 0 failed, 3.53 rec/s, eta 1.4s
[03:29:38] [INFO] |-- ๐ llm-text column 'review_summary' progress: 6/10 (60%) complete, 6 ok, 0 failed, 4.05 rec/s, eta 1.0s
[03:29:38] [INFO] |-- ๐ llm-text column 'review_summary' progress: 7/10 (70%) complete, 7 ok, 0 failed, 4.41 rec/s, eta 0.7s
[03:29:38] [INFO] |-- ๐ llm-text column 'review_summary' progress: 8/10 (80%) complete, 8 ok, 0 failed, 4.69 rec/s, eta 0.4s
[03:29:38] [INFO] |-- ๐ llm-text column 'review_summary' progress: 9/10 (90%) complete, 9 ok, 0 failed, 4.39 rec/s, eta 0.2s
[03:29:38] [INFO] |-- ๐คฉ llm-text column 'review_summary' progress: 10/10 (100%) complete, 10 ok, 0 failed, 4.77 rec/s, eta 0.0s
[03:29:38] [INFO] ๐ Dropping columns: ['customer']
[03:29:38] [INFO] ๐ Model usage summary:
[03:29:38] [INFO] |-- model: nvidia/nemotron-3-nano-30b-a3b
[03:29:38] [INFO] |-- tokens: input=9107, output=4035, total=13142, tps=999
[03:29:38] [INFO] |-- requests: success=30, failed=0, total=30, rpm=136
[03:29:38] [INFO] ๐ Measuring dataset column statistics:
[03:29:38] [INFO] |-- ๐ฒ column: 'product_category'
[03:29:38] [INFO] |-- ๐ฒ column: 'product_subcategory'
[03:29:38] [INFO] |-- ๐ฒ column: 'target_age_range'
[03:29:38] [INFO] |-- ๐ฒ column: 'review_style'
[03:29:38] [INFO] |-- ๐งฉ column: 'customer_name'
[03:29:38] [INFO] |-- ๐งฉ column: 'customer_age'
[03:29:38] [INFO] |-- ๐๏ธ column: 'product'
[03:29:38] [INFO] |-- ๐๏ธ column: 'customer_review'
[03:29:39] [INFO] |-- ๐ column: 'complaint_analysis'
[03:29:39] [INFO] |-- ๐ column: 'action_items'
[03:29:39] [INFO] |-- ๐ column: 'review_summary'
# Load the generated dataset as a pandas DataFrame.
dataset = results.load_dataset()
dataset.head()
| product_category | product_subcategory | target_age_range | review_style | customer_name | customer_age | product | customer_review | complaint_analysis | action_items | review_summary | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Home Office | Lighting | 65+ | structured with bullet points | Alexis Lowe | 44 | {'description': 'A user-friendly, height-adjus... | {'customer_mood': 'happy', 'rating': 5, 'revie... | None | None | The SunGlow Adjustable Warm LED Desk Lamp offe... |
| 1 | Home & Kitchen | Organization | 25-35 | detailed | David Jensen | 88 | {'description': 'A sleek, stackable, magnetic ... | {'customer_mood': 'happy', 'rating': 4, 'revie... | None | None | The Modular Kitchen Organizer impressed this r... |
| 2 | Electronics | Headphones | 18-25 | rambling | Austin Phillips | 69 | {'description': 'Compact, ultra-lightweight tr... | {'customer_mood': 'happy', 'rating': 4, 'revie... | None | None | Despite its pocketโthin design and vibrant RGB... |
| 3 | Home Office | Office Supplies | 50-65 | brief | Bonnie Nelson | 19 | {'description': 'A premium, fully adjustable e... | {'customer_mood': 'happy', 'rating': 5, 'revie... | None | None | The Elegant Ergonomic Executive Chair impresse... |
| 4 | Home Office | Desks | 18-25 | rambling | Veronica Bailey | 90 | {'description': 'Ergonomic standing desk with ... | {'customer_mood': 'happy', 'rating': 4, 'revie... | None | None | The AeroDesk Pro impresses with its sleek desi... |
# Load the analysis results into memory.
analysis = results.load_analysis()
analysis.to_report()
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐จ Data Designer Dataset Profile โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Dataset Overview โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ number of records โ number of columns โ percent complete records โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ 10 โ 11 โ 100.0% โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ ๐ฒ Sampler Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ sampler type โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ product_category โ string โ 4 (40.0%) โ category โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ product_subcategory โ string โ 10 (100.0%) โ subcategory โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ target_age_range โ string โ 5 (50.0%) โ category โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ review_style โ string โ 4 (40.0%) โ category โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ ๐ LLM-Text Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ โ prompt tokens โ completion tokens โ โ column name โ data type โ number unique values โ per record โ per record โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ complaint_analysis โ None โ 0 (0.0%) โ 266.5 +/- 82.3 โ 1.0 +/- 0.0 โ โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ action_items โ None โ 0 (0.0%) โ 22.0 +/- 0.0 โ 1.0 +/- 0.0 โ โโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโค โ review_summary โ string โ 10 (100.0%) โ 238.0 +/- 81.9 โ 57.5 +/- 10.9 โ โโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโ ๐๏ธ LLM-Structured Columns โโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโ โ โ โ โ prompt tokens โ completion tokens โ โ column name โ data type โ number unique values โ per record โ per record โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ product โ dict โ 10 (100.0%) โ 265.0 +/- 0.5 โ 77.5 +/- 16.6 โ โโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโค โ customer_review โ dict โ 10 (100.0%) โ 332.0 +/- 15.3 โ 230.5 +/- 86.4 โ โโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโ ๐งฉ Expression Columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโณโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ column name โ data type โ number unique values โ โกโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฉ โ customer_name โ string โ 10 (100.0%) โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ customer_age โ 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ยถ
Check out the following notebook to learn more about: