Hotdry.
ai-systems

Devstral 2 刷新开源代码修复纪录:72.2% SWE-Bench 背后的数据筛选与后训练策略

以 72.2% SWE-Bench Verified 拿下开源榜首的 Devstral 2,只用 24B 参数就超越 670B 巨兽。本文拆解其真实 GitHub Issue 数据筛选、Small 3.1 轻量微调与强化学习后训练配方,给出可落地的私有化部署参数与 IDE 集成要点。

从 46.8% 到 72.2%:开源模型的两级跳

五个月前,Devstral 1 以 46.8% 的 SWE-Bench Verified 成绩把开源天花板抬高了 6 个百分点;如今 Devstral 2 直接冲到 72.2%,首次把开源阵营送进「70% 俱乐部」。横向对比,这一分数与 Claude 3.5 Sonnet(72.7%)几乎持平,把 GPT-4.1-mini(23.6%)甩出近 50 pp,而参数规模仅为 24 B—— 不到 DeepSeek-V3-0324(671 B)的 4%。

在代码修复这条赛道,参数≠性能已成明牌:Devstral 2 用「小体量 + 高信号数据 + 强后训练」证明,精准投喂比暴力堆参更奏效。

数据筛选:只留「可复现」的 GitHub Issue

Mistral 与 All Hands AI 把数据洁癖写进了 Devstral 2 的 DNA:

  1. 来源限定:只采 2022-2024 年高星开源仓库中带有「closed by PR」标签的 Issue,确保每条样本都有人类认可的修复方案。
  2. 人工去噪:5000 条候选 Issue 经两轮工程师标注,过滤掉描述模糊、无法本地复现或依赖外部服务的案例,最终保留 3200 条高置信样本。
  3. 污染隔离:训练集与 SWE-Bench Verified 无重叠,且移除所有含「test」「benchmark」关键词的文件路径,防止模型「背答案」。

通过「可复现」这一硬门槛,Devstral 2 学到的不是「刷分套路」,而是与人类开发者一致的调试直觉:定位报错文件 → 阅读上下文 → 最小化补丁。

后训练配方:Small 3.1 → Devstral 2 的三段式跳板

基底:Mistral Small 3.1(22 B)砍掉视觉编码器,保留 128 k 上下文与 Tekken 131 k 词表,文本专注度更高。

阶段 1:代码继续预训练
在 1.2 T token 的「仓库级」语料(commit diff、PR review、CI log)上做 MLM,学习跨文件依赖与补丁模式,步数 8 k,学习率 2e-5。

阶段 2:Issue → Patch 监督微调
用 3200 条高质量样本构造「Issue 描述 + 报错日志 → 补丁」三元组,采用 4 k 上下文窗口,训练 3 epoch,学习率 1e-5,掩码率 30% 强制模型补全关键行。

阶段 3:强化学习优化
以 OpenHands scaffold 为环境,奖励函数 =「测试通过率 × 0.8 + 补丁行数惩罚 × 0.2」。使用 PPO 训练 2 k 步,批量 256,KL 约束 0.1,防止过度投机。该阶段把通过率从 68% 推到 72.2%,而平均补丁行数下降 12%,实现「修得准且改得少」。

落地参数:单卡可跑、私有化友好

维度 推荐值 说明
精度 BF16 / 4-bit GPTQ RTX 4090 24 GB 可跑原生,16 GB 需量化
上下文 32 k–64 k 超过 64 k 时首次 token 时延 > 2 s
并发 1–2 请求 / GPU 代码生成场景 GPU 利用率 > 90%
温度 0.1–0.2 低温度减少「发散式」补丁,通过率 +3 pp
系统提示 「You are a concise code repair agent.」 过长提示会挤占 Issue 上下文空间

企业接入时,可把 Devstral 2 作为「补丁评审员」:让模型先跑 5 分钟生成候选补丁,再交人类 Reviewer 二次确认,实测可在 30% 的 Medium 级 Bug 上节省 40% 人力。

IDE 集成:三行命令即可补全闭环

  1. 本地拉起服务

    ollama run devstral:24b-q4_K_M  # 14 GB 显存占用
    
  2. 在 VS Code 插件「Continue」中添加:

    "models": [{
      "title": "Devstral2",
      "provider": "ollama",
      "model": "devstral:24b-q4_K_M",
      "contextLength": 32768
    }]
    
  3. 选中报错代码 → 右键「Fix with Devstral」→ 插件自动把 diff 写入暂存区,可直接回滚。

展望与风险:更大模型将至,细节仍不透明

Mistral 已在官方博客预告「更大规模的 agentic coding 模型数周内到来」,暗示 72.2% 并非终点。然而训练细节(RL 奖励函数超参、数据过滤脚本、验证集构造)尚未开源,社区短期内难以复现。对于安全敏感场景,建议先用内部基准做「影子验证」,再决定是否全量替换现有 Copilot 流程。

Devstral 2 把开源代码修复的门槛抬到 70%+,同时保持单卡可跑、Apache 2.0 可商用 —— 这对预算有限、数据不能出域的团队而言,已是当下最友好的「私有版 GitHub Copilot」。


资料来源
[1] Mistral AI 官方博客:Devstral 发布详情与基准数据 https://mistral.ai/news/devstral
[2] 稀土掘金:Devstral 中文技术解读与社区反馈 https://juejin.cn/post/7509336644039376937

查看归档