@cohere: 我们鼓励开发者与我们分享他们的构建,并提供反馈以塑造未来的迭代。让我们一起塑造未…
摘要
Cohere 和 Cohere Labs 发布了 North Mini Code,这是一个开放权重的 30B-A3B 参数模型,针对代码生成、智能体软件工程和终端任务进行了优化,在 SWE-Bench 和 Terminal-Bench 上取得了强劲的基准测试结果。
查看缓存全文
缓存时间: 2026/06/10 09:46
我们鼓励开发者与我们分享他们的构建成果并提供反馈,以塑造未来的迭代版本。让我们一起打造主权AI的未来。
下载地址:https://t.co/2C3eqGF95i
CohereLabs/North-Mini-Code-1.0 · Hugging Face
来源:https://huggingface.co/CohereLabs/North-Mini-Code-1.0
模型卡片:North Mini Code
模型概述
North Mini Code 是一个开放权重的研究发布版本,包含一个 30B-A3B 参数的模型,专为代码生成、智能体软件工程和终端任务优化。
开发者:Cohere (https://cohere.com/) 和 Cohere Labs (https://cohere.com/research)
- 联系人:Cohere Labs (https://cohere.com/research)
- 许可证:Apache 2.0
- 模型:North Mini Code
- 模型大小:总计 30B;实际激活 3B
- 上下文长度:支持 256K 输入及 64K 最大输出
关于此模型的更多详情,请参阅我们的博客文章 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code)。
试用 North Mini Code
在下载权重之前,您可以在 OpenCode 和我们托管的 Hugging Face Space (https://huggingface.co/spaces/CohereLabs/North-Mini-Code-1.0) 中试用 North Mini Code。
评测结果
image1 (https://cdn-uploads.huggingface.co/production/uploads/62668f725fb8d521d94d8451/xR7kZ3X9RKEZrbgD6hpG1.png)
基准测试方法 [点击展开]
- 我们使用 SWE-Bench Verified、SWE-Bench Pro、Terminal-Bench v2 和 Terminal-Bench Hard 来评测 North Mini Code 的智能体编码能力。评估工具方面,我们使用 Swe-Agent harness v1.1.0 进行 SWE-Bench 评测,并使用基于 Harbor 的 Tmux 会话实现的简单 ReAct harness(仅使用一个终端工具)进行 Terminal-Bench v2 评测。对于 Terminal Bench Hard,我们直接使用 Terminus-2,采用与 Artificial Analysis Intelligence Index 相同的方法来比较 North-Mini-Code-1.0 与其他模型。此外,我们还使用 SciCode 和 LiveCodeBench v6 作为工具使用之外的复杂代码生成基准。
- 我们使用 3 个不同的随机种子运行每个基准测试,并报告平均基准性能,采用 temperature=1.0 和 top_p=0.95。对于竞争模型,我们尽可能使用公开报告的分值,来源包括原始报告或 Artificial Analysis Intelligence Index。此外,Gemma4 在智能体编码任务上的分数由 Qwen 团队 (https://qwen.ai/blog?id=qwen3.6-35b-a3b) 报告。对于任何公开报告中缺失的基准测试结果,图中用 (*) 标记,我们使用推荐的模型配置在内部运行。
使用方法
请从包含此模型必要修改的源代码仓库中安装 transformers。我们建议使用以下采样参数进行生成:temperature=1.0,top_p=0.95。
# pip install transformers
from transformers import AutoTokenizer, AutoModelForCausalLM
model_id = "CohereLabs/North-Mini-Code-1.0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
prompt = "Write a python program to check if a string is a palindrome or not."
# 使用 North-Mini-Code-1.0 的聊天模板格式化消息
messages = [{"role": "user", "content": prompt}]
input_ids = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
)
gen_tokens = model.generate(
**input_ids,
max_new_tokens=1024,
do_sample=True,
temperature=1.0,
top_p=0.95
)
gen_text = tokenizer.decode(gen_tokens[0])
print(gen_text)
你也可以直接使用 transformers 的 pipeline 抽象来使用该模型:
from transformers import pipeline
import torch
model_id = "CohereLabs/North-Mini-Code-1.0"
prompt = """Given a list of unique words each of size k and an n sized word, w, where n is a multiple of k,
Write a program in python to determine the number of unique combinations of words in the list that can be concatenated to form an anagram of the word w.
"""
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{"role": "user", "content": f"{prompt}"},
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
)
outputs = pipe(
messages,
max_new_tokens=1024,
do_sample=True,
temperature=1.0,
top_p=0.95
)
print(outputs[0]["generated_text"][-1])
模型详情
输入:仅文本。
输出:模型生成文本。
模型架构:North-Mini-Code-1.0 是一个仅解码器、基于 Transformer 的稀疏混合专家(MoE)模型。它采用高效的注意力机制实现,在滑动窗口注意力(使用 RoPE)和全局注意力(无位置嵌入)之间以 3:1 的比例交错使用。前馈模块是一个包含 128 个专家的 MoE 模块,每个 token 激活其中 8 个专家。每个专家模块是一个带有 SwiGLU 激活函数的 FFN 模块。路由器在 top-k 选择之前对 logits 应用 sigmoid 激活函数。我们还在稀疏层之前使用了单个稠密层。North-Mini-Code-1.0 经过两阶段级联监督微调(SFT)后,再通过可验证奖励的强化学习(RLVR)进行后训练,重点优化智能体编码能力。更多技术细节请参阅我们的博客文章 (https://huggingface.co/blog/CohereLabs/introducing-north-mini-code)。
上下文长度:North-Mini-Code-1.0 支持 256K 上下文长度以及 64K 输出长度。
工具使用能力:
North-Mini-Code-1.0 专门针对智能体编码的工具使用能力进行了训练。
通过 Transformers 的聊天模板 (https://huggingface.co/docs/transformers/main/en/chat_templating#advanced-tool-use–function-calling) 支持工具使用。我们建议使用 JSON 模式提供工具描述。
工具使用示例 [点击展开]
# 定义工具
tools = [{
"type": "function",
"function": {
"name": "bash",
"description": "在终端中执行一条 bash 命令。",
"parameters": {
"type": "object",
"properties": {
"command": {
"description": "要执行的 bash 命令。",
"type": "string"
}
},
"required": ["command"]
},
}
}]
# 定义对话输入
conversation = [{"role": "user", "content": "查看此文件夹中是否有 json 文件"}]
# 获取工具使用提示
input_prompt = tokenizer.apply_chat_template(conversation=conversation, tools=tools, tokenize=False, add_generation_prompt=True, return_tensors="pt")
# 对提示进行分词
input_ids = tokenizer(input_prompt, return_tensors="pt")
然后可以像平常一样根据此输入进行生成。
与迄今为止发布的所有其他 Cohere 智能体模型一样,North Mini Code 支持交错思考 (https://docs.vllm.ai/en/latest/features/interleaved_thinking/),并且建议在开启该功能时获得最佳效果。强烈建议将模型生成的所有思考内容传递给后续的智能体步骤和聊天轮次,以获得最佳模型性能。请参考链接的 vllm 文档了解具体做法。
如果模型生成思考内容和工具调用,应像下面这样将两者都添加到聊天历史中:
# 传递工具调用和思考内容
tool_call = {"name": "bash", "arguments": {"command": "ls -al"}}
reasoning = "用户想查看当前文件夹中是否有 JSON 文件。我应该使用 ls 命令列出文件,然后检查是否有 JSON 文件(以 .json 结尾的文件)。让我先列出当前目录下的文件。"
conversation.append({"role": "assistant", "tool_calls": [{"id": "0", "type": "function", "function": tool_call}], "reasoning": reasoning})
然后调用工具并以字典形式附加结果,角色为 “tool”,如下所示:
# 这必须是一个字典
tool_result = {"stdout": "test.json\ntest.py", "return_code": "0"}
# 附加工具结果
conversation.append({"role": "tool", "tool_call_id": "0", "content": tool_result})
之后,您可以再次调用 generate() 让模型在对话中使用工具结果。
请注意,这只是对工具调用的简短介绍 - 更多信息请参考 Transformers 的工具使用文档 (https://huggingface.co/docs/transformers/main/chat_templating#advanced-tool-use–function-calling)。
vLLM
您也可以使用 vLLM 运行该模型。在新的 vLLM 版本发布之前,请使用 vLLM 主分支来运行 North Mini Code,同时需要安装 Cohere 的 melody 库以实现准确响应解析。
uv pip install "git+https://github.com/vllm-project/vllm.git"
uv pip install cohere_melody>=0.9.0
然后可以使用以下命令启动 vllm 服务器:
vllm serve CohereLabs/North-Mini-Code-1.0 \
-tp 2 \
--max-model-len 320000 \
--tool-call-parser cohere_command4 \
--reasoning-parser cohere_command4 \
--enable-auto-tool-choice
在 OpenCode 中使用本地部署的 North Mini Code:
在新的 OpenCode 版本发布之前,请使用 OpenCode 主分支。
# Linux 下的安装示例命令
git clone https://github.com/anomalyco/opencode.git
cd opencode
# 安装 Bun
curl -fsSL https://bun.sh/install | bash
export BUN_INSTALL="$HOME/.bun"
export PATH="$BUN_INSTALL/bin:$PATH"
# 某个依赖需要 node-gyp
bun add -g node-gyp
# 安装依赖
bun install
# 构建 CLI
bun run --cwd packages/opencode build
/usr/bin/install -m 755 \
./opencode/packages/opencode/dist/opencode-linux-x64/bin/opencode \
/root/.local/bin/opencode
要在 Opencode 中使用本地部署的 North Mini Code,请使用以下配置,该配置启用了交错推理:
{
"$schema": "https://opencode.ai/config.json",
"model": "vllm/CohereLabs/North-Mini-Code-1.0",
"provider": {
"vllm": {
"npm": "@ai-sdk/openai-compatible",
"name": "本地 vLLM 服务器",
"options": {
"baseURL": "http://127.0.0.1:8000/v1",
"apiKey": "EMPTY"
},
"models": {
"North-Mini-Code-1.0": {
"name": "North-Mini-Code-1.0",
"interleaved": {
"field": "reasoning"
},
"limit": {
"context": 256000,
"output": 64000
}
}
}
}
}
}
模型卡片联系方式
若发现此模型卡片中的错误或对细节有其他疑问,请联系 [email protected]。
相似文章
CohereLabs/North-Mini-Code-1.0
Cohere Labs 发布了 North Mini Code,一个拥有 30B 参数(3B 活跃)的开放权重模型,针对代码生成、智能体软件工程和终端任务进行了优化,基于 Apache 2.0 许可。
@cohere:介绍 Cohere 首个开源编码模型:North Mini Code Small,小巧高效,专为代理型性能设计…
Cohere 发布了其首个开源编码模型 North Mini Code Small,专为高效的代理型性能和社区反馈而设计。
推出 North Mini Code:Cohere 首款面向开发者的模型
Cohere 发布了 North Mini Code,这是一款 30B 参数的混合专家(MoE)模型,在 Apache 2.0 许可下拥有 3B 激活参数,专为智能体软件工程任务优化,在编程基准测试中性能优于同类尺寸模型。
发布 Cohere North Mini Code
Cohere正式发布North Mini Code编程模型,权重可在Hugging Face上获取,并支持vLLM和MLX部署。
Cohere的未发布编码模型(localllama早期访问)
Cohere发布了一款早期访问编码模型BLS-Mini-Code-1.0,这是一个30B参数的模型,可在Hugging Face上进行测试。