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

可以看到

相关推荐
洛阳泰山2 分钟前
我用 Java 21 虚拟线程重写了一个 RAG 平台:从架构设计到踩坑实录
java·人工智能·后端
qq_334903155 分钟前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
feasibility.5 分钟前
Agent-Reach赋能OpenClaw成为信息管家:实现GitHub/X/b站/小红书等十大平台信息获取(含手动安装)
人工智能·github·微信公众平台·新浪微博·小红书·openclaw·agent-reach
冷雨夜中漫步6 分钟前
AI入门——什么是知识图谱?
人工智能·知识图谱
Storynone6 分钟前
【Day30】卡码网:46. 携带研究材料,LeetCode:416. 分割等和子集
python·算法·leetcode
Xpower 178 分钟前
Clawith:开启多智能体协作的新纪元
人工智能·python·语言模型·自动化
TsingtaoAI8 分钟前
面向工业互操作性与优化的AI驱动数字孪生语义与模块化编排
人工智能·数字孪生
深小乐11 分钟前
AI 周刊【2026.03.16-03.22】:从算力到 Token,AI 竞争进入全栈时代
人工智能
code 小楊12 分钟前
深度解析RAG系统与AI Agent:原理、架构及协同落地
人工智能·架构
阿钱真强道13 分钟前
28 Python 分类:不只是画一条线,一文认识支持向量机(SVM)
python·支持向量机·分类·svm·边界·核方法·高维