使用XTuner微调llama3模型。
参考https://github.com/SmartFlowAI/Llama3-Tutorial
1. web demo部署
已经完成web demo部署,进行对话测试, 当前回答基于llama3官方发布的模型进行推理生成:
2. 自我认知训练数据集准备
cd ~/Llama3-Tutorial python tools/gdata.py
生成了 ~/Llama3-Tutorial/data/personal_assistant.json 数据文件如下:
[
{
"conversation": [
{
"system": "你是一个懂中文的小助手",
"input": "你是(请用中文回答)",
"output": "您好,我是SmartFlowAI,一个由 SmartFlowAI 打造的人工智能助手,请问有什么可以帮助您的吗?"
}
]
},
{
"conversation": [
{
"system": "你是一个懂中文的小助手",
"input": "你是(请用中文回答)",
"output": "您好,我是SmartFlowAI,一个由 SmartFlowAI 打造的人工智能助手,请问有什么可以帮助您的吗?"
}
]
}
]
3.训练模型
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 格式,第一个是config,第二个是工作路径,第三个是转换后的存储路径
xtuner convert pth_to_hf /root/llama3_pth/llama3_8b_instruct_qlora_assistant.py \
/root/llama3_pth/iter_500.pth \
/root/llama3_hf_adapter
# 模型合并,第一原始llama3权重路径,第二huggingface格式的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
4.推理验证,对应合并完成的路径
streamlit run ~/Llama3-Tutorial/tools/internstudio_web_demo.py \
/root/llama3_hf_merged
此时 Llama3 拥有了他是自己打造的人工智能助手的认知。