InternVL3_5-8B-Flash源码精读:pixel_shuffle、Gating路由与generate_flash实现原理全解析
【免费下载链接】InternVL3_5-8B-Flash项目地址https://ai.gitcode.com/OpenGVLab/InternVL3_5-8B-Flash点击查看免费下载InternVL3_5-8B-Flash 是 OpenGVLab 开源的多模态大模型Multimodal LLM属于 InternVL3.5 系列中面向推理效率的 Flash 变体。它引入视觉分辨率路由器ViR, Visual Resolution Router对每个图像分块实时决定用 64 还是 256 个视觉 token 表示在视觉 token 数平均减少约 50% 的同时保持接近 100% 的基础模型性能。源码中三大核心机制分别是pixel_shuffle空间压缩、Gating路由决策与generate_flash推理流水线。本文不堆砌代码面向新手逐一讲清它们的实现原理。一、模型结构总览三大件与一个Token 漏斗 InternVL3_5-8B-Flash 沿用经典的 ViT – MLP – LLM 三段式架构详见 README.md 的 Model Architecture 章节组件作用关键数字ViT 视觉编码器InternViT将每个 448×448 分块编码为 1024 个视觉 tokenpatch 14×14 → 32×32 网格即 1024 个位置MLP 投影器mlp1/mlp2把视觉 token 投影到语言模型维度256-token 通路用mlp164-token 通路用mlp2LLM 语言模型Qwen3-8B基于视觉文本 embedding 生成回答隐藏维度 4096两个新手必须理解的背景知识动态分块Dynamic Tiling长边图像会被切成最多 12 个 448×448 分块并额外附加一张缩略图见 config.json 的min_dynamic_patch/max_dynamic_patch与use_thumbnail。每个分块独立走下面描述的token 漏斗。Token 漏斗 1024 → 256 → 64ViT 对每个分块输出 1024 个 tokenmodeling_intern_vit.py 的InternVisionModelInternVL3.5 基础版先压缩到256Flash 版再根据路由结果把部分分块进一步压到64。二、pixel_shuffle 精读空间换通道的三行张量重排 实现位置modeling_internvl_chat.py。pixel_shuffle本质是计算机视觉里的经典space-to-depth空间转深度操作核心思想一句话把相邻 2×2 的 token 合并成 1 个 token把省下的空间分辨率换成通道宽度——信息没有丢弃空间分辨率降了每个 token 的通道数翻倍。以scale_factor0.5为例输入为单分块特征[B, 32, 32, 1024]先按高减半、通道翻倍重排[B, 32, 16, 2048]并交换宽高两维再做一次宽减半、通道再翻倍得到[B, 16, 16, 4096]展平后即256 个 token每个 4096 维。Flash 版把压缩率叠乘scale_factor downsample_ratio ** 2 0.25同一套操作得到64 个 token每个 16384 维。两条通路对比通路scale_factor每分块输出 token单 token 通道数投影器基础通路InternVL3.50.52564096mlp1Flash 压缩通路0.256416384mlp2投影器定义在 modeling_internvl_chat.pymlp1是两层 Linear4096→4096mlp2是三层更宽的 Linear16384→8192→4096两者都把输出统一到 LLM 的 4096 维从而保证无论走哪条通路LLM 看到的 token 维度一致。 一个小细节ps_version参数控制最后是否把 H/W 换回原位。v1会输出转置图像源码中甚至有告警提示本模型 config.json 使用v2无需担心。三、Gating 路由路由器如何决定这块图要不要压缩动机来自 README.md 的 Visual Consistency Learning 章节不同图像分块的语义密度差异极大——纯色天空几乎可以极限压缩但公式、表格的文字区域一旦压缩就会明显掉信息。ViR 因此把压缩率选择建模为二分类问题类别 0压缩到 64 token高压缩率 1/16类别 1保留 256 token低压缩率 1/4路由由两个模块完成均在 modeling_internvl_chat.py① CrossAttentionPoolingL79-L132——给分块写摘要用一个可学习的 query 向量通过多层交叉注意力反复读取该分块全部 1024 个 token最终把 1024 个 token 池化成一个 1024 维的摘要向量。每个分块独立处理相当于给路由器提供了一份这块图的信息量报告。实现上的细节第 2 层起的注意力层复用同一组权重。② GatingL36-L76——输出二分类概率摘要向量先经过 4 个残差 MLP 块1024→4096→1024GELU Dropout LayerNorm充分混合再经一个 2 路 Linear softmax输出两个专家概率probs[0]是压缩到 64 token的信心分probs[1]是保留 256 token的信心分。③ 双重阈值决策在generate_flash内执行relative_threshold_value torch.quantile(gate_result[:, 0], 0.1) gate_result (gate_result[:, 0] relative_threshold_value) (gate_result[:, 0] 0.5)绝对阈值 0.5压缩概率至少要 0.5保证路由器有把握才动手相对阈值10% 分位数概率最低的后 10% 分块一律不压缩相当于给整张图留了安全垫避免极端情况把全图都压掉。两个阈值均可配置见 config.json 的flash_relative_threshold: 0.1与flash_absolute_threshold: 0.5。四、generate_flash 全流程从图像输入到 50% Token 节省 ⚡入口是 generate_flash外层 generate 读取配置里的flash_mode为true时走 Flash 分支否则走普通的generate_normal256 token 固定压缩即 extract_feature 通路。完整流水线共 5 步双份特征提取extract_feature_flashViT 先输出每分块 1024 token随后同一次前向里同时算出 64-token 与 256-token 两版特征路由器再为每个分块输出二分类概率逐分块决策按上一节的双阈值规则给每个分块打上压缩 / 保留标记句级占位符压缩compress_visual_tokens_in_sentenceprompt 中每个分块原本是 256 个连续的IMG_CONTEXT占位符由num_image_token决定L157对需要压缩的分块只保留前 64 个槽位、标记删除其余 192 个并同步修正 attention mask 的位置索引特征回填把选中通路64 或 256的特征按分块顺序写入占位符LLM 生成把压缩后的 embedding 序列交给 Qwen3-8B 做自回归生成。Token 节省的本质LLM 的 prefill 计算量与 KV cache 占用都与序列长度成正比视觉 token 减半意味着这部分开销近似减半——这正是 Flash 版在接近 100% 性能下显著提速的来源。 两个进阶点generate_flash支持传入visual_features参数直接接收外部算好的视觉特征配合 README 中的 Decoupled Vision-Language DeploymentDvDREADME.md可将 ViT/MLP/路由器部署在视觉服务器上、语言服务器只跑 LLM训练侧的forward()L294-L371则固定走 256-token 通路路由与压缩只作用于推理路径。五、关键配置与文件索引快速定位相关代码 核心参数速查config.json参数值含义flash_modetrue启用generate_flash分支flash_relative_threshold0.1路由相对阈值10% 分位数flash_absolute_threshold0.5路由绝对阈值downsample_ratio0.5基础 pixel_shuffle 压缩比例ps_versionv2保证空间维度顺序正确min_dynamic_patch/max_dynamic_patch1/12动态分块数量范围force_image_size448分块边长像素源码文件索引文件内容modeling_internvl_chat.py主模型Gating路由、CrossAttentionPooling、pixel_shuffle、generate_flashmodeling_intern_vit.pyInternViT 视觉编码器embedding、注意力、编码器层configuration_internvl_chat.py模型配置类downsample_ratio、ps_version等默认值config.json本模型实例化的全部推理参数conversation.py对话模板internvl2_5 模板README.md使用方式、ViCO 训练策略与 DvD 部署方案总结InternVL3_5-8B-Flash 的快不是靠缩水而是靠按需——pixel_shuffle提供了 256 / 64 两档无损的空间压缩手段Gating路由器基于每个分块的语义密度做出二选一路由generate_flash把两者串成一条推理流水线最终在视觉 token 减少约 50% 的情况下几乎不损失回答质量。理解了这三段源码也基本掌握了当前多模态大模型动态视觉分辨率这一方向的核心实现范式。赞分享【免费下载链接】InternVL3_5-8B-Flash项目地址https://ai.gitcode.com/OpenGVLab/InternVL3_5-8B-Flash点击查看免费下载相关推荐InternVL3_5-8B-Flash 架构解析ViT–MLP–LLM 范式、Qwen3 底座与 InternViT-300M 全解InternVL3_5 8B Flash 架构解析ViT–MLP–LLM 范式、Qwen3 底座与 InternViT 300M 全解 InternVL3_5InternVL3_5-8B-Flash推理提速秘籍DvD视觉-语言分离部署与4.05×加速原理InternVL3_5 8B Flash推理提速秘籍DvD视觉 语言分离部署与4.05×加速原理 InternVL3_5 8B Flash 是 OpenGVLInternVL3_5-8B-Flash微调实战SWIFT与XTuner多模态微调全流程指南InternVL3_5 8B Flash微调实战SWIFT与XTuner多模态微调全流程指南 InternVL3_5 8B Flash 是 InternVL3创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

AR-Android开发实战:从环境搭建到性能调优与避坑指南

AR-Android开发实战:从环境搭建到性能调优与避坑指南

简介:AR-Android 是一套面向 Android 平台的增强现实开发框架示例工程,专为希望快速构建 AR 应用的移动开发者设计。项目围绕增强现实基础、追踪技术、图像处理、3D 渲染与用户交互等核心模块展开,涵盖特征点追踪、标记识别与 SLAM 定位等实现…

2026/10/16 21:01:26 阅读更多 →
西安GogoAI健身系统定制开发,多门店数据中台搭建

西安GogoAI健身系统定制开发,多门店数据中台搭建

西安AI健身系统定制:连锁门店数据中台架构与落地实现 随着AI智能健身模式在本地连锁场馆普及,很多品牌在扩张时遇到明显的数据治理难题。单店独立的会员系统、设备采集模块、AI动作识别服务互相割裂,总部很难拿到统一的经营视图,A…

2026/10/16 21:01:26 阅读更多 →
2026年上海靠谱的阿里云企业邮箱有哪些?企业自有域名邮箱搭建

2026年上海靠谱的阿里云企业邮箱有哪些?企业自有域名邮箱搭建

企业邮箱是上海企业对外沟通、品牌形象与内部协同的重要载体,也是数据资产的汇聚点。本文围绕企业自有域名邮箱的选型与搭建展开,梳理阿里云企业邮箱的核心功能、版本差异与落地路径,并结合常见办公场景加以解析。近两年,上海不少…

2026/10/16 21:01:26 阅读更多 →

最新新闻

AI整合安全实战:从提示词注入防御到系统级硬约束

AI整合安全实战:从提示词注入防御到系统级硬约束

直接说结论:AI整合项目里,提示词工程环节的安全策略,决定了整个系统的下限。我在多个接入大型语言模型的项目里见过同一类事故——提示注入、系统提示词被撬、训练数据被套话、输出未经校验就进了业务流程。这些问题单看都不严重,…

2026/10/17 4:43:14 阅读更多 →
多智能体编排六种模式详解:从顺序链到反思循环

多智能体编排六种模式详解:从顺序链到反思循环

做多智能体应用时间久了,你会发现真正难的从来不是单个智能体怎么写,而是多个智能体怎么协作。MAF系列写到这里是第13篇,前几篇陆续讲过工具调用、记忆管理、上下文控制,这篇集中把“智能体编排”这件事拆开聊。所谓编排&#xff…

2026/10/17 4:43:14 阅读更多 →
纯JavaScript实现RGB、HSV与十六进制颜色互转及工程实践

纯JavaScript实现RGB、HSV与十六进制颜色互转及工程实践

1. 颜色换算在真实项目里到底解决什么问题前端开发做到一定年头,你一定会碰到颜色格式打架的情况。设计师在 Figma 里给你一个#3B82F6,后端接口返回的却是rgb(59, 130, 246),而某个取色器插件复制出来的是hsv(217, 76%, 96%)。三种写法描述的…

2026/10/17 4:43:14 阅读更多 →
Android端KIMI API流式输出实战:OkHttp+Kotlin Flow实现SSE响应

Android端KIMI API流式输出实战:OkHttp+Kotlin Flow实现SSE响应

简介:本资源是一套面向Android开发者的KIMI大模型API流式响应集成实践工程,适用于需要在移动端实现低延迟、渐进式AI内容输出的中高级开发者。项目完整封装了KIMI API的异步流式调用逻辑,涵盖请求构建、SSE解析、UI线程安全更新及错误重试机制…

2026/10/17 4:43:14 阅读更多 →
malloc底层原理与动态内存管理实战指南

malloc底层原理与动态内存管理实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 4:43:14 阅读更多 →
金融数据服务中台架构实战:从多源聚合到实时推送全解析

金融数据服务中台架构实战:从多源聚合到实时推送全解析

先交代下背景。我最近在负责一个代号叫financial-services的内部项目,说白了就是一套面向金融场景的数据服务中台:上游接行情源、资讯源、账户流水,下游对接移动端、Web 和量化脚本。这个项目名字看起来很简单,但真正落地的时候牵…

2026/10/17 4:42:13 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →