为何多模态MLLM去掉Vision Encoder更优?Infra视角解析

近年来,随着多模态大模型的快速发展,越来越多的研究开始探索移除视觉Encoder的架构,这类Encoder-Free的方案正在成为行业内的热门方向。本文将从训练基础设施的视角,分析这类方案的核心优势,重点讨论需要在线执行视觉Encoder的训练场景——如果Encoder可以完全冻结且视觉特征预先离线计算,相关的基础设施问题会大幅缓解,并非本文的讨论重点。
传统架构破坏了LLM训练的规整计算图
纯文本大语言模型的训练主干由结构统一的Transformer层组成,整体计算路径高度规整,很容易建立稳定的成本模型,也便于组合数据并行、张量并行、流水线并行等多种训练策略。而主流的LLaVA类多模态架构,额外引入了视觉Encoder和投影层,在原本规整的LLM训练图中插入了一条独立的视觉计算路径:先通过视觉Encoder处理图像得到视觉特征,再通过投影层将特征映射到LLM的嵌入空间,最后与文本Token合并后送入模型。
这条视觉路径的计算规模、输入形状和最优并行策略,往往和LLM主干存在显著差异,两者虽然同属一个端到端模型,但很难共用同一套执行优化方案。需要说明的是,投影层本身的计算量通常远小于视觉Encoder和LLM主干,因此并非核心痛点,视觉Encoder的存在才是主要问题。
多模态样本的计算成本难以精准预估
在支持动态分辨率的视觉Encoder架构中,输入图像的分辨率、单样本包含的图片数量,甚至视频的帧数,都会直接影响最终生成的视觉Token数量。比如纯文本样本、单张448×448图像、多张高分辨率图像、长视频这几类样本,它们的视觉计算量差异极大。
这类样本的总计算成本可以拆分为两部分:视觉Encoder的计算成本,以及结合了文本和视觉Token的LLM计算成本。这种差异会带来两类典型的负载不均衡问题:
- 不同数据并行节点拿到的样本视觉负载不同,同步训练时需要等待最慢的节点完成计算
- 每个微批次的视觉负载随样本类型波动,导致流水线并行的每个阶段的服务时间不稳定
如果训练数据同时包含多种模态的样本,这种执行路径的差异会更加明显:纯文本样本完全不需要执行视觉Encoder,而视频样本的视觉计算量可能远超平均水平。虽然实际系统可以通过一些手段缓解这种波动,但这意味着采样器和调度器必须理解样本的模态信息,仅通过批次大小或文本Token数量无法准确描述真实的训练负载,即使统计了送入LLM的全部Token数量,也需要额外考虑视觉Encoder侧的计算开销。
视觉Encoder与LLM的并行配置存在天然冲突
先以流水线并行为例,常见的模型部署方式是将视觉Encoder、投影层和部分LLM层放在第一个流水线阶段,后续阶段仅放置LLM的剩余层。对于纯文本LLM,可以通过调整每个流水线阶段的Transformer层数,让各阶段的平均计算时间尽量接近,从而最大化流水线效率。但在加入视觉Encoder的架构中,第一个阶段的总计算时间不仅包含LLM层的计算,还包含视觉Encoder的计算,而后者的耗时会随样本的视觉负载变化。这会导致第一个流水线阶段成为整个训练的瓶颈,下游阶段会因为没有可消费的微批次而空转,产生额外的流水线气泡和反向压力。
再来看张量并行、上下文并行和模型放置策略:大型MoE LLM为了适配隐藏层维度、长上下文和专家参数,通常会使用较高程度的张量、上下文、流水线和专家并行。但参数规模仅数百M的视觉Encoder,往往不需要如此高程度的并行切分:过度的张量并行会让Encoder的单卡GEMM计算规模变小,反而提升通信占比;LLM和视觉Encoder的序列长度与显存压力不同,最优的上下文并行度也存在差异;目前主流的视觉Transformer并不使用MoE架构,因此LLM的专家并行策略并不适用于视觉Encoder。
这就让训练系统面临两难选择:要么让两者共用一套并行配置,虽然实现简单,但可能让视觉Encoder被过度切分,或者让第一个流水线阶段负载过重;要么为两者分别配置并行策略,虽然可以分别优化两边的效率,但如果GPU分组或张量切分方式不兼容,还需要在边界处额外转换数据布局,进一步提升了调度和通信的复杂度。
Encoder-Free方案的基础设施价值
Encoder-Free架构的核心设计,是移除了深层视觉Encoder,让视觉建模和文本建模复用同一套LLM的Decoder Stack。从训练基础设施的视角来看,这种设计主要带来三个核心优势:
- 彻底消除了视觉Encoder和LLM之间的并行配置冲突,不需要再为两个模块分别优化并行策略
- 减少了仅针对部分样本执行的深层视觉Encoder计算的条件分支,让训练流程更加统一
- 让训练的调度、性能分析和成本建模流程,更接近纯文本LLM的现有基础设施体系
当然,Encoder-Free方案并没有完全解决所有的负载差异问题:不同分辨率、图片数量和视频帧数仍然会让不同样本生成的视觉Token数量存在差异,样本间的变长序列和负载波动问题依然存在。但最大的改善在于,这些视觉Token不再需要先经过一个深层、具备独立并行需求的视觉Encoder,整体的训练流程变得更加简洁可控。

