
Qwen-VL-Series-Finetune
用自有数据微调 Qwen-VL,快速得到专用视觉大模型
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-16 · 当前星标 ★ 1981
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Docker 环境(用于拉取官方预构建镜像)
- 支持 NVIDIA GPU 并可用 --gpus all(需已安装 nvidia-container-toolkit)
- 依赖 HuggingFace 与 Liger-Kernel,对应版本为 transformers==5.3.0、liger_kernel==0.8.0
- 镜像内已配置名为 train 的 conda 环境
安装与启动步骤
-
1拉取预构建镜像
README 提供了预构建训练环境,直接拉取镜像即可省去手动配环境的步骤。
docker pull john119/vlm -
2启动训练容器
用 --gpus all 开启 GPU,-v 挂载宿主机数据与代码目录,--ipc=host 避免共享内存不足。
docker run --gpus all -it -v /host/path:/docker/path --name vlm --ipc=host john119/vlm /bin/bash -
3激活训练环境
进入容器后切换到镜像内预置的 conda 环境 train,所有训练依赖都在该环境中。
conda activate train -
4调整图像视频分辨率
默认使用原图分辨率,显存吃紧时按 token*28*28 调小像素数;Qwen3-VL 需按 token*32*32 计算。
--image_min_pixels $((256 * 28 * 28)) --image_max_pixels $((1280 * 28 * 28)) --video_min_pixels $((128 * 28 * 28)) --video_max_pixels $((768 * 28 * 28)) -
5用 Trainer 启动训练
在训练脚本中通过 QwenSFTTrainer 组装模型、处理器、训练参数与数据模块;需要指标时加上 compute_metrics。
trainer = QwenSFTTrainer( model=model, processing_class=processor, args=training_args, compute_metrics=compute_metrics, **data_module )
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
image_min_pixels | 否 | 图像输入的最小像素数,控制小图显存与速度 | $((256 * 28 * 28)) |
image_max_pixels | 否 | 图像输入的最大像素数,值越大效果通常越好但更耗显存 | $((1280 * 28 * 28)) |
video_min_pixels | 否 | 视频帧的最小像素数,用于视频训练场景 | $((128 * 28 * 28)) |
video_max_pixels | 否 | 视频帧的最大像素数,视频数据建议压得更小 | $((768 * 28 * 28)) |
image_resized_width | 否 | 直接指定图像宽度来控制显存占用 | 448 |
image_resized_height | 否 | 直接指定图像高度,与宽度配套使用 | 448 |
如何确认成功
容器成功进入 bash 并能 conda activate train,说明预构建训练环境已就绪。
常见问题
Q:显存不够怎么办?
A:降低 --image_max_pixels、--video_max_pixels,或直接用 --image_resized_width/height 指定更小的分辨率。
Q:为什么 Qwen3-VL 的像素倍数不一样?
A:Qwen3-VL 按 token*32*32 切图,其余模型为 token*28*28,需按对应倍数计算像素值。
Q:可以不用 Docker 吗?
A:README 只给出了 Docker 预构建环境的使用方式,未提供 pip 等本地安装步骤,需自行准备依赖。
Q:-v 挂载路径怎么写?
A:格式为 /host/path:/docker/path,冒号左边是宿主机目录,右边是容器内目录,按实际路径替换。
注意事项
- 设置的分辨率数值会被四舍五入到 28 的最近倍数。
- 建议保留 --ipc=host,避免多卡或大数据加载时的共享内存问题。
- README 未给出独立训练脚本的调用命令,训练需在脚本内使用 QwenSFTTrainer 组装。
核心亮点
- 覆盖 Qwen2-VL、Qwen2.5-VL、Qwen3-VL 多个版本,跟进官方模型迭代及时
- 同时支持 LoRA 与全参数微调,并提供显存优化方案,单卡也能起步
- 数据准备、训练、推理脚本齐全,多图与视频输入场景有现成示例
不足之处
- 训练配置项较多,新手需要一定时间理解参数含义
- 文档以英文为主,中文使用者的上手成本略高
适用场景
- 用行业标注数据微调模型,做特定领域的图像理解与问答
- 微调文档或票据解析模型,提升结构化信息抽取准确率
- 训练视频理解模型,用于监控、教学等时序视觉任务
替代项目
LLaVA、ms-swift、xtuner
同类项目推荐
llm-compressor
开源
一键压缩大模型,vLLM 直接跑,省显存提吞吐
State-of-the-art LLM compression, built for production inference with vLLM
MindPipe
开源
一键压缩大模型,让 LLM 在 NVIDIA 和昇腾上跑得更快更省显存。
A powerful model compression framework for LLMs and LVLMs, adapted for NVIDIA GPUs a···
burn-onnx
开源
把 ONNX 模型转成纯 Rust Burn 代码,推理微调不再依赖 Python
Convert ONNX models into native, backend-agnostic Burn code for inference and fine-t···
easevoice-trainer
开源
简单几步,训练你的专属语音克隆模型
EaseVoice Trainer is a simple and user-friendly voice cloning and speech model train···
ludwig
开源
写个 YAML 就能训练大模型,告别繁琐代码
Low-code framework for building custom LLMs, neural networks, and other AI models
datablations
开源
数据不够时,教你如何最优训练大模型
Scaling Data-Constrained Language Models
TorchSpec
开源
用 PyTorch 原生训练投机解码草稿模型,推理直接提速
A PyTorch native library for training speculative decoding models
RLAIF-V
开源
用开源反馈训练视觉模型,让AI不懂装懂时敢说“不知道”
[CVPR'25 highlight] RLAIF-V: Open-Source AI Feedback Leads to Super GPT-4V Trustwort···
Large-Time-Series-Model
开源
用预训练大模型搞定时间序列预测,零样本也能用
Official code, datasets and checkpoints for "Timer: Generative Pre-trained Transform···