MiniCPM-V系列是面壁智能推出的小参数量的开源多模态大模型,没有超过9B的版本。主打小而强。
MiniCPM-Llama3-V 2.5
这版有论文了,详细写。应该也是2.6的基础。 这一版在 OpenCompass 评估中优于强大的 GPT-4V-1106、Gemini Pro 和 Claude 3。
能力
- 支持最高1.8M像素的高分辨率图像输入(例如1344*1344),支持任意长宽比图像
- 强大的OCR,OCRBench 上优于 GPT-4V、Gemini Pro 和 Qwen-VL-Max,支持table-to-markdown
- 可信,基于RLAIF-V技术做了对齐,减少幻觉,更符合人类喜好
- 多语言,基于VisCPM技术,支持30多种语言
- 系统地集成了一套端侧部署优化技术
模型架构

基本架构
三部分:visual encoder, 压缩层, LLM visual encoder:SigLIP SoViT-400m/14 压缩层:单层交叉注意力 LLM:每一代都不同
Adaptive Visual Encoding
关键在与尊重输入的原始纵横比并保留足够的视觉细节(高分辨率),并且来自图像编码的视觉标记的数量应该适中,以在端设备上负担得起。
Image Partition 图像分割
- 计算输入图片能分割成多少个slice
其中,\(W_I\)和\(H_I\)是输入图像分辨率,\(W_v\)和\(H_v\)是ViT的输入大小。
- 计算可能的slice的行列数组合\(m\)和\(n\)
- 计算每种行列数组合的得分,选择分数最高的。好的分割应该使slice的宽高比尽量接近ViT预训练时的输入大小(这里应该是\(448*448\))
当\(N\)是素数时,只能得到\(1*N\)和\(N*1\)两种组合。为了避免这种情况,又引入了
来引入更多种可能的 \(m*n\) 组合。实践中设置\(N < 10\)。最高支持1.8 million pixels。
Slice Encoding
虽然图像分割可以保证切片与ViT预训练设置之间的良好匹配,但每个切片的大小并不精确等于(\(W_v\), \(H_v\))。所以首先要按比例调整每个切片的大小,使所得区域大小与ViT输入大小\(W_v \times H_v\)相匹配。减少patch数量与vit预训练时的差距。 随后,对ViT的位置嵌入进行2D插值,以适应切片的比例。具体做法是将原本1D的位置编码\(P_1\in\mathbb{R}^{Q\times l}\) 先展开为2D \(P_2 \in\mathbb{R}^{q\times q\times l}\),通过二维插值技术将\(P_2\)调整至与每个slice相匹配的大小。
除了上述对图像进行分割并处理的方法外,还会将原始图像作为一个额外的slice resize后加入到输入数据中。这样做是为了提供关于整个图像的整体信息,有助于模型在处理局部细节的同时也能理解图像的整体结构和上下文。也是这种高分辨率处理的常见操作了。
Token Compression 图像token压缩
这里的做法和Qwen-VL相同。 在视觉编码之后,每个slice被编码为1,024个tokens。这太多了。为了压缩Visual tokens,作者引入了一个单层的交叉注意力层,用一组可训练的query emb(64 queries for MiniCPM V1&2 and 96 tokens for MiniCPM-Llama3-V 2.5 )和每个slice的tokens的\(K\),\(V\)做交叉注意力。最终压缩后的token数量取决于query emb的长度。 此外这层还会再加一次2D位置编码,而且这里的位置编码不可学习。 代码里这一步也叫attn pool。
Spatial Schema
为了表示每个slice相对于整个图像的位置,还引入了一个两个特殊的标记 < slice> 和<\slice>包装每个slice的tokens,然后使用一个特殊的标记“\n”将不同的行的slice的tokens分开。做法来自
训练
分三个阶段,分别是pre-training,SFT和RLAIF-V。
预训练
预训练又分为三个阶段:

- Stage1
这一阶段的作用是warm up压缩层。 先随机初始化压缩层模型参数,再冻结其他模块进行训练。 Visual Encoder的分辨率设置为\(224*224\)。
数据上使用了200M的Image Captioning数据。来自随机选择自表格,并清洗掉了删除相关性差的图像-文本对和格式不良的文本数据,确保数据质量。
- Stage2
第二阶段的作用是扩展预训练的视觉编码器的输入分辨率。 这阶段视觉编码器可训练,其他模块冻结。
数据上,为了扩展预训练的分辨率,从表中的Image Captioning数据中额外选择了200M数据。
- Stage3
扩展视觉编码器的主输入分辨率后,最后使用自适应视觉编码策略训练视觉模块,该策略可以进一步适应任何宽高比的高分辨率输入。 这阶段压缩层和视觉编码器都进行了适应语言模型嵌入空间的训练。LLM保持冻结状态,以避免相对低质量的预训练数据破坏LLM能力。
SFT
在从预训练中学习基础能力后,我们对高质量的视觉问答数据集进行监督微调(SFT) 可训练模块:所有模型参数。

数据主要来自人类标注和GPT-4标注的高质量数据集。
最近的研究表明(Minicpm、Gemini-1.5),接近训练结束的数据在塑造模型的能力和响应风格方面起着更重要的作用。
作者将SFT数据分为两部分。
第一部分的重点是增强模型的基本识别能力,而第二部分的重点是增强模型生成详细响应和遵循人类指令的能力。
具体来说,part-1数据由响应长度相对较短的传统QA和caption数据集组成,这有助于增强模型的基本识别能力。
相比之下,part-2部分包含具有复杂交互的长响应的数据集,无论是在文本还是多模态上下文中。
在SFT中,这两个部分数据被连接起来并依次输入到模型中。
在MiniCPM-Llama3-V 2.5中,作者额外引入了来自Cauldron数据集的2M数据用于多模态知识增强,以及90K覆盖36种语言的多语言数据用于增强多语言对话能力。
RLAIF-V 对齐

MLLM通常容易出现幻觉问题,产生不符合输入图像的响应。为了解决幻觉问题,作者采用RLAIF-V,关键在于从开源模型中获得可扩展的高质量反馈,用于直接偏好优化(DPO)。
- Response Generation
第一步是使用策略模型生成给定指令的多个响应。具体来说,给定一个等待对齐的模型 \(M\),使用高温采样解码从 \(M \)中采样 10 个响应\(Y = {y_1, y_2, · · · , y_n}\)(sampling decoding with high temperatures)。 有几个好处:(1)反馈收集和学习可以更好地关注可信度,因为避免了来自多个 MLLM 的不同文本样式。(2) 反馈学习更有效,因为偏好直接收集在策略模型的分布上。
- Feedback Collection
从开源mllm收集高质量的反馈可能具有挑战性,因为与专有模型相比,它们的功能通常较弱。为了解决这个问题,RLAIF-V使用了分而治之的策略来进行响应评分。
- 响应拆分: 每个响应\(y_i\)首先被拆分成多个原子声明 \(C_i = {c_1, c_2, · · · , c_m}\)。这些原子声明是构成完整响应的基本单元,通常是比较简单的陈述句。使用 Llama-3-8B 模型来执行这一拆分任务。
- 声明验证: 将每个原子声明\(c_j \)转换为一个是非题(yes/no 问题),例如 "Is it true that [\(c_j\)]?"。 使用开源 MLLM 来评估每个是非题的正确性。具体来说: 对于 MiniCPM-V 2.0,使用 OmniLMM 12B 模型来评分。 对于 MiniCPM-Llama3-V 2.5,使用 LLaVA-NeXT-Yi 34B 模型来评分。
- 评分计算: 计算每个响应 \(y_i\)的最终得分\(s_i\)。得分定义为:\(−n_{rej}\),其中\(n_{rej}\)是无效原子声明的数量。 无效原子声明是指那些被评估为错误或不确定的声明。
- Direct Preference Optimization
Direct Preference Optimization (DPO) 是一种用于训练模型以优化偏好(preference)的方法。通过这种方法,模型可以学习用户对不同输出的偏好,从而生成更符合用户期望的结果。以下是 DPO 方法的具体步骤和实现细节:
- 高质量 AI 反馈的收集: 在进行偏好学习之前,首先需要收集高质量的 AI 反馈。这一步骤已经在前面提到过,通过分而治之的策略已经得到了每个响应的评分。
- 构建偏好数据集:
- 从每个响应集合\(Y\)中抽取中随机抽取响应对。假设我们有 \(n\)个响应,从中随机选择两个响应组成一个对。
- 根据每个响应的相对评分来确定哪个响应更优。分数更高的记为\(y_w\),分数低的记为\(y_l\)。这样,每个随机抽取的响应对都可以转化为一个偏好对(\(y_w\), \(y_l\))。
- 继续重复上述过程,直到构建出足够大的偏好数据集。在实践中,作者构建一个包含 6,000 个偏好对的数据集,这些偏好对来自 3,000 张独特的图像。
- 使用 DPO 算法进行训练 偏好对训练: DPO 算法需要在偏好对上进行训练。每个偏好对表示模型更倾向于生成yw。 在训练过程中,模型会尝试最大化生成yw的概率同时最小化生成yl的概率。 损失函数: DPO 算法通常使用一种对比损失函数(contrastive loss)来优化模型。这种损失函数鼓励模型生成高评分的响应,同时避免生成低评分的响应:
其中,\(f(y)\)是模型对响应\(y\)的评分函数
端侧部署
端侧设备(主要是手机)的限制主要来自内存、CPU、GPU的限制。
Quantization量化
以 MiniCPM-Llama3-V 2.5 为例,fp16 版本模型通常需要约 16–17GB 内存。在 GGML 框架中采用 Q4\_K\_M 模式的 4-bit 量化策略,可将内存需求降低到约 5GB,更适合移动端设备使用。
为了在端侧设备(如智能手机和计算机)上部署多语言大模型(MLLMs),研究者采用了量化技术来降低内存消耗,并在不同的框架上进行了实证研究
量化是一种常用的模型压缩技术,用于降低模型的显存/内存占用。其核心思想是:使用统一的缩放因子 \(s\) 将一组权重压缩到更窄的数值范围内,然后通过离散化(取整)将其映射为低比特表示。该过程可表示为:
其中,\(w_i\) 表示原始权重,\(w_i'\) 表示量化后的参数,\(s\) 为计算得到的缩放因子;\(\operatorname{round}(\cdot)\) 表示取整函数,用于将连续值离散化。
通过量化,可以显著减少模型的内存占用。例如,对于 MiniCPM-Llama3-V 2.5 模型,其 fp16 版本通常需要 16~17GB 的内存。 对于 MiniCPM-Llama3-V 2.5 模型,研究者选择了 GGML 框架中的 Q4_K_M 模式进行 4-bit量化。这种量化策略将模型的内存需求从 16~17GB 降低到约 5GB,这在移动设备上是非常友好的。
Deployment Framework 部署框架
研究者调查了多种框架,以找到最适合端侧设备的解决方案。这些框架包括但不限于: CPU框架:如 llama.cpp、ONNX Runtime 等。 GPU框架:如 TensorRT、CUDA 等。 NPU框架:如 NNAPI、Huawei HiAI 等
研究者优先考虑了CPU框架。在众多CPU框架中,选择了 llama.cpp 框架。 实验在小米14 Pro(搭载高通Snapdragon 8 Gen 3芯片)上进行。 结合4位量化(Q4_K_M模式)和 llama.cpp 框架,对模型进行了优化。 结果: 文本编码延迟:模型的文本编码延迟为64.2秒。 文本解码速度:模型的文本解码速度为1.3个token/秒。 还是太慢。
以下尝试了三种高阶优化:分别针对内存、编译和设置

- Memory Usage Optimization 内存优化
实验结果显示,在没有特定优化的情况下,图像处理可能会成为移动设备上推理速度的瓶颈,主要是由于移动设备有限的内存资源。为了应对这一问题,研究者探索了多种内存使用优化策略。
在移动设备上进行图像处理和推理时,内存资源非常有限。传统的做法是同时加载视觉变换器(ViT)和大型语言模型(LLM)到内存中,这会导致内存占用过高,进而引发频繁的页面交换(paging),即内存中的数据频繁地在内存和磁盘之间交换,严重影响程序的运行效率。
为了解决上述问题,研究者采用了顺序加载的方法,而不是同时加载 ViT 和 LLM 到内存中。具体步骤如下: 1. 视觉编码阶段:首先加载 ViT 模型,对输入的图像进行视觉编码。在完成视觉编码后,释放 ViT 模型占用的内存。 2. 文本和视觉令牌编码阶段:接着加载 LLM 模型,对视觉和文本令牌进行编码。在完成编码后,释放 LLM 模型占用的内存。
结果: 图像处理时间:优化前,图像处理时间为 45.2 秒;优化后,图像处理时间减少到 31.5 秒。
- Compilation Optimization
通过直接在目标设备上编译模型,可以显著改善编码延迟和解码吞吐量。 指令集架构的一致性: 直接在目标设备上编译模型可以确保编译器生成的代码与目标设备的指令集架构(ISA)高度一致。这种一致性可以充分利用目标设备的硬件特性,提高代码的执行效率。 例如,现代CPU和GPU通常支持特定的SIMD(单指令多数据)指令,这些指令可以并行处理多个数据点,从而加速计算。
优化编译器的选择: 使用针对目标设备优化的编译器可以生成更高效的机器码。这些编译器通常会进行一系列优化,如循环展开、函数内联、内存访问优化等,以提高代码的运行效率。
编码延迟: 编码延迟从64.2秒显著减少到17.0秒,减少了约73.5%。这一显著的减少表明,直接在目标设备上编译模型可以极大地提高编码阶段的效率。 解码吞吐量: 解码速度从1.3个token/秒提升到3.2个token/秒,提升了约146.2%。这表明编译优化不仅减少了延迟,还显著提高了模型的解码能力。
- Configuration Optimization 配置优化
在端侧设备上部署多语言大模型(MLLMs)时,单一默认配置可能无法适应不同设备的多样性和特性。为了最大化推理速度,研究者开发了一种自动参数搜索算法,动态确定最适合各个设备的配置(例如,不同CPU核心上的计算分配)。通过这种配置优化,可以显著提高模型的性能。 1. 自动参数搜索算法 动态配置:自动参数搜索算法能够根据设备的具体硬件特性,动态调整模型运行时的参数配置。这包括但不限于计算任务在不同CPU核心上的分配。 优化目标:算法的目标是最大化推理速度,同时保持模型的准确性和稳定性。 2. 具体优化参数 计算分配:优化算法会尝试不同的计算任务分配方案,例如将某些计算任务分配给性能更强的CPU核心,而将其他任务分配给性能较弱的核心。 缓存管理:优化算法还会考虑缓存的使用情况,确保频繁访问的数据能够快速读取。 并行处理:通过合理分配并行任务,充分利用多核CPU的并行处理能力。
优化前后的性能对比 优化前: 解码吞吐量:3.2个token/秒 优化后: 解码吞吐量:8.2个token/秒,超过了典型的人类阅读速度(通常约为4-5个token/秒)
NPU加速

除了针对CPU的优化技术外,利用其他类型的芯片(如GPU和NPU)也是提高模型在端侧设备上性能的一个有前景的方向。尽管GPU在理论上具有潜力,但实验发现当前移动设备上的GPU框架尚未优化到足以超越CPU性能的程度。因此,研究者转向了神经处理单元(NPU)来解决这一问题。 1. 视觉编码加速: 替换后端框架:为了利用NPU加速视觉编码,研究者将视觉变换器(ViT)的后端框架从原来的框架替换为QNN(Quantized Neural Network)框架。QNN框架专门设计用于在NPU上高效运行量化模型。 2. 保留原有框架:对于语言模型部分,仍然使用 llama.cpp 框架,以保持其在CPU上的高效运行。
实验结果: 视觉编码时间:在配备高通NPU的移动设备上,这一优化显著减少了视觉编码时间。具体来说,视觉编码时间从3.7秒减少到1.3秒,如图所示。
MiniCPM-V 2.6-o
最新最强的一代。与 MiniCPM-Llama3-V 2.5 相比,它的性能有了显著提升,并引入了用于多图像和视频理解的新功能。
MiniCPM-o 2.6 是 MiniCPM-o 系列中最新且功能最强大的模型。该模型基于 SigLip-400M、Whisper-medium-300M、ChatTTS-200M 和 Qwen2.5-7B 以端到端的方式构建,总参数量为 8B。与 MiniCPM-V 2.6 相比,该模型性能显著提升,并引入了实时语音对话和多模态直播的新功能。MiniCPM-o 2.6 的显著特点包括:
- 领先的视觉能力。MiniCPM-o 2.6 在 OpenCompass 上的平均得分为 70.2,这是对 8 个流行基准的全面评估。仅使用 8B 参数,它在单图像理解方面超越了广泛使用的专有模型,如 GPT-4o-202405、Gemini 1.5 Pro 和 Claude 3.5 Sonnet。它还在多图像和视频理解方面优于 GPT-4V 和 Claude 3.5 Sonnet,并展现出良好的情境学习能力。
- 最先进的语音能力。MiniCPM-o 2.6 支持中英双语实时语音对话,可配置英语和中文语音。它在音频理解任务(如语音识别和语音转文本翻译)上优于 GPT-4o-realtime,并在开源社区中语义和声学评估的语音对话方面展现出最先进的性能。它还支持情绪/速度/风格控制、端到端语音克隆、角色扮演等有趣功能。
- 强大的多模态实时流能力。作为一项新功能,MiniCPM-o 2.6 可以独立于用户查询接受连续的视频和音频流,并支持实时语音交互。它优于 GPT-4o-202408 和 Claude 3.5 Sonnet,并在 StreamingBench 上展现出开源社区在实时视频理解、全源(视频和音频)理解以及多模态情境理解方面的最先进性能。
- 强大的 OCR 能力和其他功能。MiniCPM-V 系列中流行的视觉能力得到提升,MiniCPM-o 2.6 可以处理任意长宽比的图像,最高可达 180 万像素(例如 1344x1344)。在 25B 以下的模型中,它在 OCRBench 上实现了最先进的性能,超越了 GPT-4o-202405 等专有模型。基于最新的 RLAIF-V 和 VisCPM 技术,它具有值得信赖的行为,在 MMHal-Bench 上优于 GPT-4o 和 Claude 3.5 Sonnet,并支持超过 30 种语言的多语言功能。
- 卓越的效率。除了友好的尺寸,MiniCPM-o 2.6 还展示了最先进的令牌密度(即每个视觉令牌编码的像素数)。在处理 180 万像素的图像时,它仅产生 640 个令牌,比大多数模型减少了 75%。这直接提高了推理速度、首个令牌延迟、内存使用和功耗。因此,MiniCPM-o 2.6 可以高效地支持 iPad 等终端设备上的多模态直播。
- 易于使用。MiniCPM-o 2.6 可以通过多种方式轻松使用:(1) llama.cpp 支持在本地设备上进行高效的 CPU 推理,(2) 提供 16 种尺寸的 int4 和 GGUF 格式量化模型,(3) vLLM 支持高吞吐量和内存高效的推理,(4) 使用 LLaMA-Factory 在新领域和任务上进行微调,(5) 快速本地 WebUI 演示,以及 (6) 服务器上的在线网页演示。
Model Architecture. 模型架构。
- 端到端全模态架构。不同的模态编码器/解码器以端到端的方式连接和训练,以充分利用丰富的多模态知识。该模型仅使用 CE 损失进行端到端的训练。
- 全模态实时流机制。(1) 将离线模态编码器/解码器改为在线编码器/解码器,用于流式输入/输出。(2) 在 LLM 主干中设计了一种时分复用 (TDM) 机制,用于全模态流式处理。它将并行全模态流划分为小周期时间片内的顺序信息。
- 可配置语音建模设计。设计了一个多模态系统提示,包括传统的文本系统提示,以及一个新的音频系统提示来确定助手的声音。这能够在推理时灵活配置声音,同时也促进了端到端的语音克隆和基于描述的语音创建。

Evaluation

MiniCPM-V 4.5
整体架构

MiniCPM-V 4.5 的架构设计包含三个核心模块,旨在高效处理图像和视频数据:
- 轻量级视觉编码器 (Lightweight Visual Encoder):采用特殊的切片策略 (Partitioning Strategy),能够灵活处理高分辨率图像。
- 统一 3D 重采样器 (Unified 3D-Resampler):这是架构的核心创新点。它将图像和视频编码为紧凑的特征表示,特别是利用视觉信息中的时间冗余 (Temporal Redundancies) 来压缩视频数据。
- LLM 解码器 (LLM Decoder):负责理解图像、视频和文本输入,并生成文本输出。
统一 3D 重采样器 (The Unified 3D-Resampler)
为了解决多模态大模型 (MLLMs) 在图像和视频编码上的效率瓶颈,该模型将 2D 重采样器扩展为 3D 重采样器,对视频进行时空联合压缩 (Joint Spatial-Temporal Compression)。
- 图像处理 (Image Processing)
切片策略:采用 LLaVA-UHD 的图像切片策略,处理任意长宽比的高分辨率图像。根据输入分辨率估计理想切片数,选择最符合预训练设置的切分方式。
压缩机制:
- 使用带有 2D 空间位置编码的可学习 Query,通过交叉注意力 (Cross-Attention) 为每个切片生成固定长度的序列。
- 效率对比:大多数现有 MLLM 使用 MLP 和 Pixel Unshuffle,编码一张 \(448 \times 448\) 的图像通常需要 256 个 Token。而 MiniCPM-V 利用重采样架构的灵活性,仅需 64 个 Token 即可保持良好性能,显著提高了压缩率。
- 视频处理 (Video Processing),
- 时空联合压缩:
- 将视频沿时间维度分割为多个包 (Package),每个包包含相邻帧(这些帧通常具有高度冗余的视觉信息)。
- 在每个包内,通过交叉注意力将帧特征重采样为一个固定长度的特征序列。
- 位置编码:在可学习 Query 中同时加入 2D 空间位置编码(与图像相同)和 时间位置编码。
- 最终视频表示由所有包的 Token 序列拼接而成。
- 采样设置:每个视频最多采样 1080 帧,最大帧率为 10 fps。训练时会对包大小和帧率进行随机增强以提高鲁棒性。
- 性能提升:
- 实现了 96倍 的视频 Token 压缩率。例如,6 帧 $$448 \times 448$$ 的图像可以被联合压缩为 64 个视频 Token(常规 MLLM 通常需要 1536-3072 个 Token)。
- 这使得模型能在不增加 LLM 推理成本的情况下感知更多视频帧,从而具备强大的高帧率视频理解和长视频理解能力。
- 时空联合压缩:
- 训练效率 (Training Efficiency)
- 统一编码:得益于重采样机制对输入形状的无关性 (Agnostic to input shape),图像和视频共享同一个 3D 重采样器架构和权重。
- 高效迁移:从 2D 到 3D 的扩展可以通过轻量级的 SFT (监督微调) 阶段高效完成。
- 知识迁移:这种设计促进了从图像到视频的知识迁移。例如,模型表现出了不错的视频 OCR 能力,尽管并没有专门收集此类训练数据。
核心结论 :时空联合压缩实现了更高的视觉压缩率。统一的架构使得模型能以极小的额外训练成本进行适配,并促进了图像到视频的能力迁移。
预训练策略
预训练过程旨在通过渐进式、多阶段的策略系统地构建模型的基础能力。
Stage 1: Warm-up
- 训练模块:仅训练 2D 重采样器 (2D-Resampler),其他组件(视觉编码器、LLM)冻结。
- 数据:图像-文本对 (Image-caption data)。
- 目标:以最小的训练成本建立视觉和语言模态之间的初始对齐。
Stage 2: Perceptual Foundation Enhancement
- 训练模块:解冻 视觉编码器 (Vision Encoder)。LLM 继续冻结。
- 数据:富含 OCR 的数据 (OCR-rich data) 和图像-文本对。
- 目标:增强感知基础能力。
- 注意:此阶段 LLM 保持冻结,因为所用数据可能缺乏语言建模所需的流畅度或质量。
第三阶段:端到端训练 (Stage 3: End-to-End Training)
- 训练模块:解冻 LLM 解码器,全参数端到端训练。
- 数据:最高质量的数据,包括纯文本语料、图文交错样本、视频以及前几个阶段的精选子集。
- 目标:充分利用数据中的知识,涵盖多图推理和时间理解能力。
- 调度策略:采用 Warmup-Stable-Decay 学习率调度器。在 Decay(衰减)阶段,逐渐加入更多高质量指令和知识密集型数据。
文档知识与 OCR 学习的统一范式

为了解决传统 MLLM 依赖脆弱的外部解析器 (Parsers) 处理文档 PDF 的问题,以及 OCR 数据过度增强导致的幻觉问题,MiniCPM-V 4.5 提出了一种统一训练范式,直接从文档图像中学习。
文档知识获取与文本识别 (OCR) 的关键区别在于图像中文字的可见性。
- 可见时:进行精确的文本识别。
- 不可见时:进行基于多模态上下文的知识推理。
将上述两种能力统一为一个学习目标:从受损的文档图像中预测原始文本。 具体做法是,对训练集中的文档文本区域随机施加不同程度的破坏 (Corruption),从而构造出三种不同难度的训练任务:
- 低度破坏 (Low Corruption) -> 增强 OCR (Augmented OCR)
- 现象:施加轻微噪声,文本仍然可辨认。
- 模型行为:通过文本识别 (Text Recognition) 有效预测文本。
- 目的:训练基础 OCR 能力。
- 中度破坏 (Moderate Corruption) -> 综合推理 (Integrated Inference)
- 现象:施加重度噪声,单个字符变得高度模糊且不可靠。
- 模型行为:必须整合受损区域的噪声视觉线索 (Noisy visual cues)、高级文档上下文 (High-level document context) 以及内部知识来重建原始文本。
- 目的:训练模型在视觉信息不完整时的推理与纠错能力。
- 高度破坏 (High Corruption) -> 上下文推理与文档知识学习 (Contextual Inference & Document Knowledge Learning)
- 现象:文本区域被完全遮盖 (Masked out),无法依赖字符级线索。
- 模型行为:被迫仅从多模态上下文(其他文本、布局结构、图表、表格、图像)和内部知识中推断信息。
- 目的:直接培养文档级别的理解能力 (Document-level understanding)。
核心结论 (Takeaway):
- 通过选择性冻结参数,可以在不完美的异构数据源上构建基础能力。
- 简单的动态视觉破坏可以有效地将知识学习、鲁棒 OCR 和上下文推理统一到一个单一的学习目标中。
Supervised Fine-tuning
SFT 阶段旨在激活模型在广泛任务上的能力,并为后续的强化学习做准备。同时,在此阶段将 2D 重采样器扩展为 3D 重采样器以提升视频数据效率。
分为两个阶段,先训练通用交互能力,再培养高级推理和时间理解的专业技能。
- 第一阶段:通用 SFT (General SFT),激活预训练中获取的广泛知识,并将其与人类指令对齐。
- 使用多样化的高质量指令-响应数据进行微调,培养多模态交互的熟练度。
- 在训练混合数据中加入 10% 的高质量纯文本数据,以防止纯文本性能下降并提高训练稳定性。
- 第二阶段:Long-CoT 与 3D 重采样器 (Long-CoT & 3D-Resampler),在通用基础之上,培养支持长推理模式 (Long reasoning mode)、高帧率和长视频理解的专业技能。
- 关键动作 1:引入 Long-CoT (长思维链) 热身指令,鼓励模型执行显式的逐步思考过程,包含反思 (Reflection) 和 回溯 (Backtracking) 等认知模式。
- 关键动作 2:增强时间理解,将架构从 2D 升级为 3D 重采样器。引入高帧率和长视频数据。由于统一设计,仅需少量高质量视频数据即可高效完成升级。
SFT Data
为了支持上述策略,构建了三类关键数据:
- STEM 数据 (STEM Data)
- 来源:高中及以上难度的多学科题目(物理、化学、生物、金融、计算机等)。
- 质量控制:两阶段过滤。
- 保留高视觉依赖性样本(不看图无法解题)。
- 进行一致性检查验证答案正确性。
- 推理过程:对剩余样本使用强大的 MLLM 进行拒绝采样 (Rejection Sampling),收集清晰的推理过程。
- 长尾知识数据 (Long-tail Knowledge Data)
- 问题:模型常在不常见的长尾话题上失败。
- 来源:维基百科 (Wikipedia)。
- 方法:针对每个实体页面,利用强力 MLLM 合成高质量的多模态指令和答案,并保留高视觉依赖性的样本。
- Long-CoT 数据 (Long-CoT Data)
- 来源:OpenThoughts 数据集和内部流程。
- 筛选策略:过滤掉简单提示词,专注于早期模型难以解决的挑战性问题。
- 验证流程:
- 验证正确性。
- 使用 RLAIF-V 进行声明级 (Claim-level) 的事实核查以评估可信度。
- 过滤无意义的重复。
- 增强:对验证后的回复进行重写以增加多样性。
核心结论 (Takeaway):过滤掉简单的提示词,专注于挑战性问题,对于有效的 Long-CoT 热身至关重要。
强化学习
RL 阶段旨在增强推理性能,实现可控的推理模式,并提高可信度。
RL 数据包含四个关键领域的高质量样本,每个子集都经过了严格的“人在回路 (human-in-the-loop)”清洗和去重流程。
- 数学 (Mathematics)
- 来源:学术来源的多模态数学题,需要结合视觉感知和逻辑推理。
- 清洗:针对开源数据集严重的标签错误问题,采用彻底的清洗流程以生成高质量数据集。
- 文档、表格和图表 (Documents, Tables, and Charts)
- 目标:提高感知复杂场景下的推理能力。
- 来源:混合了真实世界数据集和合成数据集,以提高领域覆盖率。
- 通用推理 (General Reasoning)
- 来源:VisualWebInstruct 和其他网络资源。
- 特点:包含逻辑和多学科推理任务,参考答案风格更复杂,许多问题包含多个子问题。
- 指令遵循 (Instruct Following)
- 来源:纯文本指令数据集(Llama-Nemotron-Post-Training Dataset 和 MulDimIF)。
- 观察:纯文本指令遵循能力的提升能很好地泛化到多模态指令。
RL 的效果高度依赖数据质量,因此实施了细致的质量控制,关注两个方面:
- 标签准确性 (Label Accuracy)
- 错误的标签会引入有缺陷的监督信号。
- 对每个数据集保留一个小样本子集进行检查,并进行人工清洗以保持高标签准确率。
- 奖励准确性 (Rewarding Accuracy)
- 验证通用领域的模型生成响应是一个挑战。
- 动态验证方法:
- 简单答案(仅含少量 Token):使用基于规则的验证系统 (Rule-based verification),准确率达 98%。
- 复杂自然语言答案(规则脆弱,如含特定单位或长句):使用更鲁棒的 RLPR 基于概率的奖励 (Probability-based rewards)。
- 奖励覆盖率 (Rewarding Coverage)
- 集成一个奖励模型 (Reward Model, RM) 提供密集的、与偏好对齐的信号,引导模型生成更高质量、更像人类的回复。
- 策略:对于长推理模式,仅将奖励模型应用于最终答案部分,以避免分布外 (OOD) 问题。
混合强化学习 (Hybrid Reinforcement Learning)
采用可控的混合推理设计:
- 短推理模式 (Short reasoning mode):快速回答。
- 长推理模式 (Long reasoning mode):针对复杂问题输出显式的逐步思考过程。
- 控制方式:通过 Prompt 控制模式切换。
- 训练策略:
- 两种行为在 SFT 阶段初始化。
- 通过混合 RL 联合优化,Rollouts 在两种模式间随机交替。
- 使用 GRPO 算法优化,移除 KL 散度和熵损失以提高稳定性。
- 优势:既保留了短回复的效率,又保持了复杂推理能力,并促进了交叉泛化 (Cross-generalization)(一种模式学到的推理能力可迁移提升另一种模式)。
奖励塑形 (Reward Shaping)
设计奖励塑形策略以平衡任务能力、人类偏好和训练稳定性。最终奖励信号\(R\)是四个分量的加权组合:
- \(R_{\text{acc}}\):准确性奖励。
- \(R_{\text{format}}\):格式奖励。
- \(R_{\text{rep}}\):重复惩罚奖励。
- \(\tilde{R}_{\text{rm}}\):标准化后的偏好奖励,\(\tilde{R}_{\text{rm}}=(R_{\text{rm}} - \bar{R}_{\text{rm}}) / \sigma(R_{\text{rm}})\), 其中 \(\bar{R}_\text{rm}\)和 \(σ(R_\text{rm})\) 分别表示使用相同提示采样的原始奖励分数的平均值和标准差。
关于偏好奖励 (\(R_{\text{rm}}\)) 的特殊处理:
- 问题:直接将标准 RM 应用于长推理模式效果不佳,因为标准 RM 难以评估分布外的长推理链,导致对齐变差和训练不稳定。
- 解决方案:选择性应用策略。RM 仅对响应的最终答案部分打分,完全绕过显式的思考步骤。这提供了稳定、密集的奖励信号,且不会错误地惩罚复杂的推理路径。
RLAIF-V
为了解决视觉幻觉问题(尤其是在视频输入中),集成了 RLAIF-V。
- 响应采样 (Response Sampling):在相同生成条件下从策略模型采样多个响应,确保评估聚焦于事实准确性。
- 反馈收集 (Feedback Collection):
- 将复杂响应分解为可验证的原子声明 (Atomic claims)。
- 独立验证每个声明。
- 将复杂的整体评估转化为简单的声明级验证,提高事实评估的精度。
- 基于聚合的声明验证分数构建偏好对(包含较少事实错误的响应更优)。
- 偏好学习 (Preference Learning):
- 使用生成的偏好数据集(包含图像和视频模态)通过 DPO 训练模型。
- 此阶段对于视觉任务特别有效,在不牺牲响应质量或流畅度的情况下提升事实准确性。
核心结论 (Takeaway):
- 结合基于规则的奖励(针对简单响应)和基于概率的奖励(针对复杂响应)构建了可靠的奖励系统。
- 混合 RL 实现了长短推理模式之间的交叉模式泛化。