mcpField
D
data-designer

data-designer

github.com/nvidia-nemo数据与数据库2.4k187 次安装今天更新
代码仓库

关于 data-designer

使用 Data Designer 库构建合成数据集的技能。它根据请求选择交互或自动驾驶工作流,并生成数据集配置用的 Python 脚本。

主要功能

  1. 01使用 Data Designer 创建数据集
  2. 02提供交互和自动驾驶工作流
  3. 03仅在明确要求时使用种子数据
  4. 04提供个人数据采样指引
  5. 05编写 Python 配置脚本

适用场景

  1. 01根据描述生成合成记录
  2. 02按合理假设构建数据集
  3. 03创建包含个人字段的数据配置
  4. 04调整已有数据集脚本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nvidia-nemo/datadesigner --skill data-designer

安装后在 Claude Code 中输入/data-designer确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

BENCHMARK.md
skill-card.md
skill.oms.sig
evals/
evals.json
references/
person-sampling.md
preview-review.md
seed-datasets.md
scripts/
get_person_object_schema.py
workflows/
autopilot.md
interactive.md

详细介绍

开始之前

不要先探索工作区。工作流的“学习”步骤会为你提供所需的一切信息。

目标

使用 Data Designer 库构建一个合成数据集,使其符合以下描述:

$ARGUMENTS

工作流

如果用户表示不想回答问题,请使用 Autopilot 模式——例如,他们说“你来决定”“自行判断”“做出合理假设”“直接构建”或“给我惊喜”等。否则,使用 Interactive 模式(默认)。

只阅读与所选模式匹配的工作流文件,然后按其执行:

  • Interactive → 阅读 workflows/interactive.md
  • Autopilot → 阅读 workflows/autopilot.md

规则

  • 默认保留输出中的所有列。只有以下情况可以删除列:(1) 用户明确要求,或 (2) 该列仅用于派生其他列(例如,用于提取姓名、城市等的抽样人物对象)。如有疑问,保留该列。
  • 不要建议或询问是否使用种子数据集。只有当用户明确提供种子数据或要求基于现有记录构建时才使用。使用种子数据时,请阅读 references/seed-datasets.md。
  • 如果数据集需要人物数据(姓名、人口统计信息、地址),请阅读 references/person-sampling.md。
  • 如果已有符合数据集描述的数据集脚本,请询问用户是要编辑该脚本还是创建新脚本。

使用提示和常见问题

  • **采样器列和验证列都需要类型和 params。**例如,sampler_type="category" 搭配 params=dd.CategorySamplerParams(...)。
  • **prompt、system_prompt 和 expr 字段中的 Jinja2 模板:**使用 {{ column_name }} 引用列,使用 {{ column_name.field }} 引用嵌套字段。
  • **SamplerColumnConfig:**接受 params,而不是 sampler_params。
  • LLM judge 分数的访问方式:LLMJudgeColumnConfig 会生成一个嵌套字典,其中每个分数名称都对应 {reasoning: str, score: int}。要获取数值分数,请使用 .score 属性。例如,对于名为 quality、分数名为 correctness 的 judge 列,使用 {{ quality.correctness.score }}。使用 {{ quality.correctness }} 会返回完整字典,而不是数值分数。

故障排除

  • **找不到 data-designer CLI:**告知用户当前环境中未安装 data-designer(需要 Python >= 3.10)。询问他们是否希望你创建虚拟环境并安装,还是想自行处理。未经用户许可,不要安装任何内容。
  • **预览期间出现网络错误:**沙盒环境可能阻止了出站请求。请征求用户许可,确认是否可以在禁用沙盒的情况下重试命令。只有在沙盒外重试也失败时,才让用户自行运行命令。

输出模板

在当前目录中编写一个 Python 文件,其中包含返回 DataDesignerConfigBuilder 的 load_config_builder() 函数。为文件取一个能描述用途的名称(例如 customer_reviews.py)。使用 PEP 723 内联元数据声明依赖项。

# /// script
# dependencies = [
#   "data-designer", # always required
#   "pydantic", # only if this script imports from pydantic
#   # add additional dependencies here
# ]
# ///
import data_designer.config as dd
from pydantic import BaseModel, Field


# Use Pydantic models when the output needs to conform to a specific schema
class MyStructuredOutput(BaseModel):
    field_one: str = Field(description="...")
    field_two: int = Field(description="...")


# Use custom generators when built-in column types aren't enough
@dd.custom_column_generator(
    required_columns=["col_a"],
    side_effect_columns=["extra_col"],
)
def generator_function(row: dict) -> dict:
    # add custom logic here that depends on "col_a" and update row in place
    row["name_in_custom_column_config"] = "custom value"
    row["extra_col"] = "extra value"
    return row


def load_config_builder() -> dd.DataDesignerConfigBuilder:
    config_builder = dd.DataDesignerConfigBuilder()

    # Seed dataset (only if the user explicitly mentions a seed dataset path)
    # config_builder.with_seed_dataset(dd.LocalFileSeedSource(path="path/to/seed.parquet"))

    # config_builder.add_column(...)
    # config_builder.add_processor(...)

    return config_builder

只有任务需要时,才包含 Pydantic 模型、自定义生成器、种子数据集和额外依赖。

评论

支持 Markdown