46 KiB
原生多模态 · 正式研究账本
状态:核心一手来源已完成首轮核验,进入网页写作与交互实现 研究截止:2026-07-29 锚点:Kimi K3 Technical Report §2.2、§4.1、§4.2、§5.4 证据原则:论文或技术报告的实验数字一律标成“作者报告”;没有独立复现时不写成客观常数。Grok 只做候选召回,不进入本账本的事实依据。
0. 本章要回答什么
“让语言模型看图”听起来像一个问题,实际上至少包含五层:
像素 / 帧 / 页面
↓
视觉编码器:把局部像素变成特征
↓
压缩与连接器:控制视觉 Token 数,并映射到语言空间
↓
语言 / 多模态主干:融合证据、知识与推理
↓
文字、图像、代码、工具动作或环境状态变化
每一层都可能成为瓶颈:
- 分辨率不够,文字和细节在进入模型前就消失;
- 视觉 Token 太多,长文档和长视频挤满上下文;
- 连接器过窄,视觉塔看见的东西没能传给语言主干;
- 语言先验太强,模型“猜到了一个常见答案”却没有看图;
- 训练只教会问答,没有教会模型主动裁剪、放大、执行代码和验证;
- 评测只给总分,无法区分感知、OCR、知识、推理和工具使用。
本章的最终目标不是记住模型名字,而是获得一套可以拆解任何多模态系统的共同语言。
1. 最小数学:一张图为什么会吃掉成千上万个 Token
设输入图像高宽为 H × W,视觉 Transformer 的 patch 边长为 P,则最粗略的 patch 数为:
N_patch = ceil(H / P) × ceil(W / P)
若在送入 LLM 前使用 s × s pixel shuffle,把每 s² 个相邻视觉特征合并,则:
N_visual ≈ N_patch / s²
视频若有 F 帧,并以每 t 帧做一次时间池化,则近似为:
N_video ≈ F / t × N_visual_per_frame
这只是教学近似。真实系统还可能加入:
- class token;
- 全局缩略图;
- 多个局部 tile;
- tile 边界或分隔 Token;
- 非整除 padding;
- NaViT packing;
- temporal chunk;
- 输入侧或特征侧裁剪。
1.1 直觉例子
使用 14×14 patch:
| 分辨率 | 原始 patch 数 | 再做 2×2 pixel shuffle 后 |
|---|---|---|
| 224² | 256 | 64 |
| 1024² | 5,476 左右 | 1,369 左右 |
| 3584² | 65,536 | 16,384 |
因此,“支持 3584²”不是一句免费的能力声明。即使做 4 倍空间压缩,一张极大图仍可能消耗上万视觉 Token。是否真的用满分辨率,要看图像内容、上下文预算和系统的动态分辨率策略。
1.2 三种压缩损失
- 空间损失:小字、细线、符号和局部关系被合并;
- 时间损失:短暂动作被时间池化抹掉;
- 顺序损失:切图或重排后,阅读顺序和二维邻接被破坏。
所有视觉压缩都在交换:
细节保真度 ↔ 上下文长度 ↔ 训练 / 推理算力
2. 视觉表示前史:从分类器到可迁移视觉 Token
2.1 AlexNet(2012)
变化: 大规模卷积网络、GPU 训练和 ImageNet 监督证明了深视觉表征的可扩展性。
对多模态的意义: 后来的 VLM 不必从原始像素直接学习所有局部模式,可以复用成熟视觉骨干。
边界: 分类器的类别空间是封闭的;它不会自动获得开放词汇、句子级语义或生成能力。
2.2 ResNet(2015)
变化: 残差连接让更深视觉网络更容易优化。
对多模态的意义: 在 ViT 成为主流前,区域特征、检测器和卷积骨干长期承担 VQA、caption 与跨模态检索的视觉入口。
一手来源: Deep Residual Learning for Image Recognition
2.3 Vision Transformer(2020)
变化: 把图像切成 patch,将线性投影后的 patch 序列送入标准 Transformer。
关键接口:
image → fixed-size patches → linear projection + position → Transformer
为什么是转折点:
- 视觉与语言都可以表示成序列;
- 注意力、位置编码、并行和缩放方法可以共享;
- 后续模型更容易把视觉特征映射成“像 Token 一样”的接口。
边界: ViT 原论文的固定分辨率与固定 patch 网格,会给任意长宽比和高分辨率文档带来失真或浪费。
一手来源: An Image is Worth 16x16 Words
3. 语言监督改变视觉空间:CLIP、ALIGN、LiT、SigLIP
3.1 CLIP(2021):把图像和文字放到可比较的空间
CLIP 分别编码一批图像和文本,构成 N × N 相似度矩阵。正确图文对位于对角线,训练目标让正确配对相似、错误配对远离。
image_i ─▶ vision encoder ─▶ v_i
cosine(v_i, t_j)
text_j ─▶ text encoder ─▶ t_j
改变了什么:
- 使用自然语言作为开放词汇监督;
- 零样本分类可以把类别名称写成提示;
- 视觉编码器开始携带可与自然语言比较的语义。
没有解决什么:
- 它不是自回归语言模型;
- 它不直接生成长答案;
- 全局图文配对不保证精细 OCR、计数、空间关系或复杂推理。
一手来源: Learning Transferable Visual Models From Natural Language Supervision
3.2 ALIGN(2021):扩大噪声图文对
ALIGN 使用大规模、带噪声的图文对训练双编码器,强调规模可以部分抵消手工清洗不足。
历史意义: 证明语言监督视觉表示不仅是小规模精制数据路线,也可以进入超大规模 web 数据路线。
边界: 数据规模不消除版权、偏见、重复、错误配对和低质量 alt text。
一手来源: Scaling Up Visual and Vision-Language Representation Learning With Noisy Text Supervision
3.3 LiT(2021):锁住图像塔,只调文本塔
LiT 的核心消融是 locked-image tuning:保留预训练图像模型,训练文本侧去匹配已有视觉空间。
教学价值: “图文对齐”不必总是两边共同更新。冻结谁、更新谁,本身就是表示保真、训练成本和跨模态适配之间的选择。
一手来源: LiT: Zero-Shot Transfer with Locked-image Text Tuning
3.4 SigLIP(2023):从 batch softmax 改成独立 sigmoid
CLIP 式损失依赖 batch 内全局归一化;SigLIP 对每一对图文做二元 sigmoid 分类,不要求把整个 batch 的相似度放进同一个 softmax。
改变了什么:
- 目标更局部;
- 通信与 batch size 行为不同;
- SigLIP-SO400M 后来成为许多高分辨率 VLM 的视觉初始化。
边界: 损失改动不自动解决分辨率、连接器、OCR 和语言生成。
一手来源: Sigmoid Loss for Language Image Pre-Training
4. 连接器时代:怎样把视觉塔接给语言模型
4.1 Frozen(2021):冻结语言模型,把图像变成前缀
Frozen 用视觉编码器产生连续视觉前缀,送入冻结语言模型,使模型能用少量样例完成多模态 in-context learning。
关键思想: 不改语言模型权重,也可以寻找一个视觉入口。
边界: 连续前缀承担很重的跨模态翻译负担;语言模型自身没有经过大规模视觉共同训练。
一手来源: Multimodal Few-Shot Learning with Frozen Language Models
4.2 Flamingo(2022):Perceiver Resampler + gated cross-attention
Flamingo:
- 用视觉编码器处理图像或视频;
- Perceiver Resampler 把可变数量视觉特征压成固定数量潜变量;
- 在冻结语言模型层间插入 gated cross-attention;
- 支持图文交错和 few-shot 示例。
关键取舍: 视觉信息不必直接占据语言自注意力序列中的所有位置,而是通过跨注意力读取。
边界: 架构复杂度、专用插层与视觉潜变量的压缩损失成为新成本。
一手来源: Flamingo: a Visual Language Model for Few-Shot Learning
4.3 BLIP(2022):先修数据,再谈模型
BLIP 同时服务理解与生成,并使用 captioner 生成描述、filter 清理噪声图文对。
历史意义: 多模态能力不仅由连接器决定,图文数据的生成、过滤和目标混合也是核心变量。
4.4 BLIP-2(2023):Q-Former 作为信息瓶颈
BLIP-2 冻结图像编码器与语言模型,用轻量 Q-Former 通过有限 query 从视觉特征中取信息,再连接到 LLM。
frozen image encoder → Q-Former queries → projection → frozen LLM
优势: 训练参数和成本较小。
瓶颈: 固定 query 数既是压缩器,也是信息上限;细粒度文档和密集场景可能要求更多视觉容量。
一手来源: BLIP-2
4.5 LLaVA(2023):视觉指令调优把路线变简单
LLaVA 使用预训练视觉编码器、线性投影与语言模型,并用生成式多模态指令数据做视觉 instruction tuning。
改变了什么:
- 把“视觉编码器 + 简单 projector + LLM + 指令数据”变成高可复现基线;
- 证明数据与指令格式可以弥补部分架构复杂度;
- 推动开放式视觉对话快速普及。
边界: 简单 connector 不代表没有信息瓶颈;固定或较低分辨率会直接限制 OCR 与细节。
一手来源: Visual Instruction Tuning
4.6 LLaVA-1.5(2023):基线工程化
LLaVA-1.5 用两层 MLP projector、更多学术任务数据和更明确训练配方改进原版。
教学意义: 多模态进步经常来自数据混合、训练配方和评测覆盖,而不只是发明新模块。
一手来源: Improved Baselines with Visual Instruction Tuning
5. 分辨率路线:固定缩放、切图与 NaViT packing
5.1 固定正方形
任意图片 → resize / crop → 固定 H×W → 固定 Token 数
优点: batch 规则、系统简单、吞吐稳定。
缺点:
- 长图被压扁;
- 小字消失;
- crop 可能丢失边缘信息;
- 空白区域浪费 patch。
5.2 动态切图
原图 → 选择 m×n tile 网格 → 全局缩略图 + 局部 tile → 依次送入模型
优点: 复用固定尺寸视觉塔,同时保留局部细节。
缺点:
- 相邻 tile 重复;
- 全局与局部信息需要重新绑定;
- tile 顺序可能扰乱二维关系;
- 图越大,Token 和预填充成本越高。
5.3 NaViT(2023):Patch n’ Pack
NaViT 不要求先把所有图像缩成同一尺寸,而是把不同分辨率和长宽比的 patch 序列打包进同一序列,并用注意力掩码隔离不同图像。
关键思想:
固定图像形状的 batch
↓
固定 Token 预算内打包多个可变形状图像
影响: Kimi-VL、K2.5、K3 的 MoonViT 路线都吸收了 native-resolution packing 思想。
边界: “native resolution”是避免统一强制缩放,不是无限分辨率,也不是零 padding / 零预处理。
一手来源: Patch n’ Pack: NaViT
6. DeepSeek 聚光灯 I:理解路线 VL → VL2
6.1 DeepSeek-VL(2024)
DeepSeek-VL 针对真实场景覆盖网页截图、PDF、OCR、图表与知识内容。
架构主张:
- 混合视觉编码器;
- 支持 1024×1024 输入;
- 在视觉—语言预训练一开始就混入语言训练;
- 主动管理视觉与语言的竞争,避免视觉训练破坏语言能力。
为什么重要: 它把“语言能力是否被视觉训练遗忘”摆到架构和数据配比同等重要的位置。
边界: “从一开始混入语言训练”仍不等于 K3 所说的视觉塔与 MoE 主干从头联合训练;两者的初始化和训练制度不同。
一手来源: DeepSeek-VL
6.2 DeepSeek-VL2(2024)
DeepSeek-VL2 从上一代固定混合编码器转向动态切图:
- 根据原图比例,在
m × n且m·n ≤ 9的候选网格中选切法; - 生成一个全局缩略图和若干局部 tile;
- 每个 tile 经 SigLIP-SO400M-384 编码;
- 每 tile 得到 729 个视觉 embedding;
- 2×2 pixel shuffle 后压到 196 个 Token;
- 两层 MLP adaptor 送入 DeepSeekMoE 语言骨干。
论文给出三个版本的激活参数量约为 1.0B、2.8B、4.5B。
关键变化:
- 高分辨率从“双编码器固定输入”改成“单编码器动态 tile”;
- 视觉细节和 Token 成本变成显式可调;
- 语言骨干同时结合 DeepSeekMoE 与 MLA。
边界:
- 激活参数不是总参数;
- tile 上限与全局缩略图意味着仍有固定预算;
- 196 是 pixel shuffle 后的 tile token 数,不能与原始 patch 数混写。
一手来源: DeepSeek-VL2 · 官方代码
7. DeepSeek 聚光灯 II:Janus 的理解—生成分叉
7.1 为什么理解和生成会打架
图像理解希望表征:
- 对语义稳定;
- 对局部扰动鲁棒;
- 便于与文字对齐。
图像生成希望表征:
- 保留纹理、颜色和空间细节;
- 可以被解码回像素;
- 适合逐 Token 或连续流生成。
强迫两种任务共用完全相同的视觉编码器,可能产生表征冲突。
7.2 Janus(2024)
Janus 的核心不是“两个完整模型”,而是:
理解图像 → semantic encoder ─┐
├→ 统一自回归 Transformer
生成图像 ← generation decoder ← generation encoder / tokenizer ─┘
关键思想: 解耦视觉编码路径,同时保留一个统一自回归主干。
边界: “统一模型”不等于所有模态共享同一个输入编码器。
一手来源: Janus
7.3 JanusFlow(2024)
JanusFlow 让语言自回归目标与图像 rectified flow 在同一框架中训练,并继续使用解耦的理解 / 生成编码器,还对两侧表示做对齐。
关键区别:
- Janus 的图像生成走离散视觉 Token 自回归;
- JanusFlow 把连续图像生成交给 rectified flow;
- 共享的是核心语言框架,不是强迫所有输出都变成离散 Token。
一手来源: JanusFlow
7.4 Janus-Pro(2025)
Janus-Pro 延续解耦路径,主要改进训练策略、数据规模和模型规模。
教学意义: 同一基本架构仍可以通过训练阶段和数据工程获得显著变化;不能把每代进步都解释成“新模块”。
8. DeepSeek 聚光灯 III:OCR 作为光学上下文压缩
8.1 传统问题
一份长文档已经是数字文字,为什么还要渲染成图片再读回来?
DeepSeek-OCR 的研究问题是:
大量文本 Token
↓ 渲染成高密度页面
较少视觉 Token
↓ OCR 解码
恢复文字
这里的目标不只是 OCR,而是探索“视觉是否能成为长上下文压缩介质”。
8.2 DeepSeek-OCR(2025)
DeepEncoder 约 380M 参数,由约 80M 的 SAM-base 与约 300M 的 CLIP-large 串联。官方报告对 1024² 输入可做 16× 下采样,将 4096 个局部视觉位置压到 256 Token。
论文报告:
- 光学压缩比低于 10× 时,解码精度约 97%;
- 20× 压缩时约 60%;
- 在 OmniDocBench 的特定设置中,100 个视觉 Token 可优于 GOT-OCR2.0;
- 生产设置下单张 A100-40G 每天可生成超过 20 万页训练数据。
这些数字都只作为论文报告值,不外推到所有字体、语言、版式、图像质量和硬件栈。
核心边界:
- “压缩率”取决于文本 tokenizer、页面渲染、视觉 Token 定义和解码目标;
- OCR 准确率会随语言、公式、图表和阅读顺序变化;
- 渲染—解码会引入不可逆信息损失;
- 不应把论文曲线插值成物理定律。
一手来源: DeepSeek-OCR · 官方代码
8.3 DeepSeek-OCR2(2026)
DeepSeek-OCR2 的 DeepEncoder V2 不再把视觉 Token 只按规则扫描顺序交给解码器,而是根据图像语义动态重排。
论文把任务描述为两个串联的一维因果结构:
- 视觉侧生成语义相关的 Token 顺序;
- 语言侧沿该顺序生成文字。
直觉: 人读复杂页面并不总是机械地从左到右逐格扫描;标题、栏、表格和图例会改变阅读顺序。
边界: 动态重排改善的是视觉序列组织,不意味着二维结构已被完全解决,也不保证所有版式都获益。
一手来源: DeepSeek-OCR2 · 官方代码
9. 图像与视频:共享空间不等于共享时间
9.1 把视频当图片列表
最简单方法是均匀采帧,把每帧独立编码后串联。
优点: 复用图像模型。
缺点:
- Token 数随帧数线性增长;
- 运动方向、先后顺序和短暂事件不容易表示;
- 相邻帧大量冗余。
9.2 时间建模的四种位置
| 位置 | 典型做法 | 取舍 |
|---|---|---|
| 输入前 | 采帧、镜头切分 | 最便宜,但可能漏掉事件 |
| 视觉编码器内 | 时空注意力、3D patch | 表征强,训练和显存贵 |
| 连接器 | temporal pooling / resampler | 控制 Token,可能损失短事件 |
| LLM 内 | 把帧 Token 按时间排列 | 通用,但上下文成本高 |
9.3 Video-LLaVA 与 LLaMA-VID
Video-LLaVA 探索图像和视频在共同视觉—语言空间中的表示;LLaMA-VID 进一步用内容 Token 与上下文 Token 压缩长视频。
历史定位: 这类工作把“每帧都塞进 LLM”的问题显式化,为后续统一图像 / 视频编码器和时间池化提供过渡。
一手来源:
9.4 Video-MME(2024)
Video-MME 覆盖短、中、长视频,论文数据包括 900 段视频、总计 254 小时、2700 个问答,并把字幕和音频纳入评测条件。
评测提醒:
- 帧采样策略必须记录;
- 是否输入字幕和音频必须记录;
- 上下文长度和最大帧数必须记录;
- 同名模型的不同输入预算不能直接横比。
一手来源: Video-MME
10. Kimi 聚光灯 I:Kimi-VL 的 MoonViT
10.1 架构
Kimi-VL 由三部分组成:
MoonViT native-resolution encoder
↓
2×2 pixel shuffle + two-layer MLP projector
↓
Moonlight 16B MoE(约 2.8B 激活)
MoonViT:
- 使用 NaViT packing 处理不同分辨率与长宽比;
- 从 SigLIP-SO-400M 初始化;
- 保留并插值固定绝对位置嵌入,同时加入 2D RoPE;
- 约 400M 参数。
10.2 视觉预训练目标
Kimi-VL 的独立 ViT 阶段同时使用:
L = L_siglip + 2 × L_caption
即 SigLIP 式对比损失与图像条件 caption 交叉熵。
10.3 训练阶段
语言主干从已经看过 5.2T 纯文本 Token 的 Moonlight 中间 checkpoint 初始化。随后多模态路线共使用约 4.4T Token:
| 阶段 | Token | 主要更新 |
|---|---|---|
| ViT 训练 + 对齐 | 2.0T + 0.1T | MoonViT / projector |
| 联合预训练 | 1.4T | 视觉与语言共同训练 |
| cooldown | 0.6T | 高质量分布 |
| 长上下文 | 0.3T | 8K → 128K |
10.4 历史定位
Kimi-VL 的核心贡献不是“第一个看任意尺寸图片”,而是把:
- NaViT 式原生分辨率;
- SigLIP 语义初始化;
- 视觉 caption 目标;
- 稀疏 MoE 语言骨干;
- 128K 长图文 / 视频 / 文档上下文
整合进一套开放 VLM。
边界: 这一代仍有独立 ViT 训练和显式 alignment;因此它不是 K3 意义上的“无事后对齐原生多模态”。
11. Kimi 聚光灯 II:K2.5 的 MoonViT-3D 与 zero-vision SFT
11.1 统一图像与视频
MoonViT-3D:
- 继续从 SigLIP-SO-400M 初始化;
- 图像和视频共享参数;
- 把最多连续四帧作为时空体;
- 分解为空间注意力和时间注意力;
- projector 前按时间聚合 patch,得到 4× 时间压缩。
11.2 视觉目标从对比学习转向 caption NTP
与 Kimi-VL 不同,K2.5 的 ViT continual pre-training 不再使用对比损失,只使用图像 / 视频条件 caption 的交叉熵。
独立 ViT 阶段约 1T Token,随后联合图文预训练约 15T Token。长上下文阶段数据从约 500B 递减到 200B,长度从 32K 扩至 262K。
11.3 zero-vision SFT
K2.5 报告了一个反直觉配方:
- SFT 阶段只使用文本数据;
- 通过 IPython 中的程序化操作激活视觉工具使用;
- 作者称预实验中直接 text-vision SFT 表现更差;
- 随后的 outcome-based visual RL 覆盖 grounding / counting、图表 / 文档、视觉 STEM。
正确理解:
- “zero-vision”只修饰 SFT 阶段;
- 预训练已经有约 15T 图文 Token;
- RL 阶段重新使用视觉任务;
- 因此不能写成“K2.5 不用视觉数据也学会了视觉”。
11.4 跨模态 RL
作者报告视觉 RL 后,部分文本基准也提升,并把原因与计数、OCR 等跨模态校准联系起来。
证据边界: 这是 K2.5 配方中的作者观察,不是“视觉 RL 必然提升文字能力”的普遍规律。
一手来源: Kimi K2.5 Technical Report
12. Kimi 聚光灯 III:K3 的 native multimodality
12.1 K3 对“原生”的具体定义
K3 报告的关键句不是“有视觉能力”,而是:
- 语言与视觉从训练开始共同优化;
- 没有把视觉塔事后嫁接到预训练语言模型的 modality-alignment 阶段;
- 视觉输入、生成代码、渲染结果和工具观察进入同一长程闭环。
因此,本课程把原生多模态拆成五个维度:
| 维度 | 核验问题 |
|---|---|
| 数据原生 | 视觉数据是否从预训练早期进入配方? |
| 目标原生 | 视觉塔是否与主干共享生成目标? |
| 优化原生 | 视觉塔与语言主干是否联合更新,而非事后对齐? |
| 输入输出原生 | 图文、视频、代码与渲染物是否能在同一轨迹交错? |
| Agent 原生 | 模型是否能在行动后重新看结果并继续推理? |
“满足其中一项”不应自动等同于完整原生多模态。
12.2 为什么 MoonViT-V2 从头训练
K3 报告称:
- 用 SigLIP 初始化的 MoonViT-3D 与 2.8T MoE 主干联合优化时,视觉塔梯度范数持续较高并频繁出现尖峰;
- 从头训练的 MoonViT-V2 梯度更低、尖峰更少;
- 在其视觉评测中,两者最终能力相当;
- 因此对比预训练初始化并非大规模联合 NTP 的必要条件。
证据边界: 这是 K3 训练消融与作者结论,不能外推为“所有 VLM 都应该放弃预训练视觉塔”。
12.3 MoonViT-V2 架构
- 27 层;
- 约 0.4B 参数;
- RMSNorm;
- 去除 bias;
- 图像与视频完全共享参数;
- 空间与时间注意力分解;
- 时间池化;
- 2×2 pixel shuffle,使空间视觉 Token 减少 4 倍;
- 报告支持最高约 3584×3584 输入,并置于 1M Token 上下文预算内。
MoonViT-V2 后仍有轻量 MLP projector。
最重要的纠错:
原生多模态 ≠ 没有视觉编码器
原生多模态 ≠ 没有 projector
原生多模态 = 数据、目标、优化和行为闭环更早且更深地统一
12.4 程序化多模态数据
K3 大幅增加程序化视觉数据,让代码与可渲染结果绑定,包括:
- SVG;
- 3D;
- Web 页面;
- 游戏;
- CAD;
- 动效与视频编辑。
这把视觉从“回答一张现成图片”扩展成:
读需求 → 写代码 / 参数 → 渲染 → 重新观察 → 修改 → 验证
12.5 vision-in-the-loop
K3 的视觉工具闭环可包含:
- 观察原图或界面;
- 用 Python 裁剪、绘图、转换或分析;
- 读取新的图像观察;
- 继续推理或操作;
- 以最终视觉 / 环境状态验证。
这与“先 OCR 一次,再只做文字推理”不同:视觉观察会在轨迹中多次进入。
12.6 训练系统
K3 报告还把动态视觉计算与训练系统结合:
- 利用图像 / 视频 Token 数变化产生的计算差异;
- 将 ViT 工作调度到 pipeline bubble;
- 作者报告可隐藏部分视觉计算开销。
边界: bubble 隐藏比例依赖 pipeline 拓扑、micro-batch、图像分布和硬件,不应写成固定加速倍数。
一手来源: Kimi K3 Technical Report
13. Kimi 三代对照:不是“分辨率越来越高”
| 维度 | Kimi-VL | Kimi K2.5 | Kimi K3 |
|---|---|---|---|
| 视觉塔 | MoonViT | MoonViT-3D | MoonViT-V2 |
| 初始化 | SigLIP-SO400M | SigLIP-SO400M continual | 从头训练 |
| 视觉独立目标 | SigLIP + caption | caption NTP | 与主干共同 NTP |
| 图像 / 视频 | 原生分辨率图像,支持视频输入 | 参数共享、空间 / 时间分解 | 参数共享、空间 / 时间分解 |
| 压缩 | 2×2 pixel shuffle | 2×2 + 时间 4× | 2×2 + 时间池化 |
| 语言主干起点 | 5.2T 文本 checkpoint | K2 near-end checkpoint | 原生联合 MoE 训练 |
| 对齐阶段 | 有 0.1T alignment | 有 ViT / projector bridge | 无 post-hoc alignment |
| SFT 特点 | 多模态长思维 | zero-vision SFT | 原生多模态与 Agent 数据 |
| 行为重点 | 长图文理解 | 视觉推理 RL、工具与 swarm | vision-in-the-loop 长程 Agent |
真正的主线是:
对齐一个强视觉塔
→ 用生成目标统一图像 / 视频
→ 从头共同优化视觉塔与超大 MoE 主干
14. 统一多模态有至少四种含义
U1 · 统一输入序列
图像 Token 和文字 Token 可以交错进入同一上下文。
U2 · 统一主干
不同模态共享大部分 Transformer 层。
U3 · 统一目标
文字与离散视觉 Token 都做 next-token prediction,或在同一训练框架混合 NTP 与 diffusion / flow。
U4 · 统一行为闭环
模型不仅理解图像,还能生成代码 / 图像、调用工具、重新观察结果。
一个系统可以满足 U1/U2,却不满足 U3;也可以同时理解和生成,却使用两个视觉编码路径。讨论“统一”时必须指出是哪一层。
14.1 Chameleon(2024)
Chameleon 把文字、图像和代码表示成交错离散 Token,用 early-fusion 自回归模型统一建模。
贡献: 展示大规模统一离散序列路线。
代价: 图像 tokenizer 的离散化质量、长视觉序列与训练稳定性成为瓶颈。
一手来源: Chameleon
14.2 Transfusion(2024)
Transfusion 在同一 Transformer 上:
- 对离散文字做 next-token prediction;
- 对连续图像表示做 diffusion;
- 通过模态专用编码 / 解码层连接。
贡献: 统一主干不要求把图像强行离散化,也不要求所有模态使用同一个损失。
一手来源: Transfusion
14.3 SOLO(2024)
SOLO 探索单一 Transformer 视觉—语言模型,试图减少“视觉编码器 + connector + LLM”异构架构的缩放和系统复杂性。
边界: 单主干路线仍需要可靠的视觉训练配方、位置组织和模态平衡;架构更统一不等于更容易训练。
一手来源: SOLO
15. 多模态指令数据:能力不只来自架构
15.1 数据的六个层级
| 层级 | 例子 | 学到什么 |
|---|---|---|
| 图文配对 | alt text、caption | 粗语义对齐 |
| 密集描述 | 区域、关系、详细 caption | 细粒度感知 |
| OCR / 文档 | 页面、表格、公式 | 文字与结构 |
| 视觉问答 | 开放问答、多选题 | 指令接口 |
| 推理轨迹 | 数学图、图表、科学题 | 多步整合 |
| 行动轨迹 | GUI、代码、截图、工具结果 | 闭环行为 |
15.2 合成数据的双刃剑
生成式模型可以快速创建:
- 对话;
- 详细 caption;
- 问答;
- 图表 / SVG / 页面;
- 程序与渲染结果;
- 工具轨迹。
但会同时放大:
- 教师模型幻觉;
- 风格单一;
- 答案模板泄漏;
- 图像与文字不一致;
- 训练—评测污染。
因此数据账本至少记录:
来源 → 生成器 → 过滤器 → 去重 → 难度 → 授权 → 污染检查
16. 多模态推理与强化学习
16.1 文字 CoT 不等于视觉推理
如果模型在第一步就误读图像,后续再长的文字思维链只会在错误事实上推理得更完整。
真正的视觉推理至少可能包含:
- 重新定位证据;
- 裁剪或放大;
- OCR;
- 测量;
- 画辅助线;
- 用 Python 计算;
- 回看生成结果;
- 用 verifier 检查最终状态。
16.2 Vision-R1(2025)
Vision-R1 探索把大规模强化学习用于多模态推理,并强调无需大规模视觉 SFT 也可以通过 RL 激活推理。
边界: “无需大规模视觉 SFT”不等于无需视觉预训练,也不等于任何 reward 都能产生可泛化视觉推理。
一手来源: Vision-R1
16.3 VTool-R1(2025)
VTool-R1 关注模型自主调用视觉工具,通过可验证结果训练工具选择与视觉问题求解。
教学定位: 它把“看不清”从模型内部失败,转成可以采取动作获取新观察的问题。
一手来源: VTool-R1
16.4 ToolsRL(2026)
ToolsRL 继续探索视觉工具使用的强化学习。
评估边界:
- 必须记录有哪些工具;
- 工具是否带答案泄漏;
- 每次调用的观察分辨率;
- 最大调用次数;
- reward 是过程、结果还是混合;
- 模型与 harness 的贡献不能混写。
一手来源: ToolsRL
17. 幻觉:语言先验为何会压过像素证据
17.1 三类来源
- 输入损失:小目标或文字在 resize / 压缩时消失;
- 接口损失:视觉塔保留了信息,但 connector 没传过去;
- 生成偏置:语言模型更偏好训练语料中的常见共现。
示意:
视觉证据很弱 + “厨房里常有微波炉”的语言先验很强
↓
模型描述出图中不存在的微波炉
17.2 POPE(2023)
POPE 用轮询式问题诊断对象幻觉,并发现高频或常共现对象更容易被幻觉出来。
贡献: 把开放描述中的模糊幻觉问题,转成更稳定的对象存在性查询。
边界: yes/no 轮询不能覆盖属性、关系、OCR、逻辑与长回答中的所有幻觉。
一手来源: Evaluating Object Hallucination in Large Vision-Language Models
17.3 HallusionBench(2023)
HallusionBench 用控制组问题区分语言幻觉、视觉错觉、回答倾向与逻辑一致性。
贡献: 不是只问“答对多少”,而是检查同一视觉事实在变换问题后是否保持一致。
一手来源: HallusionBench
17.4 缓解不是一招
- 更高或自适应分辨率;
- 更密集、负例更强的图文数据;
- 在回答中绑定可定位证据;
- 允许拒答和不确定性;
- 多次裁剪 / 放大;
- OCR、检测器、代码等外部工具;
- 对最终状态做独立验证。
任何单一方法都只能覆盖部分失真链路。
18. 评测地图:总分为什么会误导
18.1 五类不同能力
| 类别 | 代表评测 | 主要测量 | 常见混淆 |
|---|---|---|---|
| 综合感知 | MMBench | 多能力、多选、双语 | 选项映射与 prompt 敏感 |
| 专业推理 | MMMU | 多学科、大学级图像题 | 知识与视觉瓶颈混合 |
| 视觉数学 | MathVista | 图表、几何、函数与数学推理 | OCR 错误会伪装成推理错误 |
| 文档 OCR | OCRBench | 识别、DocVQA、KIE、公式 | 分辨率和解码格式影响很大 |
| 视频 | Video-MME | 多时长、多领域、字幕 / 音频 | 采帧和输入预算决定可见证据 |
18.2 一手来源与数据规模
- MMBench:双语多选与 CircularEval。 论文
- MMMU:11.5K 问题、6 大学科、30 个学科、183 个子领域、30 种图像类型。 论文
- MathVista:6141 个视觉数学样本,来自 28 个已有数据集与 3 个新数据集。 论文
- OCRBench:覆盖 29 个数据集,包含识别、场景文字 VQA、文档 VQA、KIE 与手写公式。 论文
- Video-MME:900 视频、254 小时、2700 问答,区分短中长视频。 论文
18.3 正确的评测记录
model checkpoint
+ image preprocessing / tile policy
+ max pixels / max frames
+ prompt and decoding
+ context length
+ tool availability
+ benchmark version
+ evaluator
+ score
只写“模型 X 在多模态上 80 分”几乎没有解释力。
19. 多模态 Agent:从回答图片到改变世界
19.1 三种系统
| 类型 | 观察 | 动作 | 验证 |
|---|---|---|---|
| 单次 VQA | 一张图 | 生成文字 | 与参考答案比 |
| 视觉工具推理 | 图 + 工具结果 | crop / OCR / Python | 最终答案或可验证计算 |
| GUI / 环境 Agent | 连续截图与状态 | 鼠标、键盘、代码、API | 最终环境状态 |
19.2 VisualWebArena 与 OSWorld
VisualWebArena 把视觉网页任务引入可执行网站环境;OSWorld 使用真实桌面应用、截图和执行式验证。
核心边界:
VLM 看懂截图
≠ 鼠标坐标落对
≠ 跨应用状态正确
≠ 最终任务完成
模型、harness、grounding、工具接口、环境与 verifier 必须分开记录。
一手来源:
19.3 视觉提示注入
网页、文档或截图里的文字可能伪装成系统指令。多模态 Agent 需要区分:
- 用户目标;
- 开发者 / 系统策略;
- 环境内容;
- 不可信第三方文字;
- 工具返回值。
能读更多视觉文字,会扩大能力,也会扩大攻击面。
20. 训练系统:动态视觉 Token 怎样改变并行
20.1 变长带来的四个问题
- batch 内样本计算量差异大;
- 长图 / 长视频产生 straggler;
- packing 复杂,padding 浪费;
- ViT 与 LLM 的阶段耗时不同,pipeline 更难平衡。
20.2 系统常用解法
- 按视觉 Token 数分桶;
- patch packing;
- sequence packing;
- 动态 batch;
- context / sequence parallel;
- 视觉塔与语言主干异步或重叠调度;
- 限制单样本最大像素和帧数;
- 让视觉计算进入 pipeline bubble。
20.3 报告数字的正确读法
吞吐提升必须同时说明:
硬件 + 精度 + batch + 分辨率分布 + 序列长度
+ 并行拓扑 + 激活检查点 + kernel + 比较基线
Kimi-VL 和 K3 的吞吐 / bubble 结论只能写成各自配置下的作者报告。
21. 稀疏 MoE 与视觉 Token
视觉 Token 进入 MoE 主干会带来新问题:
- 它们是否与文字 Token 路由到相同专家?
- 某类文档或视觉模式会不会压垮少数专家?
- 视觉 Token 数大时,负载均衡损失是否主导训练?
- 图像 patch 的局部冗余是否造成路由重复?
- 视觉塔稳定性与 MoE 路由波动会否相互放大?
Kimi-VL、K2.5、K3 和 DeepSeek-VL2 说明稀疏语言骨干可以承接大规模视觉输入,但公开报告对“视觉专家专化”仍缺少足够细的可解释证据。
课程处理: 把它列为开放问题,不凭路由可视化猜测语义专家。
22. 二十个必须纠正的误解
- “多模态模型就是 LLM 前面加一个 CLIP。” 连接器、分辨率、训练数据、共同优化和工具闭环同样重要。
- “CLIP 会看图,所以它会回答问题。” CLIP 学的是图文匹配空间,不是开放式长文本生成。
- “projector 只有两层,所以不重要。” 它是视觉信息进入 LLM 的狭窄接口。
- “冻结式模型完全不用训练。” connector、cross-attention、Q-Former 或视觉前缀仍需训练。
- “native resolution 就是原图一像素不动。” 仍会 patch 化、打包、限制预算和压缩。
- “分辨率翻倍,Token 只翻倍。” 高宽都翻倍时 patch 数约变四倍。
- “pixel shuffle 是无损压缩。” 它在通道维合并空间邻域,后续映射仍有容量和学习瓶颈。
- “动态图块没有代价。” 会重复区域、打乱邻接并增加视觉 Token。
- “视频就是更多图片。” 时间顺序、运动和瞬时事件需要额外表示。
- “时间池化只省计算,不丢信息。” 短暂动作可能被平均掉。
- “统一模型就是一个视觉编码器。” Janus 统一主干却解耦理解和生成编码路径。
- “统一主干必须统一损失。” Transfusion 同一主干混合 NTP 与 diffusion。
- “原生多模态有统一行业定义。” 必须拆成数据、目标、优化、输入输出和 Agent 闭环。
- “K3 没有视觉塔或 projector。” K3 明确保留 MoonViT-V2 和轻量 MLP。
- “K2.5 zero-vision 表示训练不用图像。” 只指 SFT;预训练和 RL 都包含视觉。
- “DeepSeek-OCR 证明图像永远比文本省 Token。” 压缩率和准确率依赖完整实验设置。
- “多模态 RL 的文字分数提升是必然规律。” 当前只是特定训练配方中的报告观察。
- “视觉 CoT 越长越可靠。” 首步看错后,长 CoT 可能强化错误。
- “benchmark 总分就是通用视觉能力。” 不同分数混合了 OCR、知识、推理、采样和评测协议。
- “GUI Agent 成功就是模型看懂了。” harness、坐标 grounding、环境、预算和 verifier 都影响结果。
23. 一条可教学的完整历史线
2012–2020
视觉骨干可扩展
AlexNet → ResNet → ViT
↓
2021–2023
自然语言成为视觉监督
CLIP / ALIGN / LiT / SigLIP
↓
2021–2023
寻找语言模型的视觉入口
Frozen → Flamingo → BLIP-2 → LLaVA
↓
2023–2025
分辨率、文档与视频成为主矛盾
NaViT / dynamic tiling / OCR / temporal compression
↓
2024–2025
理解与生成的统一方式分叉
Chameleon / Transfusion / SOLO / Janus
↓
2024–2026
开放产品线形成不同答案
DeepSeek-VL/VL2、OCR、Janus
Kimi-VL → K2.5 → K3
↓
2025–2026
视觉进入推理、RL 与 Agent 闭环
Vision-R1 / VTool-R1 / ToolsRL / vision-in-the-loop
24. 正文必须包含的视觉合同
V1 · 五层数据流总图
从像素到环境动作;点击每层显示输入、输出、瓶颈和代表论文。
V2 · Token 预算瀑布
以 224²、1024²、3584² 和多帧视频展示 patch、pixel shuffle、时间池化后的数量。
V3 · CLIP 与 SigLIP 损失对比
只画目标结构,不把公式推导塞满首屏。
V4 · 四种连接器
Frozen prefix、Flamingo cross-attention、BLIP-2 Q-Former、LLaVA MLP 并排。
V5 · 三种分辨率策略
固定缩放、动态 tile、NaViT packing。
V6 · DeepSeek 三分支
理解、统一生成、光学压缩三列,避免错误直线谱系。
V7 · Kimi 三代 MoonViT
初始化、目标、图像 / 视频、对齐阶段、Agent 行为五行对照。
V8 · 幻觉跷跷板
视觉证据、连接器带宽、语言先验和拒答阈值。
V9 · 评测雷达不是总分
感知、OCR、知识、推理、视频、Agent 六维矩阵。
25. 交互实验合同
Lab 1 · 视觉 Token 预算
输入:
- 分辨率;
- patch size;
- 图片 / 视频帧数;
- 2×2 pixel shuffle;
- 时间池化;
- 上下文长度。
输出:
- 原始 patch;
- 压缩后视觉 Token;
- 上下文占比;
- 细节损失提醒。
所有数值明确标成教学近似。
Lab 2 · 连接器与训练制度
预设:
- Frozen;
- Flamingo;
- BLIP-2;
- LLaVA;
- Kimi-VL;
- K2.5;
- K3。
输出:
- 视觉塔 / connector / LLM 是否更新;
- 主要目标;
- 是否有单独 alignment;
- “原生”五维命中情况。
Lab 3 · 光学上下文压缩
输入:
- 文本 Token 数;
- 页面数;
- 每页视觉 Token;
- OCR 模式。
输出:
- 光学压缩比;
- 视觉预算;
- DeepSeek-OCR 官方报告锚点;
- 对未报告区间明确显示“教学插值,不代表论文结果”。
Lab 4 · Vision-in-the-loop
三条路径:
- 直接回答;
- 只做文字 CoT;
- crop → OCR / Python → 新观察 → verifier。
用户逐步推进,观察证据质量、工具成本和最终置信状态变化。
26. 正文核心论文清单
27. 证据分级与写作约束
A 级:可直接陈述
- 论文明确写出的架构、损失、数据阶段与实验设置;
- 官方代码仓库明确公开的模块与配置;
- 可从公式直接计算的 Token 数,且标明假设。
B 级:必须写“作者报告”
- benchmark 分数;
- 吞吐与成本;
- 压缩率—准确率曲线;
- 训练稳定性与跨模态迁移观察;
- RL 后文本能力变化。
C 级:只能写成教学解释
- 为什么某个梯度尖峰发生;
- 某专家是否形成视觉专化;
- 多模态能力提升的单一因果归因;
- 未报告分辨率或压缩率的插值。
不进入正文
- 二手媒体转述;
- 没有原始设置的榜单截图;
- Grok 生成的未核实参数;
- 把不同版本、不同 tile / frame 预算合并的模型比较;
- 把官方演示当成代表性统计结果。
28. 当前仍开放的问题
- 从头训练视觉塔的稳定性结论能否跨架构、规模和数据配方复现?
- 视觉 Token 在稀疏 MoE 中是否形成稳定、可迁移的专家专化?
- 在固定训练 FLOPs 下,更多像素与更多样本哪个更重要?
- 光学上下文压缩何时优于文本 tokenizer + KV / memory 压缩?
- 动态视觉 token 重排怎样保留二维可解释性?
- 视觉 RL 对文本任务的正迁移来自共享算法、数据难度还是 reward 结构?
- vision-in-the-loop 的收益中,模型、工具、harness 和 verifier 各占多少?
- 多模态长上下文中,位置编码、注意力稀释和视觉重复怎样共同影响检索?
- 统一理解与生成是否必须接受专用编码 / 解码路径?
- 原生多模态模型如何对视觉提示注入建立默认安全边界?
这些问题在网页中会明确显示为“尚无定论”,不使用未来感叙述掩盖证据缺口。