推出 North Mini Code:Cohere 首款面向开发者的模型
摘要
Cohere 发布了 North Mini Code,这是一款 30B 参数的混合专家(MoE)模型,在 Apache 2.0 许可下拥有 3B 激活参数,专为智能体软件工程任务优化,在编程基准测试中性能优于同类尺寸模型。
查看缓存全文
缓存时间: 2026/06/10 00:26
推出 North Mini Code:Cohere 首款面向开发者的模型
来源:https://huggingface.co/blog/CohereLabs/introducing-north-mini-code 返回文章列表 (https://huggingface.co/blog)
Cohere 代码智能体团队的头像 (https://huggingface.co/coherecode)
- 架构 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#architecture)
- 面向卓越编码的后训练 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#post-training-for-coding-excellence)
- 跨框架的鲁棒性 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#robustness-across-harnesses)
- 面向智能体编码的异步强化学习 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#asynchronous-rl-for-agentic-coding)
- 内部人类评估基准 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#internal-human-evaluation-benchmark)
- 快速上手 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#get-started)
- 扩展作者名单 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#extended-author-list)
- 基准测试方法 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#benchmarking-methodology)
- 引用 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#citation)
- 参考文献 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#references)
- 脚注 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#footnotes)
所有合著者均列于下文中 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#extended-author-list)
今天,我们发布 North Mini Code,一个拥有300亿参数、30亿活跃参数的混合专家模型,具备强大的智能体编码能力,可在 Hugging Face 上以 Apache 2.0 许可证获取。
North Mini Code 是 Cohere 全新模型系列中的首款模型,专为智能体软件工程任务设计和训练。
图片1-基准测试结果 (https://cdn-uploads.huggingface.co/production/uploads/6361a793c12a09b8a3184bff/f8NXK5yKtc6xE-hJ4XWbd.png)
图 1: North Mini Code 在智能体编码任务和复杂代码生成基准测试中的表现,与同类规模领先的开源模型对比。有关我们基准测试方法的详细信息,请参见此处。(https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#benchmarking-methodology)
North Mini Code 针对复杂的软件工程工作流、基于终端的智能体任务以及高质量代码生成进行了优化。在 Artificial Analysis 的编码指数上,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)。¹ (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#fn1) 它是其规模级别中最强大的开源编码模型之一。
https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#try-north-mini-code-in-opencode 在 OpenCode 中试用 North Mini Code
现实世界中的代码智能体依赖于模型质量以及跨智能体框架的鲁棒性。我们使用多种框架训练了 North Mini Code,而非针对单一框架进行优化。这种方法使得 North Mini Code 能够作为 OpenCode 等编码智能体的可靠基础。
https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#architecture 架构
图片2 (https://cdn-uploads.huggingface.co/production/uploads/6361a793c12a09b8a3184bff/g-SYXPG1oIxHEwnItd3he.png)
图 2: North Mini Code 是一个混合专家 Transformer 解码器,采用交错的滑动窗口自注意力和全自注意力。
North Mini Code 是一个仅解码器的、基于 Transformer 的稀疏混合专家模型。它使用我们高效的注意力实现,以3:1的比例交错使用带 RoPE 的滑动窗口注意力和无位置嵌入的全局注意力 [1 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref1)]。前馈模块是一个包含128个专家的 MoE 模块,每个 token 激活其中8个。每个专家模块是一个使用 SwiGLU 激活的 FFN 模块。路由器在 top-k 选择之前对 logits 应用 sigmoid 激活函数。我们还在稀疏层之前使用了单个密集层。
https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#post-training-for-coding-excellence 面向卓越编码的后训练
图片3 (https://cdn-uploads.huggingface.co/production/uploads/6361a793c12a09b8a3184bff/8DQUkAkjo7Afat2Z4L7ue.png)
图 3: 后训练流程包括两个阶段的监督微调 (SFT) 和一个阶段的、针对软件工程和终端任务的、带可验证奖励的智能体强化学习 (RLVR)。
我们使用两阶段级联监督微调 (SFT) 结合带可验证奖励的强化学习 (RLVR) 对 North Mini Code 进行后训练,重点聚焦智能体编码。我们的第一阶段 SFT 数据侧重于编码能力,并将其整合到更广泛的数据混合中,以增强鲁棒性和可用性。该数据混合包括编程、推理和指令遵循,涵盖大量领域,其中代码数据集占可训练 token 的70%,其中43%是智能体工具使用数据,27%是单轮竞赛或科学编程数据。在第二阶段 SFT 中,我们使用了一个45亿 token 的数据混合,仅来自智能体和推理驱动的样本,其中代码数据占可训练 token 的61%。这个混合数据集包含我们最高质量的编码和更广泛的智能体任务数据,其中工具调用和完成结果均被验证为可执行且正确。
我们的内部数据管道严重依赖容器化的智能体编码环境。我们维护这些环境的一个不重叠子集,用于合成 SFT 数据生成和 RLVR。大多数环境基于来自真实世界仓库的软件工程任务,其余则是来自开源和内部数据集的基于终端的智能体任务。总计,我们使用了超过7万个可验证任务,涉及约5千个独特的仓库。我们针对 SWE-Bench [2 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref2)] 和 SWE-Bench-Pro [3 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref3)] 的仓库来源对我们的环境进行去重,以避免评估期间的数据泄露 [4 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref4)]。
我们在 SFT 的第一阶段和第二阶段分别使用了64K和128K的上下文长度。这种“由短到长”的级联方法(类似于 [5 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref5),6 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref6)])能够对有价值的较短数据进行二分训练,建立稳健的性能基线,随后仅在高品质验证样本上进行有针对性的长上下文训练。如果没有多阶段训练,初始训练阶段的200亿非代码 token 往往会主导后期训练中的15亿高质量代码数据 token,从而产生较差的性能和因阶段间数据趋势差异而导致的更高行为冲突。根据经验,在评估期间,对样本进行近乎完整长度分布的训练,所生成的最终轨迹比仅训练到64K截断分布要更短。
我们并未在 SFT 期间针对定量指标优化 North Mini Code,而是采用了一种严格将 SFT 用作“RLVR 的启动”的方法。数据混合优化了下游阶段的采样多样性和 pass@K(针对高 K 值)。我们使用样本级过滤来移除任何病理特征,例如无效的工具调用、错误的空白符生成、格式错误的特殊 token 或幻觉引用。通过消融实验,我们剔除了那些会产生不良 RLVR 行为(例如低熵、无效结构化生成)的工件或超参数。最终的 SFT 模型在 SWE-Bench Verified [2 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref2)] 上达到了80.2%的 pass@10,在 Terminal-Bench v2 [7 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref7)] 上达到了55.1%的 pass@10。
https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#robustness-across-harnesses 跨框架的鲁棒性
框架鲁棒性提高了模型在现实软件开发环境中的可用性,在这些环境中,智能体会遇到多样且不可预测的工具环境。这些环境不仅在提示方式上不同,而且在基本的工具使用模式上也存在差异。例如,SWE-Agent [8 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref8)] 提供了一个相对丰富的 agent-CLI 接口,包含专门的命令(bash、str_replace_editor 和 submit 工具)和模板化的观察结果;mini-SWE-agent [9 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref9)] 将其简化为单一的 bash 工具,仅以 shell 的原始标准输出作为反馈;而 OpenCode [10 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref10)] 使用细粒度的、单独类型的工具(edit、grep、todowrite 和 task 等),返回结构化的 JSON 响应。
图片4 (https://cdn-uploads.huggingface.co/production/uploads/6361a793c12a09b8a3184bff/xPc4PSWREdLtTS62tfl8L.png)
图 4: 为驱动各种智能体编码框架,North Mini Code 在第二阶段 SFT 期间接触了多种编码框架。
我们通过在第二阶段 SFT 期间引入少量额外的基准测试框架数据(占 SFT 混合的6%,而选择的 SWE-Agent 框架占50%)来解决跨框架泛化问题。具体来说,这种数据混合在使用 OpenCode 框架的评估中带来了10%的性能提升,同时在使用 SWE-Agent 框架的 SWE-Bench Verified 上保持了性能,表明跨框架迁移可以低成本地获得,而不会降低基准性能。值得注意的是,North-Code-Mini 使用 mini-SWE-Agent 达到了61.0%的 pass@1,这种改进在跨任务、跨框架的设置中自然产生,表明具有重叠工具能力的框架共享足够的表示结构以实现正向迁移。我们还在混合框架数据上训练时观察到最低限度的数据冲突,表明不同框架所需的技能通常是互补的而非矛盾的。
类似地,官方 Terminal-Bench 使用其自己的 Terminus 2 框架,其中所有 agent-CLI 交互都通过纯文本聊天轮次(而非原生工具调用)进行通信。为了使我们的模型适应 Terminus 2,我们在数据混合中包含了少量(低于20%)的纯文本格式数据,事实证明这足以让模型自然地泛化。有趣的是,我们还发现,引入各种框架的足够多样本(类似于数据增强)至关重要,以迫使模型正确建立指令和行为之间的联系,而不是简单地不加理解地重复固定模板,尤其是在框架之间看起来很相似的情况下。
https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#asynchronous-rl-for-agentic-coding 面向智能体编码的异步强化学习
编码智能体的 rollout 较长且长度变化极大,最慢的轨迹通常比中位数长一个数量级。同步 RL 循环会让训练器空闲,等待每批的试验生成,因此我们将采样与学习解耦:训练器与持续提供 rollouts 的 vLLM sidecar 并行运行。每隔几个学习器步骤(K=4),策略权重会被导出到 vLLM,因此采样器在任何时刻都最多略微偏离策略。随后在损失级别校正残余的不匹配。
为了解除学习器进程等待最长 rollouts 的阻塞,同时避免任务间数据分布的不平衡,我们使用了一个窗口化的先进先出 (FIFO) 队列(训练器↔采样器)[11 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref11)]:队列头部的一小部分按完成顺序消耗以排空掉队者,其余部分保持输入顺序。根据经验,这可以恢复完成顺序方案的大部分吞吐量,而不会明显阻碍训练稳定性。
我们使用 CISPO [12 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref12)] 进行训练,这是一个带有 token 级别重要性采样校正的对数似然目标。CISPO 与 PPO 和 GRPO 的不同之处在于,重要性权重乘以的是对数似然而非概率比,并通过更强的正则化增强了 RLOO [13 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref13)]。我们在 token 级别而非 prompt 级别聚合损失,因此梯度信号随轨迹长度缩放,并且长的智能体轨迹(其中包含大多数信用分配信号)不会相对于短的轨迹被降低权重。
单一多环境 RL 训练 – 我们运行了一次单一的多环境在线 RL 训练,覆盖两个任务环境:基于终端的任务和软件工程任务。每个训练批次包含512个 rollouts,每个 prompt 采样8个 rollouts 作为一组。所有 rollouts 共享一个128K token 的全局上下文窗口。为应对不同的任务复杂性,每个任务被分配了不同的智能体步骤预算。这些按任务分配的预算基于 RLVR 之前执行的 pass@k 过滤来设定,确保预算与每个任务分布的难度适当校准。我们观察到,给予模型远超必要步数的预算会鼓励其 rollout 产生不必要的啰嗦和跳跃行为。
对于基于终端的任务,我们为智能体配置了一个简单的 ReAct 框架,该框架使用基于 Harbor 的 Tmux 会话实现 [14 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref14)] 的单一终端使用工具,而对于 SWE 任务,我们使用 SWE-agent [8 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code#ref8)] 框架。两个环境都为智能体提供了一个预构建的、编码了环境状态的 Docker 镜像,一个自然语言用户提示,以及一组用于验证的单元测试。我们在内部和开源数据集的组合上进行训练,过滤后只保留那些具有可接受的 pass@k 率的问题,即排除那些可被轻易解决和完全无法解决的问题。我们使用源自基于单元测试的验证器的二元奖励。此外,模型如果生成无效的工具调用或不可解析的输出,则会获得0奖励,这使得在前几个训练步骤中,幻觉或格式错误的工具调用率急剧下降。
图片5 (https://cdn-uploads.huggingface.co/production/uploads/6361a793c12a09b8a3184bff/Oe79J_Vn3Lbi10oKlHiQi.png)
图 5: 多环境 RL 训练运行提高了模型在 SWE-Bench Verified 和 Terminal-Bench v2 等基准测试上的性能。左侧显示了整个 RLVR 训练过程中的学习曲线。
更高的性能和鲁棒性归功于在线 RL – RLVR 训练使最终模型从 SFT 初始化的基础上,在 Terminal-Bench v2 上提升了7.9%(绝对值)pass@1,在 SWE-Bench 上提升了3.0%(绝对值)。我们观察到,跨两个环境的联合训练比单独训练每个环境产生的结果更强。
相似文章
@cohere:介绍 Cohere 首个开源编码模型:North Mini Code Small,小巧高效,专为代理型性能设计…
Cohere 发布了其首个开源编码模型 North Mini Code Small,专为高效的代理型性能和社区反馈而设计。
发布 Cohere North Mini Code
Cohere正式发布North Mini Code编程模型,权重可在Hugging Face上获取,并支持vLLM和MLX部署。
CohereLabs/North-Mini-Code-1.0
Cohere Labs 发布了 North Mini Code,一个拥有 30B 参数(3B 活跃)的开放权重模型,针对代码生成、智能体软件工程和终端任务进行了优化,基于 Apache 2.0 许可。
@cohere: 我们鼓励开发者与我们分享他们的构建,并提供反馈以塑造未来的迭代。让我们一起塑造未…
Cohere 和 Cohere Labs 发布了 North Mini Code,这是一个开放权重的 30B-A3B 参数模型,针对代码生成、智能体软件工程和终端任务进行了优化,在 SWE-Bench 和 Terminal-Bench 上取得了强劲的基准测试结果。
Cohere的未发布编码模型(localllama早期访问)
Cohere发布了一款早期访问编码模型BLS-Mini-Code-1.0,这是一个30B参数的模型,可在Hugging Face上进行测试。