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

可以看到

相关推荐
白熊1883 分钟前
【计算机视觉】OpenCV实战项目:基于OpenCV与face_recognition的实时人脸识别系统深度解析
人工智能·opencv·计算机视觉
noravinsc7 分钟前
InforSuite AS 可以发布django和vue项目是否可行
vue.js·python·django
闭月之泪舞8 分钟前
OpenCv高阶(4.0)——案例:海报的透视变换
人工智能·opencv·计算机视觉
九亿AI算法优化工作室&29 分钟前
乡村地区无人机医药配送路径规划与优化仿真
人工智能·算法·matlab·回归
jndingxin32 分钟前
OpenCV CUDA模块中矩阵操作-----矩阵最大最小值查找函数
人工智能·opencv
AI technophile35 分钟前
OpenCV计算机视觉实战(5)——图像基础操作全解析
python·opencv·计算机视觉
AI Echoes38 分钟前
LLM(大语言模型)部署加速方法——PagedAttention
人工智能·语言模型·自然语言处理
Time Famine40 分钟前
射击游戏demo11
python·游戏·pygame
yangshuo12811 小时前
风车OVF镜像:解放AI开发限制的Ubuntu精简系统
linux·人工智能·ubuntu
Jamence1 小时前
多模态大语言模型arxiv论文略读(七十七)
人工智能·语言模型·自然语言处理