【免费下载链接】InternVL3-14B-Instruct
InternVL3-14B-Instruct是上海 AI Lab 开源的视觉-语言多模态大模型(MLLM),采用经典的ViT-MLP-LLM三段式架构:由约 3 亿参数的视觉编码器InternViT-300M提取图像特征,经两层MLP投影器对齐维度,再交给Qwen2.5-14B语言模型生成回答。本文带你快速拆解这三大组件如何融合,以及动态分辨率、Pixel Shuffle 等关键设计背后的原理。
上面这只小熊猫,正是项目 examples/ 目录里的示例图——模型能描述它、回答关于它的问题,靠的就是下面这套架构。
一、三大组件全景:14.5B 参数从哪里来?
查看权重索引文件 model.safetensors.index.json,整个模型共925 个张量,按前缀可分为三部分:
| 组件 | 张量数 | 参数量级 | 源码入口 |
|---|---|---|---|
| 视觉编码器 vision_model | 340 | ~300M | modeling_intern_vit.py |
| 投影器 mlp1 | 6 | ~20M | modeling_internvl_chat.py |
| 语言模型 language_model | 579 | ~14B(Qwen2.5-14B) | modeling_internvl_chat.py |
权重以 bfloat16 存储,总计约 30GB(7 个分片 safetensors),对应约 145 亿参数。这种"ViT + MLP + LLM"的组合是 InternVL 系列延续多代的核心范式,简单却高效。
二、ViT 部分:InternViT-300M 与动态分辨率
视觉配置在 config.json 的vision_config字段中:
- patch_size = 14:图像被切成 14×14 的小块送入 ViT;
- force_image_size = 448:每个图块固定 448×448 像素;
- 448÷14 = 32,即一张图块产生 32×32 =1024 个视觉 token;
- 网络共 24 层 Transformer,hidden_size = 1024,整体约 3 亿参数。
InternVL3 支持动态分辨率(config.json 中min_dynamic_patch: 1、max_dynamic_patch: 12):大图会被自动切分成最多 4×3 = 12 个 448×448 图块(最高 1344×896 分辨率),并额外生成一张 448×448 缩略图(use_thumbnail: true)。这样小图不浪费算力,大图细节也不丢失,多图与视频输入同样适用。
三、MLP 部分:256 个 token 的"瘦身"魔法
如果直接把 1024 个视觉 token 喂给 LLM,序列会爆炸。InternVL3 用Pixel Shuffle把 token 数压到1/4:
- 在 extract_feature 中取出 ViT 输出,去掉 CLS token;
- pixel_shuffle 按
downsample_ratio: 0.5(config.json)将相邻 2×2 的 token 特征合并,1024 →256 个 token,特征维度相应放大 4 倍(1024→4096); - 最后经 mlp1 投影器:
LayerNorm → Linear(4096→5120) → GELU → Linear(5120→5120),把视觉特征对齐到 LLM 的 5120 维隐层空间。
这个两层 MLP 就是视觉与语言之间的"翻译官",仅 6 个张量(4 个权重 + 2 个偏置),参数占比不足 0.2%,却承担了跨模态对齐的全部工作。每个 448×448 图块在 forward 中会替换掉提示词里 256 个<IMG_CONTEXT>占位符,视觉信息就此融入文本序列。
四、LLM 部分:Qwen2.5-14B 的能力底座
语言部分采用Qwen2.5-14B(配置见 config.json 的llm_config):
- 48 层 Transformer,hidden_size = 5120,intermediate_size = 13824;
- 40 个注意力头 + 8 个 KV 头(GQA 分组查询注意力),推理更快更省显存;
- 词表 151674,支持 32K 动态 RoPE 长上下文,bfloat16 精度。
InternVL3 的一大亮点是Native Multimodal Pre-Training:语言与视觉在同一个预训练阶段交替学习,因此纯文本能力甚至超过原版 Qwen2.5-14B。此外 InternVL3 引入了V2PE(Variable Visual Position Encoding),为视觉 token 使用更小、更灵活的位置增量,显著提升了长文档、多图文交错场景的理解能力。
五、数据流动向图:一次问答的完整旅程 🧭
以 examples/image1.jpg 配问题"图中是什么动物?"为例:
- 图像被预处理成 1~12 个 448×448 图块,
<image>占位符在 batch_chat 中展开为num_image_token × 图块数个<IMG_CONTEXT>(每图块 256 个); - 图块送入 InternViT-300M → Pixel Shuffle → mlp1,得到视觉特征向量;
- 特征替换掉对应占位符的 embedding,与文本 embedding 拼接成统一序列;
- Qwen2.5-14B 基于对话模板(conversation.py 中
internvl2_5模板)逐 token 生成回答。
配置总开关集中在 InternVLChatConfig:template(对话模板)、ps_version: v2(修正了 v1 转置 bug 的 Pixel Shuffle 版本)、select_layer: -1(取 ViT 最后一层输出)等,调参时改 config.json 即可。
六、快速上手:如何加载 InternVL3-14B-Instruct?
先 clone 仓库:
git clone https://gitcode.com/OpenGVLab/InternVL3-14B-Instruct然后用 HuggingFace Transformers 加载(模型自带自定义代码,需开启trust_remote_code):
from transformers import AutoTokenizer, AutoModel model_dir = "InternVL3-14B-Instruct" tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True) model = AutoModel.from_pretrained( model_dir, torch_dtype="auto", device_map="auto", trust_remote_code=True, )调用model.chat(tokenizer, pixel_values, question)即可对话,完整示例见 README.md 的 Quick Start 部分。单卡 16GB 显存(bfloat16)即可运行,非常适合本地部署体验。
七、总结:为什么是 ViT-MLP-LLM?
| 设计点 | 作用 |
|---|---|
| InternViT-300M + 448px 动态切块 | 小模型 + 高分辨率,细节捕捉强 |
| Pixel Shuffle (0.5) | 视觉 token 减至 1/4,大幅降低 LLM 计算量 |
| 两层 MLP 投影器 | 以极低成本完成视觉-语言维度对齐 |
| Qwen2.5-14B + Native 多模态预训练 | 文本与多模态能力双高 |
| V2PE 可变视觉位置编码 | 长上下文、多图交错理解更准 |
InternVL3-14B-Instruct 证明了:不需要 6B 的大视觉塔,靠动态分辨率 + token 压缩 + 强 LLM 底座的巧妙组合,14B 规模就能拿下多模态基准前列。理解了 ViT、MLP、LLM 三者的分工与数据流,你就能读懂绝大多数开源 MLLM 的架构本质。
📌延伸阅读:权重映射详见 model.safetensors.index.json,视觉网络细节见 modeling_intern_vit.py,对话模板见 conversation.py。
【免费下载链接】InternVL3-14B-Instruct
相关推荐
一图读懂InternVL3-14B-Pretrained模型架构:InternViT-300M、MLP投影器与Qwen2.5-14B如何协同工作
一图读懂InternVL3 14B Pretrained模型架构:InternViT 300M、MLP投影器与Qwen2.5 14B如何协同工作 InternV
一图看懂InternVL3_5-14B-Flash架构:InternViT+MLP+Qwen3的快闪多模态大模型
一图看懂InternVL3_5 14B Flash架构:InternViT+MLP+Qwen3的快闪多模态大模型 InternVL3_5 14B Flash 是
InternVL3-14B-Pretrained多模态大模型预训练权重入门指南:ViT-MLP-LLM架构它能做什么、怎么开始
InternVL3 14B Pretrained多模态大模型预训练权重入门指南:ViT MLP LLM架构它能做什么、怎么开始 InternVL3 14B Pr
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考