1. 多模态注意力分布为什么值得专门写一篇纵览最近在梳理多模态理解与生成模型的技术脉络时我整理了一份内部笔记主题是注意力分布——就是模型在处理图像、文本、音频等多种模态信息时注意力权重是如何分配和演化的。这份笔记后来被同事拿去当入门资料反馈还不错所以我把它扩展成一篇更完整的记录命名叫“UniCache 1/3: 多模态理解生成模型的注意力分布纵览”。先解释一下为什么注意力分布值得单独拿出来讲。很多人在接触多模态模型时第一反应是去理解模型结构、训练损失函数、数据配比这些当然重要。但如果你真正调试过模型或者分析过生成结果异常的原因就会发现注意力分布才是最直观的诊断工具。它告诉你模型在看什么、忽略什么、何时把图像特征和文本特征对齐、何时又在模态之间发生混淆。可以说理解了注意力分布你就理解了多模态模型内部运作的一半。这篇内容适合三类读者一是刚入行、想系统理解多模态模型工作机制的算法工程师二是正在做模型调试、需要分析注意力可视化结果的研究者或开发者三是产品侧的技术负责人需要判断某个多模态方案是否靠谱、是否需要更换模型或调整输入策略。我会尽量把原理、观察方法和常见坑都讲清楚不铺垫太多理论更多是站在实操角度说话。在展开之前需要说明一点这篇是系列的第一篇聚焦“注意力分布的观察与理解”。后续两篇会分别涉及“基于注意力的缓存策略”和“多模态生成中的注意力控制与干预”本次先把基础打牢。2. 多模态注意力分布的核心观察维度2.1 模态间注意力 vs 模态内注意力多模态模型的注意力分布首先要区分两个层次模态间注意力和模态内注意力。模态间注意力指的是模型在某一层中把注意力权重分配给来自不同模态的 token比如图像 patch token 和文本 token的总体比例。模态内注意力则是同一模态内部 token 之间的相互关注程度。举个例子。一个典型的视觉-语言模型在处理“一只猫坐在红色沙发上”这句话配一张图片时模型在某个 cross-attention 层中需要决定当前正在生成的“红色”这个词应该更多关注文本中的“红色”相关上下文还是图片里沙发区域的视觉特征。如果模型过度依赖文本而忽略图像生成的描述可能与图片不符反过来如果模型过于依赖图像而忽略文本约束可能导致生成的文本与用户指令不一致。实际观察时我会采用两种方式。第一种是对所有注意力头求平均看整体趋势第二种是分头观察因为不同的注意力头可能负责不同的职责——有的头偏向模态间对齐有的头偏向模态内语义建模。这种分工现象在 ViT 时代的视觉 Transformer 里就已经被观察到过多模态模型中更加明显。在整理注意力分布的统计特征时我通常关注以下几个指标模态间注意力的平均权重占比即所有注意力头中图像 token 和文本 token 之间的注意力权重占该层总注意力的比例。模态内注意力的集中度比如文本 token 是否过度关注自身位置附近的 token图像 patch 是否过于聚焦某几个固定区域。注意力熵衡量注意力分布的均匀程度。熵值过低说明模型注意力过度集中可能产生了某种偏见熵值过高说明模型几乎在看所有位置缺乏选择性。这些指标不需要额外训练模型就能计算只要你能拿到中间层的注意力矩阵即可。实际操作中大部分开源多模态模型都提供了 hook 接口比如基于 Transformer 的模型可以注册 forward hook 来捕获注意力权重。有一点需要注意不要只观察最后一层的注意力分布因为最后一层往往已经高度抽象和最终输出的语义有直接关联但这不代表模型内部的真实行为。建议至少观察三层靠近输入端的前几层、中段层、靠近输出端的后几层这样可以看到注意力从低阶特征逐渐转向高阶语义的过程。2.2 注意力熵与模态融合质量的关联在分析多个模型和任务后我发现注意力熵是一个特别值得关注的指标尤其是在评估模态融合质量时。注意力熵的公式是H -Σ p_i · log(p_i)其中 p_i 是第 i 个 token 所获得的注意力权重。对于某个 Query 位置如果它对所有 Key 位置的注意力权重接近均匀分布熵值高说明模型没有明显偏好如果集中到少数几个位置熵值低。以图像描述生成任务为例。正常状态下生成每个词时注意力熵会维持在合理区间——模型会重点看图像中对应区域同时兼顾文本上下文。但如果训练数据存在偏差或者模态对齐没有充分学习注意力熵会出现异常一类情况是熵值过低。模型几乎只关注少量图像 patch对文本 token 的注意力趋近于零。这样生成的描述往往只描述图像中某一小块区域缺乏全局信息。典型症状就是生成结果“只见树木不见森林”比如描述一张有猫、沙发、茶几的客厅图片时只输出“一只猫”。另一类是熵值过高。模型对图像和文本几乎“一视同仁”注意力平铺在所有 token 上结果生成结果语义发散甚至出现幻觉内容——模型描述的细节在图片中根本不存在。我曾经在一次跨模态推理测试中遇到过这种情况模型把纯文本 prompt 中的某个语义错误地“投射”到了图像输出上检查注意力熵后发现文本 token 和图像 token 的权重几乎一样模型根本没有形成有效的分层注意力结构。由此引出一个实操建议在评估多模态模型时建议把注意力熵作为辅助指标记录下来和准确率、BLEU、CLIP-Score 等任务指标放在一起看。因为任务指标只能告诉你“结果对不对”注意力熵能告诉你“过程稳不稳”。两者结合更容易定位问题的根源。2.3 不同任务中注意力分布的典型形态多模态模型在不同任务下注意力分布形态差异很大。这里我整理了四类典型任务下的注意力分布特征供你对照参考。第一类是图文匹配/检索任务。这类任务中模型通常使用 CLIP 风格的对比学习方法注意力分布呈现“关键区域聚焦”的特征。模型会重点关注图像中与文本描述语义强相关的局部区域比如文本提到“红色跑车”时注意力集中到图像中车身区域。模态间注意力占比相对均衡文本和图像 token 之间呈现出清晰的对应关系。第二类是图像描述生成任务。生成式模型在输出每个词时注意力分布会动态变化。生成名词短语时注意力集中在图像对应物体区域生成动词时注意力可能分散到动作发生的空间区域生成介词短语时注意力可能扩展到大场景。整体上注意力分布随生成进程逐步漂移呈现一种“扫描聚焦”的模式。第三类是视觉问答任务。注意力分布与问题类型高度相关。事实性问答“图片里有几个人”的注意力集中在人形区域推理类问答“如果图中的杯子掉在地上会怎样”的注意力会在物体和周围环境之间反复切换甚至可以观察到模型在多个物体之间进行联合推理的注意力轨迹。第四类是文生图任务。这种任务中模型通常在文本 token 和图像 token 之间做 cross-attention。注意力分布的关键特征是每个图像 patch 应该由对应的文本语义片段控制。比如生成“一只戴着帽子的狗”时“帽子”相关文本应该主要控制图像中帽子区域所在的 patch 生成。如果文本 token 对不相干图像 patch 的注意力权重过高就容易出现语义绑定错误——比如帽子不是戴在狗头上而是飘在旁边或者狗身体上出现了帽子的纹理。对照这些典型形态可以快速判断一个模型的注意力分布是否健康。不过要提醒一句不同模型架构的层数、注意力头数、训练任务设计不同注意力分布的具体数值区间会有差异不建议跨模型直接比较绝对数值更合理的方式是观察同模型在不同输入下的相对变化。3. 多模态模型中的注意力机制架构三种主流方案3.1 融合注意力输入即拼接融合注意力是目前最简单直接的多模态注意力方案。操作思路是把图像 token、文本 token 拼接成一个序列输入到统一的 Transformer 层中进行自注意力计算。图像和文本的区分只靠位置编码或模态类型 embedding。这种方案的代表包括早期的 ViLT、以及一些统一 Transformer 架构的模型。它的优点是结构简单容易实现且不需要设计复杂的跨模态交互模块。缺点是图像 token 数量往往远大于文本 token比如一张图切成 196 个 patch文本可能只有几十个 token在自注意力计算中图像 token 会主导注意力权重分配文本信息容易被稀释。观察这类模型的注意力分布时一个常见现象是图像 token 之间的自注意力权重非常高文本 token 虽然参与了整体注意力计算但实际对图像表征的影响很有限。这在某种程度上解释了为什么纯粹的拼接式融合往往在复杂视觉推理任务中表现不如专用的跨模态方案——不是模型容量不够而是注意力分布天然不平衡。如果你的模型采用了融合注意力方案在分析注意力分布时建议专门统计图像 token 与文本 token 之间的跨模态注意力权重占比。如果这个比例低于某个阈值比如总注意力的 15%基本可以判断文本信息没有充分注入视觉表征。3.2 交叉注意力专用跨模态交互层交叉注意力是更精细的方案。在这种架构中文本分支和图像分支各自独立编码在特定层中通过 cross-attention 进行交互。最常见的形态是图像特征作为 Key/Value文本特征作为 Query文本在生成过程中“查询”图像中的信息。这种方式的好处是保持模态内编码的独立性避免单模态特征被另一种模态的信息干扰同时通过专门的交互层实现受控的跨模态信息流动。目前主流的生成式多模态模型大多采用这种思路比如基于 LLaMA 架构扩展视觉语言模型时通常会在文本自注意力层之间插入 cross-attention 层让图像信息注入文本生成过程。从注意力分布的角度看交叉注意力层的注意力矩阵具有更清晰的结构。在文本生成的第 t 步每个文本 token 都会计算对所有图像 token 的注意力权重。这些权重往往呈现出“稀疏聚焦”特征——文本中与图像内容强相关的 token对图像局部区域的注意力显著高于其他 token。观察交叉注意力分布时我最推荐做的是“词汇-区域映射分析”把文本生成结果中每个 token 对应的注意力权重最高的图像 patch 标出来和图像实际内容做对比。这样可以直观地发现模型是否把“狗”这个词对应到了图像中的狗区域还是错误地对到了背景区域。这类分析在模型诊断中的价值非常大特别适合用来定位语义绑定错误。3.3 混合路由动态选择交互路径第三种方案是混合路由机制这也是一些前沿模型尝试的方向。核心思路是不是所有输入都需要深度跨模态交互模型可以动态决定在哪些层、哪些 token 上执行跨模态注意力。比如某些 token 本身就是纯文本性的逻辑词与图像语义关联较弱不需要消耗大量注意力去查询图像信息而某些 token 与图像内容强相关需要深度交互。混合路由方案通过一个轻量级 router 网络为每个 token 计算路由概率决定它是否进入 cross-attention 层。这类模型在注意力分布观测中展现出更有趣的特征注意力分布不再是固定的模态间比例而是随输入内容动态变化。在纯文本输入的场景下模型可以跳过大部分视觉交互注意力全部保持在文本模态内部在视觉推理场景下模型又会自动增加对图像 token 的注意力权重。从工程视角看混合路由方案还有附带优势计算效率更高。因为不是所有 token 都参与跨模态注意力可以显著减少计算量。如果你在部署多模态模型时对延迟敏感这类架构值得关注。目前在开源生态中纯混合路由的多模态模型还不算主流更多是基于交叉注意力架构做局部改进。但我觉得这是值得跟踪的方向因为它的注意力分布更接近人类认知的“按需注意”模式。4. 注意力分布观测的实操方法4.1 在推理阶段捕获注意力矩阵观测注意力分布首要任务是拿到注意力矩阵。这里我以 Hugging Face Transformers 生态为例因为大多数开源多模态模型都在这个框架内。最简单的做法是设置output_attentionsTrue。以模型调用为例import torch from transformers import AutoProcessor, AutoModelForCausalLM from PIL import Image model_id your-multimodal-model # 替换为你实际使用的模型标识 processor AutoProcessor.from_pretrained(model_id) model AutoModelForCausalLM.from_pretrained(model_id, output_attentionsTrue) model.eval() text 描述这张图片的内容。 image Image.open(example.jpg) inputs processor(texttext, imagesimage, return_tensorspt) with torch.no_grad(): outputs model(**inputs, output_attentionsTrue) # 查看 attention 输出结构 attentions outputs.attentions print(f共 {len(attentions)} 层注意力输出)调用之后outputs.attentions是一个元组每个元素对应一层所有注意力头的矩阵。注意output_attentionsTrue并不保证所有模型都返回注意力矩阵有的模型在底层实现中并没有完整保留注意力权重。实测下来大部分基于 Llama 架构或 MPT 架构的模型都能输出但少数做了算子融合优化的模型可能拿不到。如果你使用的模型不直接支持output_attentions另一个通用做法是注册 forward hookattention_hooks [] def capture_attention(module, input, output): # 根据模型结构提取注意力矩阵这里以输出中直接包含 attention 权重为准 if hasattr(output, attn_weights): attention_hooks.append(output.attn_weights.detach().cpu()) # 在目标注意力模块上注册 hook # target_module.register_forward_hook(capture_attention) model(**inputs)这个方案更灵活但需要你了解模型内部模块结构。建议先打印模型结构定位所有自注意力模块的位置再统一注册 hook。4.2 绘制注意力热图并解读关键模式拿到注意力矩阵后如何可视化是关键。我最常用的工具是 matplotlib 的 imshow直接绘制灰度或彩色热图。以一个 cross-attention 层的可视化为例import matplotlib.pyplot as plt import numpy as np # 以某一层第一个注意力头为例 layer_idx 5 head_idx 0 attn_matrix attentions[layer_idx][0, head_idx].numpy() # shape: [seq_len, seq_len] plt.figure(figsize(8, 6)) plt.imshow(attn_matrix, cmapviridis, aspectauto) plt.colorbar(labelAttention Weight) plt.xlabel(Key Position) plt.ylabel(Query Position) plt.title(fLayer {layer_idx} Head {head_idx} Attention Map) plt.show()解读热图时有几个模式需要重点关注带状分布注意力沿对角线集中说明 token 主要关注自身及其近邻位置这通常是局部语义建模的正常表现。但在多模态模型中如果文本 token 的注意力全部落入带状分布说明跨模态信息没有被有效利用。列状分布某一列特别亮说明很多 Query token 都关注同一个 Key token。如果这个 Key 是某个图像 patch可能意味着这个 patch 是全局语义核心比如图像主体物体但如果这个 patch 是背景区域则可能是注意力偏差。块状分布注意力矩阵中出现明显的矩形亮块通常意味着某段连续 token 之间形成了强相关。在多模态模型中如果一块连续文本 token 都对同一块图像区域集中注意力说明该区域对应于一个完整的语义单元。点状分布零星的高亮点说明某些 Query 位置对特定 Key 位置有孤立但强力的关注。这种模式适合做细粒度对齐分析。可视化时建议同时画三幅图原始注意力热图、按模态分块的注意力热图图像 block 和文本 block 分开展示、以及注意力熵曲线。三幅图对照起来看信息密度远高于单图。4.3 聚合统计模态间注意力占比与头部职责分析除了可视化单层单头还需要做聚合统计才能得到全局判断。模态间注意力占比的计算方式是把注意力矩阵划分为四个子块——图像到图像、文本到文本、图像到文本、文本到图像——分别统计权重之和再除以总权重。具体切分位置需要根据序列中的图像 token 和文本 token 排列顺序决定。num_image_tokens 196 # 根据实际图像 patch 数量调整 num_text_tokens inputs[input_ids].shape[1] # 文本 token 数量 # 假设序列前 num_image_tokens 是图像 token后面是文本 token attn_full attentions[layer_idx][0, head_idx].numpy() image_block attn_full[:num_image_tokens, :num_image_tokens] text_block attn_full[num_image_tokens:, num_image_tokens:] cross_img_to_text attn_full[:num_image_tokens, num_image_tokens:] cross_text_to_img attn_full[num_image_tokens:, :num_image_tokens] total attn_full.sum() print(f图像到图像: {image_block.sum() / total:.3f}) print(f文本到文本: {text_block.sum() / total:.3f}) print(f图像到文本: {cross_img_to_text.sum() / total:.3f}) print(f文本到图像: {cross_text_to_img.sum() / total:.3f})头部职责分析则要单独看每个 head 的模态间注意力占比分布。我常用 boxplot 把所有 head 的比例画出来观察是否存在明显的分工。如果大部分 head 的占比都非常接近说明注意力分布没有形成分工差异模型的跨模态能力可能没被充分利用。反之如果 head 之间分布很分散——有的偏图像、有的偏文本、有的混合——说明模型在学习多种交互策略融合质量往往更好。5. 典型模型案例分析三张注意力分布图谱5.1 视觉语言理解模型从粗粒度到细粒度的注意力演化先看一个典型的视觉语言理解模型这里用模拟项目 X 代称。该模型基于交叉注意力架构在 24 层 Transformer 中每隔两层插入一个 cross-attention 层。输入是一张分辨率为 336x336 的图片切成 576 个 patch文本最多 512 个 token。我在测试中使用的是一条包含空间关系的指令“图片中左边的小狗是什么颜色右边的球是什么颜色”从各层注意力分布来看呈现清晰的演化轨迹。低层第 2-4 层的模态间注意力占比约 35%注意力分布相对均匀没有对特定区域形成强烈聚焦。这是因为低层主要负责基础视觉特征和文本语法结构的抽取还没有进入语义对齐阶段。中段层第 6-12 层开始出现明显的注意力聚焦。观察“左边”这个词的注意力分布发现它更加关注图像左半部分的物体区域。与此同时“小狗”这个词对图像中狗形状区域的注意力权重显著提升。这种语义-区域对应关系在中段层逐步建立。高层第 20 层附近的注意力分布呈现一种“语义抽取完成”的特征。图像 token 的注意力开始回收到核心语义对象上背景区域的注意力权重下降文本侧问题中“颜色”相关 token 的注意力集中到物体区域。这个案例说明了多模态理解模型中一个重要的注意力演化规律低层分散、中层聚焦、高层精炼。如果你在某个模型的注意力分布中观察不到这种演化趋势可能说明训练不充分或者模型容量不足以完成细粒度对齐。5.2 文生图模型文本控制图像区域生成的注意力核对文生图模型的注意力分布观察路径有所不同。以某个扩散模型的 cross-attention 层为例模型在生成图像的每个阶段都会执行文本条件注入注意力分布决定了文本 token 对图像 patch 的控制范围。我生成了一张合成测试图提示词是“一只白色的猫坐在蓝色的沙发上旁边有一盆绿色植物。”提取第 40 步去噪时的 cross-attention 矩阵发现“猫”这个词的注意力集中在图像中心偏下的区域该区域在最终生成图中确实是猫的主体“沙发”的注意力集中在猫下方的大片区域“绿色植物”的注意力则分布在图像左侧边缘区域。但进一步观察发现一个有意思的现象“猫”这个词对沙发区域的注意力也有一定权重约 18%这可能是因为在生成过程中猫和沙发的空间关系需要在特征层面耦合才不至于生成出脱离空间的物体。这种“语义渗透”是生成模型的常见行为不是错误。真正的问题案例是当提示词中有多个语义近似物体时注意力分布容易出现混淆。比如“红色的苹果和红色的气球”由于两个物体的文本描述高度相似它们的注意力控制区域会出现重叠最终图像中可能出现“苹果形状的气球”或“气球质感的苹果”。通过观察注意力分布你可以在生成结果恶化前发现问题从而调整提示词策略——比如把两个物体分开描述、增加空间位置限定词或者降低 CFGClassifier-Free Guidance权重。5.3 统一多模态模型观察中的模态竞争与抑制现象最后一类是统一多模态模型即一个模型同时处理理解、生成、编辑等多项任务。这类模型在注意力分布上的表现更加复杂经常出现模态竞争现象。我在测试一个统一模型时发现当任务从“描述图片”切换到“根据图片回答问题”时注意力分布在跨模态和单模态之间会发生明显摆动。描述任务中文本 token 的图像注意力占比稳定在 40% 左右切换到问答任务后这个比例升高到接近 60%并且注意到某些文本 token 对图像 token 的注意力权重出现了“抑制”现象——如果前一个 token 已经充分吸收了图像信息后一个 token 的跨模态注意力会自动降低。这种模态竞争和抑制机制实际上是一种隐式的信息流控制。模型在内部学会了“既然前面的信息已经包含了图像语义后面就不必重复关注图像”。这种机制在长文本生成中尤其明显但副作用是如果控制不当后续生成可能会逐渐偏离图像事实产生幻觉。因此在分析和调试统一多模态模型时我特别建议观察生成不同阶段早期、中期、后期的模态间注意力占比变化曲线。如果后期占比骤降且生成内容出现事实漂移可以在解码阶段引入注意力再归一化或惩罚项来干预。这个方向也是我系列后续会深入展开的主题。6. 实操中的高频问题和排查思路6.1 拿不到注意力矩阵或输出为空这可能是最常遇到的问题。检查以下几点模型配置文件是否设置了output_attentionsTrue。很多模型的 config.json 中默认是False即使推理时传参也可能被覆盖。模型是否在 torch.compile 或算子融合模式下运行。开启这些加速选项后部分注意力算子可能被融合进其他计算块导致注意力权重无法单独导出。解决方法是关闭编译模式或用原生 eager 模式重新跑一遍。是否使用了量化版本。Int8 或 FP8 量化可能修改了注意力算子的实现方式。如果业务上必须用量化模型建议用同一模型的无量化版本观测注意力分布结果基本可以迁移参考。6.2 注意力热图过于均匀信息量低出现这种情况注意力熵接近最大值模型几乎对所有位置一视同仁。常见原因有三类输入与模型训练分布差异大。比如模型是在自然图像上训练的你却输入了大量文档截图类图片视觉 patch 的语义区分度低模型无法有效聚焦。注意力头失效。某些头在训练中没有学到差异性。序列长度过短。当输入 token 数很少时注意力分布自然趋于均匀。为了获得有效观察建议保持较长的输入上下文。处理这类问题时我会先用简单的“基线输入”验证模型是否正常给它一个语义聚焦明显的输入比如纯色背景上一只狗观察注意力是否聚焦到目标区域。如果基线正常、实际任务不正常再往输入复杂度和模态差异方向排查。6.3 通过注意力分布定位“模态忽视”问题模态忽视是指模型过度关注某一种模态而忽略另一种。这是多模态模型最常见的失败模式之一。定位步骤先从整体统计入手计算所有层的模态间注意力占比如果某些层中图像到文本或文本到图像的占比低于 5%基本说明跨模态信息流被截断。然后定位截断点从低层到高层逐层检查找到占比突然下降的那个层。截断点通常对应某个残差连接或门控机制中的异常行为。再用具体样例验证设计一个需要强烈跨模态推理的测试用例比如进入一个纯文本无法回答、必须看图像才能回答的问题。如果模型在该问题上的表现差且注意力分布显示跨模态占比很低就可以确认模态忽视的存在。这里有个补充技巧不要只看平均数据要关注“最低分样例”。平均占比正常不代表每个样例都正常某些特定输入可能触发极端的模态忽视。我一直保留一个由 100 个“困难跨模态样例”组成的评测集每轮模型迭代后都会专门检查这些样例的注意力分布效果比只看任务指标敏感得多。6.4 可视化工具和效率优化建议如果你需要经常和大规模注意力矩阵打交道每次都导出全部矩阵非常浪费存储和算力。我的做法是分层抽样只保存每 4 层中特定层的注意力矩阵并且按 head 聚合比如只保留所有 head 的平均矩阵和方差矩阵而不是保存所有 head 的完整矩阵。存储方面建议直接保存为 numpy 压缩文件而不是逐层打印为图像。一次推理可能产生几十个层、几十个头、上万个 token 的注意力矩阵全部转图为 PNG 既不必要也慢。正确做法是先落盘原始矩阵再按需生成分析图。如果项目组有多个成员都需要看注意力结果可以搭一个简单的内部 notebook定义好统一的分析函数输入模型输出目录即可一键生成热点图、熵曲线、模态占比柱状图。这个工作看起来琐碎但一次投入能省下后面大量重复劳动。7. 从我实测中总结的几条经验最后分享几条我在反复观测注意力分布过程中形成的心得不一定适用于所有场景但大概率能帮你少走一些弯路。第一不要只看一层或一个头。注意力分布是一个整体系统行为必须看多层、多头、多任务下的相对变化。单独看某一层的注意力热图很容易得出错误结论。第二把注意力分布当作“过程指标”不要当作“结果指标”。即使注意力分布很漂亮也不代表最终生成结果一定正确反过来也一样。它的价值在于定位问题、验证假设而非直接度量模型能力。第三所有观察到的注意力特征都要和任务表现挂钩。只有当注意力分布异常与任务表现异常同时出现时才有意义。孤立地讨论“注意力这不合理”往往只是徒增焦虑。第四在评估不同模型的注意力分布时最好固定同一组输入样例。不同的输入会触发不同的注意力模式跨模型直接比较数值偏差很大。我在同事之间推广的做法是建立一个标准样例集包含 20 组固定样本覆盖不同模态组合、不同难度、不同任务类型。所有模型的注意力分析都在这组样本上进行结果才具有可比性。这个系列的第一篇就写到这里。注意力分布作为理解多模态模型内部行为的一扇窗口值得花时间掌握。后续我会继续更新 UniCache 系列的另外两篇一篇聚焦基于注意力分布特性做缓存优化讨论如何在推理阶段减少重复注意力计算另一篇讲生成阶段的注意力控制与干预涉及如何通过调整注意力分配来提升生成可控性。有实测结果后我会及时更新。