跳到正文
北京时间
原文
Hugging Face:Blog(RSS)·· 2026-06-09精选AI 评分73

Cohere发布North Mini Code:面向开发者的开源编码模型

Introducing North Mini Code: Cohere’s First Model For Developers

AI 导读

Cohere发布North Mini Code,一款30B参数MoE模型(3B活跃参数),Apache 2.0开源。在Artificial Analysis Coding Index上得分33.4,超越Qwen3.5、Gemma 4等同类模型。后训练采用两阶段SFT和RLVR,在SWE-Bench Verified上pass@10达80.2%,Terminal-Bench v2上达55.1%。支持64K/128K上下文长度,专为智能体编码任务优化。

推荐理由

Cohere的新编码模型North Mini Code以30B参数MoE架构,在SWE-bench pass@1达到61%,Apache 2.0开源,是小模型在agent coding领域真正可用的信号。

正文 · AI 翻译

今天,我们发布 North Mini Code,这是一个 30B 参数的混合专家模型,激活参数为 3B,具备强大的智能体编程能力,已在 Hugging Face 上以 Apache 2.0 许可证提供。

North Mini Code 是 Cohere 全新模型系列中的首个模型,专为智能体软件工程任务而设计和训练。

图 1:North Mini Code 在智能体编程任务和复杂代码生成基准测试中的表现,与同类规模的领先开源模型进行了对比。基准测试方法的详细信息请见此处。

North Mini Code 针对复杂软件工程工作流、基于终端的智能体任务以及高质量代码生成进行了优化。在 Artificial Analysis 的 Coding Index 上,North Mini Code 取得了 33.4 的分数,超越了 Qwen3.5(35B-A3B)、Gemma 4(26B-A4B)、Devstral Small 2(24B Dense),甚至超越了规模大得多的模型,如 Nemotron 3 Super(120B-A12B)、Mistral Small 4(119B-A6B)和 Devstral 2(123B)。1 它跻身同规模级别中最强的开源编程模型之列。

在 OpenCode 中试用 North Mini Code

真实世界的代码智能体依赖于模型在各类智能体框架中的质量和鲁棒性。我们使用多种脚手架来训练 North Mini Code,而非针对单一脚手架进行优化。这种方法使 North Mini Code 能够成为 OpenCode 等编程智能体的可靠基础。

架构

图 2:North Mini Code 是一个混合专家(MoE)Transformer 解码器,采用交错排列的滑动窗口自注意力与全自注意力。

North Mini Code 是一个仅解码器的、基于 Transformer 的稀疏混合专家模型。它采用我们高效实现的注意力机制,以 3:1 的比例交错使用带 RoPE 的滑动窗口注意力与不带位置嵌入的全局注意力 [1]。前馈模块是一个包含 128 个专家的 MoE 模块,每个 token 激活其中 8 个。每个专家模块是一个带 SwiGLU 激活函数的 FFN 模块。路由器在 top-k 选择之前对 logits 应用 sigmoid 激活函数。我们还在稀疏层之前使用了一个单独的稠密层。

面向卓越编码能力的后训练

图 3:后训练流程由两个阶段的监督微调(SFT)和一个阶段的、面向软件工程与终端任务的、带可验证奖励的智能体强化学习(RLVR)组成。

我们通过两阶段级联式监督微调(SFT),随后进行带可验证奖励的强化学习(RLVR),对 North Mini Code 进行后训练,重点聚焦于智能体编程。我们第一阶段的 SFT 数据侧重于编程能力,并将其整合进更广泛的混合数据中以提升鲁棒性和可用性。该数据混合涵盖众多领域中的编程、推理和指令遵循,其中代码数据集占可训练 token 的 70%,智能体工具使用数据占 43%,单轮竞赛或科学编程数据占 27%。在第二阶段 SFT 中,我们使用了一个 45 亿 token 的数据混合,仅由智能体和推理驱动的样本构成,其中代码数据占可训练 token 的 61%。该混合包含我们在编程及更广泛的智能体任务中质量最高的数据,其中工具调用与补全均经过验证,确认为可执行且正确。

我们的内部数据流水线高度依赖容器化的智能体编程环境。我们维护这些环境中互不相交的一个子集,用于合成 SFT 数据生成和 RLVR。其中大多数基于来自真实世界代码仓库的软件工程任务,其余则是来自开源及内部数据集的基于终端的智能体任务。总体而言,我们在约 5k 个唯一代码仓库中使用了超过 70k 个可验证任务。我们将环境与 SWE-Bench [2] 和 SWE-Bench-Pro [3] 的仓库来源进行去重,以避免评估期间的来源泄漏 [4]。

我们在 SFT 的第一阶段和第二阶段分别使用了 64K 和 128K 的上下文长度。这种“从长到更长”的级联方法(类似于 5、6)能够对宝贵的较短数据进行二分训练,建立稳健的性能基线,随后仅针对高质量且经过验证的样本进行有针对性的长上下文训练。如果不采用多阶段训练,初始训练阶段的 20B 非代码 token 往往会在后续训练中压过 1.5B 高质量代码数据,导致性能更差,并且由于各阶段之间数据趋势不同而产生更高的行为冲突。据观察,在评估时,基于接近完整长度分布的样本进行训练,所产生的最终轨迹比仅基于截断至 64K 的分布进行训练更短。

在 SFT 期间,我们并未针对量化指标来优化 North Mini Code,而是采用了一种严格将 SFT 用作 RLVR 预热 的方法。数据混合优化的是下游阶段的采样多样性和 pass@K(针对高 K)。我们使用样本级过滤来移除任何异常情况,例如无效工具调用、错误的空白生成、格式错误的特殊 token 或幻觉引用。产生不良 RLVR 行为(例如低熵、无效结构化生成)的产物或超参数通过消融实验被剔除。最终的 SFT 模型在 SWE-Bench Verified 上达到 80.2% pass@10 [2],在 Terminal-Bench v2 上达到 55.1% pass@10 [7]。

跨测试框架的稳健性

在真实的软件开发环境中,智能体会遇到多样且不可预测的工具环境,而 harness 的鲁棒性能够提升模型在这些环境中的可用性。这些环境不仅在提示方式上有所不同,在根本的工具使用模态上也存在差异。例如,SWE-Agent [8] 暴露了一个相对丰富的 agent-CLI 接口,带有专用命令(bash、str_replace_editor 和 submit 工具)以及模板化的观测结果;mini-SWE-agent [9] 将其精简为单一的 bash 工具,仅以 shell 的原始 stdout 作为反馈;而 OpenCode [10] 则使用细粒度的、各自独立类型的工具(edit、grep、todowrite 和 task 等),返回结构化的 JSON 响应。

图 4: 为了支撑多种智能体编程 harness,North Mini Code 在第二个 SFT 阶段接触了多种编程 harness。

我们通过在第二个 SFT 阶段引入少量额外的基准测试 harness 数据(占 SFT 混合数据的 6%,相比之下所选 SWE-Agent harness 占 50%),来解决跨 harness 泛化问题。具体而言,这一数据配比在 OpenCode harness 的评估上带来了 10% 的提升,同时在 SWE-Bench Verified 上使用 SWE-Agent 时保持了性能,表明跨 harness 迁移可以以低成本获得,且不会降低基准测试性能。值得注意的是,North-Code-Mini 在使用 mini-SWE-Agent 时达到了 61.0% 的 pass@1,这一提升在跨任务、跨 harness 的设置中自然涌现,表明具有重叠工具能力的 harness 之间共享了足够的表征结构以实现正向迁移。我们还观察到,在混合 harness 数据上训练时数据冲突极小,表明不同 harness 所需的技能通常是互补的而非矛盾的。

类似地,官方 Terminal-Bench 使用其自有的 Terminus 2 harness,其中所有 agent-CLI 交互均通过纯文本聊天轮次进行通信(而非原生工具调用)。为了在 Terminus 2 上对我们的模型进行预热,我们在数据混合中加入了少量纯文本格式的数据(不到 20%),这已被证明足以让模型自然地进行泛化。有趣的是,我们还发现在各种 harness 中引入足够的变化(类似于数据增强)至关重要,以迫使模型正确地建立指令与行为之间的关联,而非在不理解的情况下简单地复述固定模板,当各 harness 彼此看起来相似时,这一点尤为重要。

面向智能体编程的异步 RL

编码智能体的 rollout 轨迹很长,且长度差异极大,最慢的轨迹通常比中位数长一个数量级。同步式 RL 循环会让训练器在每个 batch 都空等这些试验生成完毕,因此我们将采样与学习解耦:训练器与一个 vLLM sidecar 并行运行,由后者持续提供 rollout。策略权重每隔几个学习器步(K=4)导出到 vLLM,因此采样器在任何时刻至多只是略微 off-policy。随后在损失层面校正残余的不匹配。

为了让学习器进程不必等待最长的 rollout,同时避免任务间数据分布失衡,我们使用了一个窗口化的先进先出(FIFO)队列(trainer↔sampler)[11]:队列头部的一小部分按完成顺序消费,以排空掉队者,其余部分则保持输入顺序。根据经验,这恢复了按完成顺序方案的大部分吞吐量,同时没有可测量地损害训练稳定性。

我们使用 CISPO [12] 进行训练,这是一种带有 token 级重要性采样校正的对数似然目标。CISPO 与 PPO 和 GRPO 的不同之处在于,重要性权重乘以的是对数似然,而非概率比,并且通过更强的正则化对 RLOO [13] 进行了增强。我们在 token 级别而非提示词级别聚合损失,因此梯度信号随轨迹长度缩放,较长的智能体轨迹(大部分信用分配信号所在之处)不会相对于较短的轨迹被降权。

单次多环境 RL 训练——我们运行了一次跨两个任务环境的单次多环境在线 RL 训练:基于终端的任务和软件工程任务。每个训练批次由 512 条 rollout 组成,每个提示词采样 8 条 rollout 作为组大小。所有 rollout 共享 128K token 的全局上下文窗口。为兼顾不同任务的复杂度差异,每个任务被分配了不同的智能体步数预算。这些逐任务预算基于 RLVR 之前执行的 pass@k 过滤来设定,确保预算与每个任务分布的难度相匹配。我们观察到,给予模型远超所需的回合预算,会助长其 rollout 中出现不必要的冗长和跳跃性。

对于基于终端的任务,我们为智能体配置了一个简单的 ReAct 执行框架,采用基于 Harbor 的 Tmux 会话实现的单一终端使用工具[14];而对于 SWE 任务,我们采用 SWE-agent[8] 执行框架。两个环境都为智能体提供了编码环境状态的预构建 Docker 镜像、自然语言用户提示词,以及一组用于验证的单元测试。我们在内部数据集和开源数据集的组合上进行训练,并经过过滤仅保留 pass@k 率可接受的问题,即排除掉过于简单即可解决以及完全无法解决的实例。我们使用基于单元测试验证器得出的二元奖励。此外,模型在生成无效工具调用或无法解析的输出时会获得 0 奖励,这使得模型幻觉或畸形工具调用的比例在最初几个训练步骤内就大幅下降。

图 5: 多环境 RL 训练运行提升了模型在 SWE-Bench Verified 和 Terminal-Bench v2 等基准上的表现。左侧展示了整个 RLVR 训练过程中的学习曲线。

通过在线 RL 获得更高性能与鲁棒性—— RLVR 训练使最终模型相较 SFT 初始化在 Terminal-Bench v2 上的 pass@1 提升了 7.9%(绝对值),在 SWE-Bench 上提升了 3.0%(绝对值)。我们观察到,在两个环境上联合训练比分别单独训练能取得更强的结果,并且对分布外任务的泛化能力也更好。除了正确性得分之外,我们还观察到智能体鲁棒性有显著提升,RLVR 模型产生的轨迹更短,无效或失败的工具调用更少。最终模型还表现出更少的重复性工具调用循环,能够可靠地通过提交解决方案或回应用户来结束其轨迹。

内部人工评估基准

作为现有编程基准的补充,我们还开发了自己的内部基准套件,通过与人工标注员进行成对评估,来衡量模型在分布外问题上的表现。与其他基准设置一致,我们通过 Harbor 评估了在 OpenCode 中使用的各迭代版本模型。为了解模型表现,我们针对四种不同的功能进行了基准测试:

  • 代码解释: 模型被要求以 README 文件的形式,或直接向用户解释给定代码仓库的特定技术方面。
  • 代码编辑: 模型需要基于已有的代码库实现某项功能。
  • 数据可视化: 给定数据样本,模型需要使用特定框架创建某些可视化图表;不提供额外的代码。
  • 从零实现: 仅提供设计规范和需要使用的软件包,模型需要从零开始创建一个项目,主要聚焦于前端设计。

评估者会获得基于评分标准的问题,帮助他们对单个回答的各项标准进行评估,并先对各个尝试进行评分,然后再对两条模型轨迹给出最终的偏好评级。2 我们分享了 North Mini Code 的评估结果,将 SFT checkpoint 与最终模型发布 checkpoint 进行了对比。

图 6: 人类评估的成对偏好结果,比较经过 RLVR 后的最终 North Mini Code checkpoint 与仅经过 SFT 的 checkpoint,覆盖 85 个样本。

我们的评估表明,RLVR 尤其能提升模型在代码编辑任务上的表现,最终模型相较于仅经过 SFT 的对应模型,在各子集上的总体胜率为 66.1%。

North Mini Code 模型现已在 OpenCode、Cohere API 以及 HuggingFace 上提供,包含 BF16 和 FP8(量化)权重:bf16、fp8

扩展作者名单

Code Agents 团队与 North Mini Code 小组:
Jay Alammar、Sophia Althammer、Dennis Aumiller、Leon Engländer、Yannis Flet-Berliac、Eden Gilbert、Sarra Habchi、Kylie He、Dhruti Joshi、Jozef Mokrý、David Mora、Josh Netto-Rosen、Deniz Qian、Lawrence Rodgers、Willem Röpke、Tom Sherborne、Ahmet Üstün、Minjie Xu

预训练与推理团队:
Diana Abagyan、Sammie Bae、Björn Bebensee、Walter Beller-Morales、Sepideh Shaterian Bidgoli、Bas Büller、David Cairuz、Kris Cao、Roman Castagné、Giannis Chatziveroglou、Tim Chung、Felipe Cruz、Rishit Dholakia、Ali Edalati、Nikolas Gritsch、Kilian Haefeli、Prashant Kumar、Simon Lehnerer、Tony Liu、Alex McKinney、Ekagra Ranjan、Dev Shah、Zewen Shen、Sylvie Shi、Dwarak Talupuru、Komal Teru、Robin Vaaler、Bharat Venkitesh、Donglu Wang、Terrence Zhao、Leo Zhou、Conway Zhu

管理与领导层:
Phil Blunsom、Nick Frosst、Aidan Gomez、Manoj Govindassamy、Nick Jakobi、Patrick Lewis、Acyr Locatelli、Joelle Pineau、Ivan Zhang

基准测试方法

我们的核心智能体能力通过 SWE-Bench Verified、SWE-Bench Pro、Terminal-Bench v2 和 Terminal-Bench Hard 进行衡量。North-Code-Mini 的评估中,SWE-Bench 使用了 Swe-Agent harness v1.1.0,Terminal-Bench v2 则使用了一个简单的 ReAct harness,该 harness 采用基于 Harbor 的 Tmux 会话实现的单一终端使用工具。对于 Terminal Bench Hard,我们直接使用了 Terminus-2,遵循与 Artificial Analysis Intelligence Index 相同的方法论,将 North Mini Code 与其他模型进行比较。在基准测试明确指定的情况下,我们遵循其官方超时和硬件资源限制设置。我们还额外追踪了 SciCode 15 中的代码生成能力,该基准衡量科学问题的编码表现,以及 LiveCodeBench v6 16,该基准要求在工具使用之外的编码表现上具备强大的算法推理能力。我们以 3 个不同的随机种子运行每个基准测试,并报告平均基准表现,使用 temperature=1.0 和 top_p=0.95。

竞品结果—— 我们使用了竞品模型公开报告的分数,来源为原始报告或 Artificial Analysis Intelligence Index(在可获得的情况下)。此外,Gemma4 在智能体编码任务上的分数由 Qwen 团队报告 \[17。对于任何公开报告缺失的基准结果(在图 1 中以 (*) 标注),我们使用推荐的模型配置在内部运行。

引用

@misc{cohere_north_code_mini,
    title = {Introducing {North Mini Code}: Cohere's First Model For Developers},
    url = {cohere.com/blog/north-mini-code},
    author = {{Team Cohere}},
    month = {June},
    year = {2026}
}

参考文献

[1] RoPE to NoPE and Back Again: A New Hybrid Attention Strategy

[2] SWE-bench:语言模型能否解决真实世界的 GitHub 问题?

[3] SWE-Bench Pro:AI 智能体能否解决长周期软件工程任务?

[4] 论代码生成评测数据集的数据泄漏问题

[5] Nemotron-Cascade:扩展级联强化学习以构建通用推理模型

[6] Nemotron-Cascade 2:基于级联 RL 与多领域同策略蒸馏的大语言模型后训练

[7] Terminal-Bench:面向终端环境中 AI 智能体的基准测试

[8] SWE-agent:智能体-计算机接口实现自动化软件工程

[9] https://github.com/SWE-agent/mini-swe-agent

[10] https://github.com/anomalyco/opencode

[11] Forge:可扩展的智能体 RL 框架与算法

[12] MiniMax-M1:利用闪电注意力高效扩展测试时计算

[13] 回归基础:重新审视 LLM 中基于人类反馈学习的 REINFORCE 式优化

[14] Harbor:在容器环境中评估和优化智能体与模型的框架

[15] SciCode:由科学家策划的研究编码基准

[16] LiveCodeBench:面向代码的大语言模型全面且无污染的评估

[17] Qwen3.6-35B-A3B:智能体编码能力,现已向所有人开放

脚注

1. AAII Coding Index 将 Terminal Bench Hard 作为智能体编码任务纳入,并将 SciCode 作为科学问题的代码生成基准纳入。↩

2. 单项评分和偏好均采用五点李克特量表进行评估。↩

来源:Hugging Face:Blog(RSS) · huggingface.co