【免费下载链接】PIIP-LLaVA_ConvNeXt-L_CLIP-L_1024-336_13B
PIIP-LLaVA_ConvNeXt-L_CLIP-L_1024-336_13B 是 OpenGVLab 团队开源的一个 130 亿参数多模态大语言模型(MLLM),出自 Parameter-Inverted Image Pyramid(PIIP,参数反转图像金字塔)系列第二代工作,论文编号为 arXiv:2501.07783。它最大的特点是"双分支视觉编码器":一路 CLIP-L 负责视觉与语言的对齐,另一路高分辨率 ConvNeXt-L 负责看清图中细节,两者融合后交给 13B 语言模型输出理解结果。本文结合本仓库中的配置文件与训练日志,带你精读这篇论文的核心思想,看懂它的多模态理解能力从何而来 📖
1. 先拆解"名字":一个模型名里藏了多少信息?
这个仓库名虽然长,但每一段都有明确含义,看懂它就读懂了模型架构:
| 名称片段 | 含义 |
|---|---|
| PIIP-LLaVA | 基于 LLaVA 式框架(视觉编码器 + 投影器 + 语言模型)的 PIIP 系列多模态模型 |
| ConvNeXt-L | "感知分支"主干网络,参数反转后的高分辨率视觉骨干 |
| CLIP-L | "对齐分支"编码器,负责图像-文本对齐 |
| 1024-336 | 两路输入分辨率:ConvNeXt 分支吃 1024×1024,CLIP 分支吃 336×336 |
| 13B | 语言模型规模,底座为 vicuna-13b-v1.5(见 README.md 中base_model字段) |
README 还标明了它的"身份标签":image-text-to-text流水线、基于transformers库加载,并且带有vision和ocr标签——也就是说,OCR(文字识别)与细粒度视觉理解正是它主打的能力场景。
2. PIIP 的核心思想:把参数"反转"回主干网络
传统图像金字塔网络(CNN 类)通常采用"小骨干 + 大分类头"的结构:骨干参数少、表征能力有限,大量参数却堆在任务头上。PIIP 的做法很直接——参数反转:把参数从"头"挪回"骨干",训练一个更大的 ConvNeXt-L 主干,只配一个很小的头。
这样做的好处有两个:
- 感知更强:参数更多的主干能学到更丰富的底层视觉特征,检测、分割等密集感知任务直接受益;
- 复用更灵活:换任务时只换小头即可,大主干的表征可以复用。
3. 多模态理解能力的关键:双分支、双分辨率设计 🧩
v2 论文把 PIIP 从"感知"扩展到"多模态理解",核心答案是双分支视觉编码器,这一点在模型权重索引 model.safetensors.index.json 中一览无余:
- CLIP-L 分支(
model.vision_tower.vision_tower.branch1.clip_model.*):CLIP 在海量图文对上预训练,天然"听得懂语言",负责把图像语义对齐到语言空间;输入分辨率 336×336。 - ConvNeXt-L 分支(
model.vision_tower.vision_tower.branch2.convnext_model.*,含stages.0~stages.3四个下采样阶段):以 1024×1024 高分辨率输入看图,擅长捕捉小字、表格、图表中的细节信息——这正是普通 CLIP 分支容易丢掉的。 - 双路投影器:两路特征各自经过独立的三层 MLP 投影器(
model.mm_projector.branch1/model.mm_projector.branch2),把 1024 维视觉特征升维到语言模型的 5120 维词嵌入空间,再拼接送入 LLM。
简单说:CLIP 分支负责"理解图在说什么",ConvNeXt 分支负责"看清图中有什么",13B 语言模型负责"组织语言回答"。三者在指令微调中学会协作,这就是它多模态理解能力的来源。
4. 逐行解读 config.json:从配置里读出架构细节
| 配置项 | 取值 | 说明 |
|---|---|---|
mm_vision_tower | configs/piip-llava_convnext-l_clip-l_1024-336_13B.py | 自定义双分支视觉塔(需 PIIP 官方代码库加载,本仓库不携带该脚本) |
mm_hidden_size | 1024 | 两路视觉分支输出的特征维度 |
mm_vision_select_layer | -2 | 取 CLIP 编码器倒数第二层特征(LLaVA 惯用技巧) |
mm_projector_type | mlp2x_gelu | 视觉-语言投影器类型(实际权重为双分支各一套三层 MLP) |
image_aspect_ratio | pad | 图像以 padding 方式保持 1:1 比例输入 |
hidden_size/num_hidden_layers | 5120 / 40 | 语言模型隐藏维度与层数,对应 Vicuna-13B |
vocab_size/max_position_embeddings | 32000 / 4096 | 词表大小与最大上下文长度 |
torch_dtype | bfloat16 | 半精度存储,全模型约 27.4GB(约 137 亿参数) |
tune_vision_tower | true | 关键点:视觉编码器未冻结,与 LLM 一起微调 |
最后一行值得注意:普通 LLaVA 类模型微调时通常冻结视觉塔,而这里tune_vision_tower: true,说明训练时两路视觉分支都参与了梯度更新,让 CLIP 和 ConvNeXt 都进一步适配多模态对话任务。
5. 训练证据:从 trainer_state.json 看微调过程 📈
这份 5 万多行的训练日志记录了完整的指令微调过程,几个关键数字:
- 5197 步、训练 1 个 epoch,每设备批大小 4;
- 损失从最初的 1.332 稳步下降到约 0.45,全程训练损失 0.737;
- 学习率峰值 2e-5,按余弦策略衰减至 0(典型的指令微调配置);
- 总计算量约 1.1×10¹⁶ FLOPs,训练耗时约 35 小时。
结合 generation_config.json 中的默认采样参数(temperature: 0.9、top_p: 0.6),可以看出模型是按"对话式视觉问答"的方式训练和使用的。
6. 仓库文件导读:每个文件都是干什么的?
| 文件 | 作用 |
|---|---|
| README.md | 项目简介、底座模型说明与论文引用(含 PIIP v1/v2 两篇 BibTeX) |
| config.json | 模型架构主配置(双分支视觉塔、LLaVA 式连接参数) |
| model-00001-of-00006.safetensors ~ model-00006-of-00006.safetensors | 权重分片;LLM 各层分散在前 5 个分片,视觉塔与投影器集中在第 6 个分片 |
| model.safetensors.index.json | 权重索引(2262 个张量,其中视觉塔占 1887 个),是验证双分支结构的最佳入口 |
| tokenizer.model / tokenizer_config.json | 分词器与特殊 token 配置 |
| trainer_state.json | 完整训练日志(损失、学习率曲线) |
| training_args.bin | 训练超参数序列化文件 |
7. 小结:能力从何而来?
一句话总结 PIIP v2 的设计逻辑:
- 参数反转——把参数集中到 ConvNeXt-L 大主干,换来更强的底层感知;
- 双分支分工——CLIP-L(336)管"对齐",ConvNeXt-L(1024)管"细节",互补覆盖语言对齐与密集感知两类需求;
- 端到端微调——视觉塔不冻结(
tune_vision_tower: true),5197 步指令微调让三路组件真正协同。
如果你在做 OCR、图表理解或需要高分辨率图像理解的场景,这套"高分辨率感知分支 + 对齐分支"的组合方式很值得借鉴。引用本项目时,可直接使用 README.md 中给出的piip_v2(arXiv:2501.07783)BibTeX 信息。
【免费下载链接】PIIP-LLaVA_ConvNeXt-L_CLIP-L_1024-336_13B
相关推荐
PIIP-LLaVA vs LLaVA:参数反转架构带来的多模态理解能力有多大飞跃
PIIP LLaVA vs LLaVA:参数反转架构带来的多模态理解能力有多大飞跃 如果你正在比较 PIIP LLaVA 和 LLaVA 这两类视觉语言模型,那
从论文到代码:PIIP-LLaVA v2多模态研究的知识图谱、引用指南与社区资源
从论文到代码:PIIP LLaVA v2多模态研究的知识图谱、引用指南与社区资源 PIIP LLaVA_CLIP BL_512 256_7B 是 OpenGVL
新手必看:PIIP-LLaVA多模态大模型完全入门指南——从零理解OpenGVLab开源视觉AI
新手必看:PIIP LLaVA多模态大模型完全入门指南——从零理解OpenGVLab开源视觉AI PIIP LLaVA_CLIP BL_512 256_7B 是
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考