Kimi K2.5: Visual Agentic Intelligence
速读卡片 (TL;DR)
一句话:K2.5 用原生多模态联合训练 + zero-vision SFT + joint multimodal RL 让 vision 与 text 互相增强,再用 Agent Swarm (PARL) 把"长串 sequential tool-call"变成"orchestrator + 一群 frozen 专精 sub-agent 的并行执行",在 BrowseComp 拿到 78.4% (vs single-agent 60.6%) 同时提速 3–4.5×。
立场:这是一份"系统报告"而非单点 idea 论文。两条主线: (1) 把 vision 当作 text 的"训练泛化器"而不是后挂模块;(2) 把 multi-agent orchestration 从 prompt-engineering 提升为 RL 学出来的策略,用 critical-step 做 latency 优化指标。
1 · 动机:为什么 K2.5 必须做 Agent Swarm + 多模态联合优化
1.1 历史脉络:从 VLM 拼接到原生多模态再到 agentic
2023–2024 主流路线把 vision 当作"后挂模块":先训一个纯文本 LLM,然后在训练后期注入 vision token (Qwen2-VL, LLaVA, Seed1.5-VL 都是 50%+ 的 vision ratio 集中在末段)。这种做法的 implicit 假设是:"语言能力是基底,vision 是 capability add-on。" K2.5 直接挑战了这个假设——他们做了一组 ablation (Table 1):在固定总 token 预算下,early fusion + 低 vision ratio (10%) 在 vision-knowledge / vision-reasoning / OCR / text 等所有指标上都打过 mid-fusion (20%) 和 late-fusion (50%)。
另一条线是 agentic:从 ReAct → Toolformer → Kimi-Researcher (端到端 RL) → K2-Thinking (能跑数百 step 的 long-horizon)。但 K2-Thinking 撞上了一个新天花板:sequential 推理深度有限。一个 episode 几百 step,context 累积 →100k+ token,最后 model 注意力分散,reasoning 退化。
1.2 单 agent 为什么"够呛"——别的方案为什么不够
| 路线 | 怎么做 | 限制 |
|---|---|---|
| 更长 context (Kimi K2-Thinking) | 把 context 拉到 256k,sequential 多 step | 每 step linear scaling, latency 与 task 复杂度成 O(N) |
| Hide-Tool-Result / Discard-all (DeepSeek-V3.2) | 溢出时反应式截断/丢弃 history | 丢失中间 reasoning,信息损失不可控 |
| Static planner + workers (LangGraph 类) | 用人工/prompt 写好 DAG | 不能根据问题特性动态决定要不要并行 |
| End-to-end multi-agent RL | orchestrator + sub-agent 一起训 | credit assignment ambiguity + 训练不稳定 |
| Vision SFT (manual CoT) | 人工标注"看图 → tool 调用"轨迹 | 多样性差,只覆盖 crop/rotate 这类原始操作 |
| K2.5 Agent Swarm + zero-vision SFT 👈 | orchestrator 训,sub-agent freeze;text-only SFT 激活 vision tool-use | 解耦 credit assignment + 借 text 数据多样性激活 vision |
1.3 为什么这事不平凡
三个非显然的工程/理论难点:
- 多模态 cold start. Pretrained VLM 在 SFT 前不会"看着图调 tool"。如果你按传统做法标 vision SFT 数据,既贵又窄(只能教模型 crop/rotate);K2.5 的反直觉发现是:纯 text SFT 就够了,只要 pretrain 阶段做了 joint vision-text。
- Multi-agent RL 的 reward 稀疏 + 非平稳. 一个 final answer 对错没法告诉你 sub-agent 哪个出问题。K2.5 的解法是 freeze sub-agent,只训 orchestrator,把 sub-agent 当成"黑盒环境"——这把多 agent 问题降级成单 agent (orchestrator) 的 RL。
- Latency 该怎么定义. 在并行 agent 系统里 total step ≠ wall-clock。论文借用 critical path 的概念,定义
CriticalSteps = Σₜ (S_main^t + maxᵢ S_sub,i^t)。这一指标天然惩罚"乱拆 sub-task"——如果你拆出 10 个 sub-agent 但最长那个还是 100 step,你 critical step 还是 100。 - Serial collapse 与 spurious parallelism. 如果只奖励 final outcome,RL 容易让 orchestrator 退化成"我自己干"(serial collapse);如果只奖励"开了几个 sub-agent",会变成乱开但不完成 (spurious parallelism)。需要 dual-reward 平衡。
2 · 背景速查
2.1 关键术语
| 术语 | 含义 |
|---|---|
| MoonViT-3D | K2.5 的 vision encoder。NaViT 风格 patch packing,共享参数处理 image + video,4 帧组合做 spatiotemporal volume,4× temporal compression |
| Native-resolution | 不切 sub-image,把原图直接 patch + flatten,支持任意宽高比 |
| Zero-Vision SFT | 纯 text SFT 数据(图像操作通过 IPython 的 PIL 等程序化操作 proxy),无人工 vision trajectory。竟然能激活 visual tool-use |
| Joint Multimodal RL | RL 不按模态分 expert,而按"能力"(knowledge / reasoning / coding / agentic) 分,text 和 vision 同 batch 训 |
| Agent Swarm | K2.5 的多 agent framework: trainable orchestrator + frozen sub-agents |
| PARL | Parallel-Agent RL,K2.5 训 orchestrator 的 RL 方法。仅 orchestrator 更新,sub-agent 是 environment |
| Critical Steps | 并行 episode 的 latency 指标 = Σₜ (S_main + maxᵢ S_sub,i),源自 critical-path scheduling |
| Serial collapse | RL 局部最优:orchestrator 学到"全自己干"——这是要主动避免的退化 |
| Spurious parallelism | reward hacking:疯狂开 sub-agent 但都不完成。需要 r_finish 惩罚 |
| GRM | Generative Reward Model,让一个 LLM 生成 fine-grained rubric 评分,用于 open-ended task |
| Toggle | K2.5 的 token-efficient RL 调度,Phase0 (限 budget) 和 Phase1 (放开) 交替,降低 25–30% 输出 token |
| DEP | Decoupled Encoder Process: 训练时 vision encoder 与 backbone 解耦执行,把 multimodal 训练效率拉到 90% (相对纯 text) |
2.2 K2.5 总览
- Backbone: 继承 Kimi K2 (1.04T 参数 MoE,32B activated,384 experts/8 active),MuonClip optimizer + QK-Clip。
- Vision encoder: MoonViT-3D,从 SigLIP-SO-400M 起步,~1T token continual pretrain,纯 caption loss。
- Pretraining: ViT 预训 → joint pretrain 15T mixed → 长上下文 mid-train (32k → 262k via YaRN)。
- Post-training: zero-vision SFT → joint multimodal RL (含 PARL for swarm) → Toggle for token efficiency。
3 · 原生多模态预训练: early fusion + low ratio
核心结论一句话: 固定 total token 预算下,vision ratio 不重要;但 vision 数据"早进来"比"末段集中"好。这与"先把语言练好再加 vision"的传统直觉相反。
| 策略 | vision ratio | vision 知识 | vision 推理 | OCR | text 知识 | text 推理 | code |
|---|---|---|---|---|---|---|---|
| Early | 10:90 | 25.8 | 43.8 | 65.7 | 45.5 | 58.5 | 24.8 |
| Mid | 20:80 | 25.0 | 40.7 | 64.1 | 43.9 | 58.6 | 24.0 |
| Late | 50:50 | 24.2 | 39.0 | 61.5 | 43.1 | 57.8 | 24.0 |
Worked example: 两条策略下 1B vision token 怎么花
设总 budget = 16T (1T vision + 15T text):
- Late 50:50: 前 14T 全 text → 最后 2T 1:1 混。Vision 与 text co-train step ≈ 2T 的步数。Vision 表征只在最末期学到与 text 的对齐。
- Early 10:90: 1T vision 散布在全部 10T 训练 step (每 1000 step 平均 100 个 vision token)。Vision 与 text co-train step ≈ 10T 的步数,5× 长。模型有 5× 多的机会让 vision feature 参与到 text 的 loss path 上。
反向论证
如果 K2.5 还是用 late fusion:zero-vision SFT 不会 work——下一节会看到 zero-vision SFT 之所以能"用纯 text 数据激活 vision tool-use",前提就是 pretrain 已经把 vision token 嵌入到 text 的 reasoning circuit 里。Early fusion 是 zero-vision SFT 的必要条件。
4 · Zero-Vision SFT: 不喂 vision 数据也能激活 visual tool-use
这个发现是 K2.5 最反直觉的部分。
4.1 问题: vision agentic 的 cold start
Pretrained VLM 不会主动"看着图调 tool"——你不告诉它,它只会生成 caption。传统做法是手工标 vision SFT 数据,问题:
- 多样性差,只能教 crop / rotate / flip 这类原始操作
- 视觉推理被局限在简单图表
- 规模上去就要花大钱
4.2 K2.5 的 trick: 把 image 操作当成 IPython 任务
所有 image manipulation (例如"数图里有几只猫")都 proxy 成 PIL/numpy/matplotlib 程序操作。SFT 数据里全是纯文本对话:用户给问题(可能含图,可能纯文本),assistant 写 IPython 代码,代码里调 vision。这样 visual reasoning 被泛化成"程序控制 vision"。
4.3 为什么这能成立 — 反向论证
"为什么不直接做 text-vision SFT?"——论文的 ablation 显示 text-vision SFT 反而 worse。原因猜测:高质量 vision SFT 数据稀缺,会引入噪声;而 text 数据多样性巨大,SFT 后模型学到的是"遇到任何 modality 都用 reasoning + tool 解决"这种 general policy。Pretrained vision-text alignment 让这个 policy 自动迁移到含图输入。
Worked Example
训练时 prompt: "图上数字之和是?"(只是 text 描述任务)。Asst 答: 写 IPython 用 OCR 库识别 → sum。Inference 时 prompt: 真给一张图加 "sum the numbers" → 模型生成同样的 IPython 代码,这次代码 import 后真能去解析 image 数组。同一段 reasoning trace 在两个 modality 上都 work,因为 vision encoder 已经把图编成与 text 同空间的 token。
5 · Joint Multimodal RL: vision RL 反向增强 text
5.1 Outcome-based Visual RL
Zero-vision SFT 解决了 cold start,但模型有时仍"忽略图像 input"。Outcome-based RL 用必须看图才能答对的任务把 vision 路径"逼出来":
- Visual grounding & counting (定位 + 数数)
- Chart / document understanding
- Vision-critical STEM (经过 filter,只保留必须看图的题)
每类任务有专属 reward: grounding 用 IoU-soft-match 的 F1, point 用 Gaussian-weighted 距离, polygon 用 mask IoU, OCR 用 normalized edit distance, counting 用 |pred - gt|。
5.2 反直觉发现: vision RL 同时让 text 变强
| Benchmark | Before vision RL | After vision RL | Δ |
|---|---|---|---|
| MMLU-Pro (text) | 84.7 | 86.4 | +1.7 |
| GPQA-Diamond (text) | 84.3 | 86.4 | +2.1 |
| LongBench v2 (text) | 56.7 | 58.9 | +2.2 |
论文给的解释:vision RL 改进了"structured information extraction" 的 calibration——counting / OCR / grounding 这类任务奖励的是"精确的结构化抽取",这种能力反过来让 text reasoning 也更"严谨"(降低 hallucination 倾向)。
5.3 Joint RL 的组织: 按 ability 分,不按 modality 分
5.4 Policy 优化目标
K2.5 用的是 GRPO 的变体:
关键改动: token-level clipping——传统 PPO 是按 advantage 符号 clip,K2.5 直接对 log-ratio clip,无视 advantage 正负。设计目的:RL 训练时 rollout 用 inference 框架 (vLLM / SGLang),与训练框架精度有 drift,token-level clip 把 rollout/train 不一致的 token 直接 mask 掉,稳住 long-horizon agentic RL。
Optimizer: MuonClip (K2 的标志性配方,带 QK-Clip 防 attention logit 爆炸)。
6 · Agent Swarm × PARL: orchestrator 学出并行
6.1 架构: trainable orchestrator + frozen sub-agents
6.2 PARL Reward
| 项 | 含义 | 解决什么问题 |
|---|---|---|
r_perf | 整体任务成功 + quality | 主目标 (verifiable / GRM) |
r_parallel | 奖励 sub-agent 实例化 | serial collapse — orchestrator 学到全自己干就给 0 |
r_finish | 奖励 sub-agent 实际完成 | spurious parallelism — 乱开一堆但都 fail 没有奖励 |
λ₁, λ₂ 在训练过程中 anneal 到 0,这样 final policy 只对 r_perf 负责,辅助 reward 只是 exploration 引导。
6.3 Critical Steps 作为 latency 指标
反向论证: 如果用 total steps 作为 cost, orchestrator 只要"少干活"就 win, 但这会退化到 single agent;如果用 wall-clock,parallel 内 max 反映瓶颈,但不惩罚"开 5 个 sub-agent 但其中 4 个无关"——max 一项替代了 sum,正好编码了"并行加速的价值是看最长那条 branch 缩了多少"。
6.4 Prompt construction: 不显式说要并行,只 shape task distribution
训练 prompt 故意构造成"sequential 完不成"的形式: wide search (并查多源)、deep search (多 reasoning branch)、long-context analysis、batch download。在 fixed step / tool-call budget 下,model 只有学并行才能拿到 reward。但 prompt 里从不写"please parallelize"——所有的并行决策都是 RL 自己探索出来的。
6.5 训练流程
- 先用 small-size sub-agent 训 orchestrator (省算力,快速 explore)
- 切换到 large sub-agent (final 对齐部署配置)
- 动态调整 sub-agent vs orchestrator 的 inference instance 比例 (一些 step 多开 sub-agent worker,一些 step 多开 orchestrator)
7 · Worked Example: 从一张网页截图到一份报告
这是一个虚构但典型的 K2.5 Agent Swarm trace,贴近 WideSearch/BrowseComp 的真实分布。
用户输入
给定截图: 一个 e-commerce 商品详情页 (含价格、规格、reviews、相关链接)。请帮我:(a) 比较该商品在亚马逊、ebay、淘宝的当前价格 (b) 总结 top-10 review 的优缺点 (c) 给出 BeautifulSoup 抓 reviews 的代码 (d) 整合成 markdown 报告。
反向论证: 为什么 orchestrator 不把 c) 也放到 cohort 1?
因为 c) 的 prompt 输入 (BeautifulSoup 代码片段需要参考实际 review HTML 结构) 依赖于 cohort 1 中 B 的输出。RL 在训练时见过类似数据依赖图,学到"有依赖的任务要分 cohort"。这是 PARL 优于 prompt-engineered DAG 的地方:数据依赖关系是学出来的,不是写死的。
8 · 实验关键结果
8.1 多模态主线: 与 frontier 闭源模型并肩
| Benchmark | Kimi K2.5 | Claude Opus 4.5 | GPT-5.2 | Gemini 3 Pro |
|---|---|---|---|---|
| HLE-Full | 30.1 | 30.8 | 34.5 | 37.5 |
| HLE w/ tools | 50.2 | 43.2 | 45.5 | 45.8 |
| AIME 2025 | 96.1 | 92.8 | 100 | 95.0 |
| MathVision | 84.2 | 77.1 | 83.0 | 86.1* |
| MathVista (mini) | 90.1 | 80.2 | 82.8 | 89.8 |
| OCRBench | 92.3 | 86.5 | 80.7 | 90.3 |
| InfoVQA | 92.6 | 76.9 | 84.0 | 57.2 |
| OSWorld-Verified | 63.3 | 66.3 | 8.6 | 20.7 |
读法: 在 OCR / chart / math-vision / computer-use 几个 task 上 K2.5 是开源里 SOTA, 与 Claude Opus 4.5 接近;tool-augmented HLE 反超所有人。 GPT-5.2 仍在 pure-text math 上更强。
8.2 Agent Swarm 增益
| Benchmark | K2.5 Swarm | K2.5 Single | Δ | Claude 4.5 | GPT-5.2 Pro |
|---|---|---|---|---|---|
| BrowseComp | 78.4 | 60.6 | +17.8 | 37.0 | 77.9 |
| WideSearch | 79.0 | 72.7 | +6.3 | 76.2 | — |
| In-house Swarm | 58.3 | 41.6 | +16.7 | 45.8 | — |
读法: Swarm 的增益随任务并行机会增加——In-house swarm bench 故意为并行设计,绝对增益最大。但 BrowseComp 增益也很大(+17.8),说明真实 deep-research 的并行机会被严重低估。
8.3 Latency: 3–4.5× 加速
WideSearch 上,target Item-F1 从 30% 升到 70%,single-agent 执行时间从 1.8× 暴涨到 7.0× (随 difficulty 线性增长);Swarm 维持在 0.6–1.6× 几乎平的曲线。Critical-step constraint 起效。
8.4 Token Efficiency (Toggle)
Toggle 让 K2.5 在不掉点(甚至升点)的情况下,平均输出 token 减 25–30%。但仍比 Gemini 3 Pro 用更多 token (例如 AIME 25k vs Gemini 15k);意味着 K2.5 推理仍偏冗长。
9 · 与同类工作对比
| 系统 | 多模态训练 | Vision SFT | Agent 路线 | RL 学并行? |
|---|---|---|---|---|
| K2.5 | early fusion + low ratio (15T joint) | zero-vision (text-only) | Agent Swarm + frozen sub-agent | 是 (PARL) |
| Qwen3-VL-235B | vision-heavy late stage | multimodal SFT (人工标) | single-agent + tool | 否 |
| GPT-4V / GPT-5.2 | 未公开,推测 late fusion | multimodal SFT | tool-use planner (private) | 未公开 |
| Claude Opus 4.5 | 未公开 | multimodal SFT | computer-use, 单 agent | 未公开 |
| Gemini 3 Pro | 多 modality 原生 | multimodal SFT | single agent + tool | 未公开 |
| Anthropic 多 agent (Research) | — | — | orchestrator + Claude sub-agent (prompt-engineered) | 否(prompt 静态) |
| LangGraph / AutoGen | — | — | 静态 DAG 或 chat group | 否 |
| Kimi-Researcher (前作) | text-only | text SFT | single agent end-to-end RL | 否 |
真正"独有"的两点:
- Zero-vision SFT。Qwen-VL / Seed1.5-VL / Gemini 都在"如何标更好的 vision SFT 数据"上下功夫;K2.5 直接说不需要 vision SFT 数据(前提是 pretrain 做对了)。
- PARL + Agent Swarm。Anthropic 的 multi-agent 是 prompt-engineering;LangGraph 的 DAG 是手工写;Kimi 的orchestrator 用 RL 学分解策略,且用 critical-step 作为 cost,这两点一起在文献里少见。
10 · 局限 / 个人 take / 待验证问题
- "open-source"语义打折. 论文称 "open-source", 但 release 的只是 post-trained checkpoint,数据 / RL infra / Unified Agentic Env 都未开放。研究 reproducibility 受限。
- Sub-agent freeze 是双刃. 解决了 credit assignment, 但 sub-agent 永远停在某个 intermediate checkpoint,不会随 orchestrator 一起进化。Final 版本 ceiling 由 sub-agent 决定。
- Critical-step 假设了 sub-agent 同步. 真实 cluster 上, sub-agent 启动时间 / 网络延迟 / GPU contention 让 wall-clock 与 critical-step 经常不匹配。论文给了"训练时调 inference 比例"的说法但没量化 deployment 表现。
- Vision RL 提升 text 的解释偏弱. "calibration" 是合理 hypothesis,但没有 ablation 排除 confound (例如 vision RL 阶段 reward model 也升级了)。MMLU-Pro 提 1.7 是显著但不是震撼。
- Token 仍偏长. 即便 Toggle 减了 25–30%,K2.5 的 AIME 平均输出 25k 仍是 Gemini 3 Pro (15k) 的 1.7×。这部分价值在 cost-sensitive 部署里会被打折。
- Agent Swarm 与 long-context model 是替代还是互补? 论文把 Swarm 定位成"主动 context management";但当 single agent 真的有 1M context,Swarm 的优势就只剩 latency。这个 boundary 没讲清。
想验证的问题
- Zero-vision SFT 在 vision-text alignment 较弱的开源 base (例如 Llama-Vision) 上是否还 work?如果 work,说明 "early fusion 是必要" 的判断错了。
- 把 PARL 用到比 K2.5 小 10× 的 model (例如 7B) 上, 还能学出 parallel decomposition 吗?是否 emergent capability 与 scale 强相关?
- r_parallel 和 r_finish 的 anneal schedule 多敏感?如果不 anneal 到 0,会 reward-hack 到什么程度?
- Critical-step 在 sub-agent 长尾分布 (有的 sub-agent 偶尔 hang) 下的 training stability 如何?
- Agent Swarm 在非并行天然友好的 task 上(例如纯数学证明)是否会退化到 single agent?能否做这条 ablation?