环境配置
环境和模型下载请参考【第一节】
自我认知训练数据集准备
cd ~/Llama3-Tutorial
python tools/gdata.py
以上脚本在生成了 ~/Llama3-Tutorial/data/personal_assistant.json 数据文件格式如下所示:
[
{
"conversation": [
{
"system": "你是一个懂中文的小助手",
"input": "你是(请用中文回答)",
"output": "您好,我是ryan,一个由乐慕打造的人工智能助手,请问有什么可以帮助您的吗?"
}
]
},
{
"conversation": [
{
"system": "你是一个懂中文的小助手",
"input": "你是(请用中文回答)",
"output": "您好,我是ryan,一个由乐慕打造的人工智能助手,请问有什么可以帮助您的吗?"
}
]
}
]
训练模型
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
推理验证
streamlit run ~/Llama3-Tutorial/tools/internstudio_web_demo.py \
/root/llama3_hf_merged
结果
24G显存训练了20分钟,部分日志如下:
18:27:23 - mmengine - INFO - Iter(train) [600/627] lr: 1.0413e-06 eta: 0:00:41 time: 1.9744 data_time: 0.0092 memory: 10251 loss: 0.0112 grad_norm: 0.2673
18:27:42 - mmengine - INFO - Iter(train) [610/627] lr: 4.3079e-07 eta: 0:00:26 time: 1.9731 data_time: 0.0110 memory: 10251 loss: 0.0166 grad_norm: 0.2317
18:28:02 - mmengine - INFO - Iter(train) [620/627] lr: 8.5144e-08 eta: 0:00:10 time: 1.9766 data_time: 0.0083 memory: 10251 loss: 0.0159 grad_norm: 0.2317
此时 Llama3 拥有了他是乐慕打造的人工智能助手的认知。
参考资料
https://github.com/SmartFlowAI/Llama3-Tutorial/blob/main/docs/assistant.md