InternLM-llama3微调(进阶作业)

微调llama3 增强图片理解

复制代码
#环境配置
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
cd ~
git clone -b v0.1.18 https://github.com/InternLM/XTuner
cd XTuner
pip install -e .[all]
cd ~
git clone https://github.com/SmartFlowAI/Llama3-Tutorial
#准备模型
#1 llama3模型
mkdir -p ~/model
cd ~/model
git lfs install
git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct
#2准备 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 .
#3准备 Llava 将要用到的 Image Projector 部分权重
mkdir -p ~/model
cd ~/model
ln -s /root/share/new_models/xtuner/llama3-llava-iter_2181.pth .

Llama3-8B-Instruct 权重:这是核心的模型权重,负责处理文本数据和执行指令性任务。
Visual Encoder 权重(openai/clip-vit-large-patch14-336):用于图像理解,将图像转换成模型可以理解的表示。
Image Projector 权重:这个权重通常用于进一步处理从 Visual Encoder 得到的图像表示,使其更适合与文本数据进行融合和交互。

Image Projector 输入图像 图像向量 输入文本 文本Embedding模型 文本向量 L L M 输出文本

#准备数据

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 ~/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py --work-dir ~/llama3_llava_pth --deepspeed deepspeed_zero2

但是我出现了显卡不够的情况

把命令替换成xtuner train ~/Llama3-Tutorial/configs/llama3-llava/llava_llama3_8b_instruct_qlora_clip_vit_large_p14_336_lora_e1_finetune.py --work-dir ~/llama3_llava_pth --deepspeed deepspeed_zero2_offload

区别在于:后者是显存不足,内存来补。 看到训练正常了

然后比较训练前和训练后

复制代码
#训练前
export MKL_SERVICE_FORCE_INTEL=1
xtuner chat /root/model/Meta-Llama-3-8B-Instruct \
  --visual-encoder /root/model/clip-vit-large-patch14-336 \
  --llava /root/llama3_llava_pth/pretrain_iter_2181_hf \
  --prompt-template llama3_chat \
  --image /root/tutorial/xtuner/llava/llava_data/test_img/oph.jpg
#训练后
export MKL_SERVICE_FORCE_INTEL=1
xtuner chat /root/model/Meta-Llama-3-8B-Instruct \
  --visual-encoder /root/model/clip-vit-large-patch14-336 \
  --llava /root/llama3_llava_pth/iter_1200_hf \
  --prompt-template llama3_chat \
  --image /root/tutorial/xtuner/llava/llava_data/test_img/oph.jpg

可以看到

相关推荐
兰亭妙微20 分钟前
用户体验的真正边界在哪里?对的 “认知负荷” 设计思考
人工智能·ux
13631676419侯25 分钟前
智慧物流与供应链追踪
人工智能·物联网
TomCode先生27 分钟前
MES 离散制造核心流程详解(含关键动作、角色与异常处理)
人工智能·制造·mes
zd20057238 分钟前
AI辅助数据分析和学习了没?
人工智能·学习
johnny23344 分钟前
强化学习RL
人工智能
乌恩大侠1 小时前
无线网络规划与优化方式的根本性变革
人工智能·usrp
放羊郎1 小时前
基于萤火虫+Gmapping、分层+A*优化的导航方案
人工智能·slam·建图·激光slam
王哈哈^_^1 小时前
【数据集+完整源码】水稻病害数据集,yolov8水稻病害检测数据集 6715 张,目标检测水稻识别算法实战训推教程
人工智能·算法·yolo·目标检测·计算机视觉·视觉检测·毕业设计
lskisme1 小时前
springboot maven导入本地jar包
开发语言·python·pycharm
SEOETC1 小时前
数字人技术:虚实交融的未来图景正在展开
人工智能