数据中心/云端

使用先进的开放式后训练数据集构建自定义推理模型

合成数据已成为大语言模型 (LLM) 后训练程序的标准组成部分。使用从单个或一组经商业许可的开源 LLM 中合成生成的大量示例,通过监督微调或 RLHF 对基础 LLM 进行微调,以获得指导遵循和推理技能。这个过程可以被视为一个知识蒸馏过程,从一组 LLM 教师到目标 LLM 学生。

NVIDIA 最近开源了 Llama-Nemotron 后训练数据集 ,该数据集包含 3000 万个合成训练示例,支持改进数学、代码、一般推理、函数调用和指令遵循功能。作为证据,NVIDIA 使用此数据集训练并发布了三个模型:

每个模型在其各自权重类别内的推理和代理式任务中都具有领先的准确性。

此数据集版本代表着模型开发和改进在开放性和透明度方面的重大进步。除了训练方法、工具和最终模型权重之外,NVIDIA 还发布了完整的训练集,为这种方法的重建和改进提供支持。数据集托管在 Hugging Face 上。

数据混合 

Llama-Nemotron 数据集由大约 3000 万个样本组成,分布在以下广泛类别中:

类别 样本数量
数学 19,840,970 (~1M unique prompts)
代码 小行星 9612677
科学 708920
以下说明 56339
聊天 39792
安全性 30426
表 1。Dataset 类别和样本大小

这些样本来自以下发行版中的一系列开源商业许可模型。

模型 样本数量
Llama-3.3-70B-Instruct 420021
Llama-3.1-Nemotron-70B-Instruct 31218
Llama-3.3-Nemotron-70B – 反馈/ 编辑/ 选择 小行星 22644
Mixtral-8x22B-Instruct-v0.1 30426
DeepSeek-R1 1212994
Qwen-2.5-Math-7B-Instruct 19840970
Qwen-2.5-Coder-32B-Instruct 8917167
Qwen-2.5-72B-Instruct 464658
Qwen-2.5-32B-Instruct 71748
表 2。Source models 和 Sample sizes

提示来自公开和开放的语料库,或合成生成的。提取提示,然后根据质量和复杂性进行筛选,或者生成提示以满足质量和复杂性要求。其中包括过滤,例如删除不一致的提示、易于猜测的答案提示以及语法错误的提示。

响应由各种模型综合生成,其中一些提示包含对打开和关闭模式推理的响应,以训练模型区分两种模式。

聊天数据管护 

对于聊天数据,提示来自公开、真实的用户交互 (wildchat) 和合成数据生成管道。合成提示词涵盖开放式 QA、封闭式 QA 和创意写作等各种任务。

对于每个提示任务,我们都会为 LLM 生成各种主题或关键字,以便提示涵盖各种主题。在回复方面,我们对 LLM 进行了多代推荐,然后使用 Llama-3.1-Nemotron-70B 奖励模型进行了拒绝采样。这确保了回复的高质量。

为创建 LLama-Nemotron 30M 数据集,我们使用 Llama-3.3-70B-instruct 和 DeepSeek R1 模型作为响应生成器(图 1)。

The workflow diagram shows a user with a domain-specific input query that goes through a public LLM as a synthetic response generator and a reward model to score the responses. The end result, after the synthetic response data is filtered, is a synthetic dataset.
图 1。Chat data curation pipeline

要重现此聊天数据收集工作流,请按照 /NVIDIA/NeMo-Curator 教程 notebook 操作。

数学数据管护 

为了构建数据集中以数学为重点的部分,我们开发了一个全面的流程,用于收集和处理 Art of Problem Solving 社区论坛中的数学问题。

我们的方法涉及基于 LLM 的处理的几个阶段,除非另有说明,否则使用 Qwen2.5-32B-Instruct 模型:

  • 问题提取:我们提示 LLM 识别并从最初的论坛帖子中提取所有问题。虽然大多数帖子包含一个问题,但有些帖子包含多个问题,或者根本不包含任何问题。
  • 问题分类 :每个提取的问题都分为证明或非证明,以及多项选择或非多项选择类别。
  • 问题转换 :对于验证问题,我们将其转换为基于答案的问题,需要类似的问题解决技术。通过删除选择并在必要时重新表述问题,所有多选题都可转换为直接回答问题。
  • 答案提取 :对于非 proof 问题,我们尝试从论坛讨论(如果可用)中提取最终答案。
  • 基准消除污染 :我们使用 lmsys 流程 删除了与热门数学基准非常相似的问题,以确保公平评估基于这些数据训练的模型。
  • 解决方案生成 :对于每个问题,我们混合使用多个开放式 LLMs ( Qwen2.5-7B-Math-Instruct , QwQ-32B , DeepSeek-R1 ) 生成多个解决方案。
  • 解决方案验证 :我们仅选择达到正确最终答案 (提取时) 或与多数投票保持一致 (最终答案未知时) 的解决方案。我们使用 LLM-as-a-judge 来验证答案的正确性。

此工作流使用 /NVIDIA/NeMo-Skills 实施,这是一系列用于提高 LLM 技能的工作流。此工具包最初专注于解决数学问题的能力,但现在也可以支持任何基于 LLM 的合成数据生成任务。

编码数据管护 

为了构建用于推理代码生成的监督式微调数据集,我们使用了 CodeContests 数据集中公开提供的编程问题。我们的方法涉及以下主要阶段:

  • 基准去污:我们删除了与热门代码基准 (HumanEval、MBPP、LiveCodeBench 和 BigCodeBench) 中的问题非常相似的问题。我们使用 lmsys 去污剂 来确保所有问题都不会转述这些基准测试中存在的问题。
  • 响应生成 :我们提示 DeepSeek-R1 为编程问题生成多个响应。在最大输出序列长度为 16K token 的情况下,我们为每个问题生成了 32–40 个响应。
  • 推理跟踪和解决方案验证 :我们保留了由完整推理跟踪组成的响应,然后是包含解决方案代码的输出序列。我们解析了解决方案代码,以验证其语法正确性。

与数学数据一样,代码数据也使用 /NVIDIA/NeMo-Skills 中的管道进行筛选。

立即训练模型 

Llama-Nemotron 数据集的公开发布再次肯定了 NVIDIA 对开源 AI 开发的承诺。我们希望开源社区能够接受并改进我们的方法。从 Meta 的 Wildflower 平台或 Hugging Face 下载开放式 Llama-Nemotron 数据集,以构建或微调您的推理模型。

您可以开始复制这些工作流,使用 NeMo Curator 和 NeMo-Skills 为您的应用整理数据集,然后使用 NeMo 框架或 NeMo Customizer 微服务微调模型。

 

标签