NVIDIA Data Designer 框架的核心目标与背景
本次工作坊聚焦于构建通用的数据管道,旨在利用 NVIDIA 开发的 Data Designer 工具为模型或智能体(Agent)添加任意功能。核心教学逻辑是将目标 Agent 行为转化为数据问题,即创建针对特定智能体行为的合成数据并训练模型学习该任务。虽然本次演示以“搜索”为例,但该框架具有高度可复用性,适用于创建除搜索外的其他类型数据。正如 Andrej Karpathy 所言:“互联网数据并非你为 Transformer 所需的数据”。这一观点强调了传统从维基百科或社交媒体等来源处理、策展互联网数据以生成训练数据的局限性,因为难以确定哪些数据真正有用。Data Designer 提出的解决方案是从种子数据集(如 Wikipedia)或从头开始合成生成数据,确保生成的训练数据扎根于真实世界分布。
框架优势与合成数据的痛点分析
Data Designer 是一个完全开源的框架,由 NVIDIA 大型团队开发,用户可通过 pip install data designer 安装。该框架的一个显著成就是已用于创建六万亿五千亿(6.5 trillion)token 的训练数据,且数量每日递增。传统的简单循环提示 LLM 生成合成数据(如产品评论)存在严重缺陷:首先,缺乏多样性,重复提示会导致模型在 10-20 次尝试后开始重复内容;其次,缺失特征间的相关性,无法保证数据集中各要素的逻辑关联;此外,还缺乏多模态支持、对生成过程的控制能力以及验证机制。更重要的是,传统方法生成的数据集难以共享复现,因为接收方无法获知生成过程。Data Designer 通过列式抽象解决这些问题。
Data Designer 的工作机制与数据生成流程
Data Designer 的核心工作流是按列(column)逐步生成数据。首先,用户可以提供一个可选的种子列(seed column),支持 CSV、JSONL 或 Parquet 格式,例如使用公司内部数据作为种子。接着,通过添加采样器列(sampler columns)注入多样性;例如在生成编程数据集时,可以设置“简单、中等、困难”作为采样器列。进一步地,还可以添加子采样器(subsamplers),将“简单”映射到特定类型的问题,“中等”映射到另一类问题,以此类推。框架支持生成文本、结构化数据、代码以及图像(多模态),并允许对生成的数据进行验证。这种结构化的列式生成方式确保了数据的可控性、多样性和可复现性,从而克服了传统合成数据生成的弊端。
Data Designer 核心概念与开源生态
NVIDIA Data Designer 是一个完全开源的工具库,其核心理念是通过构建一个描述数据集结构的 DAG(有向无环图) 来自动化数据生成过程。用户只需准备好 DAG,点击一次即可输出最终的数据集。为了帮助开发者掌握这一工具,官方提供了三个循序渐进的 Notebook 示例,并强调理解底层代码对于使用 CodeEx 或 Cloud Code 等高级工具编写自定义合成数据工作流至关重要。所有示例代码、幻灯片及 Notebook 均托管在 GitHub 仓库中,方便用户直接尝试和复现。
"Build a DAG or a graph which describes how your dataset should be and then this DAG once you're ready to execute on it you can just hit one click and get a dataset out of it."
环境配置与模型提供商支持
在第一个 Notebook "Intro to Data Designer"中,首要步骤是设置环境并导入库。该工具支持多种模型提供商(Model Providers),演示中使用了 VLLM 进行本地推理。用户可以在 NVIDIA GPU 集群上访问如 GPT-OSS 120 billion 等开源模型。虽然部分闭源模型因许可问题限制用于训练数据生成,但开放模型通常没有此类障碍。演示者选取了包含维基百科主题的 CSV 文件作为种子数据,通过配置构建器启动工作流。用户可以根据需求指定问题的难度分布(简单、中等、困难)及其权重比例,例如增加中等难度题目的占比。
提示词工程与结构化数据生成
在定义问题类型时,Data Designer 允许添加不同的采样列。例如,“简单”难度可能对应直接查找或定义,而“困难”难度则涉及更详细或冷门的细节。通过调用 add column 函数并编写提示词,系统利用 Jinja2 模板在运行时将种子数据中的主题插入提示词中,确保每个发送给 LLM 的提示都是独特且多样化的。此外,工具支持生成结构化数据(如 JSON 或 Markdown),尽管 LLM 有时无法完美遵循格式要求,导致部分记录被丢弃。为了评估生成质量,系统引入了 LLM as a Judge 机制,由另一个模型对生成的问题和答案进行评分。
"So whenever you put these ginger templating for topic, what it's going to do is the topics you created in the previous or in the seed that you had from your Wikipedia, it's going to insert those at runtime into this prompt."
预览模式与批量生成工作流
Data Designer 提供了预览模式(Preview Mode),在正式大规模生成前仅创建三条记录供用户检查。演示中展示了一个关于“万维网”的困难问题,涉及 W3C 推荐标准与挪威城市机场代码的双关语。通过预览功能,用户可以直观地查看生成的问答对、答案以及质量评分。确认无误后,用户可进入批量模式(Batch Mode),通过 data_designer.create 指定生成的记录数量。该工具采用逐列生成的策略:先生成所有问题,再生成对应的答案,最后整合为完整的数据集。生成的数据集还可以直接推送到 Hugging Face 平台,并通过可视化工具查看统计信息。
"So the way data creation works is we have something called preview mode in data designer. So essentially when you hit preview what's going to happen is it's going to try to create three records for you and then you can go and look at those records."
MCP标准与Tavily工具集成
MCP(Model Context Protocol)是一种允许智能体连接外部工具的标准化协议。在本案例中,演示者使用Tavily作为搜索工具,旨在教导模型如何执行有效的网络搜索。这一过程建立在第一个笔记本的基础之上,但引入了智能体数据(Agentic Data)的创建逻辑。与仅要求模型生成答案不同,现在的流程是先生成问题,然后指示模型利用可用的Tavily搜索工具去互联网上寻找答案。这种转变强调了从直接生成到通过工具检索的范式转移。数据创建过程具有高度的迭代性,并非一次性完成。创作者需要生成少量记录进行预览,若对结果不满意,则需调整工作流或提示词(Prompts),直到满意后再进行批量执行。这种迭代机制确保了训练数据的质量,使模型能够学习如何与外部工具交互以解决复杂问题。
实时信息获取的挑战与动机
作为NVIDIA Neotron团队的研究科学家,演示者指出Neotron系列开源基础模型需要掌握搜索能力。核心动机在于解决知识截止(Knowledge Cutoff)问题。例如,许多模型在2023年12月冻结数据并训练,导致其无法回答关于“今天天气”或近期事件的问题。由于模型必须停止收集数据以开始训练,其内部知识无法覆盖训练截止日之后的信息。因此,教会模型使用搜索工具以获取实时信息变得至关重要。这不仅是补充知识的手段,更是让模型具备处理当前事件能力的必要途径。通过集成搜索功能,模型能够突破静态训练数据的限制,动态获取最新信息,从而提供更有用和准确的回答。这一需求推动了从单纯的语言生成向具备实时信息检索能力的智能体系统的演进。
基准测试BrowseComp与复杂推理案例
为了衡量模型在搜索能力上的进步,团队使用了BrowseComp基准测试。这是一个标准化的、无答案的困难测试集。演示者引用了一个极具挑战性的例子:"在1990年至1994年之间,哪场足球比赛由巴西裁判执法,且两队各得两张黄牌,总共四张?"。这类问题无法通过简单的记忆回答,而是需要复杂的推理和多步搜索。在过去的方法中,人类专家会将复杂查询分解为多个子问题,在Google等搜索引擎上逐步获取信息,然后综合推理得出答案。现在的目标是让模型具备这种能力:它需要自主决定搜索策略,执行多次查询(如先确认球队名称),解析返回的URL标题和内容片段,并最终整合信息以回答原始问题。这展示了从单步问答到多跳推理(Multi-hop Reasoning)的能力提升,是智能体搜索训练的核心目标。
构建基于图结构的种子数据集
为了训练模型在 BrowseCom 基准测试中从 0% 提升至 30%,研究团队并未使用传统的维基百科文本,而是采用了 Wikidata(维基数据)作为基础。这是一种结构化的知识图谱,而非单纯的文本集合。种子数据集的生成依赖于在 Wikidata 节点间进行随机游走(Random Walks)。具体而言,系统从一个实体出发,沿着关系边进行 5 到 8 跳(hops)的遍历。例如,从 "Nvidia" 实体出发,连接到 CEO "Jensen Huang",再连接到其母校 "Oregon State University",进而关联到学校所在的 "Benton County"(本顿县),最后追溯到该县命名来源人物 "Thomas Hart Benton"。这种多跳路径构成了复杂的实体关联网络,为后续生成高难度搜索谜题提供了结构基础。
设计难以直接检索的搜索谜题
生成的种子路径必须转化为具有挑战性的 "搜索谜题"(Search Riddles),以确保模型无法通过简单的关键词匹配或预训练记忆获得答案。核心原则是设计那些在互联网上难以直接找到现成文本块的问题。如果问题过于直白,大型语言模型(LLM)可能会选择 "作弊" 直接输出答案,而不会调用搜索工具。因此,谜题需要像谜语一样复杂,迫使模型必须使用外部工具进行推理和搜索。例如,基于上述路径生成的谜题是:"由在以其命名者为本顿县的地方上大学的人创立的公司是哪一家?" 这类问题没有直接的网页摘要可以回答,必须通过多步搜索和逻辑推理才能得出 "Ireland versus Romania" 等具体答案,从而有效激发模型的搜索行为。
数据生成流程与工具约束
数据集的创建过程包括将种子实体转化为提示词,并让模型生成对应的搜索响应。这一流程涉及使用 Tavily 作为搜索引擎工具,并通过 MCP(Model Context Protocol)进行集成。在提示工程中,系统被设定为 "专家搜索代理",要求输出包含最终答案、支持性 URL 和简短理由的 JSON 格式数据。为了防止模型过度消耗资源,提示词中包含了严格的工具使用指南,例如限制调用次数以避免高昂的费用。输入端包含 Wikidata 的跳数路径作为上下文,要求模型利用这些实体生成问题;输出端则通过 "Agent Solution Draw" 展示模型的推理过程,包括多次工具调用和中间推理步骤。这种端到端的数据生成方法确保了训练数据既包含正确的答案,也包含了有效的搜索策略和工具调用序列。
Data Designer 提升 Bird Benchmark 性能至 41%
NVIDIA 的 Data Designer 工具在数据生成方面展现了显著成效,特别是在 SQL 相关任务上。团队将 Bird Benchmark(一个评估大型语言模型生成复杂 SQL 查询能力的基准测试)的得分从 26% 提升到了 41%。这一进步得益于 Data Designer 生成的训练数据质量,相关细节已在官方博客中详细阐述。
数据评估的多维挑战与混合验证策略
在构建高质量数据集时,如何准确评估数据的真实性、相关性和准确性是核心挑战。由于知识库数据可能过时(stale),简单的确定性匹配函数往往导致低分,例如演讲者提到的简单匹配仅获得 24% 的分数。这并不意味着数据完全无用,而是反映了评估方法本身的局限性。评估是一个多维度的复杂问题,不能仅依赖单一指标。如果检查100个问题并发现它们不存在于数据集中,只能证明这100个特定问题已解决,但可能还存在其他数千个问题。因此,需要采用混合评估层来建立信心。
一种有效策略是引入 LLM as a judge(大语言模型作为裁判),但这并非万能。演讲者采取了一种更严谨的方法:将LLM的评判结果发送给人类评审员进行交叉检查(cross-check),以此验证LLM判断的正确性,从而获得更高的置信度。此外,在搜索场景中还可以结合实时信息。必须找到这些不同评估层的并集,才能确保数据集的整体质量。这种混合方法旨在解决单一评估源可能带来的偏差或遗漏。
"Evaluation is a problem where if you check for a 100 problems and if you see that those 100 issues don't exist in your data set, there could be a thousand other issues."
多轮工具调用与结构化输出生成案例
除了单轮的搜索工具调用,团队还致力于开发更复杂的 多轮工具调用(multi-turn tool calls) 数据集。在单轮场景中,交互是从提示到响应的一次性过程;而在多轮场景中,Agent可能需要连续调用多种工具(如天气查询、代码执行等)来完成复杂任务。这种能力的提升对于将Agent作为软件应用核心至关重要。
另一个关键领域是 结构化输出生成(structured output generation)。演讲者提到了一个名为 strructal 的基准测试,专门衡量模型在生成 TOML、JSON、YAML、CSV 和 XML 等格式时的性能。随着Agent在软件开发中的普及,可靠地输出标准结构化数据成为刚需。尽管社交媒体上常有对LLM格式错误能力的调侃(如blowtorch meme),但在实际应用中,Agent必须能够稳定地提供符合规范的JSON或YAML格式。此外,团队还涉及SQL生成、科学推理以及使用Data Designer为STEM性能预训练创建数据集等工作,展示了数据生成的广泛适用性。
最佳实践:多样性优先与代码化工作流
在生成数据时,“多样性优于数量”(diversity before volume) 是核心原则。引用 Kimi K2 论文的观点,“10种策略训练一个epoch优于单一策略训练十个epoch”。这意味着在数据生成过程中,应优先保证样本的多样性和代表性,而非盲目追求规模。
同时,始终使用最便宜且正确的列类型。例如,用LLM生成采样器(sampler)是资源的浪费,因为逻辑规则可以用Python编写;但用LLM生成文本数据则是合理的。工作流通常包括:使用Python编写采样器 -> 过度生产(overproduce)数据 -> 过滤筛选 -> 验证预览。直接查看样本是判断数据质量的最佳方式。通过Data Designer,整个创建过程被转化为可版本控制、可共享的代码(code that creates data)。这种代码化的数据生成方式允许用户基于现有模板进行修改,快速构建自定义数据集。
"10 strategies one epoch is better than 10 epochs one strategy."
Neotron Personas:基于人口统计分布的合成数据
为了解决合成数据是否符合现实世界分布的问题,团队创建了 Neotron Personas USA。这一概念灵感来源于《Scaling Synthetic Data Creation with 1 Billion Personas》论文。Persona(人物画像) 的核心作用是确保生成的数据反映特定地区或群体的真实人口统计特征。例如,在创建旧金山的医疗记录数据集时,必须确保数据中的人口统计学分布与旧金山的实际人口结构一致。
通过Data Designer生成的Neotron Personas不仅是一个数据集,更成为了一个种子(seed),用于创建更多符合特定分布的数据集。这种方法允许AI模型从用户数据的聚合中学习,而 无需泄露任何个人的敏感信息。这对于医疗等受HIPAA合规性严格监管的行业尤为重要,它解决了在保护隐私的前提下利用真实世界分布训练模型的关键难题。通过这种方式,团队能够在不接触原始个人数据的情况下,确保合成数据的代表性和合规性。
"This essentially allows you to learn from user data without actually leaking any single person's information out there."
基于百万级角色画像构建合成数据基础
演讲者首先介绍了 NVIDIA Data Designer 的核心组件之一:大规模的角色(Persona)数据集。这些角色并非简单的随机生成,而是包含详尽的人口统计学特征,如姓名(名、中间名、姓)、性别、年龄以及性格描述。例如,演讲者展示了一个具体的角色案例:“一个 50 岁的药剂师,拥有自由灵魂的性格,平衡了放松的生活态度”。NVIDIA 构建了包含一百万个此类详细角色的数据集。这些数据不仅用于直接测试,更作为种子数据供用户自行扩展和创造更多合成样本。通过这种方式,开发者可以获取具备真实世界分布特征的基础数据,而非依赖大语言模型(LLM)可能产生的单一或平均化输出。这种基于真实人口统计分布生成的角色库,为后续生成符合现实逻辑的复杂数据(如税务表格)提供了必要的上下文约束。
解决隐私泄露与分布偏差的双重挑战
在数据合成过程中,演讲者强调了两个核心痛点:个人隐私保护和数据真实性。首先,合成数据的初衷之一是学习聚合信息而不涉及真实个体。例如,系统可以生成合成的社会保障号码或税务数据(如 W-2 表格),这些数据在结构上真实,但绝不对应任何真实的个人身份。其次,针对 LLM 容易输出“平均化”或重复内容的问题(如每次讲同一个笑话),NVIDIA 的方法确保生成的税务数据符合现实世界的统计分布。演讲者举了一个极端的例子:“在美国,恰好有七个人未满 18 岁且年收入超过一千万美元”,而更常见的情况是不同年龄段对应不同的收入分布。通过确保合成表格(如 1040 税表)遵循真实世界的概率分布,避免了 LLM 直接生成随机数值的偏差。这种对数据分布的严格把控,使得合成数据在训练模型时具有更高的可用性和安全性。
NVIDIA 开源工具链与全球角色库生态
除了 Data Designer,NVIDIA 还推出了一系列完全开源的数据处理工具,形成了完整的工作流。首先是 NeMo Curator,用于对真实世界数据进行策展、修改和后处理,使其适合训练 LLM;其次是 NeMo Anonymizer,专门用于匿名化敏感信息。演讲者坦言:“我曾在不知情的情况下将 API 密钥或其他敏感日志数据输入到代理中”,因此自动匿名化工具对于清理 Agent 产生的日志至关重要。此外,还有 NeMo Safe Synthesizer,用于生成敏感数据集的安全合成版本。所有这些工具均为完全开源。在角色库方面,NVIDIA 利用人口普查数据和概率图模型(PGM)处理人口统计信息,生成了针对美国、日本、印度、新加坡和巴西等不同国家/地区的定制化角色数据集。这使得开发者能够针对特定地域构建定制化的 AI 应用,确保数据符合当地的人口和社会特征。
结论
NVIDIA Data Designer通过列式抽象与DAG工作流,有效解决了传统合成数据缺乏多样性、相关性缺失及不可复现的痛点。其核心优势在于能生成高达6.5万亿token的高质量数据,并支持多模态与复杂逻辑约束。实证表明,该框架在Bird Benchmark上将SQL生成准确率从26%提升至41%,并通过基于Wikidata的多跳路径设计,使模型在BrowseComp基准测试中具备从0%向30%突破的潜力。此外,结合Neotron Personas确保了数据符合真实人口统计分布且保护隐私。
然而,该方法仍面临评估维度单一及LLM格式遵循不稳定的挑战。其适用条件依赖于开源模型生态与迭代式提示工程优化,强调“多样性优于数量”及代码化工作流。尽管在搜索推理与结构化输出方面展现强大能力,但需结合LLM裁判、人类交叉验证及实时信息获取机制以建立综合信心。