跳到正文
Prime Intellect Blog·· 7 小时前AI 评分67

Prime Intellect 发布 SYNTHETIC-1:200 万条 DeepSeek-R1 协作生成推理轨迹

SYNTHETIC-1 Release: Two Million Collaboratively Generated Reasoning Traces from Deepseek-R1

AI 导读

Prime Intellect 发布 SYNTHETIC-1,这是目前最大的开源 R1 推理数据集,由全球算力贡献者协作生成,覆盖数学、编码和科学任务,共 200 万条推理轨迹,正确性经任务专用验证器确认。

正文 · AI 翻译

SYNTHETIC-1 发布:来自 Deepseek-R1 的两百万条协作生成的推理轨迹

我们正在发布 SYNTHETIC-1,这是由全球计算贡献者协作生成的、源自 Deepseek-R1 的最大开源推理数据集。SYNTHETIC-1 包含涵盖数学、编程和科学等多样化任务的推理轨迹,其正确性已通过任务特定的验证器确认。

除了包含正确和错误推理轨迹及丰富元数据的原始数据外,我们还发布了一个包含 90 万样本的精选 SFT 子集,使其成为迄今为止来自 R1 的最大 SFT 数据集,以及一个从同一问题的正确和错误响应中获得的偏好调优数据集。我们还发布了 SYNTHETIC-1-SFT-7B,并证明我们的数据集在通过监督微调教授模型推理方面非常有效。

对合成数据进行 SFT 仅仅是迈向强大推理模型的第一步。接下来,我们将超越合成数据生成,并准备在全球分布式环境中进行具有可验证奖励的分布式强化学习运行,任何人都可以贡献计算资源。

任务数据集构建

为了生成 SYNTHETIC-1,我们构建了 Genesys,这是一个开源库,实现了从代码生成的单元测试执行到开放式问答的 LLM 评判等多种任务的验证器。Genesys 设计为易于扩展,旨在鼓励社区贡献自己的验证器,并建立一个标准化框架,用于构建验证器并将其集成到合成数据生成和强化学习流程中。

Image

对于 SYNTHETIC-1,Genesys 被构建为支持五种不同的任务,其解决方案由四种不同的验证器进行评判:

数学问题(777k 样本):

  • 任务:来自 NuminaMath 的竞赛级数学问题,通过基于 LLM 的后处理将多项选择题转化为自由形式问题,并过滤掉没有自动可验证响应的问题(例如要求证明的问题)
  • 验证器:基于 math-verify 库的符号验证
  • 任务数据集:PrimeIntellect/verifiable-math-problems

算法编程问题(144k 样本):

真实世界软件工程问题(70k 样本):

  • 任务:源自 CommitPack 数据集中的真实 GitHub 提交。每个问题将提交前的代码文件与 LLM 生成的修改指令配对,该指令利用原始提交消息和提交后文件状态的上下文精心制作。
  • 验证器:LLM 评判器将 LLM 生成的代码与实际的提交后文件状态进行比较。
  • 任务数据集:PrimeIntellect/real-world-swe-problems

开放式 STEM 问答(313k 样本):

  • 任务: 使用 StackExchange 数据集 从广泛的技术和科学主题中精选出的问题。基于 LLM 的过滤仅保留那些具有客观正确答案的问题,排除基于观点的查询,并且只保留需要真正推理而非简单回忆或记忆信息的问题。
  • 验证器: 一个 LLM 评判器通过将回答与最高赞答案进行比较来评分。
  • 任务数据集: PrimeIntellect/stackexchange-question-answering

合成代码理解任务(61k 样本):

  • 任务: 完全合成的任务,目标是在给定代码和某些字符串输入的情况下,预测执行字符串转换的代码的输出。我们通过 LLM 提示生成任意的字符串处理函数,并使用类似于 evol-instruct 的方案递归增加其复杂性。输入包括随机字符串和新闻文章片段,通过执行生成的代码获得真实输出。
  • 验证器: 将 LLM 预测的输出字符串与真实输出字符串直接比较,当完全匹配时判定为正确。
  • 任务数据集: PrimeIntellect/synthetic-code-understanding

数据集结果与后处理

总共,我们在完整任务数据集上采样并验证了 200 万条响应。我们使用全球社区贡献的 8xH200 节点来托管 671B 参数的 R1 模型,并使用 Deepseek 团队推荐的采样设置(见 此处)进行生成。出于效率原因,我们将每个响应的 token 数限制为 12k,因为我们发现不到 5% 的响应达到此长度,并且其中大多数是错误的,因为模型倾向于陷入重复模式,正如 其他研究人员也观察到的那样。

包含所有推理轨迹(包括被验证器判定为错误的轨迹)的原始 200 万数据集可在 PrimeIntellect/SYNTHETIC-1 下获取。除了原始数据外,我们还进行后处理以获得 90 万样本的 SFT 数据集和 1.1 万样本的偏好调优数据集。

SFT 数据集

为了整理我们的 SFT 数据集,我们保留所有来自 200 万样本中被验证为正确或验证器分配分数超过特定阈值的响应。我们对所有验证器使用以下阈值。

  • 数学问题:1(二元验证器)
  • 算法编码问题:0.9(90% 的测试通过)
  • 真实世界软件工程问题:0.9(评判者要求在 0-100 分制上评分,得分 90+)
  • 开放式 STEM 问题回答:0.9(评判者要求在 0-100 分制上评分,得分 90+)
  • 合成代码理解任务:1(二元验证器)

最终的 SFT 数据集可在 PrimeIntellect/SYNTHETIC-1-SFT-Data 下找到。我们进行了初步的 SFT 实验,训练了 SYNTHETIC-1-7B-SFT,发现我们的数据能够显著提升 Qwen-2.5B-Instruct-7B 的推理性能。特别是,我们观察到用于 SFT 的更多推理数据往往会提高模型性能:使用 17k 样本训练的 Bespoke-Stratos-7B 被使用 114k 样本训练的 OpenThinker-7B 超越,而后者又被使用 800k 样本训练的 SYNTHETIC-1-SFT-7B 大幅超越——我们仅发现我们的模型在 Python 编程竞赛中落后,我们怀疑这是由于 SYNTHETIC-1 中 Python 编码数据的比例较低。

Image

偏好数据集

为了整理偏好数据集,我们选择所有至少生成了两个响应的任务,并在其中一个响应根据 SFT 数据集的标准被判定为正确,而另一个不正确或得分低于 0.6(评判分数或单元测试通过率)时将其纳入。这样,我们最终得到了 11.5k 对响应。偏好数据集可在 PrimeIntellect/SYNTHETIC-1-Preference-Data 下找到。

下一步

我们发布 SYNTHETIC-1 数据集只是迈向扩展至最先进开放推理模型的第一步。Deepseek-R1 的训练始于利用合成数据的初始冷启动 SFT 阶段,以及一个规模更大、计算成本更高的强化学习阶段。

在接下来的几周内,我们将宣布 INTELLECT-2,这是一个全球分布式协作强化学习运行,目标是在 30B-70B 参数范围内训练一个最先进的推理模型。

Image

来源:Prime Intellect Blog · primeintellect.ai