InternVL2-Pretrain-Models的Pixel Shuffle与mlp1投影器:图像特征如何压缩成LLM的词汇
【免费下载链接】InternVL2-Pretrain-Models项目地址https://ai.gitcode.com/OpenGVLab/InternVL2-Pretrain-Models点击查看免费下载InternVL2-Pretrain-Models 是 InternVL 2.0 多模态大语言模型 Stage-1 阶段的多模态预训练模型仓库提供从 InternVL2-1B 到 Llama3-76B 共 7 个规格的预训练权重。这篇文章带你拆解其中最关键的两个组件Pixel Shuffle 空间重排与mlp1 投影器看看一张图片的像素特征是如何一步步压缩成 LLM 能读懂的词汇向量的。一、为什么图像特征必须先压缩多模态模型的基本思路是让 ViT 视觉编码器看图再把图像特征塞进语言模型的输入序列。但直接塞会有个尴尬的问题——token 太多。InternVL2 系列把图片统一缩放到 448×448用 14×14 的 patch 切块一张图会切出 32×32 1024 个 patch token。而且 InternVL2 支持动态分辨率一张大图最多可切成 12 个 patchmax_dynamic_patch: 12也就是 12288 个视觉 token。对 LLM 来说注意力计算量随序列长度平方增长。如果把 1 万多个视觉 token 原样喂给 LLM推理成本会失控。InternVL2 的解法分两步走Pixel Shuffle把 2×2 相邻的 4 个空间 token 合并成 1 个token 数降为 1/4细节信息搬进通道维度而不是丢弃mlp1 投影把视觉隐层维度翻译成 LLM 的隐层维度。二、Pixel Shuffle一次纯重排1024 变 256Pixel Shuffle 的实现非常轻量——它在 modeling_internvl_chat.py 的pixel_shuffle方法中不引入任何可学习参数只做张量形状的重组reshape permute输入ViT 输出的特征网格以 1B 为例是 32×32×1024按downsample_ratio 0.5重排纵向每 2 行并成 1 行横向每 2 列并成 1 列输出16×16 的网格通道数变为原来的 4 倍1024 → 4096可以把它想象成4 宫格拼图每个输出 token 不再只代表 1 个 patch而是打包了 2×2 邻域共 4 个 patch 的完整特征。空间分辨率减半但局部细节没有丢失只是从位置挪到了通道里。以 InternVL2-1BViT 隐层 1024、LLM 隐层 896为例整个过程是这样的阶段空间网格通道维度token 数ViT 原始输出32×3210241024Pixel Shuffle 之后16×164096256mlp1 投影之后16×16896256一个容易踩坑的细节pixel_shuffle支持两个版本modeling_internvl_chat.py。ps_versionv1重排后忘记把高、宽维度换回来会导致图像特征转置上下左右错位v2修复了这个问题。本仓库所有模型的 config.json 里都是ps_version: v2。三、mlp1 投影器ViT 与 LLM 之间的翻译官重排之后通道维度变成vit_hidden × 4但它仍然属于视觉空间LLM 看不懂。mlp1就是那座桥定义在 modeling_internvl_chat.pyLayerNorm先对 4 倍通道维做归一化稳定数值分布Linear把vit_hidden × 4映射到 LLM 的llm_hidden_sizeGELU非线性激活Linear在 LLM 维度内再变换一次这其实是多模态社区经典的两层 MLP projector早期 LLaVA 同款结构特点是参数量小、表达能力够用。各规格模型的维度换算一览数据来自各目录下的 config.json模型ViT 隐层Shuffle 后输入LLM 隐层输出InternVL2-1B10244096896InternVL2-2B102440962048InternVL2-4B102440963072InternVL2-8B102440964096InternVL2-26B3200128006144InternVL2-40B3200128007168Llama3-76B3200128008192 注意小模型1B/2B/4B/8B用的是 InternViT-300M隐层 1024大模型26B 及以上用 InternViT-6B隐层 3200。mlp1 是从零开始训练的连接层——它正是 Stage-1 预训练阶段让视觉词汇和语言词汇学会对齐的关键部件。四、完整数据流从像素到 LLM 输入extract_feature方法modeling_internvl_chat.py把上述流程串成 4 步取 ViT 特征默认select_layer -1即取最后一层输出去掉 CLS tokenvit_embeds[:, 1:, :]只保留 patch 特征Pixel Shuffle 压缩网格 32×32 → 16×16通道 ×4mlp1 投影压到 LLM 隐层维度得到每 patch256 个图像词汇num_image_token (448/14)² × 0.5² 256。接下来forward在 modeling_internvl_chat.py 中做一个巧妙操作找到输入序列里所有IMG_CONTEXT占位符img_context_token_id用 256 个图像向量整体替换掉它们的词嵌入。于是 LLM 读到的就是一段图像词汇 文本词汇混合的序列无需任何交叉注意力模块。五、关键配置参数速查以上行为都由 configuration_internvl_chat.py 定义的参数控制在各模型目录的 config.json 中可直接查看参数本仓库取值作用downsample_ratio0.5Pixel Shuffle 缩放比例token 数按平方压缩ps_versionv2使用修复了转置 bug 的重排版本select_layer-1取 ViT 最后一层特征force_image_size448图像统一缩放尺寸min/max_dynamic_patch1 / 12动态分辨率的 patch 数范围对应 256~3072 个图像 token六、小结一套极简但高效的压缩方案InternVL2-Pretrain-Models 的视觉-语言对齐设计本质上是先无损压缩、再线性翻译Pixel Shuffle 用零参数的重排把视觉 token 减到 1/4同时保住局部细节mlp1 两层 MLP 完成跨模型的维度翻译参数开销极小配合动态 patch 机制模型可按图分配 256~3072 个 token在精度与成本之间灵活权衡。这套方案也正是 InternVL 2.0 能用 8k 上下文处理多图、长文、视频的基础——理解了这两个组件你就读懂了该仓库最核心的架构思想。赞分享【免费下载链接】InternVL2-Pretrain-Models项目地址https://ai.gitcode.com/OpenGVLab/InternVL2-Pretrain-Models点击查看免费下载相关推荐InternVL2_5-Pretrain-Models 源码解析InternViT 视觉编码器 Pixel Shuffle 投影图像 Token 如何进入大语言模型InternVL2_5 Pretrain Models 源码解析InternViT 视觉编码器 Pixel Shuffle 投影图像 Token 如何进InternVL2-Pretrain-Models如何处理任意尺寸的图片动态分辨率机制完全图解InternVL2 Pretrain Models如何处理任意尺寸的图片动态分辨率机制完全图解 InternVL2 Pretrain Models 是 OpeDBoW3图像特征索引与视觉词汇生成的强大工具DBoW3图像特征索引与视觉词汇生成的强大工具 项目介绍 DBoW3 是一个开源的 C 库专门用于图像的索引和将图像转换为“词袋”表示。它是 DBow2计算机视觉创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

EN 300 132-1接口A1标准解读:电压暂降、冲击电流与保护器件选型实战

EN 300 132-1接口A1标准解读:电压暂降、冲击电流与保护器件选型实战

简介:《ETSI EN 300 132-1 V2.1.1(2019-03)》是欧洲电信标准协会发布的环境工程与信息通信技术(ICT)设备电源接口标准,其第1部分规定了交流电输入接口的电压范围、电流等级、插头插座类型、过载及接地保护等…

2026/10/16 16:23:15 阅读更多 →
NASA CEA程序全解析:从化学平衡到火箭比冲计算实战

NASA CEA程序全解析:从化学平衡到火箭比冲计算实战

简介:CEA(Chemical Equilibrium with Applications)是NASA开发的热化学平衡计算程序,能模拟火箭发动机燃烧室内的高温高压化学反应,求解平衡组分、温度分布及焓熵等热力学参数,常被用于不同燃料/氧化剂组合…

2026/10/16 16:23:15 阅读更多 →
云原生入门:用Minikube跑通自愈型Hello World

云原生入门:用Minikube跑通自愈型Hello World

简介:本资源是一份系统化、分层级的云原生技术学习路线图,面向开发者、运维工程师及希望转型云原生领域的IT从业者,解决技术栈庞杂、学习路径不清晰、各组件关系难把握等核心痛点。路线图PDF文件共1个,大小1.29MB,内容…

2026/10/16 16:23:15 阅读更多 →

最新新闻

山脉数组二分查找全解:三次二分破解 LeetCode 1095

山脉数组二分查找全解:三次二分破解 LeetCode 1095

前几天刷题群里有朋友卡在 LeetCode 1095 上,说山脉数组的解法绕来绕去,边界条件一多就犯迷糊。这道题其实很有代表性——它是“二分查找变体”里最典型的综合题之一,把“峰值查找”和“两侧有序区间的定向二分”串在一起考,我当年…

2026/10/16 17:06:04 阅读更多 →
自提柜智能监控方案:从边缘网关部署到告警排查实战

自提柜智能监控方案:从边缘网关部署到告警排查实战

简介:面向智慧物流与自提柜运维场景的一份解决方案演示文档,聚焦快递自提柜故障无法实时监控、纠纷取证难、运营数据缺乏分析等痛点,给出从物流云平台、高清摄像机到NVR的统一监控架构。内容涵盖现状需求、方案设计、功能介绍与核心产品四大模…

2026/10/16 17:05:02 阅读更多 →
STM32F103C8T6驱动SSD1306 OLED黑屏排查与CubeMX精准配置指南

STM32F103C8T6驱动SSD1306 OLED黑屏排查与CubeMX精准配置指南

简介:本资源是一份面向STM32初学者与嵌入式开发者的OLED显示驱动实践工程,聚焦于STM32F103C8T6最小系统在CubeMX图形化配置下的I2C通信实现。资源完整覆盖从时钟树设置、I2C主机模式配置、引脚映射到代码生成的全流程,特别适合单片机课程设计…

2026/10/16 17:05:02 阅读更多 →
Air2Stream模型:用气温与流量预测河水温度的物理驱动MATLAB实现

Air2Stream模型:用气温与流量预测河水温度的物理驱动MATLAB实现

简介:本资源是基于MATLAB与Fortran混合实现的开源水文预测模型air2stream,面向环境科学、水文学及气候建模领域的科研人员与研究生,用于利用空气温度和河流流量数据高精度预测河水温度(RWT),支撑生态水温评…

2026/10/16 17:04:01 阅读更多 →
MATLAB R2025a部署避坑指南:从版本识别到许可证激活全解析

MATLAB R2025a部署避坑指南:从版本识别到许可证激活全解析

简介:MathWorks MATLAB R2025a v25.1.0.2943329(x64)的配套Crack文件包,主要面向已安装该版本但上轮发布缺失激活组件的用户,用于补齐授权验证所需的关键文件与许可证配置。压缩包共5个文件,约1.54MB&#…

2026/10/16 17:04:01 阅读更多 →
MATLAB实现经典代数多重网格AMG求解稀疏矩阵方程详解

MATLAB实现经典代数多重网格AMG求解稀疏矩阵方程详解

简介:经典代数多重网格(AMG)演示代码,面向数值计算、科学工程计算与偏微分方程数值解学习者,帮助理解如何以代数方式构造粗网格,加速稀疏线性方程组求解。资源为系统开源MATLAB实现,压缩包共20个…

2026/10/16 17:04:01 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

/* 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 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

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

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

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

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

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

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

2026/10/15 19:41:51 阅读更多 →
影刀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/15 0:14:36 阅读更多 →
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 阅读更多 →