| SciCode |
48.7 |
52.1 |
49.5 |
56.1 |
38.9 |
脚注
- 通用测试细节
- 我们报告了启明 K2.5 和 DeepSeek-V3.2 在开启思考模式下的结果,Claude Opus 4.5 在扩展思考模式下的结果,GPT-5.2 在 xhigh 推理力度下的结果,以及 Gemini 3 Pro 在高思考水平下的结果。对于视觉基准测试,我们还额外报告了 Qwen3-VL-235B-A22B-Thinking 的结果。
- 除非另有说明,所有启明 K2.5 的实验均在温度 = 1.0、top-p = 0.95、上下文长度为 256k 个 token 的条件下进行。
- 对于没有公开分数的基准测试,我们在与启明 K2.5 相同的条件下重新评估,并用星号 (*) 标记。
- 由于服务稳定性问题,我们无法在所有基准测试上评估 GPT-5.2 xhigh。对于未测试的基准,我们标记为 "-"。
- 文本与推理
- HLE、AIME 2025、HMMT 2025(2月)和 GPQA-Diamond 均以最多 96k 个 token 的完成预算进行评估。
- AIME 和 HMMT 的结果取 32 次运行的平均值(avg@32);GPQA-Diamond 取 8 次运行的平均值(avg@8)。
- 对于 HLE,我们报告完整数据集(文本与图像)的得分。启明 K2.5 在不使用工具时得分为 31.5(文本)和 21.3(图像),而使用工具时则为 51.8(文本)和 39.8(图像)。DeepSeek-V3.2 的得分对应其仅限文本的部分(标记为 †)。为防止潜在的数据泄露,我们屏蔽了对 Hugging Face 的访问。在使用工具的 HLE 中,我们采用简单的上下文管理策略:一旦上下文超过阈值,就只保留最新一轮的工具消息。
- 工具增强/代理搜索
- 启明 K2.5 在使用工具的 HLE 以及所有代理搜索基准测试中,配备了搜索、代码解释器和网页浏览工具。
- 除 BrowseComp(K2.5 和 DeepSeek-V3.2 使用丢弃所有策略)外,未应用任何上下文管理措施,且超出支持上下文长度的任务直接计为失败。
- 测试系统提示强调深度和主动的工具使用,指导模型仔细推理、利用工具并验证不确定的信息。完整提示将在技术报告中提供。
- Seal-0 和 WideSearch 的结果取四次运行的平均值(avg@4)。
- 视觉基准测试
- 最大 token 数 = 64k,取三次运行的平均值(avg@3)。
- ZeroBench(带工具)在多步推理中使用每步最大 token 数 = 24k 以及最大步骤数 = 30。
- MMMU-Pro 遵循官方协议,保持输入顺序并在前面添加图像。
- GPT-5.2-xhigh 约有 10% 的失败率(尽管重试三次仍无输出),被视为错误;报告的分数可能低估了真实性能。
- WorldVQA 是一个用于评估原子级视觉中心世界知识的基准测试。可在 https://github.com/MoonshotAI/WorldVQA 上访问 WorldVQA。
- OmniDocBench 得分计算方式为 (1 − 归一化 Levenshtein 距离) × 100,分数越高表示准确性越好。
- 编程任务
- Terminal-Bench 2.0 的得分是在默认代理框架(Terminus-2)和提供的 JSON 解析器下获得的。在我们的实现中,我们以非思考模式评估了 Terminal-Bench 2.0。之所以做出这一选择,是因为我们当前的思考模式上下文管理策略与 Terminus-2 不兼容。
- 对于 SWE-Bench 系列评估(包括已验证版、多语言版和专业版),我们使用了一个内部开发的评估框架。该框架包含一组最小工具——bash 工具、createfile 工具、insert 工具、view 工具、strreplace 工具和 submit 工具——以及针对具体任务量身定制的系统提示。最高得分是在非思考模式下取得的。
- Claude Opus 4.5 在 CyberGym 上的得分是在非思考设置下报告的。
- 所有编程任务的报告得分均取 5 次独立运行的平均值。
- 长上下文基准测试
- AA-LCR:得分取三次运行的平均值(avg@3)。
- LongBench-V2:使用相同的提示和标准化至约 128k 个 token 的输入上下文。
- 代理群
- BrowseComp(群模式):主代理最多 15 步;子代理最多 100 步。
- WideSearch(群模式):主代理和子代理最多 100 步。
4. 原生 INT4 量化
启明-K2.5 采用了与 启明-K2-思考 相同的原生 int4 量化方法。
5. 部署
[!注意]
您可以通过 https://platform.moonshot.ai 访问启明-K2.5 的 API,我们还为您提供与 OpenAI/Anthropic 兼容的 API。为验证部署是否正确,我们还提供了 启明供应商验证器。
目前,建议在以下推理引擎上运行启明-K2.5:
- vLLM
- SGLang
- KTransformers
transformers 的最低版本要求是 4.57.1。
部署示例可在 模型部署指南 中找到。
6. 模型使用
以下使用演示展示了如何调用我们的官方 API。
对于使用 vLLM 或 SGLang 部署的第三方 API,请注意:
[!注意]
与视频内容的聊天是一项实验性功能,目前仅在我们的官方 API 中支持。
推荐的 temperature 在思考模式下为 1.0,在即时模式下为 0.6。
推荐的 top_p 为 0.95。
若要使用即时模式,您需要在 extra_body 中传递 {'chat_template_kwargs': {"thinking": False}}。
聊天完成
这是一个简单的聊天完成脚本,展示了如何在思考模式和即时模式下调用 K2.5 API。
import openai
import base64
import requests
def simple_chat(client: openai.OpenAI, model_name: str):
messages = [
{'role': 'system', 'content': '您是启明,由 Moonshot AI 创建的人工智能助手。'},
{
'role': 'user',
'content': [
{'type': 'text', 'text': '9.11 和 9.9 哪个更大?请仔细思考。'}
],
},
]
response = client.chat.completions.create(
model=model_name, messages=messages, stream=False, max_tokens=4096
)
print('====== 思考模式下的推理内容如下 ======')
print(f'推理内容:{response.choices[0].message.reasoning_content}')
print('====== 思考模式下的回复如下 ======')
print(f'回复:{response.choices[0].message.content}')
# 若要使用即时模式,需传递 {"thinking" = {"type":"disabled"}}
response = client.chat.completions.create(
model=model_name,
messages=messages,
stream=False,
max_tokens=4096,
extra_body={'thinking': {'type': 'disabled'}}, # 这是官方 API 的用法
# extra_body= {'chat_template_kwargs': {"thinking": False}} # 这是 vLLM/SGLang 的用法
)
print('====== 即时模式下的回复如下 ======')
print(f'回复:{response.choices[0].message.content}')
带视觉内容的聊天补全
K2.5 支持图像和视频输入。
以下示例展示了如何使用图像输入调用 K2.5 API:
import openai
import base64
import requests
def chat_with_image(client: openai.OpenAI, model_name: str):
url = 'https://huggingface.co/moonshotai/Kimi-K2.5/resolve/main/https://oss.gittoolsai.com/images/MoonshotAI_Kimi-K2.5_readme_4733a3fd6ea5.png'
image_base64 = base64.b64encode(requests.get(url).content).decode()
messages = [
{
'role': 'user',
'content': [
{'type': 'text', 'text': '详细描述这张图片。'},
{
'type': 'image_url',
'image_url': {'url': f'data:image/png;base64, {image_base64}'},
},
],
}
]
response = client.chat.completions.create(
model=model_name, messages=messages, stream=False, max_tokens=8192
)
print('====== 以下是思考模式下的推理内容 ======')
print(f'推理内容: {response.choices[0].message.reasoning_content}')
print('====== 以下是思考模式下的回复 ======')
print(f'回复: {response.choices[0].message.content}')
# 如果传递 {"thinking": {"type":"disabled"}},也支持即时模式
response = client.chat.completions.create(
model=model_name,
messages=messages,
stream=False,
max_tokens=4096,
extra_body={'thinking': {'type': 'disabled'}}, # 这是官方 API 的写法
# extra_body= {'chat_template_kwargs': {"thinking": False}} # 这是 vLLM/SGLang 的写法
)
print('====== 以下是即时模式下的回复 ======')
print(f'回复: {response.choices[0].message.content}')
return response.choices[0].message.content
以下示例展示了如何使用视频输入调用 K2.5 API:
import openai
import base64
import requests
def chat_with_video(client: openai.OpenAI, model_name:str):
url = 'https://huggingface.co/moonshotai/Kimi-K2.5/resolve/main/figures/demo_video.mp4'
video_base64 = base64.b64encode(requests.get(url).content).decode()
messages = [
{
"role": "user",
"content": [
{"type": "text","text": "详细描述这段视频。"},
{
"type": "video_url",
"video_url": {"url": f"data:video/mp4;base64,{video_base64}"},
},
],
}
]
response = client.chat.completions.create(model=model_name, messages=messages)
print('====== 以下是思考模式下的推理内容 ======')
print(f'推理内容: {response.choices[0].message.reasoning_content}')
print('====== 以下是思考模式下的回复 ======')
print(f'回复: {response.choices[0].message.content}')
# 如果传递 {"thinking": {"type":"disabled"}},也支持即时模式
response = client.chat.completions.create(
model=model_name,
messages=messages,
stream=False,
max_tokens=4096,
extra_body={'thinking': {'type': 'disabled'}}, # 这是官方 API 的写法
# extra_body= {'chat_template_kwargs': {"thinking": False}} # 这是 vLLM/SGLang 的写法
)
print('====== 以下是即时模式下的回复 ======')
print(f'回复: {response.choices[0].message.content}')
return response.choices[0].message.content
交错式思考与多步工具调用
K2.5 拥有与 K2 Thinking 相同的交错式思考和多步工具调用设计。有关使用示例,请参阅 K2 Thinking 文档。
编码代理框架
Kimi K2.5 最适合与 Kimi Code CLI 作为其代理框架一起使用——请访问 https://www.kimi.com/code 尝试一下。
7. 许可证
代码仓库和模型权重均采用 修改后的 MIT 许可证 发布。
9. 联系我们
如有任何问题,请通过 support@moonshot.cn 联系我们。
Kimi K2.5 快速上手指南
Kimi K2.5 是由月之暗面(Moonshot AI)开源的原生多模态智能体模型。它基于约 15 万亿混合视觉与文本 token 进行持续预训练,具备强大的视觉理解、代码生成及多智能体协作能力。
1. 环境准备
在开始之前,请确保您的开发环境满足以下要求:
- 操作系统: Linux (推荐 Ubuntu 20.04+) 或 macOS。
- Python 版本: Python 3.9 或更高版本。
- 硬件要求:
- 由于模型总参数量达 1T(激活参数 32B),建议使用多卡 GPU 环境或高显存单卡(推荐 NVIDIA A100/H100/H800 等)。
- 若使用量化版本或在消费级显卡运行,请确保显存充足并安装对应的推理后端(如 vLLM, Ollama 等,具体视官方发布的推理脚本而定)。
- 前置依赖:
pip 包管理工具
git
torch (建议安装与 CUDA 版本匹配的最新版)
提示:国内开发者建议使用国内镜像源加速依赖安装,例如清华大学或阿里云镜像源。
2. 安装步骤
步骤一:克隆仓库
首先从官方仓库获取代码:
git clone https://github.com/MoonshotAI/Kimi-K2.git
cd Kimi-K2
步骤二:创建虚拟环境(推荐)
python -m venv kimi-env
source kimi-env/bin/activate # Windows 用户请使用: kimi-env\Scripts\activate
步骤三:安装依赖
使用国内镜像源安装所需 Python 包:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
注:如果官方提供了特定的安装脚本(如 install.sh),请优先运行该脚本。
步骤四:下载模型权重
模型权重托管在 Hugging Face。国内用户若访问受限,可使用镜像站或手动下载后放置到指定目录。
方式 A:使用 huggingface-cli (需配置镜像)
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download moonshotai/Kimi-K2-5 --local-dir ./models/kimi-k2-5
方式 B:手动下载
访问 Hugging Face Moonshot AI 主页 下载权重文件,并解压至 ./models 目录。
3. 基本使用
Kimi K2.5 支持原生多模态输入(文本 + 图像)及智能体模式。以下是最基础的 Python 调用示例。
示例:加载模型并进行图文对话
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
# 配置模型路径
model_path = "./models/kimi-k2-5"
# 加载分词器
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
# 加载模型 (根据显存情况调整 device_map 和 dtype)
# 注意:全量加载 1T 参数模型需要极高的显存,通常需使用量化或分布式推理
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True
)
# 准备输入:包含文本指令和图片路径
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": "path/to/your/image.png"},
{"type": "text", "text": "请分析这张图表中的数据趋势,并生成相应的 Python 代码来复现它。"}
]
}
]
# 构建输入张量
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
# 生成回复
outputs = model.generate(
inputs,
max_new_tokens=2048,
do_sample=True,
temperature=0.7,
top_p=0.9
)
# 解码输出
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
关键特性说明
- 原生多模态:直接在
content 列表中传入图像对象,无需额外的 OCR 预处理。
- 智能体模式:在复杂任务中,模型会自动拆解任务并调用工具(需在 Prompt 中开启 Tool Use 格式或配置相应的 Agent 框架)。
- 长上下文:模型支持 256K 上下文窗口,可直接传入长文档或多帧视频截图进行分析。
更多高级用法(如多智能体集群部署、思维链模式配置)请参考项目根目录下的 tech_report.pdf 或官方技术博客。