在“问一问”这类多图多模态问答场景中,系统需要从多篇图文笔记里提取关键信息,并持续生成准确、连贯的答案。面对多图输入带来的视觉令牌膨胀以及 MoE Decode 阶段的专家计算开销,我们尝试从 Prefill 与 Decode 两端协同优化:利用动态视觉令牌压缩减少冗余视觉输入,通过 SERE 专家重路由、关键专家保护与高性能内核,降低 Decode 阶段的专家计算和权重搬运。在效果基本持平的前提下,30 图样本的 TTFT 下降了 13%,实际业务多图负载的 TPOT 则下降了 16.5%。下面,将详细拆解这套方案,从算法设计、工程落地到 Bad Case 治理的完整实践。


1. 背景与挑战
1.1 多模态大模型推理流程
“问一问”是小红书面向搜索与提问场景的智能回答能力:系统结合用户问题与站内已有笔记,自动提炼多篇内容及图片中的关键点,生成简洁、可读的答案。此类请求通常包含多篇笔记、多张图片和较长上下文,对首令牌延迟与连续生成速度均提出较高要求。多模态大模型的在线推理通常分为 Prefill 与 Decode 两个阶段:Prefill 一次性处理文本和视觉输入,完成上下文编码;Decode 则基于已有上下文逐令牌生成结果。随着视觉令牌与 MoE 专家规模的增长,两阶段的性能瓶颈会逐渐分化,需要分别优化。
1.2 PD 分离架构与核心指标
TTFT:主要受输入长度和 Prefill 计算影响
TPOT:主要受 Decode 阶段访存与专家计算影响

如图所示,Prefill 在长序列下更偏计算密集:批内激活专家数从 8 增至 128,延迟仅变化 2.9%;Decode 则更受权重搬运影响,激活专家数从 8 增至 64 时,MoE 延迟会放大 3.7 倍。因此,我们分别采用动态视觉令牌压缩与 SERE 专家重路由。两项优化均不改变模型权重,并且适配 PD 分离部署。

2. 问题分析:冗余从何而来
2.1 视觉令牌冗余
图片经过视觉编码器和合并器后会被编码为大量视觉令牌。一张高分辨率图片可能需要成千上万个令牌表示;在高分辨率、多图场景下,视觉序列会显著拉长,成为 TTFT 的核心计算瓶颈。
ViT 深层特征已经在少量令牌上聚合了主要信息,而解码器对大量视觉令牌的关注度较低,可据此压缩冗余令牌、提高有效信息密度。


实验进一步发现,不同图片和任务对压缩的敏感程度不同:OCR、表格和文档类图片包含更多细节,不能采用固定比例裁剪,而需要根据图片信息密度动态分配令牌预算。


2.2 MoE 专家激活冗余
MoE 的稀疏性是按令牌计算的,但线上服务是按批次执行的。请求越多,不同令牌命中的专家并集越大:在 Qwen3-30B-A3B 中,批大小从 1 增至 128 时,单层平均激活专家数从 8 增至 93.4。
Decode 单步计算量小、权重搬运占主导,属于典型的存储受限阶段。批内激活专家越多,融合 MoE 需要读取的权重越多,TPOT 随之显著上升。
核心矛盾不是单个令牌的 Top-K,而是批次内专家并集膨胀。直接缩小 Top-K 虽然更快,却会破坏模型能力,因此需要利用专家相似性做动态、可回退的重路由。



3. 优化一:动态视觉令牌压缩
3.1 VisionZip 算法原理
VisionZip 的核心观察是:视觉编码器深层特征中,少量主导令牌已经聚合了主要图像信息。算法基于注意力分数识别这些关键信息令牌,保留高价值视觉内容,并裁剪冗余视觉令牌。压缩发生在进入大语言模型之前,因此可以从 Prefill 起点缩短序列长度,直接降低 TTFT。
多图场景下,不同图片的信息密度不同,固定比例裁剪容易误伤细节密集图片。通过实验,将多张图片的令牌放在同一重要性空间中竞争,发现 OCR、文档、表格等信息密度更高的图片自然获得更多令牌预算。既压缩整体视觉序列,也保留了关键图片中的细节信息。

3.2 工程落地
进一步将 VisionZip 从论文方法转化为可部署的推理优化能力,并在 vLLM 中完成了 Qwen2.5-VL、Qwen3-VL 和 Qwen3.5 的动态视觉令牌剪枝适配。
在视觉特征进入大语言模型前,从 ViT 指定层提取注意力统计信息,以每个视觉令牌接收到的平均注意力衡量其信息聚合能力。与逐图片固定比例裁剪不同,同一请求内所有图片的视觉令牌会进入统一候选池,在全局预算下共同参与令牌预算分配:内容复杂、信息密度更高的图片自动获得更多令牌配额,内容简单或信息重复的图片则被更激进地压缩,从而在有限上下文中保留更多有效视觉信息。
在线执行阶段,方案复用 FlashAttention 已有的 Softmax LSE,通过定制 Triton 内核分块恢复局部注意力概率,并直接完成列方向重要性归约。整个过程无需生成完整注意力矩阵,局部注意力块仅驻留于片上存储,最终只输出每个令牌的重要度分数,有效减少中间张量和显存读写开销。
同时,对 vLLM 中的多模态序列管理与位置编码逻辑进行了适配,同步更新多模态输入长度、图片边界、原始空间索引以及 mRoPE 位置编码,使压缩后的视觉序列能够无缝接入原有 Prefill、KV Cache 和 Decode 链路。
3.3 效果与收益
在 Qwen3-VL-32B 的 30 图样本上,裁剪 40% 视觉令牌时,TTFT 从 687 ms 降至 601 ms,下降 13%,多项业务效果指标基本无损。

在多图评测集 RAG-IGBench 上,保留 70% 和 60% 视觉令牌时,综合得分分别为 38.20% 和 37.48%,与基线的 37.61% 基本持平。保留 50% 时综合得分降至 29.06%,说明高压缩率会影响细节理解和跨图对齐。

因此,增加了多图场景下令牌预算竞争实验,混合 1k OCRBench 和 1k CCBench。发现 OCR 类细节敏感图片信息密度更高,在统一 top-k 竞争中会获得更多令牌,OCRBench 图片保留率平均比 CCBench 高 13.6%。


案例示例:


4. 优化二:SERE 动态专家重路由
4.1 算法原理
SERE(基于相似性的专家重路由)不改模型权重、不重新训练,而是在 Decode 阶段按层、按批次动态重排专家路由。它先用少量通用数据离线计算层内专家的功能相似度,再在运行时识别可复用的专家计算。
每一层先汇总当前批次内所有令牌的 Top-K′ 主专家,形成共享候选集合;其余 Top-K 次级专家从整个批次的主专家中寻找最相似者,而不是只回到本令牌的主专家,从而真正缩小批内激活专家并集。
当次级专家与主专家的相似度超过阈值时,将其令牌重路由到最相似的主专家;相似度不足的关键专家仍按原路径计算。路由器权重保持不变,Prefill 也维持原始 Top-K。

4.2 工程落地
离线校准:使用少量通用文本采集各层专家激活,以 Frobenius 相似度生成逐层矩阵。矩阵只需计算一次,不依赖下游任务标签,也不需要重新训练模型。
在线执行:在推理框架中加入高性能 CUDA 重路由算子,一次完成批次主专家汇总、最相似专家查找和保护位判断,并直接衔接融合 MoE,避免 Python/CUDA 往返和额外排序开销。
关键专家保护:以逐层 0/1 矩阵标记不可替代专家。算子只阻止“被保护的源专家”发生重路由,不改变其他专家的候选集合,也不会把其他专家吸附到被保护专家;CUDA Graph、PD 分离和原始部署参数均保持不变。
4.3 效果与收益
业务速度收益:在实际业务模型的多图负载上,以 1000 个请求、相同 QPS 统计,TPOT 从 8.5 ms 降至 7.1 ms,下降 16.5%。
效果验证:以下展示内部业务评测、公开模型效果保留,以及不同 QPS 下的加速结果。
内部业务评测表:在实际业务模型和内部评测数据集上,测试了输出幻觉、内容理解、大模型安全、输出格式和结构化内容生成等任务。加入 SERE K=2 与关键专家保护后,各类聚合指标整体与基线持平,说明端到端 TPOT 收益没有以业务效果回退为代价。

公开评测表:使用公开 Qwen3-30B-A3B 和 OpenCompass 公开数据集验证性能保留。原始 Top-8 模型平均准确率为 82.24;SERE K=2(ρ=0.5)达到 80.37,保留 97.7% 的原始效果,同时 TPOT 从 44.40 ms 降至 32.82 ms。直接固定 Top-2 的平均准确率仅 14.30,说明收益来自相似性引导的动态重路由,而不是简单少算专家。

在公开模型和数据集上,对比了不同 QPS 与 Top-K 下的批处理推理延迟。以 QPS=16 为例,CUDA 版 SERE 在 K=2 时将延迟从基线的 44.4 ms 降至 32.8 ms,约 1.4× 加速;K=1 时降至 28.0 ms,约 1.6× 加速。随着 QPS 接近服务饱和区,加速比有所收敛,说明该方法的主要收益来自 Decode 阶段减少专家权重搬运,而不是提升服务的饱和容量上限。

内核优化:初版重路由链路需要分步完成批内主专家汇总、相似专家查找和路由更新。将这些步骤融合到单个 CUDA 内核中,以 warp 协作完成候选专家扫描与规约;相似度矩阵和逐层 0/1 保护矩阵采用同形状连续布局,减少索引与访存开销;运行时假设保护矩阵始终存在,仅在源专家准备重路由时执行一次保护位判断,并移除额外排序、宿主同步、空指针检查和双路径分支。微基准中,优化后的重路由算子相对初版提升约 4.1×;该数字是算子级加速,端到端业务 TPOT 收益为 16.5%。

5. 效果评测与 Bad Case 治理
5.1 统一评测体系
文本内容:Rouge-1、编辑距离
叙事顺序:Kendall 分数
图文一致性:对齐分数、CLIP 分数
综合效果:综合得分
5.2 视觉令牌压缩边界
在 InfoVQA、复杂 OCR 和结构化表格等细节敏感任务中,高比例视觉令牌压缩会暴露少量效果回归。分析发现问题主要来自细粒度文字、数字和局部区域被过度裁剪:模型仍能理解图像主体,但在字段级内容、表格单元格和跨图细节对齐上更容易丢失信息。
问题不在通用感知能力:DocVQA、MMBench 等任务在中低压缩率下整体稳定,退化主要集中在细节密度高、需要精确读取的输入。因此,默认采用裁剪 30%–40% 的稳健档位,对 InfoVQA、复杂 OCR、表格生成等场景降低压缩率。
5.3 专家重路由 Bad Case 修复
在结构化表格生成中,原始 SERE K=2 的少量回归主要发生在 Decode 后段:Top-8 尾部专家被逐层重路由后,微小偏差累积为字段或数字扩写。简单提高 K 或全局阈值会牺牲加速收益,因此基于完整业务样本构建逐层关键专家 0/1 保护矩阵;内核仅保留受保护专家的原始路由,其余专家继续按 SERE 重路由。每层保护 16 个关键专家后,指标由 80.5% 恢复至 83.9%,接近基线的 84.9%,额外 TPOT 约为 0.1 ms。

6. 总结与展望
6.1 阶段性收益
视觉令牌压缩优化 TTFT:在 Qwen3-VL-32B 的 30 图样本上,裁剪 40% 视觉令牌时,TTFT 从 687 ms 降至 601 ms,下降 13%,多项业务效果指标基本无损。
动态专家重路由优化 TPOT:SERE 在 Decode 阶段将相似的次级专家重路由到批次内已激活的主专家,减少专家权重搬运。公开 Qwen3-30B-A3B 上,保守 K=2 将 TPOT 从 44.4 ms 降至 32.8 ms(降低 26.1%,约 1.35×);业务多图负载在 1000 请求、相同 QPS 口径下由 8.5 ms 降至 7.1 ms(降低 16.5%)。
效果侧覆盖输出幻觉、内容理解、大模型安全、输出格式和结构化内容生成等任务,聚合指标整体与基线持平;关键专家保护仅增加约 0.1 ms TPOT。
6.2 后续方向
根据输入动态选择视觉令牌压缩率
根据生成状态动态调整专家重路由强度
联合优化 Prefill、KV Cache 传输和 Decode
推广至更多多模态模型和业务场景

