【免费下载链接】InternVL3_5-241B-A28B-Pretrained
📌 本文介绍 InternVL3.5-241B-A28B-Pretrained 多模态大模型在 GitHub 格式与 HuggingFace(HF)格式之间的相互转换方法,以及如何用 Transformers 无缝加载该 241B MoE 模型进行推理与微调。
🤔 什么是 GitHub 格式和 HF 格式?
InternVL 系列模型为了保持与往期版本兼容,官方同时提供了两种模型格式:
| 格式 | 命名示例 | 特点 |
|---|---|---|
| GitHub 格式(custom) | InternVL3_5-241B-A28B-Pretrained | 与 InternVL 系列以往版本保持一致,附带自定义建模代码,需要trust_remote_code加载 |
| HF 格式 | InternVL3_5-241B-A28B-HF | 对齐 Transformers 官方标准,生态兼容性好,可直接对接 vLLM、LMDeploy 等主流推理框架 |
⚠️ 注意:本仓库是Pretrained(CPT 多模态继续预训练)阶段的权重,属于 InternVL3.5 系列中规模最大、参数 240.7B(激活 28B)的 MoE 旗舰版,适合用于二次预训练、继续预训练等研究场景;日常对话与推理请使用不带后缀的完整版模型。
📦 仓库里都有什么?看懂文件结构
本仓库采用 GitHub 格式存放权重,核心文件一览:
| 文件 | 作用 |
|---|---|
| config.json | 主配置:model_type为internvl_chat,内含 LLM 配置(Qwen3-235B-A22B,128 专家、94 层)与视觉塔配置(InternViT-6B,45 层) |
| model.safetensors.index.json | 权重索引文件,共 37540 个张量到 96 个分片的映射关系 |
| layer-0-ep-0-of-1.safetensors ~ layer-93-ep-0-of-1.safetensors | 语言模型 94 层 MoE 权重,每层一个独立文件 |
| vision.safetensors | 视觉编码器 InternViT-6B 权重(595 个张量) |
| others.safetensors | 嵌入层、norm、lm_head 等其余权重 |
| modeling_internvl_chat.py | 自定义模型定义(InternVLChatModel) |
| configuration_internvl_chat.py | 自定义配置类(InternVLChatConfig) |
| modeling_intern_vit.py / configuration_intern_vit.py | 视觉塔模型与配置代码 |
| conversation.py | 对话模板(本模型使用internvl2_5模板) |
| tokenizer.json / vocab.json | 分词器文件 |
🔍 几个有意思的细节:
- 每层一个分片:
layer-N-ep-0-of-1.safetensors这种"一层一文件"的命名是 GitHub 格式的典型特征,方便大模型按层流式加载与专家并行(EP)切分;而 HF 格式通常是若干 GB 的合并分片。 - MoE 权重组织:从索引文件可以看到,每层的 128 个专家权重(
mlp.experts.0~127的up_proj/gate_proj/down_proj)都存放在对应层文件中。 - 动态高分辨率:config.json 中
dynamic_image_size: true、max_dynamic_patch: 12、force_image_size: 448,说明保留了 InternVL1.5 起的动态切片策略;ps_version: v2表示使用 pixel shuffle v2 连接器(对应 model.safetensors.index.json 中的mlp1张量)。
🔄 GitHub 格式转 HF 格式:完整步骤
官方提供了两个转换脚本(位于 InternVL 官方代码库的internvl_chat/tools/目录下):
internvl_custom2hf.py:GitHub 格式 → HF 格式internvl_hf2custom.py:HF 格式 → GitHub 格式
一键转换命令
# GitHub 格式 → HF 格式(以 241B-A28B 为例,小模型同理) python internvl_custom2hf.py \ --input_dir ./InternVL3_5-241B-A28B-Pretrained \ --output_dir ./InternVL3_5-241B-A28B-Pretrained-HF转换时发生了什么?
- 合并分片:把 94 个
layer-*.safetensors+ vision.safetensors + others.safetensors 按model.safetensors.index.json的索引重新打包成 HF 标准的若干 GB 级model-0000X-of-XXXXX.safetensors分片。 - 权重命名对齐:GitHub 格式的键名(如
language_model.model.layers.0.mlp.experts.0.up_proj.weight)映射为 Transformers 原生 MoE 架构可识别的命名。 - 配置重组:把 config.json 中嵌套的
llm_config、vision_config展开为 HF 标准的多模态config.json,去掉auto_map自定义代码依赖。
💡 转换是纯张量重打包操作,不会改变模型参数,两种格式推理结果一致。由于 241B 模型约 480GB(BF16),请预留足够的磁盘空间(建议转换后清理原始分片以节省空间)。
🚀 Transformers 无缝加载指南
加载前提
transformers >= 4.52.1(README 官方建议版本)- 241B 规模需8 张 A100 级 GPU(张量并行
tp=8)
GitHub 格式加载(自定义代码)
GitHub 格式自带建模代码,加载时必须加trust_remote_code=True:
import torch from transformers import AutoTokenizer, AutoModel path = "./InternVL3_5-241B-A28B-Pretrained" # 或官方仓库名 model = AutoModel.from_pretrained( path, torch_dtype=torch.bfloat16, low_cpu_mem_usage=True, use_flash_attn=True, trust_remote_code=True, device_map="auto").eval() tokenizer = AutoTokenizer.from_pretrained(path, trust_remote_code=True, use_fast=False)AutoModel会通过 config.json 中的auto_map自动定位到 modeling_internvl_chat.py 里的InternVLChatModel,无需手动导入自定义类。
HF 格式加载
转换后的 HF 格式走 Transformers 原生多模态接口,配置中不再依赖auto_map,可直接与各类微调框架(SWIFT、XTuner 等)无缝衔接。
🖥️ 高性能部署:vLLM 与 LMDeploy
生产环境推荐使用推理框架部署(README 官方推荐 vLLM 与 LMDeploy 均支持):
# LMDeploy 服务化示例(241B 需设置 tp=8) lmdeploy serve api_server <模型路径> \ --server-port 23333 --tp 8 --backend pytorch部署后即可获得兼容 OpenAI 接口的 REST API,方便业务集成。
❓ 常见问题(FAQ)
Q1:Pretrained 版本和正式版有什么区别?Pretrained 只完成了 CPT(多模态继续预训练),未做 SFT 与强化学习对齐,输出不具备指令遵循能力,主要用于继续预训练/领域适配研究。
Q2:为什么加载时报trust_remote_code相关错误?GitHub 格式依赖 configuration_internvl_chat.py 等自定义代码,加载参数必须开启trust_remote_code=True;或者干脆转换成 HF 格式后按标准方式加载。
Q3:小模型(如 8B、14B)怎么转?命令完全相同,只需把--input_dir换成对应模型目录。≤30B 的模型单卡 A100 即可部署,38B 需 2 卡,转换过程本身与 GPU 无关,任意机器都可执行。
Q4:转换后能直接用AutoTokenizer吗?可以,tokenizer.json、added_tokens.json、special_tokens_map.json 等分词文件在两种格式中结构一致。
✅ 小结
| 场景 | 推荐格式 |
|---|---|
| 研究/继续预训练(本仓库 Pretrained 权重) | GitHub 格式或转 HF 均可 |
| vLLM / LMDeploy 生产部署 | HF 格式 |
| 官方微调框架(SWIFT、XTuner 等) | HF 格式 |
| 复现 InternVL 官方训练代码 | GitHub 格式 |
掌握internvl_custom2hf.py与internvl_hf2custom.py两个脚本,即可在两种格式间自由切换,让 InternVL3.5-241B-A28B-Pretrained 无缝融入你的 Transformers 工作流 🎉
【免费下载链接】InternVL3_5-241B-A28B-Pretrained
相关推荐
模型格式无缝转换:InternLM2.5与Hugging Face格式互转全指南
模型格式无缝转换:InternLM2.5与Hugging Face格式互转全指南 你是否曾因模型格式不兼容而无法在不同框架间顺畅迁移?是否在部署InternLM
人工智能大模型基础模型MiniMind模型转换教程:PyTorch与Transformers格式互转
MiniMind模型转换教程:PyTorch与Transformers格式互转 1. 引言:为什么模型格式转换至关重要? 在大模型(Large Language
人工智能大模型预训练微调强化学习模型蒸馏AI Agent工具调用模型推理服务模型评测如何快速上手Gemma 4-31B:5分钟安装与配置教程
如何快速上手Gemma 4 31B:5分钟安装与配置教程 Gemma 4 31B是Google DeepMind开发的多模态AI模型,支持文本、图像、音频和视频
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考