我们发布了 CoderForge-Preview——目前最大的开源测试验证编码智能体数据集。通过利用该数据集微调 Qwen-3 32B,我们在 SWE-Bench Verified 上的性能相比基础模型提升了 23.0%,达到 59.4%,在 ≤32B 参数范围内的开源数据模型中排名第一。
随着编码智能体能力不断增强,研究社区面临一个关键瓶颈:缺乏大规模、高质量的开源训练数据。虽然专有模型持续进步,但开源权重替代方案因缺乏有效智能体训练所需的长上下文、测试验证轨迹而受到制约。
我们发布了 CoderForge-Preview,这是迄今为止最大的编码智能体轨迹开源数据集——包含 258k 条测试验证轨迹(155k 通过 | 103k 失败),涵盖 1,655 个代码仓库中的 51K 个任务,并分享了使用该数据集训练 32B 和 4B 模型的结果。通过公开发布 CoderForge,我们旨在加速整个开源 AI 社区的进步,使全球研究人员能够构建、研究并改进我们的工作。微调 Qwen-3 32B 在 SWE-Bench Verified 上达到 59.4% 的 pass@1 [8],在 ≤32B 参数范围内的开源数据模型中排名第一。
我们发布了完整的轨迹数据集,以及 32B 模型的评估轨迹。
CoderForge-Preview 数据
我们使用 Qwen3-Coder-480B 从三个不同的任务源生成智能体轨迹,并应用拒绝采样过滤掉未能通过测试的解决方案。该过程产生了 51K 个任务上的 258K 条长上下文轨迹(最长 128K tokens),其中我们保留了 155K 条高质量、测试验证的轨迹用于 SFT 训练。
任务来源
我们从三个来源获取任务:R2E-Gym [5]、SWE-Smith [6] 和 SWE-Rebench [7]:
| 来源 | 任务数 | 唯一仓库数 |
|---|---|---|
| R2E-Gym | 4,216 | 9 |
| SWE-Smith | 37,221 | 124 |
| SWE-Rebench | 9,764 | 1,577 |
| 总计 | 51,201 | 1,655 |
设置
对于智能体框架,我们将 OpenHands v0.52.1 框架 [4] 集成到 R2E-Gym [5] 数据生成框架中。它包含四个主要工具:bash 执行(execute_bash)、文件编辑(str_replace_editor)、日志思考(think)和任务完成(finish)。OpenHands 预安装在每个 Docker 评估环境中,使 LLM 智能体能够通过标准化的动作/观察接口与隔离的代码仓库交互。每个任务在隔离的 Docker 容器中执行,智能体迭代发出 bash 命令和文件编辑,最多 100 步,以生成最终补丁。
我们使用 Qwen3-Coder-480B 作为数据生成的主要模型。我们使用温度为 0.7,top_p 为 0.8,最大新 tokens 为 32,768。为了增加成功轨迹的数量,我们对每个问题生成多条——R2E-Gym 和 SWE-Rebench 生成 8 条,SWE-Smith 生成 4 条。我们过滤仅保留最终补丁通过所有仓库测试的轨迹。为避免评估泄漏,我们排除了任何与 SWE-Bench Verified 样本共享相同(仓库,基础提交)对或问题陈述的任务。
与其他数据集的比较
| 数据集 | 教师模型 | 上下文长度 | 大小(总计) | 大小(过滤后) |
|---|---|---|---|---|
| R2E-Gym/R2EGym-SFT-Trajectories | Claude Sonnet 3.5 | 20000 | 3,231 | 3,231 |
| SWE-bench/SWE-smith-trajectories | Claude Sonnet 3.7 | 32768 | 49,897 | 21,513 |
| allenai/SERA [10] | GLM-4.6 | 32768 | 25,224 | 25,224 |
| nex-agi/agent-sft (agentic_code) [11] | DeepSeek-V3.1-Nex-N1 | 128000 | 24,796 | 24,796 |
| nebius/SWE-rebench-openhands-轨迹 [12] | Qwen3-Coder-480B | 128000 | 67,074 | 32,161 |
| CoderForge-Preview 数据 | Qwen3-Coder-480B | 128000 | 258,134 | 155,144 |
CoderForge-Preview 数据是同类发布中规模最大、性能最佳的编码智能体轨迹数据集。在 128K 上下文长度下,共有 258,134 条轨迹,其中 155,144 条成功轨迹,在规模和长上下文覆盖方面均大幅超越以往数据集。
按任务来源的轨迹成功率
对于每条轨迹,我们运行任务提供的相关测试来检查模型是否解决了该任务。对于 R2E-Gym 任务,解决率始终最高,从 Pass@1 的 62.9% 上升到 Pass@8 的 80.3%。SWE-Rebench 也从多次尝试采样中获益显著,通过 Pass@8 从 57.5% 提高到 73.9%。SWE-Smith 的提升较为温和,从 Pass@1 的 58.8% 增加到 Pass@4 的 64.9%。总体而言,这一趋势凸显了多样本生成在提高成功轨迹产出方面的有效性,随着尝试次数的增加,收益递减但持续存在。
最终任务来源分布
我们根据轨迹是否成功完成任务对其进行过滤,得到如下任务分布。在我们的 SFT 实验中,我们仅训练成功轨迹。
| 任务来源 | 生成的轨迹 | 生成的轨迹(奖励 = 1.0) |
|---|---|---|
| R2E-Gym | 32,964 | 20,904 |
| SWE-Smith | 148,001 | 89,501 |
| SWE-Rebench | 77,169 | 44,739 |
| 总计 | 258,134 | 155,144 |
轨迹特征
数据生成成本
| 来源 | # 完成 API | 提示令牌 | 输出令牌 | 平均输出令牌 | 缓存命中率 |
|---|---|---|---|---|---|
| R2E-Gym | 2.18M | 59B | 404M | 185.4 | 96.64% |
| SWE-Smith | 8.47M | 238B | 1,544M | 182.4 | 90.15% |
| SWE-Rebench | 4.99M | 155B | 965M | 193.3 | 88.64% |
| 总计 | 15.64M | 452B | 2.91B | 186.3 | 90.48% |
通过高效的长上下文推理和积极的提示缓存,实现了大规模数据生成。在 R2E-Gym、SWE-Smith 和 SWE-Rebench 中,我们发出了 15.64M 次 API 完成,处理了 452B 个提示令牌并生成了 2.91B 个输出令牌,总体缓存命中率约为 90%。使用每百万提示令牌 0.50 美元、每百万缓存令牌 0.25 美元和每百万输出令牌 2.00 美元的定价模型,生成这个大规模、长上下文轨迹数据集的总成本为 13 万美元。
轨迹分析
| 来源 | 中位长度 | 平均长度 | P99 长度 | 总训练令牌 |
|---|---|---|---|---|
| R2E-Gym | 39,599 | 42,149 | 83,549 | 0.97B |
| SWE-Smith | 36,008 | 39,313 | 88,101 | 3.65B |
| SWE-Rebench | 41,996 | 45,236 | 99,391 | 2.08B |
| 总计 | 38,052 | 41,398 | 91,150 | 6.70B |
该表显示了各数据源生成的智能体轨迹的长度分布。中位轨迹长度在 36K–42K 令牌之间,平均长度约为 41K 令牌,P99 长度接近 100K 令牌,凸显了数据的长上下文特性。合并后的数据集包含 6.70B 个总训练令牌。
| 来源 | 平均步数(成功) | 平均步数(失败) |
|---|---|---|
| R2E-Gym | 55.7 | 65.6 |
| SWE-Smith | 48.3 | 61.0 |
| SWE-Rebench | 56.2 | 72.0 |
我们比较了各数据源成功轨迹与失败轨迹的平均智能体步数。在所有情况下,失败轨迹所需的步数明显更多,平均比成功轨迹多 18–28%。通过仅训练成功轨迹,我们旨在推动模型
向高效的任务解决和简洁的决策迈进,而不是从冗长的无效序列中学习。
许可证过滤
为确保数据集能够负责任地使用,我们对每个任务所引用的确切提交版本中的每个仓库进行了全面的许可证审计。我们从每个仓库的特定提交SHA中检索了LICENSE文件,并使用scancode-toolkit(Linux基金会和SPDX项目使用的行业标准许可证检测引擎)进行识别。
我们仅保留来自宽松开源许可证的仓库的轨迹:
| 许可证 | SPDX标识符 |
|---|---|
| MIT许可证 | MIT |
| BSD 3-Clause | BSD-3-Clause |
| Apache许可证 2.0 | Apache-2.0 |
| BSD许可证 | BSD |
| BSD 2-Clause | BSD-2-Clause |
| 历史许可声明与免责声明 | HPND |
| ISC许可证 | ISC |
| PostgreSQL许可证 | PostgreSQL |
| Python软件基金会许可证 | PSF-2.0 |
| Creative Commons Zero 1.0 | CC0-1.0 |
| MIT无署名 | MIT-0 |
| MIT-CMU许可证 | MIT-CMU |
| BSD 4-Clause | BSD-4-Clause |
| 双许可证:MIT和Apache-2.0 | MIT AND Apache-2.0 |
| 双许可证:Apache-2.0和BSD-3-Clause | Apache-2.0 AND BSD-3-Clause |
| 双许可证:BSD-3-Clause和MIT | BSD-3-Clause AND MIT |
CoderForge-预览训练实验
训练设置
我们选择稠密模型Qwen3-32B [1]作为微调的基础模型。
为了支持128K长度序列的高效训练,我们通过Ulysses [2]采用序列并行,将序列维度分区并使用优化的全到全通信来计算注意力。此外,由于数据集中轨迹长度各异,我们使用多打包将多个较短的轨迹打包到同一训练序列中,同时通过边界感知掩码 [3]防止跨示例的注意力污染。
我们使用令牌级损失公式,在FSDP和序列并行GPU上聚合整个批次中所有令牌的梯度。这意味着每个令牌对整体损失的贡献相对于批次中的总令牌数进行归一化,从而使长序列和短序列得到一致的加权。
给定 :排名 上微批次 的平均交叉熵损失,:排名 上微批次 中的有效令牌数,:所有排名和微批次中的总有效令牌数,归一化损失计算如下:
我们在8个节点(64块H100 GPU)上使用FSDP2(分片大小=8)、Ulysses序列并行(大小=8)、BF16、梯度检查点和FlashAttention-2训练Qwen3-32B模型。为了最大化训练吞吐量,我们使用顺序打包来充分利用128K上下文窗口,确保在不同长度的序列之间最小化填充浪费。详细的长度分析如下所示:
| 指标 | 值 | 解释 |
|---|---|---|
| 平均长度 | 104,891 令牌 | 约82%的128K被利用 |
| 中位长度 | 105,274 令牌 | 对称分布 |
| 标准差 | 5,906 令牌 | 低方差(约5.6%变异系数) |
| 最小值/最大值 | 77,501 / 123,975 | 良好的范围覆盖 |
聊天模板
我们采用Qwen Coder的聊天模板,该模板具有XML格式的工具调用,更适合LLM。我们还在Huggingface上数据集的trajectories-tokenized_qwencoder子集中发布了带有损失掩码的令牌化轨迹。
评估
主要结果
我们在SWE-bench Verified上评估我们的模型,该基准是500个真实GitHub问题的精选子集
问题,用于测试端到端软件工程能力。我们的最佳模型在第3.13轮达到59.4%的pass@1和78.56%的pass@16,展示了强大的单次尝试准确性和多样本的出色覆盖率。我们的训练数据CoderForge-Preview Data结合了来自多个来源的轨迹,以最大化多样性和覆盖率。
| 模型 | SWE-Bench-Verified (pass@1) | SWE-Bench-Verified (pass@16) |
|---|---|---|
| CoderForge-Preview-32B | 59.4% | 78.56% |
| CoderForge-Preview-4B | 43.0% | - |
重复惩罚
在早期训练中,我们注意到str_replace_editor工具因模型重复其想要替换的字符串而失败的情况很多。我们研究了轻微的重复惩罚是否有助于抑制退化循环而不损害精确的代码编辑,并将结果放在下面:
结论:对于生产部署,我们建议在后期轮次检查点中不使用重复惩罚。然而,对于早期停止的模型,轻微的惩罚可以提供有用的正则化效果。
缩小规模的实验
为了测试数据集是否在较小规模下提供学习信号,我们对Qwen3‑4B进行了微调。SWE-bench Verified结果展示了在5个轮次中清晰的学习进展:4B模型得分提升至43.0%(第5轮)。
重复惩罚消融实验显示出与32B设置类似的趋势:它在早期(第1-3轮)有帮助,但在性能最佳的后期检查点中无益。
4B(43.0%)和32B(59.4%)之间的峰值性能差距证实了模型容量对于复杂代理任务的重要性,然而一致的改进轨迹验证了我们的训练数据在两个规模上都提供了真正的信号。
评估轨迹发布
我们发布了CoderForge-Preview-32B的评估轨迹。
我们的设置如下:
- 框架:OpenHands v0.52.1
- 采样参数:
- temperature: 0.7
- top_p: 0.8
- max_tokens: 32768
- max_iterations: 100 性能因仓库而异。排除样本量非常小的仓库(例如n<5),scikit‑learn的解决率最高(84.4%),其次是matplotlib(64.7%)和xarray(63.6%)。对于Django(n=231;占基准的46%),模型解决了61.9%的实例。一些低解决率(例如seaborn)基于非常小的n,应谨慎解读。
评估提示模板
对于数据生成和评估,我们采用OpenHands SWE-Bench模板:
/workspace/{{ workspace_dir_name }}
我已将Python代码仓库上传到目录{{ workspace_dir_name }}。请考虑以下问题描述:
{{ instance.problem_statement }}
您能帮我实现仓库中必要的更改,以满足
我已经处理了
此外,开发Python环境已经为您设置好(即所有依赖项已安装),因此您无需安装其他包。
您的任务是确保对/workspace/{{ workspace_dir_name }}目录中的非测试文件进行最小更改,以满足
请按照以下阶段解决问题:
阶段1. 阅读:阅读问题并用更清晰的术语重新表述
1.1 如果有代码或配置片段。用语言表达任何最佳实践或约定
中的提及。
1.2 突出显示消息错误、方法名称、变量、文件名、堆栈跟踪和技术细节。
1.3 用清晰的术语解释问题。
1.4 列举重现问题的步骤。
1.5 强调在测试和修复问题时应考虑的最佳实践。
阶段 2. 运行:在仓库上安装并运行测试
2.1 遵循自述文件
2.2 安装环境及所需的一切
2.2 迭代并找出如何运行测试
阶段 3. 探索:查找与问题及可能解决方案相关的文件
3.1 使用 grep 搜索相关方法、类、关键字和错误消息。
3.2 识别与问题描述相关的所有文件。
3.3 提出要修复问题的方法和文件,并解释原因。
3.4 从可能的文件位置中,选择最可能修复问题的位置。
阶段 4. 测试创建:在实施任何修复之前,创建一个脚本来重现和验证问题。
4.1 查看仓库中现有的测试文件,了解测试格式/结构。
4.2 创建一个最小重现脚本,重现定位到的问题。
4.3 运行重现脚本,确认你正在重现问题。
4.4 根据需要调整重现脚本。
阶段 5. 修复分析:清楚地说明问题以及如何修复
5.1 清楚地说明问题是什么。
5.2 清楚地说明问题所在位置。
5.3 清楚地说明测试如何重现问题。
5.4 清楚地说明修复中应考虑的最佳实践。
5.5 清楚地说明如何修复问题。
阶段 6. 修复实施:编辑源代码以实施你选择的解决方案。
6.1 进行最小、有针对性的更改以修复问题。
阶段 7. 验证:彻底测试你的实现。
7.1 运行你的重现脚本以验证修复有效。
7.2 向测试脚本添加边缘情况,以确保全面覆盖。
7.3 运行与修改代码相关的现有测试,以确保没有破坏任何东西。 8. 最终审查:仔细重新阅读问题描述,并将你的更改与基础提交 {{ instance.base_commit }} 进行比较。 8.1 确保你已完全满足所有要求。
8.2 运行仓库中与以下内容相关的任何测试:
8.2.1 你正在修复的问题
8.2.2 你修改的文件
8.2.3 你更改的函数
8.3 如果任何测试失败,请修改你的实现,直到所有测试通过
在探索、测试和推理时要彻底。思考过程较长也没关系——质量和完整性比简洁更重要。
局限性
数据:
- 对不同框架的适应性:我们使用单一框架和一组工具生成所有数据,没有进行排列组合,因此使用此数据通过 SFT 训练的模型在使用不同框架、工具和提示模板时可能表现更差。
- 任务范围:由于我们的数据源主要关注修复错误,使用此数据通过 SFT 训练的模型在超出该范围的任务(如功能实现)上可能能力较弱。
- 用户交互:大多数真实的编码智能体使用涉及用户干预和与智能体的协作,形式为整个轨迹中发送的用户消息,而不仅仅是在开始时。目前,这种交互类型在开放的编码智能体数据集中缺失,包括我们的数据集。因此,仅使用此数据通过 SFT 训练的模型在交互环境中可能表现不佳。 训练:
- 有限的模型规模探索:由于资源限制,我们只训练了两种规模
s. 探索更大的模型可能会带来进一步的改进。
- 最小超参数调优:由于资源限制,我们使用了固定的训练配置(学习率1e-5、余弦调度、128K上下文),没有进行广泛的超参数搜索。系统地调整学习率、批次大小、预热步数和损失权重可能会改善收敛速度和最终性能。 评估:
- 在此次发布中,我们主要使用标准的SWE-Bench-Verified进行评估,该基准最近引发了关于信号质量的广泛讨论。在下一轮迭代中,我们将对更多编码和终端智能体基准进行评估。 结论
在这项工作中,我们专注于大规模智能体数据生成,从开源项目中收集了51K个不同的任务,并生成了长周期、多步骤的监督微调(SFT)轨迹。我们的结果表明,简单的数据生成流程结合纯SFT训练可以显著提升智能体编码性能。
展望未来,我们计划进一步扩展数据生成,使用不同的脚手架、工具、排列组合,并训练更大的模型,以更好地理解扩展的上限。此外,我们打算遵循DeepSWE [9]的训练范式,在微调模型的基础上应用智能体强化学习,以推动进一步的性能提升。
BibTeX引用
@misc{CoderForge2026, title = {CoderForge-Preview: SOTA Open Dataset for Training Efficient Agents}, author = {Ariyak, Alpay and Zhang, Junda and Wang, Junxiong and Zhu, Shang and Bianchi, Federico and Srivastava, Sanjana and Panda, Ashwinee and Bharti, Siddhant and Xu, Chenfeng and Heo, John and Wu, Xiaoxia Shirley and Zou, James and Liang, Percy and Song, Leon and Zhang, Ce and Athiwaratkun, Ben and Zhou, Zhongzhu and Wu, Qingyang}, year = {2026}, month = feb, publisher = {Together AI Blog}, url = {https://www.together.ai/blog/coderforge-preview}, note = {Project core leads: Alpay Ariyak; Zhongzhu Zhou; Qingyang Wu}
}
参考文献
[1] Qwen Team. "Qwen3-32B." Hugging Face Model Card (2025). https://huggingface.co/Qwen/Qwen3-32B
[2] Jacobs, Sam Ade, et al. "DeepSpeed Ulysses: System optimizations for enabling training of extreme long sequence transformer models." arXiv preprint arXiv:2309.14509 (2023).
[3] imoneoi. "Multipack Sampler: Padding-free distributed training of LLMs." GitHub repository (2024). https://github.com/imoneoi/multipack_sampler
[4] Wang, Xingyao, et al. "OpenHands: An open platform for AI software developers as generalist agents." arXiv preprint arXiv:2407.16741 (2024).
[5] Jain, Naman, et al. "R2E-Gym: Procedural environments and hybrid verifiers for scaling open-weights SWE agents." arXiv preprint arXiv:2504.07164 (2025).
[6] Yang, John, et al. "SWE-smith: Scaling data for software engineering agents." arXiv preprint arXiv:2504.21798 (2025).
[7] Badertdinov, Ibragim, et al. "SWE-rebench: An automated pipeline for task collection and decontaminated evaluation of software engineering agents." arXiv preprint arXiv:2505.20411 (2025).
[8] Jimenez, Carlos E., et al. "SWE-bench: Can language models resolve real-world GitHub issues?" ICLR 2024, arXiv preprint arXiv:2310.06770 (2024).
[9] Luo, Michael, et al. "DeepSWE: Training a state-of-the-art coding agent from scratch by scaling RL." TogetherAI/Agentica Blog (2025).
[10] Shen, Ethan, et al. "SERA: Soft-Verified Efficient Repository Agents." arXiv preprint arXiv:2601.20789 (2026). https://arxiv
.org/abs/2601.20789
[11] Nex-AGI团队。“Nex-N1:通过大规模环境构建的统一生态系统训练的智能体模型。”arXiv预印本 arXiv:2512.04987 (2025)。https://github.com/nex-agi/Nex-N1
[12] Trofimova, Maria, 等。“使用Qwen3-Coder-480B-A35B-Instruct的OpenHands轨迹。”Nebius博客 (2025)。https://nebius.com/blog/posts/openhands-trajectories-with-qwen3-coder-480b
