24G显存 微调 Llama3 图片理解多模态

XTuner 微调 Llama3 图片理解多模态

本次实验基于 Llama3-8B-Instruct 和 XTuner 团队预训练好的 Image Projector 微调自己的多模态图文理解模型 LLaVA。实验平台为InternStudio,实验所用的显存为24G。
在这里插入图片描述

环境、模型、数据准备

配置环境

先来配置相关环境。使用如下指令便可以安装好一个 python=3.10 pytorch=2.1.2+cu121 的基础环境了。

conda create -n llama3 python=3.10
conda activate llama3
conda install pytorch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 pytorch-cuda=12.1 -c pytorch -c nvidia

接下来安装 XTuner。

cd ~
git clone -b v0.1.18 https://github.com/InternLM/XTuner
cd XTuner
pip install -e .[all]

最后 clone 本Llama3-Tutorial仓库。

cd ~
git clone https://github.com/SmartFlowAI/Llama3-Tutorial

模型准备

准备Llama3权重
在微调开始前,首先来准备 Llama3-8B-Instruct 模型权重。在InternStudio内部的share文件夹里边有模型权重。

mkdir -p ~/model
cd ~/model
ln -s /root/share/new_models/meta-llama/Meta-Llama-3-8B-Instruct .

接下来准备 Llava 所需要的 openai/clip-vit-large-patch14-336,权重,即 Visual Encoder 权重。

mkdir -p ~/model
cd ~/model
ln -s /root/share/new_models/openai/clip-vit-large-patch14-336 .

准备 Image Projector 权重。

mkdir -p ~/model
cd ~/model
ln -s /root/share/new_models/xtuner/llama3-llava-iter_2181.pth .

数据准备
使用过拟合的方式快速实现。可以执行以下代码:

cd ~
git clone https://github.com/InternLM/tutorial -b camp2
python ~/tutorial/xtuner/llava/llava_data/repeat.py \
  -i ~/tutorial/xtuner/llava/llava_data/unique_data.json \
  -o ~/tutorial/xtuner/llava/llava_data/repeated_data.json \
  -n 200

如果自己想构建数据集参考此处

微调过程

使用如下指令以启动训练:

xtuner train /root/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py --work-dir /root/model/llama3_llava_pth --deepspeed deepspeed_zero2_offload

训练过程所需显存约为14170左右 MiB,训练所需时间为4小时48分钟。

05/09 11:24:43 - mmengine - INFO - Iter(train) [  10/1200]  lr: 5.1430e-05  eta: 4:48:31  time: 14.5475  data_time: 0.0383  memory: 14172  loss: 1.4195
05/09 11:26:59 - mmengine - INFO - Iter(train) [  20/1200]  lr: 1.0857e-04  eta: 4:36:40  time: 13.5897  data_time: 0.0298  memory: 14170  loss: 0.5519
05/09 11:29:13 - mmengine - INFO - Iter(train) [  30/1200]  lr: 1.6571e-04  eta: 4:30:23  time: 13.4613  data_time: 0.0273  memory: 14170  loss: 0.5242
05/09 11:31:29 - mmengine - INFO - Iter(train) [  40/1200]  lr: 2.0000e-04  eta: 4:26:41  time: 13.5791  data_time: 0.0361  memory: 14170  loss: 0.4559
05/09 11:33:52 - mmengine - INFO - Iter(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值