North Mini Code 发布:Cohere 面向开发者的首款模型
Introducing North Mini Code: Cohere’s First Model For Developers
Cohere发布North Mini Code,一个30B参数的Mixture-of-Experts模型(3B活跃参数),以Apache 2.0许可证在Hugging Face上开源。该模型针对agentic软件工程任务优化,采用交错滑动窗口与全局自注意力的Transformer解码器架构,包含128个专家。后训练采用两阶段SFT加RLVR,使用来自约5k个仓库的70k+可验证任务。在Artificial Analysis Coding Index上获得33.4分,超越Qwen3.5、Gemma 4等更大规模模型。
](https://huggingface.co/coherecode)
今天,我们发布 North Mini Code,一个 30B 参数的 Mixture-of-Experts 模型,具有 3B 活跃参数和强大的 agentic 编码能力,可在 Hugging Face 上以 Apache 2.0 许可证获取。
North Mini Code 是 Cohere 新模型系列中的首个模型,专门为 agentic 软件工程任务设计和训练。
图 1: North Mini Code 在 agentic 编码任务和复杂代码生成基准测试中的表现,与同规模领先开源模型的对比。基准测试方法详情见此。
North Mini Code 针对复杂的软件工程工作流、基于终端的 agentic 任务以及高质量代码生成进行了优化。在 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
现实世界的代码 agent 依赖于模型的质量和跨 agent 框架的鲁棒性。我们使用多种 scaffold 训练 North Mini Code,而不是针对单一框架进行优化。这种方法使 North Mini Code 能够作为诸如 OpenCode 等编码 agent 的可靠基础。
架构
图 2: North Mini Code 是一个 Mixture-of-Experts Transformer 解码器,交错使用滑动窗口自注意力和全局自注意力。
North Mini Code 是一个仅解码器的、基于 Transformer 的稀疏 Mixture-of-Experts 模型。它使用我们高效的注意力实现,以 3:1 的比例交错使用带 RoPE 的滑动窗口注意力和不带位置嵌入的全局注意力 [1]。前馈块是一个包含 128 个专家的 MoE 块,每个 token 激活其中 8 个。每个专家块是一个使用 SwiGLU 激活函数的 FFN 块。路由器在 top-k 选择之前对 logits 应用 sigmoid 激活函数。我们还在稀疏层之前使用了一个单一的密集层。
面向卓越编码的后训练
图 3: 后训练流程由两个阶段的监督微调(SFT)和一个针对软件工程和终端任务的、使用可验证奖励的 agentic 强化学习(RLVR)阶段组成。
我们使用两阶段级联监督微调(SFT),随后进行使用可验证奖励的强化学习(RLVR),对 North Mini Code 进行后训练,重点在于 agentic 编码。我们第一阶段的 SFT 数据侧重于编码能力,这些能力被整合到一个更广泛的数据混合中,以增强鲁棒性和可用性。该数据混合包括跨多个领域的编程、推理和指令遵循,其中代码数据集占可训练 token 的 70%,43% 为 agentic 工具使用数据,27% 为单轮竞争性或科学编程数据。在第二阶段 SFT 中,我们使用了一个仅包含 agentic 和推理驱动样本的 45 亿 token 数据混合,其中代码数据占可训练 token 的 61%。该混合包含我们在编码和更广泛的 agentic 任务中质量最高的数据,其中工具调用和完成结果被验证为可执行且正确。
我们的内部数据管道严重依赖于容器化的 agentic 编码环境。我们维护这些环境的一个不相交子集,用于合成 SFT 数据生成和 RLVR。其中大部分基于来自真实仓库的软件工程任务,其余则是来自开源和内部数据集的基于终端的 agentic 任务。总共,我们使用了来自约 5k 个独特仓库的超过 70k 个可验证任务。我们对环境进行了去重,排除了来自 SWE-Bench [2] 和 SWE-Bench-Pro [3] 的仓库源,以避免评估期间的数据泄露 [4]。
我们在 SFT 的第一和第二阶段分别使用了 64K 和 128K 的上下文长度。这种“长到更长”的级联方法(类似于 [5, 6])使得能够在有价值的较短数据上进行二分训练,建立稳健的性能基线,然后仅对高质量验证样本进行有针对性的长上下文训练。如果没有多阶段训练,初始训练阶段的 200 亿非代码 token 通常会主导后期训练中 15 亿 token 的高质量代码数据,导致性能较差,并且由于不同阶段的数据趋势差异而产生更多的行为冲突。根据经验,在接近完整的样本长度分布上进行训练,在评估中产生的最终轨迹比仅在截断至 64K 的分布上训练要_更短_。
我们没有在 SFT 期间针对定量指标优化 North Mini Code,而是采用了一种严格将 SFT 作为“RLVR 的预热”的方法。数据混合优化了下游阶段的采样多样性和 pass@K(针对高 K 值)。我们使用样本级过滤来移除任何病态情况,例如无效的工具调用、错误的空白符生成、格式错误的特殊 token 或幻觉引用。会产生不良 RLVR 行为(例如低熵、无效的结构化生成)的工件或超参数通过消融实验被剔除。最终的 SFT 模型在 SWE-Bench Verified [2] 上达到了 80.2% 的 pass@10,在 Terminal-Bench v2 [7] 上达到了 55.1% 的 pass@10。
跨框架的鲁棒性
框架鲁棒性提高了模型在现实软件开发环境中的可用性,在这些环境中,agent 会遇到多样且不可预测的工具环境。这些环境不仅在提示方式上不同,而且在基本的工具使用模式上也有差异。例如,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: 为了驱动各种 agentic 编码框架,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%)纯文本格式的数据,这已被证明足以让模型自然地泛化。有趣的是,我们还发现,引入各种框架的充分变化(类似于数据增强)至关重要,以迫使模型正确建立指令与行为之间的联系,而不是简单地重复固定模板而不理解,当框架彼此相似时,这一点尤其重要。
面向Agentic编码的异步强化学习
编码 agent 的 rollout 很长且长度变化很大,最慢的轨迹通常比中位数长一个数量级。同步 RL 循环会让训练器空闲,等待为每个批次生成这些试验,因此我们将采样与学习解耦:一个训练器与一个 vLLM sidecar 一起运行,后者_持续地_提供 rollout。策略权重每隔几个学习步骤(K=4)导出到 vLLM,因此采样器在任何时刻最多只是略微偏离策略。然后,残差不匹配在损失层面进行校正。
为了解除学习进程对最长 rollout 的等待,同时避免跨任务的数据分布不平衡,我们使用了一个_窗口化_的先进先出(FIFO)队列(训练器↔采样器)[11]:队列头部的一小部分按完成顺序消耗以处理掉队者,其余部分保持输入顺序。根据经验,这恢复了完成顺序方案的大部分吞吐量,而不会明显阻碍训练稳定性。
我们使用 CISPO [12] 进行训练,这是一个带有 token 级重要性采样校正的对数似然目标。CISPO 与 PPO 和 GRPO 的不同之处在于,重要性权重乘以对数似然而不是概率比,并通过更强的正则化增强了 RLOO [13]。我们在 token 级别而不是 prompt 级别聚合损失,因此梯度信号随轨迹长度缩放,并且较长的 agentic 轨迹(其中大部分信用分配信号所在)不会相对于较短的轨迹被降低权重。
单一多环境 RL 训练 – 我们运行了一个单一的多环境在线 RL 训练运行,涵盖两个任务环境:基于终端的任务和软件工程任务。每个训练批次包含 512 个 rollout,每个 prompt 采样 8 个 rollout 作为一组。所有 rollout 共享一个 128K token 的全局上下文窗口。为了考虑不同的任务复杂度,每个任务被分配一个不同的 agentic 步骤预算。这些每任务预算基于 RLVR 之前执行的 pass@k 过滤来设置,确保预算根据每个任务分布的难度进行适当校准。我们观察到,给予模型远大于必要的轮次预算会鼓励其 rollout 中不必要的冗长和跳跃。
对于基于终端的任务,我们使用一个简单的 ReAct 框架配置 agent,该框架使用基于 Harbor 的 Tmux 会话实现 [14] 的单一终端使用工具,而对于 SWE 任务,我们使用 SWE-agent [8] 框架。两个环境都为 agent 提供了一个预构建的 Docker 镜像,编码了环境状态、一个自然语言用户 prompt 以及一组用于验证的单元测试。我们在内部和开源数据集的组合上进行训练,过滤后仅保留具有可接受 pass@k 率的问题,即排除那些被轻易解决和完全无法解决的实例。我们使用基于单元测试验证器的二元奖励。此外,模型因生成无效工具调用或无法解析的输出而获得 0 奖励,这使得在最初的训练步骤中,幻觉或格式错误的工具调用率急剧下降。
图 5: 多环境 RL 训练运行提高了模型在 SWE-Bench Verified 和 Terminal-Bench v2 等基准测试上的性能。左侧显示了整个 RLVR 训练过程中的学习曲线。
通过在线 RL 实现更高的性能和鲁棒性 – RLVR 训练使最终模型在 Terminal-Bench v2 上的 pass@1 比 SFT 初始化提高了 7.9%(绝对值),在 SWE-Bench 上提高了 3.0%(绝对值)。我们观察到,跨两个环境的联合训练比单独训练每个环境产生更强的结果,并且对分布外任务的泛化能力也更好。除了正确性分数之外,我们还观察到 agent 鲁棒性的显著提升,RLVR 模型产生了更短的轨迹和更少的无效或失败的工具调用。最终模型还表现出更少的重复工具调用循环,能够可靠地通过提交解决方案或响应用户来结束其轨迹。
内部人工评估基准
作为现有编码基准的补充,我们还开发了自己的内部基准测试套件,用于在成对评估中与人工标注员一起衡量模型在分布外问题上的性能。与其他基准测试设置一致,我们评估了通过 Harbor 在 OpenCode 中使用的模型迭代版本。为了理解模型性能,我们针对四个不同的功能进行了基准测试:
- 代码解释: 要求模型在 README 文件中或直接向用户解释给定代码仓库的特定技术方面。
- 代码编辑: 要求模型基于现有代码库实现一个功能。
- 数据可视化: 给定数据样本,要求模型使用特定框架创建某些可视化;不提供额外代码。
- 从头实现: 仅给定设计规范和要使用的包,要求模型从头开始创建一个项目,主要侧重于前端设计。
评估人员会获得基于评分标准的评分问题,以帮助他们首先评估单个响应标准并对单个尝试进行评分,然后在两个模型轨迹之间给出最终偏好评级。2 我们分享了 North Mini Code 的评估结果,比较了 SFT 检查点和最终模型发布检查点。
图 6: 针对 85 个样本,将 RLVR 后的最终 North Mini Code 检查点与仅 SFT 检查点进行人工评估的成对偏好结果。
我们的评估表明,RLVR 特别提高了模型在代码编辑任务上的性能,使得最终模型相对于其仅 SFT 的对应版本,在子集上的总体胜率达到 66.1%。
快速开始
North Mini Code 模型可在 OpenCode、Cohere API 以及 HuggingFace 上获取,提供 BF16 和 FP8(量化)权重:bf16, fp8
扩展作者列表
代码 Agent 团队和 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
基准测试方法
我们的核心 agentic 能力通过 SWE-Bench Verified、SWE-Bench Pro、Terminal-Bench v2 和 Terminal-Bench Hard 来衡量。North-Code-Mini 的评估使用 Swe-Agent 框架 v1.1.0 进行 SWE-Bench,使用一个简单的 ReAct 框架(基于 Harbor 的 Tmux 会话实现,采用单一终端使用工具)进行 Terminal-Bench v2。对于 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 在 agentic 编码任务上的分数由 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: Can Language Models Resolve Real-World GitHub Issues?
[3] SWE-Bench Pro: Can AI Agents Solve Long-Horizon Software Engineering Tasks?
[4] On Leakage of Code Generation Evaluation Datasets
[5] Nemotron-Cascade: Scaling Cascaded Reinforcement Learning for General-Purpose Reasoning Models
[6] Nemotron-Cascade 2: Post-Training LLMs with Cascade RL and Multi-Domain On-Policy Distillation
[7] Terminal-Bench: A Benchmark for AI Agents in Terminal Environments
[8] SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering
[9] https://github.com/SWE-agent/mini-swe-agent
[10] https://github.com/anomalyco/opencode
[11] Forge: Scalable Agent RL Framework and Algorithm
[12] MiniMax-M1: Scaling Test-Time Compute Efficiently with Lightning Attention
[13] Back to Basics: Revisiting REINFORCE-Style Optimization for Learning from Human Feedback in LLMs
[14] Harbor: A Framework for Evaluating and Optimizing Agents and Models in Container Environments
[15] SciCode: A Research Coding Benchmark Curated by Scientists
[16] LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Code
[17] Qwen3.6-35B-A3B: Agentic Coding Power, Now Open to All
脚注
1. AAII Coding Index 包括 Terminal Bench Hard 作为 agentic 编码任务,以及 SciCode 作为科学问题的代码生成基准。↩
2. 单项评分和偏好均采用五点李克特量表进行评估。↩





