LLaMA Factory多模态微调实践:微调Qwen2-VL构建文旅大模型

LLaMA Factory 是一款开源低代码大模型微调框架,集成了业界最广泛使用的微调技术,支持通过 Web UI 界面零代码微调大模型,目前已经成为开源社区内最受欢迎的微调框架之一,GitHub 星标超过 4.7 万。本教程将基于通义千问团队开源的新一代多模态大模型 Qwen2-VL-2B-Instruct,介绍如何使用 矩池云 平台及 LLaMA Factory 训练框架完成文旅领域大模型的构建。

GitHub地址:https://github.com/hiyouga/LLaMA-Factory

一、直接使用 LLaMA-Factory镜像

注:最新版 LLaMa-Factory 已经上线

选择机器:显卡型号:4090 24G显存 (为保证下载速度,请选择亚太 2 区的机器)
租用实例时,请搜索关键词LLaMaFactory选择镜像 LLaMA-Factory20250424(自动启动WebUI) 或者LLaMA-Factory20250424(手动启动WebUI)即可使用
LLaMA-Factory20250424(自动启动WebUI) 开机后,会自动启动Web UI服务
LLaMA-Factory20250424(手动启动WebUI)开机后,需要通过命令手动启动服务:llamafactory-cli webui

实例运行后,可通过“我的实例”页面中的服务链接进行访问。

Screenshot 2025-04-18 at 14.08.19.png

二、亲自部署 LLaMA-Factory

如果想亲自在实例上部署LLaMA-Factory,则步骤如下:

启动实例

显卡型号:4090 24G显存 (为保证下载速度,请选择亚太 2 区的机器)

镜像:Pytorch 2.5.1

配置端口号: 8080(WebUI 服务) 11434(API 服务)

设置环境变量:GRADIO_SERVER_PORT=8080 (定义 Gradio webUI 服务的端口号,注:环境变量只能在 terminal 中查看,notebook 无法查看)

去除国内镜像源

如果您使用的是亚太 2 区的机器,则在部署之前,先去除默认的国内 pip 源:

具体方法在matpool主站右下角点击“客服”寻问AI客服:“如何去除pip源”

Screenshot 2025-04-18 at 13.59.38.png

安装LLaMA-Factory

实例中运行:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e ".[torch,metrics]"

启动服务

实例中运行:

llamafactory-cli webui #注意请在LLaMA-Factory目录下运行这条命令

注:如果实例不在亚太2区,则配置 从modelscope下载模型

USE_MODELSCOPE_HUB=1 llamafactory-cli webui
# USE_MODELSCOPE_HUB 设为 1,表示模型从 ModelScope 魔搭社区下载。避免从 HuggingFace 下载模型导致网速不畅。

服务启动后,可通过“我的实例”页面中的服务链接进行访问。

三、使用LLaMA-Factory 微调模型

准备数据集

LLaMA-Factory 项目内置了丰富的数据集,放在了 data 目录下。您可以跳过本步骤,直接使用内置数据集。您也可以准备自定义数据集,将数据处理为框架特定的格式,放在 data 下,并且修改 dataset_info.json 文件。

如果直接使用了人LLama-Factory镜像,则用户可直接在data目录下查看到 images文件夹和train.json 数据集,并且已经在`dataset_info.json `中加入train数据集。

Screenshot 2025-04-18 at 14.18.42.png

如果是按照步骤二自己部署的 LLaMA-Factory,则可自行下载数据集并存放到 data 目录:

wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/release/llama_factory/Qwen2-VL-History.zip
mv data rawdata && unzip Qwen2-VL-History.zip -d data # 这一步会将原LLaMA-Facroty 目录下的 data 文件转移到rawdata中

数据集中的样本为单轮对话形式,含有 261 条样本,每条样本都由一条系统提示、一条用户指令和一条模型回答组成,微调过程中模型不断学习样本中的回答风格,从而达到学习文旅知识的目的。数据样例如下所示:

Screenshot 2025-04-18 at 14.49.55.png

模型微调

2.0 监控显存使用情况

在微调过程中,需要持续观测显存用量,及时发现显存用超的情况:

watch -n 1 nvidia-smi

Screenshot 2025-04-18 at 15.15.57.png

2.1 配置参数

进入 WebUI 后,可以切换语言到中文(zh)。首先配置模型,本教程选择 Qwen2-VL-2B-Instruct 模型,微调方法修改为 full,针对小模型使用全参微调方法能带来更好的效果。

Screenshot 2025-04-18 at 14.54.55.png

可以点击「预览数据集」按钮查看训练数据;点击「关闭」按钮返回训练界面:

Screenshot 2025-04-18 at 14.57.55.png

设置学习率为 1e-4,训练轮数为 10,更改计算类型为 pure_bf16,梯度累积为 2,有利于模型拟合。在其他参数设置区域修改保存间隔为 1000,节省硬盘空间。

Screenshot 2025-04-18 at 15.01.55.png

2.2 启动微调

将输出目录修改为 train_qwen2vl,训练后的模型权重将会保存在此目录中。点击「预览命令」可展示所有已配置的参数,如果想通过代码运行微调,可以复制这段命令,在命令行运行。

点击「开始」启动模型微调。

启动微调后需要等待一段时间,待模型下载完毕后可在界面观察到训练进度和损失曲线。模型微调大约需要 14 分钟,显示“训练完毕”代表微调成功。

Screenshot 2025-04-18 at 15.04.51.png

2.3 模型对话

将检查点路径改为 train_qwen2vl

Screenshot 2025-04-18 at 15.08.19.png

选择「Chat」栏,点击「加载模型」即可在 Web UI 中和微调后的模型进行对话。

Screenshot 2025-04-18 at 15.10.15.png

首先点击测试图片并上传至对话框的图像区域,接着在系统提示词区域填写“你是一个导游,请生动有趣地回答游客提出的问题”。在页面底部的对话框输入想要和模型对话的内容,点击提交即可发送消息。

测试图片 1:

test1.jpeg

测试图片 2:

test2.jpeg
test2-1
test-2

参考

https://gallery.pai-ml.com/#/preview/deepLearning/nlp/llama_factory_qwen2vl

<think>嗯,用户想了解如何使用LlamaFactory进行多模态模型微调。首先,我需要回忆一下LlamaFactory的相关资料。根据提供的引用内容,有三个引用:[1]提到了如何启动web界面,[2]是安装步骤,[3]是具体的训练命令。用户的题集中在多模态微调,所以可能需要结合这些引用中的信息,尤其是引用[2]和[3]。 首先,我应该从安装开始,因为用户可能需要先正确安装环境。引用[2]提到要克隆仓库并安装依赖,包括torch和metrics。这可能涉及到安装多模态相关的库,比如处理图像的模块。需要确认多模态模型是否需要额外的依赖,比如transformers或者vision相关的库。 接下来,准备数据集。多模态模型通常需要结合本和图像数据,所以用户可能需要将数据组织成特定的格式,比如JSON,包含图像路径和本标注。可能需要指导用户如何配置数据集,确保路径正确。 然后是配置件。引用[3]中的例子使用了YAML件来指定训练参数,比如模型名称、LoRA配置、批处理大小等。用户需要根据自己的需求调整这些参数,特别是多模态部分,可能需要指定视觉模型的路径或参数。 启动训练时,引用[3]用了export命令设置GPU,然后调用train命令指定配置件。需要提醒用户正确设置CUDA_VISIBLE_DEVICES以及配置件路径。此外,可能需要使用DeepSpeed来优化资源,尤其是在多GPU环境下。 验证阶段,可能需要加载微调后的模型进行测试,确保图像和本都能正确处理。引用[1]提到的web界面可能可以用来可视化训练过程,或者进行模型测试,但用户的题主要是微调,所以这部分可能次要。 用户可能遇到的题包括环境配置错误、数据集格式不正确、路径错误或GPU内存不足。需要建议他们检查依赖安装,确认数据集路径,调整批处理大小,或者使用更低精度的训练方式。 最后,生成相关题时要考虑用户可能的后续疑,比如如何评估多模态模型,处理多模态数据的具体方法,混合训练的技巧,以及常见错误的解决方法。</think>以下为基于LlamaFactory进行多模态大语言模型微调的步骤详解: ### 一、环境准备 1. **克隆仓库与依赖安装** ```bash git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -e .[torch,metrics,vl] # 注意添加vl扩展支持多模态[^2] ``` 需额外安装`torchvision`等视觉处理库 2. **硬件配置** 建议使用至少4张24GB显存的GPU(如3090/4090/A5000) ### 二、数据准备 1. 格式要求: ```json { "images": ["path/to/image1.jpg", "path/to/image2.png"], "conversations": [ {"role": "Human", "content": "描述这张图片"}, {"role": "Assistant", "content": "这是..."} ] } ``` 2. 配置件设置: ```yaml # qwen2vl_lora_sft.yaml model_name_or_path: Qwen/Qwen-VL-Chat # 多模态基座模型 lora_target: c_attn # 注意力层参数适配 per_device_train_batch_size: 2 # 根据显存调整 gradient_accumulation_steps: 8 load_in_4bit: true # 4bit量化节省显存[^3] ``` ### 三、启动训练 ```bash export CUDA_VISIBLE_DEVICES=0,1,2,3 # 指定GPU设备 llamafactory-cli train /path/to/qwen2vl_lora_sft.yaml --deepspeed deepspeed_zero3 ``` 建议使用DeepSpeed优化显存利用率 ### 四、效果验证 ```python from llmtuner import ChatModel model = ChatModel() model.load_model( model_name="Qwen-VL-Chat", adapter_name="/path/to/lora_checkpoint" ) response = model.chat(query="图片里有什么?", image="test.jpg") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值