MoonshotAI/Kimi-K2-Instruct
模型介绍模型推理文件和版本Pull Requests讨论分析
下载使用量0
Kimi K2: Open Agentic Intellignece

Chat github Homepage
Hugging Face Twitter Follow Discord
License

📰  技术博客     |     📄  技术报告

0. 更新日志

2025年8月11日

  • 现已支持包含 name 字段的消息。同时将对话模板移至独立文件以便查看。

2025年7月18日

  • 进一步优化对话模板以增强其鲁棒性,并更新了默认系统提示词。

2025年7月15日

  • 更新了分词器实现,现支持将特殊标记(如[EOS])编码为对应的标记ID
  • 修复了对话模板中导致多轮工具调用中断的错误

1. 模型介绍

Kimi K2是一款尖端混合专家(MoE)语言模型,拥有320亿激活参数与1万亿总参数。通过Muon优化器训练,该模型在前沿知识推理与代码生成任务中表现卓越,并针对智能代理能力进行了精细化优化。

核心特性

  • 大规模训练:基于15.5万亿标记预训练1万亿参数MoE模型,全程零训练不稳定现象
  • MuonClip优化器:将Muon优化器应用于前所未有的规模,并通过创新技术解决扩展过程中的稳定性问题
  • 智能代理能力:专为工具调用、推理与自主问题解决场景设计

模型变体

  • Kimi-K2-Base:基础模型,为需要完全控制微调和定制解决方案的研究者与开发者提供强力起点
  • Kimi-K2-Instruct:后训练模型,适用于开箱即用的通用对话与智能代理场景,具备即时响应能力无需长时思考
性能评估结果

2. 模型概要

特性参数
架构混合专家(MoE)
总参数量1万亿
激活参数量320亿
层数(含稠密层)61
稠密层数量1
注意力隐藏维度7168
MoE隐藏维度(单专家)2048
注意力头数量64
专家总数384
每标记选用专家数8
共享专家数量1
词表大小16万
上下文长度12.8万
注意力机制MLA
激活函数SwiGLU

3. 评测结果

指令模型评测结果

4. 模型部署

[!注意] 您可通过 https://platform.moonshot.ai 访问Kimi K2的API服务,我们提供与OpenAI/Anthropic兼容的API接口。

为更好地兼容现有应用,Anthropic兼容API的温度参数映射规则为:实际温度值 = 请求温度值 × 0.6。

我们的模型检查点采用block-fp8格式存储,您可以在Huggingface平台获取。

目前推荐在以下推理引擎上运行Kimi-K2模型:

  • vLLM
  • SGLang
  • KTransformers
  • TensorRT-LLM

vLLM和SGLang的部署示例请参阅模型部署指南。


5. 模型使用

对话补全

当本地推理服务启动后,您可以通过对话终端点进行交互:

def simple_chat(client: OpenAI, model_name: str):
    messages = [
        {"role": "system", "content": "You are Kimi, an AI assistant created by Moonshot AI."},
        {"role": "user", "content": [{"type": "text", "text": "Please give a brief self-introduction."}]},
    ]
    response = client.chat.completions.create(
        model=model_name,
        messages=messages,
        stream=False,
        temperature=0.6,
        max_tokens=256
    )
    print(response.choices[0].message.content)

[!NOTE] Kimi-K2-Instruct 的推荐温度参数为 temperature = 0.6。 若无特殊指令要求,上述系统提示可作为优质默认配置。


工具调用

Kimi-K2-Instruct 具备强大的工具调用能力。 启用该功能需在每次请求中传入可用工具列表,模型将自主决策调用时机与方式。

以下示例完整演示天气查询工具的端到端调用流程:

# Your tool implementation
def get_weather(city: str) -> dict:
    return {"weather": "Sunny"}

# Tool schema definition
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Retrieve current weather information. Call this when the user asks about the weather.",
        "parameters": {
            "type": "object",
            "required": ["city"],
            "properties": {
                "city": {
                    "type": "string",
                    "description": "Name of the city"
                }
            }
        }
    }
}]

# Map tool names to their implementations
tool_map = {
    "get_weather": get_weather
}

def tool_call_with_client(client: OpenAI, model_name: str):
    messages = [
        {"role": "system", "content": "You are Kimi, an AI assistant created by Moonshot AI."},
        {"role": "user", "content": "What's the weather like in Beijing today? Use the tool to check."}
    ]
    finish_reason = None
    while finish_reason is None or finish_reason == "tool_calls":
        completion = client.chat.completions.create(
            model=model_name,
            messages=messages,
            temperature=0.6,
            tools=tools,          # tool list defined above
            tool_choice="auto"
        )
        choice = completion.choices[0]
        finish_reason = choice.finish_reason
        if finish_reason == "tool_calls":
            messages.append(choice.message)
            for tool_call in choice.message.tool_calls:
                tool_call_name = tool_call.function.name
                tool_call_arguments = json.loads(tool_call.function.arguments)
                tool_function = tool_map[tool_call_name]
                tool_result = tool_function(**tool_call_arguments)
                print("tool_result:", tool_result)

                messages.append({
                    "role": "tool",
                    "tool_call_id": tool_call.id,
                    "name": tool_call_name,
                    "content": json.dumps(tool_result)
                })
    print("-" * 100)
    print(choice.message.content)

tool_call_with_client 函数实现了从用户查询到工具执行的完整流程。 该流程要求推理引擎支持 Kimi-K2 原生的工具解析逻辑。 关于流式输出和手动工具解析,请参阅工具调用指南。


6. 许可协议

代码仓库和模型权重均基于修订版 MIT 许可证发布。


7. 第三方声明

详见第三方声明文件


7. 联系我们

如有任何疑问,请通过support@moonshot.cn与我们联系。

评测基准指标Kimi K2 InstructDeepSeek-V3-0324Qwen3-235B-A22B
(非思维链模式)
Claude Sonnet 4
(无扩展思维)
Claude Opus 4
(无扩展思维)
GPT-4.1Gemini 2.5 Flash
预览版 (05-20)
代码任务
LiveCodeBench v6
(2024年8月-2025年5月)
Pass@153.746.937.048.547.444.744.7
OJBenchPass@127.124.011.315.319.619.519.5
MultiPL-EPass@185.783.178.288.689.686.785.6
SWE-bench 验证集
(无代理编程)
单补丁无测试 (准确率)51.836.639.450.253.040.832.6
SWE-bench 验证集
(代理式编程)
单次尝试 (准确率)65.838.834.472.7*72.5*54.6—
多次尝试 (准确率)71.6——80.279.4*——
SWE-bench 多语言集
(代理式编程)
单次尝试 (准确率)47.3 25.820.951.0—31.5—
TerminalBench内部框架 (准确率)30.0——35.543.28.3—
Terminus (准确率)25.0 16.36.6——30.316.8
Aider-Polyglot准确率60.055.161.856.470.752.444.0
工具调用任务
Tau2 零售场景Avg@470.669.157.075.081.874.864.3
Tau2 航空场景Avg@456.539.026.555.560.054.542.5
Tau2 电信场景Avg@465.832.522.145.257.038.616.9
AceBench准确率76.572.770.576.275.680.174.5
数学与STEM任务
AIME 2024Avg@6469.659.4*40.1*43.448.246.561.3
AIME 2025Avg@6449.546.724.7*33.1*33.9*37.046.6
MATH-500准确率97.494.0*91.2*94.094.492.495.4
HMMT 2025Avg@3238.827.511.915.915.919.434.7
CNMO 2024Avg@1674.374.748.660.457.656.675.0
PolyMath-enAvg@465.159.551.952.849.854.049.9
ZebraLogic准确率89.084.037.7*73.759.358.557.9
AutoLogi准确率89.588.983.389.886.188.284.1
GPQA-DiamondAvg@875.168.4*62.9*70.0*74.9*66.368.2
SuperGPQA准确率57.253.750.255.756.550.849.6
人类终极考试
(纯文本)
-4.75.25.75.87.13.75.6
通用任务
MMLU精确匹配89.589.487.091.592.990.490.1
MMLU-Redux精确匹配92.790.589.293.694.292.490.6
MMLU-Pro精确匹配81.181.2*77.383.786.681.879.4
IFEval严格提示遵循89.881.183.2*87.687.488.084.3
Multi-Challenge准确率54.131.434.046.849.036.439.5
SimpleQA正确率31.027.713.215.922.842.323.3
LivebenchPass@176.472.467.674.874.669.867.8