Kimi K2技术报告

1.Intruction

Kimi K2 是一个具有1000B 参数规模的MOE架构的LLM,每次激活32B参数。该模型的主要贡献:

  • Muon Clip,基于Muon算法改进的一个优化器算法,替代了常用的AdamW。
  • 提出了一个大规模合成agentic data的pipeline
  • 设计了一个通用的RL框架,使得模型不仅能从任务中学习,还可以从评价自身输出中学习

2. Pre-training

pre-trained data : 15.5T high-quality tokens

2.1 MuonClip

问题: 在使用Muon的时候,作者发现Attention层的输出值(Attention Logits),数值会变大,导致softmax计算溢出,Loss飙升,出现Loss Spike。
现有解决方法:

  • Logit soft-capping(软截断):直接将Attention Logits数值截断,但是内部的Query和Key的点积依旧巨大
  • QK-Norm(层归一化) :对Query、Key进行归一化,但Kimi K2使用的是MLA,无法使用QK-Norm

QK-Clip

做法是直接去缩小权重矩阵WQ,WKW_Q,W_KWQ,WK

在当前Batch B 中,计算每个注意力头(Head)产生的最大 Logit 值 (SmaxS_{max}Smax):
Smax⁡h=1dmax⁡X∈Bmax⁡i,jQihKjh⊤S_{\max}^h = \frac{1}{\sqrt{d}} \max_{\mathbf{X} \in B} \max_{i, j} \mathbf{Q}_i^h \mathbf{K}_j^{h\top}Smaxh=d 1X∈Bmaxi,jmaxQihKjh⊤

设定一个阈值 τ\tauτ(论文中设为 100):

  • 如果Smax≤100S_{max}\le 100Smax≤100,什么也不做
  • 否则说明权重过大,需要缩小

计算比例: γ=阈值最大值=100500=0.2\gamma = \frac{阈值}{最大值} = \frac{100}{500} = 0.2γ=最大值阈值=500100=0.2 8。

缩小权重: 直接修改 Query 的投影权重 (WqW_qWq) 和 Key 的投影权重 (WkW_kWk) 。Wq←Wq⋅γW_q \leftarrow W_q \cdot \sqrt{\gamma}Wq←Wq⋅γ Wk←Wk⋅γW_k \leftarrow W_k \cdot \sqrt{\gamma}Wk←Wk⋅γ

为什么是乘以 γ\sqrt{\gamma}γ (根号 gamma)?

因为 Attention 的计算公式是 Q⋅KQ \cdot KQ⋅K。

如果你把 QQQ 缩小 0.2\sqrt{0.2}0.2 倍,把 KKK 也缩小 0.2\sqrt{0.2}0.2 倍,那么它们相乘的结果就会正好缩小 0.20.20.2 倍。

上述是对于MHA架构的方法,如果是MLA架构:

2.2 Pre-training Data: Improving Token Utility with Rephrasing

Knowledge Data Rephrasing :

因为Pre-train的数据非常庞大,如果只训练一个epoch的话,可能会导致学习不充分,没有完全吸收知识;如果训练多个epoch的话,又会产生过拟合的风险。为了提升高质量数据的利用率,Kimi K2提出了一个系统的rephrasing框架:

  • 精心设计了一系列的prompt,引导模型以不同的风格和视角对同一段话进行重新描述
  • Chunk-wise autogressive generation : 为了保持一段话的全局连贯性和避免丢失信息,将文本分成一段一段,分别进行语义重述。

模型在重写第 NNN 个片段时,实际上接收了三部分信息作为输入(Context):

  1. 全局上下文 (Global Context)
  2. 当前的原文片段
  3. 上一段的重写结果

同时,作者做了个对比实验在SimpleQA数据集上:

1.对数据不进行重述,训练10epochs

2.对每个数据重述1次,训练10epochs

3.对每个数据重述10次,训练1epochs

最后在大规模的知识语料中,作者选择对每个数据最多重述2次。

Model Architecture

Sparsity Scaling Law

论文提出了针对MOE架构的 sparsity scaling law。
稀疏性(sparisty)定义为专家总数和激活专家数量的比率。

作者在小规模的实验下发现:在固定激活参数量的情况下, 提升总的专家数量会持续奖励训练和验证loss。最后作者选择了稀疏性为48。

Number of Attention Heads

提升注意力头的数量会提升推理时的计算量。

deepseek v3中将其设置为接近模型层数的两倍,作者明确指出,在128K长文本下,将注意力头数从64增大到128(在固定专家总数为384的情况下),推理的计算量会增大83%。为此,作者设计了对比实验,在不同的训练浮点次数下比较,发现验证损失仅有微小的提升。鉴于Kimi采用的稀疏性48的配置,因此就设置为64.

3.Post-Training

3.1.1 Large-Scale Agentic Data Synthesis for Tool Use Learning

该阶段主要对于agentic data,设计了一个数据生成pipeline,去教会模型学习使用工具的能力。
流程主要包括三阶段:

第一阶段:构建工具库

这一步的目标是建立一个庞大且多样化的工具集合,涵盖各种功能领域。Kimi K2 采用了"真实获取 + 合成演化"的双重策略:

  • 真实工具获取 (Real-world Tools):
    直接从 GitHub 等开源社区抓取了 3000+ 个符合 MCP (Model Context Protocol) 标准的真实工具。这些工具通常具有高质量的现有规范(Specs)。
  • 合成工具演化 (Synthetic Tool Evolution):为了扩展工具的多样性,团队利用 LLM 进行**"分层领域演化" (Hierarchical Domain Evolution)** 。
  • 演化逻辑: 从宏观的关键类别(如金融交易、软件应用、机器人控制)出发 →\rightarrow→ 演化出具体的细分应用领域 →\rightarrow→ 为每个细分领域合成专用的工具。生成内容: 每个合成工具都包含清晰的接口定义、功能描述和操作语义。规模: 通过这种方法生成了超过 20,000 个合成工具,极大地补充了真实工具未覆盖的领域 。

第二阶段:智能体与任务生成 (Agent & Task Generation)

有了工具库后,下一步是定义"谁来用工具"以及"用工具做什么"。

智能体多样化 (Agent Diversification):

  • 通过合成各种系统提示词 (System Prompts),并为它们配备不同的工具组合,生成了成千上万个具有不同能力、专长和行为模式的 Agent(例如"资深运维工程师"、"金融分析师")。

基于评分标准的任务生成 (Rubric-Based Task Generation):

  • 针对每个 Agent 的配置,生成从简单到复杂的各种任务。

  • 核心创新: 每个任务都配有一个明确的评分标准 (Rubric)。这个标准详细规定了任务的成功条件、预期的工具使用模式以及关键检查点。这为后续的自动化质量评估提供了客观依据 。

第三阶段:轨迹生成与过滤 (Trajectory Generation & Filtering)

这是数据生成的执行阶段,通过模拟交互来生产具体的训练数据(即"轨迹")。

用户模拟 (User Simulation):

  • 利用 LLM 生成具有特定沟通风格和偏好的"虚拟用户",与 Agent 进行多轮自然对话,提出需求并回应 Agent 的提问 。

混合执行环境 (Hybrid Execution Environment):

  • 工具模拟器 (Tool Simulator): 对于大多数任务,使用一个功能等同于"世界模型"的模拟器。它可以执行工具调用,维护并更新环境状态,还能引入受控的随机性(模拟成功、失败或边缘情况),提供逼真的反馈 。

真实沙盒 (Real Sandbox): 对于编程和软件工程等对真实性要求极高的任务,使用真实的执行沙盒(基于 Kubernetes)。它能运行实际代码,并基于测试用例的通过率(Test Suite Pass Rates)提供"真值"反馈 。

质量评估与过滤 (Quality Evaluation and Filtering):

  • 裁判模型 (Judge Agent): 交互结束后,使用另一个 LLM 作为裁判,严格对照第二阶段生成的评分标准 (Rubrics) 来评估整个轨迹。
  • 筛选机制: 只有完全满足成功标准的轨迹才会被保留。这种机制本质上是一种大规模的 Rejection Sampling(拒绝采样),确保了最终进入训练集的数据都是高质量的成功范例 。

3.2 RL

3.2.1 Verifiable Rewards Gym (可验证奖励训练场) 总结

这一章节详细介绍了 Kimi K2 在强化学习(RL)阶段的基础设施建设。为了解决 RL 中奖励信号稀疏或不准确的问题,K2 团队针对不同领域的任务,构建了一套基于"真值验证"的自动化奖励体系

该体系主要覆盖以下四个核心领域:

1. 数学、STEM 与逻辑任务 (Math, STEM and Logical Tasks)

这一领域的 RL 数据构建遵循两个核心原则:覆盖多样性难度适中

  • 多样化覆盖 (Diverse Coverage)

    • 数据来源:结合了专家标注、内部自动化提取流水线以及公开数据集。
    • 补短板:利用标签系统(Tagging System)识别覆盖率不足的领域并进行专门补充 [cite: 546-547]。
    • 逻辑任务扩展:不仅包含传统的问答,还引入了结构化数据任务(如多跳表格推理)和逻辑谜题(如数独、24点游戏、密码算术、摩尔斯电码解码)[cite: 548]。
  • 适度难度 (Moderate Difficulty)

    • 原则:题目太简单(全都会)或太难(全瞎蒙)都无法提供有效的梯度信号。
    • 筛选机制 :使用 SFT 模型计算 pass@k 准确率,仅保留那些处于"中等难度区间"的题目用于 RL 训练 [cite: 549-550]。
2. 复杂指令遵循 (Complex Instruction Following)

为了让模型学会处理隐含约束、边缘情况及长对话中的一致性,K2 设计了一套**"混合验证 + 多源生成"**的框架。

  • 混合规则验证 (Hybrid Rule Verification)

    • 确定性验证 (Deterministic) :对于字数限制、格式要求等可量化的约束,直接使用代码解释器进行验证 [cite: 554]。
    • LLM 裁判 (LLM-as-judge):对于需要微妙理解的约束(如风格、语气),使用 LLM 进行评判 [cite: 554]。
    • 防作弊层 (Hack-check Layer):专门引入检测层,防止模型通过输出欺骗性文本(如"我已经完成了")来骗取奖励 [cite: 555]。
  • 多源指令生成 (Multi-Source Instruction Generation)

    • 专家生成:由数据团队手工编写的复杂条件提示词 [cite: 556]。
    • Agent 增强:受 AutoIF 启发的智能体自动化增强数据 [cite: 560]。
    • 针对性微调:专门微调一个模型来生成针对特定失败模式(Failure Modes)或边缘情况的指令 [cite: 560]。
  • 忠实度 (Faithfulness)

    • 训练了一个句子级别的裁判模型,专门用于检测模型是否在没有上下文证据的情况下做出事实性声明(Factually unsupported claims),以此作为惩罚信号 [cite: 563-565]。
3. 代码与软件工程 (Coding & Software Engineering)

这一部分的重点是引入**"真实执行环境"**,以获取最客观的反馈。

  • 数据构建

    • 竞赛题 :收集开源及合成题目。为保证合成数据的质量,强制要求配备从预训练数据中检索到的高质量人类编写的单元测试(Unit Tests) [cite: 566-567]。
    • 软件工程 (SWE):从 GitHub 收集大量的 Pull Requests (PRs) 和 Issues,构建包含"用户需求 + 现有代码库 + 可执行测试"的完整开发环境 [cite: 568]。
  • 基础设施 (Sandbox Infrastructure)

    • 基于 Kubernetes 构建了高并发沙盒。
    • 支持同时运行超过 10,000 个 独立的沙盒实例,确保了在大规模 RL 训练中的吞吐量和安全性 [cite: 569-570]。

4. 安全性 (Safety)

为了提升模型的安全性,K2 使用了一套自动化的**"攻防演练"**流水线。

  • 种子数据:始于人类专家编写的包含暴力、欺诈、歧视等风险类别的种子提示词 [cite: 571]。
  • 自动化演化 (Automated Prompt Evolution)
    • 模拟复杂的越狱攻击(如角色扮演、学术探讨伪装)。
    • 包含三个组件的闭环:
      1. 攻击模型 (Attack Model):迭代生成试图绕过防御的对抗性 Prompt [cite: 573]。
      2. 目标模型 (Target Model):即正在训练的 K2,对攻击做出反应 [cite: 574]。
      3. 裁判模型 (Judge Model):根据特定标准判断攻击是否成功,提供二分类(成功/失败)标签作为 RL 信号。

总结核心思想

Verifiable Rewards Gym 的核心在于**"去主观化"。通过将数学验证器、代码沙盒、规则检查器集成到 RL 环境中,Kimi K2 能够在数万亿次交互中获得确定性强、噪声低**的高质量反馈信号,从而在理科、代码及安全性等硬核能力上实现突破。

3.2.2 Beyond Verification: Self-Critique Rubric Reward 总结

对于无法直接通过程序验证的任务(如写作、建议、角色扮演),Kimi K2 采用了自我批判准则奖励机制,核心逻辑如下:

  • 自动化准则生成 (Rubric Generation)
    • 为每个任务利用 LLM 生成一套详细的评分维度(如:逻辑严密性、语气友好度、指令对齐度)。
  • 模型自我评估 (Self-Evaluation)
    • 训练模型在完成任务后,扮演"裁判"角色对自己的输出进行多维度打分。
  • 优势
    • 可扩展性:不再受限于人工标注的奖励模型(RM),可以针对海量主观任务快速生成奖励信号。
    • 细粒度反馈:准则(Rubric)提供了比单一分数更丰富的反馈信息,有助于模型理解"好在哪里,坏在哪里"。
3.2.3 RL Algorithm (强化学习算法) 总结

Kimi K2 的强化学习算法旨在实现超大规模参数下的高效、稳定训练:

1. 核心公式与架构
  • Group Relative 机制 :采用组内相对比较。通过对同一 Prompt 采样 KKK 个结果并取奖励平均值作为 Baseline,消除了对独立 Critic 模型的依赖,极大地节省了显存开销。
  • 优化目标 :使用回归式 Loss 函数,将策略更新视为拟合奖励优势的过程。
2. 训练约束与辅助目标
  • 辅助损失 (PTX Loss):在 RL 梯度中混合原始预训练语料的交叉熵损失。这保证了模型在进化 Agent 能力时,依然维持强大的通用语言理解和知识储备。
  • KL 散度约束:引入 KL 惩罚项,防止模型在强化学习过程中偏离原始 SFT 模型太远。
3. 策略效率优化
  • Token 预算 (Token Budgeting):针对不同任务设置不同的 Token 阈值。若模型产生不必要的冗长输出,会受到惩罚或被强制截断,从而训练出更简洁高效的思维链。
  • MuonClip 驱动:配合 MuonClip 优化器,利用其正交化更新的特性,使模型在 RL 阶段的收敛速度和稳定性远超传统的 AdamW。

核心思想总结

Kimi K2 通过 Self-Critique 解决了主观任务"没法判分"的问题,通过 MSE-based RL Algorithm 解决了"训练太贵、易崩"的问题,最终实现全场景下的智能进化。

相关推荐
AI Echoes2 小时前
自定义 LangChain 文档加载器使用技巧
数据库·人工智能·python·langchain·prompt·agent
长河2 小时前
OpenSpec 实战:用规范驱动开发破解 AI 编程协作难题
人工智能
最晚的py2 小时前
rnn循环神经网络
人工智能·rnn·深度学习·神经网络
90后小陈老师2 小时前
Java项目接入AI大模型的四种方式
java·开发语言·人工智能
向量引擎小橙2 小时前
深度|AI浪潮已至:在2026年,我们真正需要掌握什么?
人工智能
2501_924064112 小时前
2025年APP隐私合规测试主流方法与工具深度对比
大数据·网络·人工智能
未来之窗软件服务2 小时前
幽冥大陆(八十五)Python 水果识别ONNX转手机mobile —东方仙盟练气期
开发语言·python·模型训练·仙盟创梦ide·东方仙盟
莓有烦恼吖2 小时前
基于AI图像识别与智能推荐的校园食堂评价系统研究 05-审核机制模块
java·服务器·python
用户5191495848452 小时前
链式利用CVE-2024–24919:通过Checkpoint安全网关LFI漏洞挖掘敏感SSH密钥
人工智能