KIMI K2: OPEN AGENTIC INTELLIGENCE
作者/机构: Kimi Team
A1 主要贡献
本文介绍了Kimi K2,一个拥有1.04万亿总参数和320亿激活参数的混合专家(MoE)大型语言模型,其设计旨在应对智能体能力的核心挑战并推动其边界。研究的核心问题在于,实现智能体智能(Agentic Intelligence)在预训练和后训练阶段都面临挑战:预训练需要在高质量数据有限的约束下赋予模型广泛的通用先验知识,这使得每token的学习效率至关重要;后训练则需要将这些先验知识转化为可操作的行为,但多步推理、长期规划和工具使用等智能体能力在自然数据中稀少且难以规模化。
为了解决这些问题,本文的主要贡献如下:
* 提出MuonClip优化器:本文提出了一种名为MuonClip的新型优化器,它将高token效率的Muon算法与一种名为QK-Clip的稳定性增强机制相结合。通过QK-Clip,Kimi K2在15.5万亿token的预训练过程中成功实现了零损失尖峰,解决了大规模训练中的不稳定性问题。
* 构建大规模智能体数据合成管道:本文引入了一个大规模的智能体数据合成管道,该管道通过模拟和真实环境系统地生成工具使用演示。该系统构建了多样化的工具、智能体、任务和轨迹,以大规模创建高保真度、可验证正确的智能体交互数据。
* 设计通用强化学习框架:本文设计了一个通用的强化学习框架,该框架结合了可验证奖励(RLVR)和自评判准则奖励机制。模型不仅从外部定义的任务中学习,还通过评估自身的输出来学习,从而将对齐从静态领域扩展到开放式领域。
基于以上贡献,Kimi K2在广泛的智能体和前沿基准测试中表现出强大的性能,在非思考(non-thinking)评估设置下,其在多数开源和闭源基准模型中表现出色,特别是在软件工程和智能体任务方面,成为目前能力最强的开源大型语言模型之一。
A2 方法细节
2. 预训练
Kimi K2基础模型概览 Kimi K2的基础模型是一个万亿参数级别的混合专家(MoE)Transformer【索引72,Attention is All you Need,2017,Advances in Neural Information Processing Systems】模型,在1.55万亿个高质量token上进行了预训练。鉴于高质量人类数据的日益稀缺,本文认为token效率正成为大型语言模型扩展的关键系数。为了解决这个问题,本文引入了一套专门为最大化token效率而设计的预训练技术。具体来说,本文采用了高token效率的Muon优化器【索引33,Muon: An optimizer for hidden layers in neural networks,2024,URL: https://kellerjordan.github.io/posts/muon/】【索引46,Muon is scalable for LLM training,2025,arXiv preprint arXiv:2502.16982】,并通过引入QK-Clip来缓解其训练不稳定性。此外,本文还结合了合成数据生成,以进一步从可用的高质量token中提炼智能。模型架构遵循一个具有多头潜在注意力(MLA)的超稀疏MoE,类似于DeepSeek-V3【索引10,DeepSeek-V3 Technical Report,2024,arXiv preprint arXiv:2412.19437】,这是基于经验性的缩放定律分析得出的。底层基础设施的构建旨在优化训练效率和研究效率。
2.1 MuonClip:通过权重裁剪实现稳定训练
Muon优化器的选择与挑战 本文使用高token效率的Muon优化器【索引33,Muon: An optimizer for hidden layers in neural networks,2024,URL: https://kellerjordan.github.io/posts/muon/】来训练Kimi K2,并结合了权重衰减和一致的更新RMS缩放【索引46,Muon is scalable for LLM training,2025,arXiv preprint arXiv:2502.16982】。在之前的工作Moonlight【索引46,Muon is scalable for LLM training,22025,arXiv preprint arXiv:2502.16982】中的实验表明,在相同的计算预算和模型大小(因此训练数据量也相同)下,Muon的性能显著优于AdamW【索引36,Adam: A Method for Stochastic Optimization,2015,ICLR 2015】【索引48,Decoupled Weight Decay Regularization,2019,International Conference on Learning Representations】,使其成为提高大型语言模型训练中token效率的有效选择。
扩展Muon时的训练不稳定性 尽管Muon效率很高,但在扩大Muon训练规模时暴露了一个挑战:由于注意力logits爆炸导致的训练不稳定性,这个问题在我们的实验中用Muon时比用AdamW时更频繁出现。现有的缓解策略不足以解决此问题。例如,logit soft-cap【索引69,Gemma 2: Improving open language models at a practical size,2024,arXiv preprint arXiv:2408.00118】直接裁剪注意力logits,但在应用裁剪之前,查询(query)和键(key)之间的点积仍然可能过度增长。另一方面,Query-Key Normalization (QK-Norm)【索引11,Scaling vision transformers to 22 billion parameters,2023,International conference on machine learning】【索引81,Small-scale proxies for large-scale transformer training instabilities, 2023,URL https://arxiv. org/abs/2309.14322 ()】不适用于多头潜在注意力(MLA),因为其Key矩阵在推理过程中并未完全物化。
使用QK-Clip驯服Muon 为了解决这个问题,我们提出了一种新颖的权重裁剪机制QK-Clip来明确约束注意力logits。QK-Clip的工作原理是在更新后重新缩放查询和键的投影权重,以限制注意力logits的增长。
QK-Clip的数学原理 设Transformer层的输入表示为X。对于每个注意力头h,其查询、键和值投影的计算方式如下:
其中 $W_q, W_k, W_v$ 是模型参数。注意力输出为:
我们定义最大logit(max logit)为一个逐头的标量,即该批次B中softmax的最大输入值:
其中i, j是训练样本X中不同token的索引。
QK-Clip的核心思想 QK-Clip的核心思想是在 $S_h^{max}$ 超过目标阈值 $\tau$ 时重新缩放 $W_k, W_q$。重要的是,此操作不会改变当前步骤的前向/后向计算——我们仅使用最大logit作为指导信号来确定控制权重增长的强度。
朴素的QK-Clip实现 一个朴素的实现方式是同时裁剪所有头:
其中 $\gamma = \min(1, \tau /S_{max})$,且 $S_{max} = \max_h S_h^{max}$,$\alpha$ 是一个平衡参数,通常设置为0.5,对查询和键应用相等的缩放。
逐头QK-Clip的实现 然而,我们观察到在实践中,只有一小部分头的logits会出现爆炸。为了最小化对模型训练的干预,我们确定了一个逐头的缩放因子 $\gamma_h = \min(1, \tau /S_h^{max})$,并选择应用逐头的QK-Clip。这种裁剪对于常规的多头注意力(MHA)是直接的。对于MLA,我们仅对非共享的注意力头组件应用裁剪:
* qC和kC(头特定组件):每个都按 $\sqrt{\gamma_h}$ 缩放
* qR(头特定旋转):按 $\gamma_h$ 缩放
* kR(共享旋转):保持不变以避免跨头影响。
MuonClip优化器 我们将带有权重衰减、一致RMS匹配和QK-Clip的Muon集成到一个优化器中,我们称之为MuonClip(见算法1)。
MuonClip的有效性验证 我们通过几个规模的实验来展示MuonClip的有效性。首先,我们使用普通的Muon训练一个中等规模的9B激活参数和53B总参数的混合专家(MoE)模型。如图2(左)所示,我们观察到最大注意力logits迅速超过1000的量级,表明注意力logits爆炸在Muon训练到这个规模时已经很明显。这个级别的最大logits通常会导致训练中的不稳定性,包括显著的损失尖峰和偶尔的发散。
图 2: 左图:在中等规模的训练运行中,注意力logits迅速超过1000,这可能导致潜在的数值不稳定甚至训练发散。右图:在整个训练运行中,使用MuonClip和τ=100的Kimi K2的最大logits。最大logits迅速增加到100的上限值,并且在大约30%的训练步骤后才衰减到一个稳定范围,展示了QK-Clip的有效调节作用。
MuonClip的性能保持 接下来,我们证明QK-Clip不会降低模型性能,并确认MuonClip优化器在不负面影响损失轨迹的情况下保留了Muon的优化特性。关于实验设计和发现的详细讨论见附录D。
Kimi K2的稳定训练 最后,我们使用MuonClip(其中 τ = 100)训练了一个大规模MoE模型Kimi K2,并监控了整个训练过程中的最大注意力logits(图2(右))。最初,由于QK-Clip的作用,logits被限制在100。在训练过程中,最大logits逐渐衰减到一个典型的操作范围,而无需对τ进行任何调整。重要的是,训练损失保持平滑和稳定,没有观察到任何尖峰,如图3所示,这验证了MuonClip在大规模语言模型训练中为注意力动态提供了稳健和可扩展的控制。
2.2 预训练数据:通过改写提高Token效用
Token效率与改写策略 预训练中的Token效率指的是在训练过程中每消耗一个token所能带来的性能提升。提高token效用——即每个token贡献的有效学习信号——能够增强每个token对模型更新的影响,从而直接提高token效率。当高质量token供应有限且必须被最大化利用时,这一点尤其重要。一个简单提高token效用的方法是重复接触相同的token,但这可能导致过拟合和泛化能力下降。
图 3: Kimi K2的每步训练损失曲线,未经平滑或子采样。它显示在整个训练过程中没有出现尖峰。注意,为了清晰起见,我们省略了训练的最开始部分。
Kimi K2的数据策略 Kimi K2预训练数据相较于Kimi K1.5的一个关键进步是引入了合成数据生成策略以提高token效用。具体来说,我们采用了一个精心设计的改写管道来扩充高质量token的数量,而不会引发显著的过拟合。在本报告中,我们描述了两种领域专用的改写技术——分别针对知识和数学领域——以实现这种受控的数据增强。
知识数据改写 在自然的、知识密集的文本上进行预训练存在一个权衡:单次遍历不足以实现全面的知识吸收,而多次重复则会产生递减的回报并增加过拟合的风险。为了提高高质量知识token的效用,我们提出了一个合成改写框架,包含以下关键组件:
* 风格和视角多样化的提示:为了在保持事实完整性的同时增强语言多样性,我们应用了一系列精心设计的提示。这些提示引导一个大型语言模型以多样的风格和不同的视角生成原始文本的忠实改写。
* 分块自回归生成:为了在长文档中保持全局连贯性并避免信息丢失,我们采用了一种基于分块的自回归重写策略。文本被分割成段落,单独进行改写,然后重新拼接成完整的文章。这种方法缓解了LLM通常存在的隐式输出长度限制。该流程的概览如图4所示。
* 保真度验证:为了确保原始内容与重写内容之间的一致性,我们执行保真度检查,比较每个改写段落与其源文本的语义对齐度。这在训练前作为初始的质量控制步骤。
图 4: 针对长输入文本的自回归分块改写流程。输入被分割成保留上下文的小块,按顺序重写,然后连接成完整的重写段落。
改写效果验证 我们通过在SimpleQA上测试相应的准确率来比较数据改写与多轮重复的效果。我们使用K2的早期检查点进行了实验,并评估了三种训练策略:(1)将原始数据集重复10次,(2)将数据改写一次并重复10次,以及(3)将数据用不同的方式改写10次并只训练一遍。如表1所示,准确率在这些策略中持续提升,证明了我们基于改写的增强方法的有效性。我们将此方法扩展到其他大规模知识语料库,并观察到类似令人鼓舞的结果,每个语料库最多被改写两次。
表 1: 三种改写-轮次配置下的SimpleQA准确率
数学数据改写 为了增强数学推理能力,我们遵循SwallowMath【索引15,Rewriting Pre-Training Data Boosts LLM Performance in Math and Code,2025,arXiv preprint arXiv:2505.02881】中介绍的方法,将高质量的数学文档重写为“学习笔记”风格。此外,我们通过将其他语言的高质量数学材料翻译成英语来增加数据多样性。
合成数据挑战 尽管对我们数据集的改写子集进行的初步实验显示出有希望的结果,但使用合成数据作为持续扩展的策略仍是一个活跃的研究领域。关键挑战包括:在不损害事实准确性的情况下将该方法推广到多样化的源领域,最小化幻觉和非预期的毒性,以及确保对大规模数据集的可扩展性。
预训练数据总体构成 Kimi K2的预训练语料库包含15.5万亿个经过筛选的高质量token,涵盖四个主要领域:网页文本、代码、数学和知识。大多数数据处理流程遵循Kimi K1.5【索引35,Kimi k1. 5: Scaling reinforcement learning with llms,2025,arXiv preprint arXiv:2501.12599】中概述的方法。对于每个领域,我们都进行了严格的正确性和质量验证,并设计了有针对性的数据实验,以确保整理出的数据集既具有高度多样性又有效。
2.3 模型架构
Kimi K2架构参数 Kimi K2是一个拥有1.04万亿参数的混合专家(MoE)Transformer模型,其中有320亿激活参数。其架构设计与DeepSeek-V3【索引10,DeepSeek-V3 Technical Report,2024,arXiv preprint arXiv:2412.19437】类似,采用多头潜在注意力(MLA)【索引44,Deepseek-v2: A strong, economical, and efficient mixture-of-experts language model,2024,arXiv preprint arXiv:2405.04434】作为注意力机制,模型隐藏维度为7168,MoE专家隐藏维度为2048。我们的缩放定律分析显示,持续增加稀疏度会带来显著的性能提升,这促使我们将专家数量增加到384个,而DeepSeek-V3为256个。为了减少推理时的计算开销,我们将注意力头的数量减少到64个,而DeepSeek-V3为128个。表2详细比较了Kimi K2和DeepSeek-V3的架构参数。
表 2: Kimi K2与DeepSeek-V3的架构比较
稀疏度缩放定律 我们为使用Muon的混合专家(MoE)模型家族开发了一个稀疏度缩放定律。稀疏度定义为总专家数与激活专家数的比率。通过精心控制的小规模实验,我们观察到——在固定的激活参数数量(即恒定的FLOPs)下——增加总专家数(即增加稀疏度)会持续降低训练和验证损失,从而提高整体模型性能(图5)。具体来说,根据计算最优的稀疏度缩放定律,为达到1.5的相同验证损失,稀疏度48相比于稀疏度8、16和32,分别减少了1.69倍、1.39倍和1.15倍的FLOPs。尽管增加稀疏度能带来更好的性能,但这种增益伴随着基础设施复杂性的增加。为了在模型性能与成本之间取得平衡,我们为Kimi K2采用了48的稀疏度,即每次前向传播激活384个专家中的8个。
图 5: 稀疏度缩放定律。增加稀疏度可以提升模型性能。我们固定激活专家数量为8,共享专家数量为1,并改变总专家数量,从而得到不同稀疏度水平的模型。
注意力头数量 DeepSeek-V3【索引10,DeepSeek-V3 Technical Report,2024,arXiv preprint arXiv:2412.19437】将注意力头的数量设置为模型层数的约两倍,以更好地利用内存带宽并提高计算效率。然而,随着上下文长度的增加,将注意力头数量加倍会导致显著的推理开销,降低了在较长序列长度下的效率。这在智能体应用中成为一个主要限制,因为高效的长上下文处理至关重要。例如,在序列长度为128k时,将注意力头从64个增加到128个,同时保持总专家数固定为384,会导致推理FLOPs增加83%。为了评估这种设计的影响,我们进行了受控实验,比较了注意力头数量等于层数与头数为层数两倍的配置,在不同的训练FLOPs下。在iso-token训练条件下,我们观察到将注意力头加倍仅在验证损失上产生微小的改进(范围在0.5%到1.2%之间),横跨不同的计算预算(图6)。考虑到稀疏度48已经提供了强大的性能,加倍注意力头带来的边际增益并不足以证明其推理成本是合理的。因此,我们选择了64个注意力头。
图 6: 注意力头数量等于层数的模型及其对应头数加倍的模型的扩展曲线。将注意力头数量加倍导致验证损失减少约0.5%至1.2%。
2.4 训练基础设施
2.4.2 模型扩展的并行策略
灵活的并行策略 大型语言模型的训练通常在动态变化的资源可用性下进行。我们没有优化一种仅适用于特定资源量的并行策略,而是追求一种灵活的策略,允许Kimi K2在任何32的倍数个节点上进行训练。我们的策略利用了16路流水线并行(PP)与虚拟阶段【索引28,Gpipe: Efficient training of giant neural networks using pipeline parallelism,2019,Advances in neural information processing systems 32】【索引53,Efficient large-scale language model training on gpu clusters using megatron-lm,2021,Proceedings of the international conference for high performance computing, networking, storage and analysis】【索引38,Breadth-first pipeline parallelism,2023,Proceedings of Machine Learning and Systems 5】【索引57,Zero bubble pipeline parallelism,2023,arXiv preprint arXiv:2401.10241】【索引47,Hanayo: Harnessing Wave-like Pipeline Parallelism for Enhanced Large Model Training Efficiency,2023,Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis】【索引21,Pipedream: Fast and efficient pipeline parallel dnn training,2018,arXiv preprint arXiv:1806.03377】、16路专家并行(EP)【索引39,Gshard: Scaling giant models with conditional computation and automatic sharding,2020,arXiv preprint arXiv:2006.16668】和ZeRO-1数据并行(DP)【索引60,Zero: Memory optimizations toward training trillion parameter models,2020,SC20: International Conference for High Performance Computing, Networking, Storage and Analysis】的组合。
内存占用与优化器状态管理 在此设置下,将模型参数存储为BF16格式,其梯度累积缓冲区存储为FP32格式,需要大约6TB的GPU内存,分布在一个由256个GPU组成的模型并行组上。优化器状态的放置取决于训练配置。当训练节点总数较大时,优化器状态是分布式的,使其在每个设备上的内存占用可以忽略不计。当训练节点总数较少(例如32个)时,我们可以将一些优化器状态卸载到CPU。
策略一致性的优势 这种方法使我们能够为小规模和大规模实验重用相同的并行配置,同时让每个GPU为所有状态保留大约30GB的GPU内存。剩余的GPU内存用于激活,如2.4.3节所述。这种一致的设计对于研究效率至关重要,因为它简化了系统并显著加速了实验迭代。
EP通信与交错1F1B的重叠 通过增加预热微批次的数量,我们可以在标准的交错式1F1B调度【索引21,Pipedream: Fast and efficient pipeline parallel dnn training,2018,arXiv preprint arXiv:1806.03377】【索引53,Efficient large-scale language model training on gpu clusters using megatron-lm,2021,Proceedings of the international conference for high performance computing, networking, storage and analysis】下,将EP的all-to-all通信与计算重叠。相比之下,DualPipe【索引10,DeepSeek-V3 Technical Report,2024,arXiv preprint arXiv:2412.19437】需要双倍的参数和梯度内存,需要增加并行度来弥补。增加PP会引入更多的气泡,而增加EP(如下文所讨论)会产生更高的开销。对于训练一个超过1万亿参数的大型模型来说,这些额外的成本是高得令人望而却步的,因此我们选择不使用DualPipe。
PP通信开销的缓解 然而,交错式1F1B将模型分割成更多的阶段,引入了不可忽略的PP通信开销。为了缓解这一成本,我们将权重梯度计算从每个微批次的后向传递中解耦出来,并与相应的PP通信并行执行。因此,除了预热阶段外,所有的PP通信都可以被有效重叠。
更小的EP规模 为了确保在1F1B阶段实现完全的计算-通信重叠,K2中缩短的注意力计算时间(其注意力头为64个,而DeepSeek-V3为128个)要求最小化EP操作的时间。这通过采用最小可行的EP并行策略来实现,具体为EP=16。使用较小的EP组还放宽了专家平衡约束,使得无需进一步调整即可实现接近最优的速度。
2.4.3 激活值削减
激活值内存问题 在为参数、梯度缓冲区和优化器状态保留空间后,每个设备上剩余的GPU内存不足以容纳完整的MoE激活值。为了确保激活内存符合限制,特别是在1F1B预热阶段累积最大激活值的初始流水线阶段,我们采用了以下技术。
选择性重计算 重计算应用于计算成本低、内存占用高的阶段,包括LayerNorm、SwiGLU和MLA的上投影【索引10,DeepSeek-V3 Technical Report,2024,arXiv preprint arXiv:2412.19437】。此外,在训练期间对MoE的下投影进行重计算,以进一步减少激活内存。虽然是可选的,但这种重计算可以维持足够的GPU内存,防止在早期训练阶段因专家不平衡导致崩溃。
FP8存储不敏感的激活值 MoE上投影和SwiGLU的输入被压缩为FP8-E4M3格式,使用1x128的块和FP32的缩放因子。小规模实验显示没有可测量的损失增加。由于我们在初步研究中观察到性能下降的潜在风险,我们没有在计算中应用FP8。
激活值CPU卸载 所有剩余的激活值都被卸载到CPU RAM。一个拷贝引擎负责流式传输卸载和加载过程,与计算和通信核心重叠。在1F1B阶段,我们卸载前一个微批次的前向激活值,同时预取下一个微批次的后向激活值。预热和冷却阶段的处理方式类似,整体模式如图7所示。尽管卸载可能会因PCIe流量拥塞而轻微影响EP流量,但我们的测试表明EP通信仍然完全重叠。
图 7: 在不同的PP阶段,计算、通信和卸载相互重叠。
2.5 训练方案
训练参数与过程 我们使用4096个token的上下文窗口,采用MuonClip优化器(算法1)和WSD学习率调度【索引25,Minicpm: Unveiling the potential of small language models with scalable training strategies,2024,arXiv preprint arXiv:2404.06395】对模型进行了预训练,总共处理了15.5万亿个token。前10万亿个token在经过500步的预热后,以2e-4的恒定学习率进行训练,接下来的5.5万亿个token则采用余弦衰减,学习率从2e-4降至2e-5。整个过程中的权重衰减设置为0.1,全局批量大小保持在6700万个token。整体训练曲线如图3所示。
长上下文激活阶段 在预训练接近尾声时,我们进行了一个退火阶段,随后是长上下文激活阶段。批量大小保持在6700万个token不变,而学习率从2e-5衰减到7e-6。在此阶段,模型在4k序列长度上训练了4000亿个token,随后在32k序列长度上又训练了600亿个token。为了将上下文窗口扩展到128k,我们采用了YaRN方法【索引55,Yarn: Efficient context window extension of large language models,2023,arXiv preprint arXiv:2309.00071】。
3. 后训练
3.1 监督微调
微调优化器选择 我们在后训练中采用了Muon优化器【索引33,Muon: An optimizer for hidden layers in neural networks,2024,URL: https://kellerjordan.github.io/posts/muon/】,并推荐在对K2进行微调时使用它。这一建议源于我们之前工作【索引46,Muon is scalable for LLM training,2025,arXiv preprint arXiv:2502.16982】的结论,即使用Muon预训练的检查点在进行Muon微调时能获得最佳性能。
SFT数据集构建 我们构建了一个跨越多个领域的大规模指令微调数据集,遵循两个核心原则:最大化提示的多样性和确保高质量的响应。为此,我们开发了一套针对不同任务领域的数据生成管道,每个管道都结合了人工标注、提示工程和验证过程。我们采用K1.5【索引35,Kimi k1. 5: Scaling reinforcement learning with llms,2025,arXiv preprint arXiv:2501.12599】和其他内部领域专家模型为各种任务生成候选响应,然后由LLM或人工评判员进行自动质量评估和筛选。对于智能体数据,我们创建了一个数据合成管道,通过多步、交互式推理来教授模型工具使用能力。
3.1.1 面向工具使用学习的大规模智能体数据合成
智能体工具使用能力的重要性与挑战 现代LLM智能体的一个关键能力是能够自主使用不熟悉的工具,与外部环境互动,并通过推理、执行和纠错来迭代地优化其行为。智能体工具使用能力对于解决需要与现实世界系统进行动态交互的复杂、多步骤任务至关重要。近期的基准测试如ACEBench【索引6,ACEBench: Who Wins the Match Point in Tool Learning?,2025,arXiv e-prints】和τ-bench【索引85,tau-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains,2024,arXiv preprint arXiv:2406.12045】强调了全面工具使用评估的重要性,而像ToolLLM【索引58,Toolllm: Facilitating large language models to master 16000+ real-world apis,2023,arXiv preprint arXiv:2307.16789】和ACEBench【索引6,ACEBench: Who Wins the Match Point in Tool Learning?,2025,arXiv e-prints】等框架展示了教授模型有效使用数千种工具的潜力。然而,大规模训练这种能力存在一个重大挑战:真实世界环境虽然提供了丰富而真实的交互信号,但由于成本、复杂性、隐私和可访问性等限制,通常难以大规模构建。近期关于合成数据生成的工作(AgentInstruct【索引51,Agentinstruct: Toward generative teaching with agentic flows,2024,arXiv preprint arXiv:2407.03502】;Self-Instruct【索引75,Self-instruct: Aligning language models with self-generated instructions,2022,arXiv preprint arXiv:2212.10560】;StableToolBench【索引20,StableToolBench: Towards Stable Large-Scale Benchmarking on Tool Learning of Large Language Models,2025,arXiv preprint arXiv:2403.07714】;ZeroSearch【索引66,ZeroSearch: Incentivize the Search Capability of LLMs without Searching,2025,arXiv preprint arXiv:2505.04588】)在不依赖真实世界交互的情况下创建大规模数据方面取得了有希望的成果。基于这些进展并受到ACEBench【索引6,ACEBench: Who Wins the Match Point in Tool Learning?,2025,arXiv e-prints】全面数据合成框架的启发,我们开发了一个能够大规模模拟真实世界工具使用场景的管道,从而能够生成数以万计的多样化、高质量的训练样本。
数据合成管道的三个阶段 我们的数据合成管道包括三个阶段,如图8所示。
* 工具规范生成:我们首先从真实世界的工具和LLM合成的工具中构建一个大型的工具规范库;
* 智能体和任务生成:对于从工具库中抽样的每个工具集,我们生成一个使用该工具集的智能体以及一些相应的任务;
* 轨迹生成:对于每个智能体和任务,我们生成智能体通过调用工具完成任务的轨迹。
图 8: 用于工具使用的数据合成管道。(a) 工具规范来自真实世界的工具和LLM;智能体和任务由工具库生成。(b) 使用多智能体管道生成和筛选带有工具调用的轨迹。
领域演化与工具生成 我们通过两种互补的方法构建了一个全面的工具库。首先,我们直接从GitHub仓库中获取了3000多个真实的MCP(模型上下文协议)工具,利用了已有的高质量工具规范。其次,我们通过一个分层的领域生成过程系统地演化【索引82,WizardLM: Empowering large pre-trained language models to follow complex instructions,2025,arXiv preprint arXiv:2304.12244】合成工具:我们从关键类别(例如,金融交易、软件应用、机器人控制)开始,然后在每个类别内演化出多个具体的应用领域。接着为每个领域合成专门的工具,具有清晰的接口、描述和操作语义。这个演化过程产生了超过20,000个合成工具。图9通过t-SNE嵌入可视化了我们工具集的多样性,展示了MCP和合成工具覆盖了工具空间的互补区域。
(a) 真实MCP工具的t-SNE可视化,按其原始来源类别着色
(b) 合成工具的t-SNE可视化,按预定义的领域类别着色
图 9: 工具嵌入的t-SNE可视化。(a) 真实世界的MCP工具根据其原始来源类别呈现出自然聚类。(b) 合成工具被组织到预定义的领域类别中,提供了对工具空间的系统性覆盖。两者共同确保了对不同工具功能的全面表示。
智能体多样化 我们通过合成各种系统提示,并为它们配备来自我们工具库的不同工具组合,生成了数千个不同的智能体。这创建了一个具有不同能力、专业领域和行为模式的多样化智能体群体,确保了对潜在用例的广泛覆盖。
基于准则的任务生成 对于每个智能体配置,我们生成从简单到复杂操作不等的任务。每个任务都配有一个明确的准则,规定了成功标准、预期的工具使用模式和评估检查点。这种基于准则的方法确保了对智能体性能的一致和客观评估。
多轮轨迹生成 我们通过几个组件来模拟真实的工具使用场景:
* 用户模拟:由LLM生成的用户角色具有独特的沟通风格和偏好,与智能体进行多轮对话,创造出自然的交互模式。
* 工具执行环境:一个复杂的工具模拟器(功能上等同于一个世界模型)执行工具调用并提供真实的反馈。该模拟器在每次工具执行后维护和更新状态,从而实现具有持久效果的复杂多步交互。它引入了受控的随机性,以产生包括成功、部分失败和边缘情况在内的各种结果。
质量评估与筛选 一个基于LLM的评判员根据任务准则评估每个轨迹。只有满足成功标准的轨迹才会被保留用于训练,这在允许任务完成策略自然变化的同时,确保了高质量的数据。
与真实执行环境的混合方法 尽管模拟提供了可扩展性,但我们承认模拟保真度存在固有限制。为了解决这个问题,我们用真实的执行沙箱来补充我们的模拟环境,特别是在编码和软件工程等真实性至关重要的场景中。这些真实沙箱执行实际代码,与真实的开发环境互动,并通过测试套件通过率等客观指标提供基准真相反馈。这种结合确保了我们的模型既能从模拟场景的多样性中学习,也能从真实执行的真实性中学习,从而显著增强了实际的智能体能力。
数据合成总结 通过利用这种结合了可扩展模拟与有针对性的真实世界执行的混合管道,我们生成了多样化、高质量的工具使用演示,平衡了覆盖范围和真实性。我们合成数据生成的规模和自动化,加上真实执行环境提供的基础,通过我们的质量过滤过程有效地实现了大规模的拒绝采样【索引26,Large language models can self-improve,2022,arXiv preprint arXiv:2210.11610】【索引87,Star: Bootstrapping reasoning with reasoning,2022,Advances in Neural Information Processing Systems 35】。这种高质量的合成数据在用于监督微调时,已在广泛的现实世界应用中显著提高了模型的工具使用能力。
3.2 强化学习
RL的扩展与框架 我们相信强化学习(RL)比监督微调(SFT)具有更好的token效率和泛化能力。在K1.5【索引35,Kimi k1. 5: Scaling reinforcement learning with llms,2025,arXiv preprint arXiv:2501.12599】工作的基础上,我们在K2中继续在任务多样性和训练FLOPs方面扩展RL。为此,我们开发了一个类似Gym的可扩展框架,以便在广泛的场景中进行RL。我们用大量具有可验证奖励的任务来扩展该框架。对于依赖主观偏好的任务,如创意写作和开放式问答,我们引入了自我批评奖励,模型通过成对比较来判断自己的输出。这种方法使得来自不同领域的任务都能从RL范式中受益。
3.2.1 可验证奖励环境(Gym)
数学、STEM和逻辑任务 对于数学、STEM和逻辑推理领域,我们的RL数据准备遵循两个关键原则:多样化的覆盖范围和适度的难度。
多样化覆盖 对于数学和STEM任务,我们结合专家标注、内部问答提取管道和开放数据集【索引41,Numinamath: The largest public dataset in ai4maths with 860k pairs of competition math problems and solutions,2024,Hugging Face repository 13.9】【索引52,Aimo-2 winning solution: Building state-of-the-art mathematical reasoning models with openmathreasoning dataset,2025,arXiv preprint arXiv:2504.16891】,收集了高质量的问答对。在收集过程中,我们利用标签系统有意增加对覆盖不足领域的覆盖。对于逻辑任务,我们的数据集包括多种格式,如结构化数据任务(例如,多跳表格推理、跨表聚合)和逻辑谜题(例如,24点游戏、数独、谜语、密码算术和摩尔斯电码解码)。
适度难度 RL的提示集既不应太容易也不应太难,因为这两种情况都可能产生很少的信号并降低学习效率。我们使用SFT模型的pass@k准确率来评估每个问题的难度,并只选择难度适中的问题。
复杂指令遵循 有效的指令遵循不仅需要理解明确的约束,还需要处理隐性要求、处理边缘情况,并在长时间的对话中保持一致性。我们通过一个结合了自动验证和对抗性检测的混合验证框架,以及一个可扩展的课程生成管道来应对这些挑战。我们的方法采用双路径系统来确保精确性和鲁棒性:
* 混合规则验证:我们实现了两种验证机制:(1)对于具有可验证输出的指令(例如,长度、风格约束),通过代码解释器进行确定性评估;(2)对于需要对约束有细致理解的指令,采用LLM作为评判员进行评估。为了解决模型可能声称完成指令而实际未遵守的对抗性行为,我们增加了一个“hack-check”层,专门检测这种欺骗性声称。
* 多源指令生成:为了构建我们的训练数据,我们采用了三种不同的生成策略以确保全面的覆盖:(1)由我们的数据团队开发的专家精心制作的复杂条件提示和准则;(2)受AutoIF【索引12,Self-play with Execution Feedback: Improving Instruction-following Capabilities of Large Language Models,2024,arXiv preprint arXiv:2406.13542】启发的智能体指令增强;(3)一个专门用于生成额外指令以探测特定失败模式或边缘情况的微调模型。这种多管齐下的方法确保了指令覆盖的广度和深度。
忠实度 忠实度对于在多轮工具使用、自生成推理链和开放环境交互等场景中运行的智能体模型至关重要。受FACTS Grounding【索引30,The FACTS Grounding Leaderboard: Benchmarking LLMs’ Ability to Ground Responses to Long-Form Input,2025,arXiv preprint arXiv:2501.03200】评估框架的启发,我们训练了一个句子级别的忠实度评判模型来进行自动验证。该评判员能有效检测出在上下文中没有支持证据的情况下做出事实性声明的句子。它作为一个奖励模型来增强整体的忠实度性能。
编码与软件工程 为了增强我们解决竞赛级编程问题的能力,我们从开源数据集【索引27,OpenCoder: The Open Cookbook for Top-Tier Code Large Language Models,2025,arXiv preprint arXiv:2411.04905】【索引83,KodCode: A Diverse, Challenging, and Verifiable Synthetic Dataset for Coding,2025,arXiv preprint arXiv:2503.02951】和合成来源收集问题及其评判器。为确保合成数据的多样性和奖励信号的正确性,我们整合了从预训练数据中检索到的高质量人工编写的单元测试。对于软件工程任务,我们从GitHub收集了大量的拉取请求和问题,以构建一个包含用户提示/问题和可执行单元测试的软件开发环境。该环境建立在一个强大的沙箱基础设施之上,由Kubernetes提供可扩展性和安全性支持。它支持超过10,000个并发沙箱实例,性能稳定,非常适合竞赛编程和软件工程任务。
安全性 我们增强安全性的工作始于一套由人工策划的种子提示,这些提示是手动制作的,旨在涵盖常见的风险类别,如暴力、欺诈和歧视。
越狱模拟 为了模拟复杂的越狱尝试(例如,角色扮演、文学叙事和学术讨论),我们采用了一个自动化的提示演化管道,该管道包含三个关键组件:
* 攻击模型:迭代生成旨在从目标LLM中引出不安全响应的对抗性提示。
* 目标模型:对这些提示产生响应,模拟潜在的漏洞。
* 评判模型:评估交互过程,以确定对抗性提示是否成功绕过了安全机制。
每次交互都使用特定任务的准则进行评估,使评判模型能够提供一个二元的成功/失败标签。
3.2.2 超越验证:自评判准则奖励
自评判框架 为了将模型对齐扩展到具有可验证奖励的任务之外,我们引入了一个用于从自我批评反馈中进行通用强化学习的框架。该方法旨在将LLM与细微的人类偏好对齐,包括乐于助人、创造力、推理深度、事实性和安全性,通过将从可验证场景中学到的能力扩展到更广泛的主观任务中。该框架使用一个自我批评准则奖励机制,模型通过评估自己的输出来生成偏好信号。为了将K2引导成为一个有能力的评判员,我们整理了开源和内部的偏好数据集,并在SFT阶段初始化了其批评能力。
自评判策略优化 在学习循环的第一个核心过程中,K2行动者(actor)为涵盖广泛用例的通用提示生成响应。然后,K2批评者(critic)通过与一系列准则进行成对评估来对所有结果进行排序,这些准则包括核心准则(附录F.1),代表我们Kimi AI助手珍视的基本价值观;规定性准则(附录F.2),旨在消除奖励 hacking;以及由我们的数据团队为特定指导性上下文制作的人工标注准则。尽管某些准则可以被指定为强制性的,但K2保留了根据其内部先验来权衡它们的灵活性。这种能力使其能够动态、持续地与其演化中的在线策略行为对齐,确保模型的响应在适应特定指令的同时,与其核心身份保持一致。
闭环批评者优化与对齐 在RL训练期间,批评模型使用可验证信号进行优化。从具有可验证奖励的提示生成的在线(on-policy)轨迹被用来持续更新批评者,这是将RLVR的客观性能信号直接提炼到其评估模型中的关键一步。这种迁移学习过程将其更主观的判断建立在可验证数据的基础上,使得从可验证任务中获得的性能提升能够增强批评者在缺乏明确奖励信号的复杂任务上的判断力。这个闭环过程确保了批评者随着策略的演变而不断地重新校准其评估标准。通过将主观评估建立在可验证数据的基础上,该框架能够实现与复杂的、不可验证的人类目标的稳健和可扩展的对齐。
整体对齐效果 因此,这种整体对齐在广泛的领域中产生了全面的性能改进,包括用户意图理解、创意写作、复杂推理和细微的语言理解。
3.2.3 强化学习算法
基本目标函数 我们采用K1.5【索引35,Kimi k1. 5: Scaling reinforcement learning with llms,2025,arXiv preprint arXiv:2501.12599】中介绍的策略优化算法作为K2的基础。对于每个问题x,我们从先前的策略 $\pi_{old}$ 中采样K个响应 {$y_1, . . . , y_k$},并针对以下目标优化模型 $\pi_{\theta}$:
其中 $\bar{r}(x) = \frac{1}{k} \sum_{i=1}^{k} r(x, y_i)$ 是采样响应的平均奖励,$\tau > 0$ 是一个促进稳定学习的正则化参数。与SFT中一样,我们采用Muon优化器【索引33,Muon: An optimizer for hidden layers in neural networks,2024,URL: https://kellerjordan.github.io/posts/muon/】来最小化这个目标。随着我们将RL训练扩展到K2中更广泛的任务范围,一个主要挑战是在所有领域实现一致的性能改进。为了解决这个问题,我们对RL算法进行了几项补充。
预算控制 普遍观察到,RL通常会导致模型生成响应的长度大幅增加【索引35,Kimi k1. 5: Scaling reinforcement learning with llms,2025,arXiv preprint arXiv:2501.12599】【索引19,Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning,2025,arXiv preprint arXiv:2501.12948】。虽然较长的响应可以使模型利用额外的测试时计算来提高复杂推理任务的性能,但在非推理领域,其好处通常不足以证明其推理成本是合理的。为了鼓励模型合理分配推理预算,我们在整个RL训练过程中强制执行每个样本的最大token预算,该预算根据任务类型确定。超过此token预算的响应将被截断并被分配一个惩罚,这激励模型在指定的限制内生成解决方案。根据经验,这种方法显著提高了模型的token效率,鼓励在所有领域生成简洁而有效的解决方案。
PTX损失 为了防止在联合RL训练期间可能遗忘有价值的高质量数据,我们整理了一个包含精选高质量样本的数据集,并通过一个辅助的PTX损失【索引54,Efficient large-scale language model training on gpu clusters using megatron-lm,2021,Proceedings of the international conference for high performance computing, networking, storage and analysis】将其整合到RL目标中。该策略不仅利用了高质量数据的优势,还减轻了对训练方案中明确存在的有限任务集的过拟合风险。这种增强显著提高了模型在更广泛领域中的泛化能力。
温度衰减 对于创意写作和复杂推理等任务,我们发现在训练初期通过高采样温度促进探索至关重要。高温允许模型生成多样化和创新的响应,从而有助于发现有效的策略并降低过早收敛到次优解的风险。然而,在训练后期或评估期间保持高温可能是有害的,因为它会引入过多的随机性,并损害模型输出的可靠性和一致性。为了解决这个问题,我们采用温度衰减调度,在整个训练过程中从探索转向利用。该策略确保模型在最有利的时候利用探索,并最终收敛到稳定和高质量的输出。
3.3 强化学习基础设施
3.3.1 同地部署架构
混合同地部署 与K1.5【索引35,Kimi k1. 5: Scaling reinforcement learning with llms,2025,arXiv preprint arXiv:2501.12599】类似,我们为同步RL训练采用了一种混合的同地部署架构,即训练引擎和推理引擎位于相同的工作节点上。当一个引擎处于活动状态时,另一个引擎会释放或卸载其GPU资源以适应。在RL训练的每次迭代中,一个中心控制器首先调用推理引擎为训练生成新数据。然后它通知训练引擎在新数据上进行训练,并将更新后的参数发送给推理引擎用于下一次迭代。
系统优化 每个引擎都为吞吐量进行了深度优化。此外,随着模型规模扩大到K2的级别,引擎切换和故障恢复的延迟变得显著。我们在此介绍我们在这些方面的系统设计考量。
3.3.2 高效的引擎切换
引擎切换的挑战与解决方案 在部署(rollout)期间,训练引擎的参数被卸载到DRAM中。因此,启动训练引擎只是一个简单的H2D(主机到设备)传输步骤。然而,启动推理引擎是一个更大的挑战,因为它必须从具有不同分片范式的训练引擎获取更新的参数。
分布式检查点引擎 鉴于K2的规模和涉及的大量设备,使用网络文件系统进行重新分片和广播参数是不切实际的。为保持低开销所需的总带宽达到每秒数PB。为了应对这一挑战,我们开发了一个与训练节点同地部署的分布式检查点引擎来管理参数状态。为了执行参数更新,每个检查点引擎工作节点从训练引擎获取参数的本地副本,然后在所有检查点引擎工作节点之间广播完整的参数集。随后,推理引擎仅从检查点引擎检索其需要的参数分片。此过程如图10所示。为了实现一个1T模型的此功能,更新是以流水线方式逐个参数执行的,从而最小化内存占用(见附录G)。
图 10: 利用检查点引擎进行参数更新
广播完整参数集的权衡 我们选择在整个集群中广播完整的参数集,而不考虑每个推理工作节点上的具体分片方案。虽然这比理论上最优的方法传输了多几倍的数据,但它提供了一个更简单的系统设计,对训练和推理引擎的侵入性更小。我们选择牺牲这个微小的开销来完全解耦训练引擎和推理引擎,从而大大简化了维护和测试。
性能优势 值得注意的是,由于减少了同步开销和更高的网络带宽利用率,这种方法优于“按需传输”的方法。我们的系统可以在不到30秒的时间内完成Kimi K2的完整参数更新,这对于典型的RL训练迭代来说是一个可以忽略不计的时间。
3.3.3 高效的系统启动
启动优化 由于大规模训练容易发生系统故障,优化启动时间对于像Kimi K2这样大的模型至关重要。
训练引擎启动 为了启动训练引擎,我们让每个训练工作节点选择性地从磁盘读取部分或全部参数,并向其对等节点广播必要的参数。设计目标是确保所有工作节点总共只读取一次检查点,从而最小化昂贵的磁盘IO。
推理引擎启动 由于推理引擎是独立的副本,我们希望避免在它们之间引入额外的同步屏障。因此,我们选择重用检查点引擎进行启动:我们让检查点引擎集体从磁盘读取检查点,类似于训练引擎的启动方式。然后,它使用上一节介绍的方法更新未初始化的推理引擎的状态。通过利用专用的检查点引擎,系统也对单点故障具有鲁棒性,因为一个推理副本可以重新启动而无需与其他副本通信。
3.3.4 智能体式部署(Agentic Rollout)
长周期任务的挑战 我们的RL基础设施支持长周期、多轮智能体任务的训练。在部署(rollout)期间,这些任务带来了独特的挑战,例如复杂的环境交互和漫长的部署持续时间。这里我们介绍一些优化措施来缓解这些问题。
GPU利用率最大化 由于环境的多样性,某些交互可能会因为等待环境反馈(例如,虚拟机或代码解释器)而被阻塞,导致GPU空闲。我们采用两种策略来最大化GPU利用率:
* (i) 我们将重型环境部署为可以更容易扩展的专用服务;
* (ii) 我们采用大量的并发部署来分摊某些昂贵交互引起的延迟。
长尾轨迹处理 智能体式部署的另一个挑战是单个部署轨迹可能非常长。为了防止长尾轨迹阻塞整个部署过程,我们采用了部分部署(partial rollout)【索引35,Kimi k1. 5: Scaling reinforcement learning with llms,2025,arXiv preprint arXiv:2501.12599】技术。该策略允许暂停长尾未完成的任务,并在下一个RL迭代中恢复。
研究效率提升 为了提高研究效率,我们还设计了一个受OpenAI Gym框架【索引49,OpenAI Gym,2025,arXiv preprint arXiv:2502.05172】启发的统一接口,以简化新环境的集成。我们希望未来能将我们的RL基础设施扩展到更多样化的交互式环境中。
A4 实验环境
- 硬件配置:
- GPU: 训练集群配备NVIDIA H800 GPU。
- 节点配置: 每个H800节点包含2TB RAM和8个GPU,节点内通过NVLink和NVSwitch连接。
- 网络: 节点间使用8x400 Gbps RoCE互联进行通信。
- 软件配置:
- 代码实现: 采用自定义的训练和RL基础设施,包括为大规模并行和高效引擎切换设计的系统。
- 依赖库/OS: 沙箱基础设施由Kubernetes提供支持和保障。评估框架基于LM-Harness-Evaluation【索引4,Lessons from the trenches on reproducible evaluation of language models,2024,arXiv preprint arXiv:2405.14782】的内部版本。
- 模型架构:
- Kimi K2: 1.04万亿总参数,320亿激活参数的混合专家(MoE)模型。隐藏层维度7168,MoE专家隐藏层维度2048,64个注意力头,384个专家(激活8个)。
- 数据集与基准:
- 预训练数据: 15.5万亿token,涵盖网页文本、代码、数学和知识领域。
- 后训练评估基准:
- 编码: LiveCodeBench v6, OJBench, MultiPL-E, SWE-bench Verified, TerminalBench, Multi-SWE-bench, SWE-Lancer, PaperBench, Aider-Polyglot。
- 工具使用: τ2-Bench, ACEBench。
- 推理: AIME 2024/2025, MATH-500, HMMT 2025, CNMO 2024, PolyMath-en, ZebraLogic, AutoLogi, GPQA-Diamond, SuperGPQA, Humanity’s Last Exam (Text-Only)。
- 长上下文: MRCR4, DROP, FRAMES, LongBench v2。
- 事实性: FACTS Grounding, Vectara Hallucination Leaderboard, FaithJudge。
- 通用能力: MMLU, MMLU-Redux, MMLU-Pro, IFEval, Multi-Challenge, SimpleQA, LiveBench。
- 预训练评估基准:
- 通用: MMLU, MMLU-Pro, MMLU-Redux, BBH, TriviaQA, SuperGPQA, SimpleQA, HellaSwag, AGIEval, GPQA-Diamond, ARC-Challenge, WinoGrande。
- 编码: EvalPlus, LiveCodeBench v6, CRUXEval。
- 数学: GSM8K, GSM8K-Platinum, MATH, CMATH。
- 中文: C-Eval, CMMLU, CSimpleQA。
A4 实验结果
4.1 后训练评估结果 (Kimi-K2-Instruct)
Kimi-K2-Instruct在所有评估中均采用非思考(non-thinking)模式,以确保与基准模型的公平比较。
- 智能体与竞赛级编码: Kimi-K2-Instruct在真实世界的软件工程任务中展现了开源模型中的SOTA性能。在SWE-bench Verified上,单次尝试准确率为65.8%,多次尝试为71.6%;在SWE-bench Multilingual上为47.3%;在SWE-lancer上为39.1%,显著缩小了与Claude 4 Opus和Sonnet的差距。在LiveCodeBench v6(53.7%)和OJBench(27.1%)等竞赛级编码基准上,它也领先于所有模型。(见表3)
- 智能体工具使用: 在多轮工具使用基准上,Kimi-K2-Instruct设立了新标准。它在τ2-Bench上取得了66.1的Pass@1,在ACEBench上取得了76.5,大幅超越所有基准模型,证实了其在跨领域工具编排方面的强大能力。(见表3)
- 通用能力: 模型在通用知识、数学、指令遵循和长上下文任务上表现出强大且均衡的性能。它在SimpleQA(31.0%)、MMLU(89.5%)和MMLU-Redux(92.7%)上超越了其他开源模型,并在指令遵循基准IFEval(89.8%)和Multi-Challenge(54.1%)上领先所有模型。在数学和STEM领域,它取得了顶级分数(AIME 2024: 69.6%, GPQA-Diamond: 75.1%),并在长上下文任务上保持竞争力。(见表3)
- 开放式评估: 在LMSYS Arena排行榜(2025年7月17日)上,基于超过3000名用户的投票,Kimi-K2-Instruct被评为排名第一的开源模型和总排名第五的模型。这表明在真实世界的盲测中,用户对Kimi K2在开放式任务上的高质量响应有很高的偏好。
表3: Kimi-K2-Instruct与领先模型的性能比较
4.2 预训练评估结果 (Kimi-K2-Base)
Kimi-K2-Base与领先的开源基础模型进行了比较,结果显示其在大多数评估任务中达到了SOTA性能。
- 通用语言理解: 在12个英语语言基准测试中,Kimi-K2-Base在10个上取得了SOTA性能,包括MMLU(87.79%)、MMLU-Pro(69.17%)和SimpleQA(35.25%),显著优于所有基准模型。(见表4)
- 编码能力: 在编码基准上,Kimi-K2-Base在所有指标上均处于领先地位,包括CRUXEval-I-cot(74.00%)、LiveCodeBench v6(26.29%)和EvalPlus(80.33%),展示了卓越的代码生成和理解能力。(见表4)
- 数学推理: Kimi-K2-Base在四个数学基准中的三个上领先:MATH(70.22%)、GSM8K(92.12%)和GSM8K-Platinum(94.21%),展示了其强大的数学问题解决能力。(见表4)
- 中文语言理解: 模型在所有中文基准测试中均取得了SOTA结果:C-Eval(92.50%)、CMMLU(90.90%)和CSimpleQA(77.57%),确立了其在中文理解方面的领先地位。(见表4)
表4: Kimi-K2-Base与领先开源模型的性能比较
4.3 安全性评估
- 实验设置: 使用Promptfoo工具,针对Kimi K2、DeepSeek-V3、DeepSeek-R1和Qwen3等开源模型进行了红队评估。评估涵盖了有害内容、隐私、安全等攻击场景,以及prompt注入、迭代式越狱等多种攻击策略。
- 实验结果: 如表6所示,Kimi K2在未针对特定评估场景进行优化的情况下,在某些复杂案例(如Harmful–Iterative Jailbreak)的通过率相对较高。不同攻击策略效果各异,Base64编码转换影响甚微,而Crescendo策略的对抗性更强。结果也表明,复杂的攻击策略并不总比基础提示更有效。评估结果存在一定主观性,且部分测试对基础LLM的适用性有限。
表6: 安全性评估结果
A5 结论
本文介绍了Kimi K2,一个为智能体智能而构建的1T参数级开源权重MoE模型。通过利用高token效率的MuonClip优化器和15.5万亿token的高质量数据集,Kimi K2实现了稳定、可扩展的预训练。其后训练阶段结合了大规模合成的工具使用数据和一个统一的强化学习框架,该框架同时使用可验证奖励和自我批评反馈。Kimi K2在智能体和推理基准上创造了新的SOTA记录,确立了其作为迄今为止能力最强的开源权重LLM的地位。
A6 附录
B 工具调用的Token模板
Token结构组成 工具调用的token结构包含三个部分:
* 工具声明消息:定义可用工具列表及其参数的模式。
* 助手消息中的工具调用部分:编码模型调用工具的请求。
* 工具结果消息:封装被调用工具的执行结果。
工具声明消息格式 工具声明消息的原始token格式如下:
其中蓝色高亮部分代表特殊token,绿色部分是工具声明内容。我们使用TypeScript来表达工具声明,因为它简洁且类型系统完备,能够用简短的文本表达工具参数的类型和约束。相比于OpenAI兼容的JSON格式(如清单1),TypeScript格式(如清单2)更为紧凑。为了提高兼容性,部分训练数据也使用JSON作为工具声明语言。
工具调用部分格式 模型响应中工具调用部分的token模板如下:
该模板支持并行工具调用,每个调用都有一个唯一的ID。为处理格式错误,我们开发了一个名为enforcer
的约束解码模块,确保生成的token遵循预定义模板和声明的模式。
工具结果消息格式 工具结果消息是一个简单的文本消息,编码了工具的调用ID和相应的结果。
C 评估详情
编码任务 Kimi-K2-Instruct在竞赛级编码基准LiveCodeBench(53.7%)和OJBench(27.1%)上表现出色,超越了领先的开源和专有模型。在多语言编程基准MultiPL-E上,准确率达到85.7%。在软件工程任务(如SWE-bench Verified, SWE-lancer)中,它显著优于其他开源模型,并缩小了与专有模型的差距。
工具使用任务 在τ2-Bench和ACEBench上,Kimi-K2-Instruct分别取得了66.1的平均Pass@1和76.5的总体得分,均大幅领先于DeepSeek-V3和Qwen3。
数学、STEM和逻辑任务 在数学任务(如AIME 2024)和STEM任务(如GPQA-Diamond)上,Kimi-K2-Instruct表现强劲,得分分别为69.6%和75.1%,优于所有非思考模式的基准模型。在逻辑推理任务(ZebraLogic, AutoLogi)上也超越了其他模型。
通用任务 Kimi-K2-Instruct在MMLU-Redux上以92.7的EM得分领先,在SimpleQA(31.0%)和LiveBench(76.4%)上也表现出色。在指令遵循任务IFEval(89.8%)和Multi-Challenge(54.1%)上,它均取得了最高分,展示了其强大的知识整合和指令遵循能力。
长上下文和事实性任务 在事实性基准FACTS Grounding上,Kimi-K2-Instruct得分88.5,超越了所有开源对手。在HHEM和FaithJudge上,其幻觉率分别为1.1%和7.4%。在长上下文任务中,它在DROP(93.5%)上领先所有模型,并在MRCR(55.0%)上超越了DeepSeek-V3。
开放式评估 在Arena-Hard-Auto v2.0基准上,Kimi-K2-Instruct在硬提示(54.5%)和创意写作(85.0%)上的胜率均达到SOTA水平。在我们内部的中文基准测试中,它也全面领先于ChatGPT-4o和Claude Sonnet 4等模型(图11)。此外,它在LMSYS Arena上是排名最高的开源模型,这些结果共同证明了其在真实世界开放式任务中的卓越表现。
图 11: 中文内部基准评估。
D QK-Clip不损害模型质量
最小干预原则 QK-Clip的设计遵循最小干预原则:仅在必要时激活,并在训练稳定后自动停用。
小规模消融实验 我们训练了两个小规模的0.5B激活参数的MoE模型,一个使用原始Muon,另一个使用MuonClip(τ=30)。如图12所示,应用MuonClip对损失曲线的影响可以忽略不计,表明即使是激进的裁剪也不会损害收敛。下游任务评估也未显示性能有统计学意义上的下降。
图 12: 在小规模设置中对Muon应用QK-Clip,即使使用激进的阈值(τ=30),对损失的影响也可以忽略不计,表明它是一种安全有效的约束注意力logits的方法。
自停用特性 在Kimi K2的训练中,QK-Clip只是暂时激活的:
* 初始70000步:12.7%的注意力头至少触发了一次QK-Clip。
* 70000步后:所有头的最大logit(Smax)都降到了100以下,使得QK-Clip失效。
当QK-Clip激活时,它是逐头应用的,以最小化对其他头的过度正则化。
E 为何Muon更易发生Logit爆炸
Logit爆炸的根源 Logit爆炸发生在最大pre-softmax注意力分数 $S^{max} = \max_{i,j} \frac{x_i^T W_q W_k^T x_j}{\sqrt{d}}$ 在训练中无界增长时。这主要是由 $W_q$ 或 $W_k$ 的谱范数增长驱动的。
更新结构的差异 Muon通过msign操作产生权重更新,导致更新矩阵的所有奇异值相等,其有效秩是满的。相比之下,Adam产生的更新矩阵谱是倾斜的,有效秩很低。我们在16B的Moonlight模型上验证了这一点,Muon训练的权重比Adam训练的权重具有更高的奇异值熵(即更高的有效秩)。
SVD公式解释 设参数矩阵的SVD为 $W_{t-1} = U \Sigma V^T$。更新矩阵为 $\Delta W_{Adam}$ 和 $\Delta W_{Muon}$。新的参数矩阵为 $W_t = W_{t-1} - \eta \Delta W$。在Muon中,由于权重和更新都具有比Adam更高的有效秩,我们假设奇异向量对 $u_i v_i^T$ 与 $\bar{u}_j \bar{v}_j^T$ 对齐的概率更高,这可能导致 $W_t$ 对应的奇异值加性增长。
注意力机制的放大效应 注意力logits通过双线性形式 $x_i^T W_q W_k^T x_j$ 计算。乘积 $W_q W_k^T$ 会平方谱范数,因此任一矩阵的奇异值增加都会被放大。Muon倾向于增大奇异值的特性因此转化为更高的logit爆炸风险。
F K2批评者用于通用RL的准则
F.1 核心准则
- 清晰与相关性:评估响应是否在充分满足用户意图的同时保持简洁。
- 对话流畅性与参与度:评估响应是否有助于自然流畅的对话,保持连贯并适当地引导对话。
- 客观与扎实的互动:评估响应是否保持客观,专注于用户请求的实质,避免元评论或不必要的奉承。
F.2 规定性准则
- 初始赞扬:响应不得以对用户或问题的赞美开头(例如,“这是个好问题!”)。
- 明确的辩解:禁止任何解释响应为何优秀或如何成功满足用户请求的句子。
F.3 局限性
该评估框架的一个潜在副作用是可能偏爱看起来自信和果断的响应,即使在涉及模糊性或主观性的情境中也是如此。这源于当前准则的两个关键限制:
* 避免自我限定:规定性规则禁止自我评估或使用不确定的措辞(如“这可能不准确”)。
* 偏好清晰和单一答案:准则奖励直接、果断的答案,这可能不鼓励在复杂场景中采取谨慎或多角度的响应。
因此,模型可能偶尔会在需要模糊、细微差别或认知谦逊的领域表现出过度自信。
G 用于RL训练的引擎切换流水线
缓冲区管理 检查点引擎在每个GPU上管理三个大小相等的设备缓冲区:一个用于加载卸载的模型参数的H2D缓冲区,以及两个用于GPU间广播的IPC缓冲区。IPC缓冲区与推理引擎共享。
理论上的三阶段流水线 如图13a所示,引入了一个三阶段流水线:(1)H2D:将最新的权重分片异步复制到H2D缓冲区;(2)广播:复制完成后,分片将被复制到一个IPC缓冲区并广播到所有设备;(3)重载:推理引擎同时从另一个IPC缓冲区加载参数。
图 13: RL权重更新的流水线
因PCIe饱和导致的两阶段流水线 在NVIDIA H800集群上,并发的H2D和广播会使共享的PCIe总线饱和,导致三阶段坍缩为顺序过程(图13b)。因此,我们采用了一个更简单的两阶段方案(图13c):(1)所有设备执行一次同步的H2D传输;(2)广播和重载并行进行。
大规模场景下的优化 两阶段流水线会受限于多次同步的H2D复制操作。但在大规模设备上,模型会被分成小分片,整个参数集可以一次性装入H2D缓冲区,开销会消失。通过重叠H2D、广播和重载权重,我们可以获得高带宽,以将权重从训练引擎重新分片到所有推理引擎。
💬 评论讨论
欢迎在这里分享您的想法和见解!