InternVL3:原生多模态预训练 本节摘要:InternVL3 之前的每个开源 VLM 都遵循同一套三步配方:拿一个在数万亿文本 token 上训练的文本 LLM,外挂一个视觉编码器,再微调接缝。能用,但有对齐债务——文本 LLM 把全部预训练预算花在纯文本上,并不天然理解视觉 token。事后加视觉,LLM 得重新学如何把视觉输入与文本推理关联起来,还不能忘了文本。InternVL3(Zhu 等人,2025 年 4 月)拒绝事后路线:一次预训练,文本与多模态从第一步就交错。结果在 780 亿参数开源下,于 MMMU-Pro 上追平 Gemini 2.5 Pro。本节读原生预训练的理由,以及这么做时什么会改变。
本节摘要:InternVL3 之前的每个开源 VLM 都遵循同一套三步配方:拿一个在数万亿文本 token 上训练的文本 LLM,外挂一个视觉编码器,再微调接缝。能用,但有对齐债务——文本 LLM 把全部预训练预算花在纯文本上,并不天然理解视觉 token。事后加视觉,LLM 得重新学如何把视觉输入与文本推理关联起来,还不能忘了文本。InternVL3(Zhu 等人,2025 年 4 月)拒绝事后路线:一次预训练,文本与多模态从第一步就交错。结果在 780 亿参数开源下,于 MMMU-Pro 上追平 Gemini 2.5 Pro。本节读原生预训练的理由,以及这么做时什么会改变。
阅读完本节,你应当能够:
事后 VLM 训练是默认。LLaVA、BLIP-2、Qwen-VL、Idefics——都拿一个已预训练的 LLM(Llama、Vicuna、Qwen、Mistral)再加视觉。训练阶段通常长这样:
对齐债务有三个症状:
这些症状有据可查。MM1.5 第 4 节量化了它们;LLaVA-OneVision 的消融也暗示了。原生预训练就是答案。
InternVL3 从头在一个第一步就原生多模态的语料上训练。配比是:
视觉 token、文本 token、跨模态交互从第一个梯度步就参与同一个损失。没有对齐预训练,没有投影器冻结阶段,没有要恢复的灾难性遗忘。
基座模型是单阶段训练,之后接指令微调,但基座已经把视觉 token 当一等公民理解了。
Qwen2-VL 用固定轴分配的 M-RoPE。InternVL3 引入 V2PE:位置编码按模态类型(文本、图像、视频)可变,带可学习缩放。实践上:
三者共享同一 RoPE 频率基,但每段的隐藏维分配是学习参数而非固定切分。预训练时可自由权衡时间与空间频率分辨率。
V2PE 的消融声称:同等算力下,视频基准比 M-RoPE 高 1~2 分。不是革命,但更干净。
部署优化。并非所有图像都需要全分辨率编码。一张只含一个低细节物体的照片,用 1280px 原生编码是浪费 token。ViR 是一个小分类器,在编码前预测回答问题所需的最小分辨率。
路由分三档:低(256 token)、中(576)、高(2048+)。生产流量里约 60% 的查询,低或中就够。净效果:同等质量下吞吐 2~3 倍。
服务大型 VLM 时,视觉编码器每张图跑一次,而 LLM 对每个输出 token 自回归跑一次。两者瓶颈不同(视觉 = 卷积+注意力的显存带宽;LLM = KV 缓存)。DvD 把它们分到不同 GPU,中间流式交接。
对 8B + 4 亿编码器模型,DvD 大致把每节点吞吐翻倍。
InternVL3 的主要基准声称:78B 时追平 Gemini 2.5 Pro 的 MMMU-Pro;38B 时追平 GPT-4o;8B 时领先开源 8B 榜。全靠单阶段预训练 + 指令微调配方。
对齐债务假说可测:每单位视觉基准增益,InternVL3-8B 丢的文本基准分(MMLU、GSM8K)比 Qwen2.5-VL-7B 少。模型更像通才,因为训练是一整块而非两块。
InternVL3.5(2025 年 8 月) 扩规模,同原生预训练思路,更多数据更多参数,MMMU 增量改进。
InternVL-U(2026) 加统一生成——在同一主干上用 MMDiT 头输出图像。「U」代表「理解 + 生成」,追赶 Transfusion 式统一模型(第 13 节)。同一原生预训练主干同时支持理解与生成头。
原生预训练不免费:
InternVL3 押注:对齐债务比复用损失更糟。基准支持这一说法;而生产成本把未来实验室挡在了廉价复制的门外。事后 VLM 会继续存在,因为对大多数项目它们仍更便宜。
code/main.py 是一个训练语料混合器与 ViR 路由模拟器。它:
def native_corpus_mix(text_p, interleave_p, caption_p, video_p, total_tokens): assert abs(text_p + interleave_p + caption_p + video_p - 1.0) < 1e-6 return { "text_only": int(total_tokens * text_p), # 40% FineWeb 等 "interleaved": int(total_tokens * interleave_p), # 35% OBELICS/MMC4 "caption_pairs": int(total_tokens * caption_p), # 20% "video_text": int(total_tokens * video_p), # 5% } # 从第一个梯度步, 视觉/文本/跨模态都进同一个 LM 损失
def vir_route(query, image): # 小分类器预测所需最小分辨率 detail = classifier(query, image) # low / medium / high if detail == "low": return 256 # 一物体低细节 if detail == "medium": return 576 return 2048 # OCR/密集图 # 生产约 60% 落在 low/medium, 吞吐 2~3 倍
💡 关键洞察:原生预训练让视觉 token 与文本 token 在同一损失里从第一步就协同——不存在「先学文本再加视觉」的接缝,所以没有接缝要补偿,对齐债务从一开始就低。
InternVLChatModel 暴露 ViR 路由接口。工程取舍:预算充足要最强通才用 InternVL3 原生预训练;预算有限用事后 LLaVA/Qwen;服务大型 VLM 用 DvD 拆 GPU;流量分辨率分布已知用 ViR 路由省 token。
本节产出 outputs/skill-native-vs-posthoc-auditor.md。给定一份拟定的 VLM 训练计划,它审计该走原生还是事后,标出对齐债务风险,并推荐语料配比。在为新开源 VLM 项目选型、需要挑训练策略时用它。
算力对比:估算 InternVL3-8B(原生预训练)与 LLaVA-OneVision-7B(事后)的算力差。GPU 小时比大约多少?什么解释了这个差距?
改配比:InternVL3 报告 40% 文本/35% 交错/20% caption/5% 视频。若你的目标任务偏视频,提出新配比,并论证基座为何仍需大量文本与 caption 数据。
读 MM1.5:读 MM1.5 第 4 节关于遗忘。说出事后训练在哪个基准上退步最大,退步了多少。
ViR 误路由:ViR 把 60% 流量路由到低分辨率。它会把哪些查询误路由(本该高却送低)?提出三种路由失败模式。
DvD 反效果:DvD 把视觉与 LLM 分到不同 GPU。什么流量模式下 DvD 反而损害吞吐?
下一节,我们换条路进入早期融合——Chameleon 把图像也离散成 token,与文本 token 在同一条序列、同一个词表、同一个自回归目标里一起预测,这是「一切都成 token」的纯粹路线。