【免费下载链接】InternVL3-2B-AWQ项目地址https://ai.gitcode.com/OpenGVLab/InternVL3-2B-AWQ点击查看免费下载InternVL3-2B-AWQ 微调是把通用视觉语言模型改造成行业专属模型的关键一步。InternVL3-2B-AWQ 是 OpenGVLab 出品的 InternVL3-2B 多模态大模型的 AWQ 4-bit 量化版采用「ViT-MLP-LLM」架构支持单图/多图对话、文档 OCR、视频理解等任务。本文带你用 SWIFT 和 XTuner 两大主流框架从零完成整理自己的视觉数据 → 训练 → 验证 → 导出量化版全程可复制落地。一、动手前先搞懂 InternVL3-2B-AWQ1.1 AWQ 量化是什么适合直接微调吗打开 config.json可以看到核心量化配置quantization_config: { bits: 4, group_size: 128, quant_method: awq, zero_point: true }AWQActivation-aware Weight Quantization按激活值重要性保留关键权重把权重压到 4-bit显存占用大幅下降推理更快。⚠️ 重要提示4-bit 量化权重不建议直接做梯度更新。标准做法是用原始精度bf16权重训练 LoRA/全量参数训练完成后再导出 AWQ 量化版。这也是本仓库的定位——它是量化后的推理版微调时请使用对应的原始精度权重。1.2 一张图会被切成多少 tokenInternVL 的动态分辨率机制决定了上下文长度估算图片按448×448的 tile 切分最多 12 个 tile见 config.json 中force_image_size: 448、max_dynamic_patch: 12经downsample_ratio: 0.5的 pixel shuffle 降采样后每个 tile 对应256个视觉 token计算逻辑见 modeling_internvl_chat.py图像预处理参数ImageNet 均值/方差、448 分辨率定义在 preprocessor_config.jsonimg、IMG_CONTEXT等视觉特殊 token 定义在 added_tokens.json含义一张复杂图片最多可产生 12×256 3072 个视觉 token配置训练max_length时要留足空间。二、准备自定义视觉数据数据集格式一步到位SWIFTms-swift采用 messages 对话格式准备一个 JSON 文件即可例如[ { messages: [ {role: user, content: image这张图片里的产品是什么}, {role: assistant, content: 这是一款智能手表表盘显示时间为 10:08。} ], images: [/data/images/product1.jpg] }, { messages: [ {role: user, content: image请提取单据中的发票号码和金额。}, {role: assistant, content: 发票号码12345678金额¥2,580.00。} ], images: [/data/images/invoice1.jpg] } ] 数据准备三原则提示中必须带image占位符位置与图片对应多图则多个占位符回答要示范你想要的风格——想让模型输出 JSON答案就写成 JSON数量先求少而精几百条高质量样本即可完成场景适配再逐步扩充XTuner 的自定义数据集则使用conversationshuman/gpt 角色结构字段略有差异以其官方示例为准。三、SWIFT 微调全流程从安装到出模型3.1 安装 SWIFTpip install ms-swift[all]3.2 一键启动 LoRA 微调CUDA_VISIBLE_DEVICES0 \ swift sft \ --model OpenGVLab/InternVL3-2B \ --train_type lora \ --target_modules mlp1 \ --freeze_vit true \ --freeze_llm false \ --dataset /path/to/your_data.json \ --max_length 4096 \ --per_device_train_batch_size 2 \ --gradient_accumulation_steps 8 \ --learning_rate 1e-4 \ --num_train_epochs 3 \ --output_dir output/internvl3_2b_lora核心参数速查参数作用新手建议--train_type loraLoRA 低秩微调显存友好首选--target_modules mlp1只调视觉-语言投影层mlp1数据少时最稳--freeze_vit true冻结视觉编码器 InternViT通用视觉任务保持 true--max_length上下文上限多图/长文档场景调大到 4096--dataset你的 JSON 数据路径见第二节格式mlp1是 ViT 特征与 LLM 之间的翻译官定义于 modeling_internvl_chat.py只调它就能让模型快速适应新视觉场景且几乎不掉语言能力需要大幅增强语言能力时再把target_modules改为 LLM 侧的all-linear。3.3 微调后导出 AWQ 量化版训练完成后用 SWIFT 的导出能力重新量化得到类似本仓库的轻量推理模型swift export \ --adapters output/internvl3_2b_lora/checkpoint-best \ --merge_lora true \ --quant_method awq \ --output_dir output/internvl3_2b_awq四、XTuner 微调方案配置驱动适合多卡XTuner 采用「配置文件 命令行」的方式适合需要 DeepSpeed 多卡训练的场景创建训练配置internvl3_2b_finetune.py基于 XTuner 官方 InternVL 系列示例改写# internvl3_2b_finetune.py精简示例 model_path OpenGVLab/InternVL3-2B train_dataset /path/to/your_data.json max_length 4096 train_type lora lora_rank 32 lora_alpha 64 target_modules mlp1 freeze_vit True per_device_train_batch_size 2 gradient_accumulation_steps 8 learning_rate 1e-4 num_train_epochs 3启动训练可开启 DeepSpeed ZeROxtuner train internvl3_2b_finetune.py --deepspeed zero2训练结束后在work_dir下找到 checkpoint用xtuner merge-lora合并 LoRA 权重即可部署。五、微调不翻车的 5 个关键点 模板不用你操心对话模板internvl2_5已内置在 config.json模板实现见 conversation.pySWIFT/XTuner 会自动套用数据里只写自然语言即可先用 20 条数据跑通流程确认 loss 正常下降再上全量数据学习率别贪大LoRA 建议1e-4起步出现 loss 尖刺就降到5e-5显存参考2B 模型 LoRA只调mlp1/LLM冻结 ViT单张 24GB 显卡即可训练解冻 ViT 建议 2 卡以上模型结构溯源视觉编码器 InternViT 在 modeling_intern_vit.pyLLM 交互与chat接口在 modeling_internvl_chat.py微调框架遇到不兼容时可优先对照这两个文件排查。官方微调生态推荐InternVL、SWIFT、XTuner见 README.md六、快速验证微调效果用 transformers 加载微调后的模型跑一条真实业务图片即可from transformers import AutoModel, AutoTokenizer path output/internvl3_2b_awq # 替换为你的微调/量化模型路径 model AutoModel.from_pretrained( path, trust_remote_codeTrue, torch_dtypebfloat16, low_cpu_mem_usageTrue).cuda().eval() tokenizer AutoTokenizer.from_pretrained(path, trust_remote_codeTrue, use_fastFalse) from PIL import Image import torchvision.transforms as T from modeling_internvl_chat import dynamic_preprocess # 图像处理函数见 README Quick Start pixel_values dynamic_preprocess(Image.open(test.jpg).convert(RGB), image_size448, use_thumbnailTrue, max_num12) print(model.chat(tokenizer, pixel_values, image这张图里的产品是什么, dict(max_new_tokens256)))完整的加载与推理示例含多图、视频、流式输出可参考 README.md 的 Quick Start 章节模型权重文件为 pytorch_model-00001-of-00002.bin 与 pytorch_model-00002-of-00002.bin分片索引见 pytorch_model.bin.index.json。小结InternVL3-2B-AWQ 微调的最佳路径是「原始权重 SWIFT/XTuner LoRA 训练 训练后 AWQ 重量化」。数据准备占成功的 70%先小规模验证、再放量训练你就能用几百条自有视觉数据低成本得到一个贴合业务的专属多模态模型。赞分享【免费下载链接】InternVL3-2B-AWQ项目地址https://ai.gitcode.com/OpenGVLab/InternVL3-2B-AWQ点击查看免费下载相关推荐如何微调 InternVL3-8B-Instruct基于 SWIFT 与 XTuner 定制专属多模态模型实战如何微调 InternVL3 8B Instruct基于 SWIFT 与 XTuner 定制专属多模态模型实战 本文将带你使用 SWIFT 与 XTuner如何微调InternVL3-14B-PretrainedInternVL、SWIFT、XTuner三大主流框架选型与实操入门如何微调InternVL3 14B PretrainedInternVL、SWIFT、XTuner三大主流框架选型与实操入门 想对多模态大模型做指令微调却不InternVL3-2B-AWQ视频理解入门从抽帧到视觉Token的完整指南InternVL3 2B AWQ视频理解入门从抽帧到视觉Token的完整指南 InternVL3 2B AWQ 是开源多模态大模型 InternVL3 2B创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?