Llama 3 五一超级课堂中实践llama3的部署,微调,量化优化部署学习总结:第二部分基于自我认知数据,使用XTuner 微调 Llama3-8b模型

本次学习分享基于Llama3-Tutorial(Llama 3 超级课堂)分享,git地址如下

GitHub - SmartFlowAI/Llama3-Tutorial: Llama3-Tutorial(XTuner、LMDeploy、OpenCompass)gLlama3-Tutorial(XTuner、LMDeploy、OpenCompass). Contribute to SmartFlowAI/Llama3-Tutorial development by creating an account on GitHub.icon-default.png?t=N7T8https://github.com/SmartFlowAI/Llama3-Tutorial/此外感谢InternStudio提供的大模型实训平台,还有学习群内小伙伴的相互帮助。

llama3-8b对话模型部署

步骤1:conda环境设置,命令如下

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

步骤2:下载已经训练好的llama3的权重

情况1:单独下载:通过从OpenXLab中获取权重

方法:安装 git-lfs 依赖

# 如果下面命令报错则使用 apt install git git-lfs -y
conda install git-lfs
git-lfs install

下载模型

git clone https://code.openxlab.org.cn/MrCat/Llama-3-8B-Instruct.git Meta-Llama-3-8B-Instruct

情况2:软链接 InternStudio 中的模型(用于InternStudio平台)

方法:

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

步骤3:Llama3-Tutorial及XTuner项目部署

部署SmartFlowAI/Llama3-Tutorial

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

部署InternLM/XTuner时需要安装对应的库

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

步骤4:微调数据准备

在Llama3-Tutorial项目中使用tools/gdata.py来创建自我认知训练数据集,脚本运行结果如下

从运行结果来看,所有数据都是相同的(后面有时间可以使用其他数据,写一个脚本更改成相同格式即可)

步骤5:使用XTuner来微调模型

cd ~/Llama3-Tutorial

# 开始训练,使用 deepspeed 加速,A100 40G显存 耗时24分钟
xtuner train configs/assistant/llama3_8b_instruct_qlora_assistant.py --work-dir /root/llama3_pth

# Adapter PTH 转 HF 格式
xtuner convert pth_to_hf /root/llama3_pth/llama3_8b_instruct_qlora_assistant.py \
  /root/llama3_pth/iter_500.pth \
  /root/llama3_hf_adapter

# 模型合并
export MKL_SERVICE_FORCE_INTEL=1
xtuner convert merge /root/model/Meta-Llama-3-8B-Instruct \
  /root/llama3_hf_adapter\
  /root/llama3_hf_merged

其中如果直接使用官方提供的命令,在显存有限的环境下会报错,所有需要对xtuner train configs/assistant/llama3_8b_instruct_qlora_assistant.py --work-dir /root/llama3_pth这条命令进行修改,修改如下

xtuner train configs/assistant/llama3_8b_instruct_qlora_assistant.py --work-dir /root/llama3_pth --deepspeed deepspeed_zero2

或者

xtuner train configs/assistant/llama3_8b_instruct_qlora_assistant.py --work-dir /root/llama3_pth --deepspeed deepspeed_zero2_offload

可以在显存受限的环境下进行微调训练,但是也要保证自身的显存配置在此之上,如下图所示

下图为训练中的损失及训练完成后的测试效果

步骤5: web端部署测试

streamlit run ~/Llama3-Tutorial/tools/internstudio_web_demo.py \
  /root/llama3_hf_merged

测试效果如下图

存在问题

问题1:模型保存路径

由于使用的是InternStudio平台,所以模型保存的路径在部署或者微调训练到其他平台时会有不同,需要对此注意

问题2:Xtuner工具微调

Xtuner提供不同的微调策略及对应的适配模型,本次微调只是使用了部分微调策略,后续会对Xtuner项目中的微调策略及适配模型进行进一步测试和学习,Xtuner的git地址如下

https://github.com/InternLM/xtunericon-default.png?t=N7T8https://github.com/InternLM/xtuner

问题3:大量相同的训练样本导致测试效果不佳
对此后续会使用开源或者自行收集的数据集来进行训练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值