
【免费下载链接】InternVL3_5-4B-Flash项目地址https://ai.gitcode.com/OpenGVLab/InternVL3_5-4B-Flash点击查看免费下载InternVL3_5-4B-Flash是 InternVL3.5 系列中主打省 token的高效多模态大模型。它的核心秘密藏在两个模块里Gating门控网络和CrossAttentionPooling交叉注意力池化——二者协作让模型为每个图像块自适应地选择压缩率把视觉 token 数量最多减少 50%性能却几乎不掉分。本文带你用大白话读懂这套机制的工作原理。1. 为什么需要自适应压缩率在视觉语言模型中图片被切成若干 patch每个 patch 会生成大量视觉 token 送入语言模型。token 越多推理越慢、显存占用越大。InternVL3.5-Flash 的解决思路官方称为ViR, Visual Resolution Router见 README.md阶段token 数量处理方式ViT 编码后每个 patch 1024 个原始视觉特征轻压缩pixel shuffle 0.5256 个信息保留充分强压缩pixel shuffle 0.2564 个极度精简关键问题变成这个 patch 该走哪条路答案是由 Gating 门控来看图说话。2. 交叉注意力池化先把 1024 个 token 读成一篇文章摘要门控不可能直接消化 1024 个 token于是模型先用CrossAttentionPooling把每个 patch 的特征池化成 1 个向量。实现见 CrossAttentionPooling可以把它理解成一个可学习的提问 tokenquery_token相当于让网络自己去问这张图块里有什么4 层多头交叉注意力query 反复翻阅该 patch 的全部 1024 个 token 特征attn1~attn4每翻一轮再精炼一次变长 patch 也能处理由于动态分辨率下各 patch 的 token 数不同模块会先做 padding 并生成padding_mask保证注意力只落在真实 token 上L104-L116。最终输出一个[D]维向量——相当于这个图像块的一句话摘要。这个摘要随后被送入门控网络做判断。3. Gating 门控网络一道二选一的判断题 ✅Gating网络定义在 Gating结构不复杂但设计讲究4 个带残差连接的 MLP blockblock1~block4每个内部是 Linear→GELU→Dropout→Linear→Dropout→LayerNorm先把摘要充分加工、提纯末端一个 2 分类器Linear(hidden_size, 2) softmax输出两个概率值L57-L76。这两个概率分别对应两种专家输出概率含义对应路由probs[:, 0]高这个 patch 压缩后损失很小走强压缩 →64 tokensprobs[:, 1]高压缩会明显掉信息走轻压缩 →256 tokens一句话概括门控给每个 patch 打了个能压多狠的分。4. 推理时的判决相对阈值 绝对阈值双重把关光有概率还不够——模型希望每张图里真正被强压缩的 patch 是少数。判决逻辑在generate_flash中见 阈值判断代码relative_threshold_value torch.quantile(gate_result[:, 0], self.flash_relative_threshold) gate_result (gate_result[:, 0] relative_threshold_value) (gate_result[:, 0] self.flash_absolute_threshold)两个参数由 config.json 配置参数默认值作用flash_relative_threshold0.1相对阈值只取压缩置信度最高的 10% 的 patch控制压缩比例flash_absolute_threshold0.5绝对阈值置信度必须 ≥ 0.5防止矮子里拔将军判决结果随后在 compress_visual_tokens_in_sentence 中执行被标记强压缩的 patch 只保留前 64 个视觉 token其余 192 个直接从输入序列里删除上下文位置索引也同步修正。5. 完整数据流一览 把上面的模块串起来一次 Flash 推理的特征提取流程extract_feature_flash是这样的ViT 编码图像块 → 每个 patch 1024 个视觉 token切分重组split_and_merge按样本把特征切成 patch 列表L389-L402交叉注意力池化每个 patch 得到 1 个摘要向量Gating 门控摘要 → 二分类概率即压缩置信度双路压缩同时生成 256-token 版mlp1与 64-token 版pixel_shufflemlp2pixel_shuffle阈值判决 选路高置信 patch 用 64-token 版其余用 256-token 版拼回序列送入 LLM 生成回答。 之所以要双路都算好是因为门控的决策依赖整批 patch 的相对排名分位数必须等全部门控结果出来后统一判决。6. 想深入阅读文件导航 文件说明modeling_internvl_chat.pyGating门控网络与CrossAttentionPooling池化模块modeling_internvl_chat.pyextract_feature_flash双路压缩特征提取modeling_internvl_chat.pygenerate_flash阈值判决与 token 压缩主流程configuration_internvl_chat.py模型配置类downsample_ratio等config.jsonflash_mode与两个阈值的实际取值README.md项目介绍、ViCO 训练阶段与 ViR 设计动机小结InternVL3_5-4B-Flash 的聪明之处在于把压缩率选择变成了一个可学习的判断题交叉注意力池化负责读懂每个图像块Gating 门控负责打分双阈值判决负责控总量。三者配合让 4B 规模的小模型在保持近乎完整理解能力的同时推理成本大幅下降——这正是多模态模型走向端侧与低延迟场景的关键一步。赞分享【免费下载链接】InternVL3_5-4B-Flash项目地址https://ai.gitcode.com/OpenGVLab/InternVL3_5-4B-Flash点击查看免费下载相关推荐掌握transformers.js模型注意力机制自注意力与交叉注意力完整指南掌握transformers.js模型注意力机制自注意力与交叉注意力完整指南 transformers.js是一个在浏览器中直接运行Transformer人工智能大模型本地部署双向交叉注意力机制解析与应用双向交叉注意力机制解析与应用 双向交叉注意力Bidirectional Cross Attention是一种创新的注意力机制它能够在单步操作中同时更新源序KV Cache 压缩 128 倍的秘密DeepSeek-V4-Flash 的 Compressor 与 Indexer 稀疏注意力深度解析KV Cache 压缩 128 倍的秘密DeepSeek V4 Flash 的 Compressor 与 Indexer 稀疏注意力深度解析 DeepSeek上一篇ant-design-blazor Select 分组选择器GroupName实战指南Option Group 实现与键盘导航下一篇YouTube.js 网格视频节点 GridVideo 完全解析从 InnerTube 响应到类型安全的网格卡片数据创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考