Qwen2-VL 系列模型微调教程
1. 项目介绍
本项目是一个针对 Qwen2-VL 和 Qwen2.5-VL 系列模型的开源微调实现,基于 HuggingFace 和 Liger-Kernel。本项目旨在通过微调,提升模型在特定任务上的表现,并支持多种数据模态,包括图像、多图像和视频数据。
2. 项目快速启动
以下是快速启动项目的步骤:
首先,确保您的系统中已安装 Docker。然后,拉取预构建的环境镜像:
docker pull john119/vlm:v1
接着,运行容器并挂载本地路径:
docker run --gpus all -it -v /host/path:/docker/path --name vlm --ipc=host john119/vlm:v1 /bin/bash
在容器内部,创建并激活 conda 环境:
conda env create -f environment.yaml
conda activate qwen2
安装所需的 Python 包:
pip install qwen-vl-utils
pip install flash-attn --no-build-isolation
准备数据集,数据集需要符合 LLaVA 规范的 JSON 格式。以下是一个单图像数据集的示例:
[
{
"id": "000000033471",
"image": "000000033471.jpg",
"conversations": [
{
"from": "human",
"value": "<image>\nWhat are the colors of the bus in the image?"
},
{
"from": "gpt",
"value": "The bus in the image is white and red."
}
]
}
]
启动微调脚本,以下是全量微调的命令:
bash scripts/finetune.sh
其他微调选项,例如使用 8-bit 精度或 LoRA,可以通过修改脚本或命令行参数来实现。
3. 应用案例和最佳实践
- 多模态数据集处理:在微调过程中,确保图像和文本数据正确对齐,以提升模型对多模态数据的理解能力。
- 学习率调整:根据模型的表现,适当调整学习率,以获得最佳的训练效果。
- 梯度累积:在内存资源有限的情况下,使用梯度累积来增加有效批处理大小,从而提高训练效率。
4. 典型生态项目
- Phi3-Vision Finetuning:针对 Phi3-Vision 模型的微调项目。
- Llama3.2-Vision Finetuning:针对 Llama3.2-Vision 模型的微调项目。
- Molmo Finetune:针对 Molmo 模型的微调项目。
通过以上步骤,您可以快速上手 Qwen2-VL 系列模型的微调,并根据实际需求调整参数和策略,以获得最佳性能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考