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/11/12 21:15:45 阅读更多 →
NASA CEA程序全解析:从化学平衡到火箭比冲计算实战

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

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

2026/11/12 21:15:45 阅读更多 →
云原生入门:用Minikube跑通自愈型Hello World

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

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

2026/11/11 8:32:34 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/12 5:00:00 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/12 5:13:20 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/12 5:13:20 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/12 5:13:20 阅读更多 →

日新闻

周新闻

月新闻