LLaMA-Factory 微调训练
该框架功能,标注-微调-导出-合并-部署,一整条流程都有,而且训练时消耗的gpu算力也会小一些
一,安装(推荐在linux中训练,win可以用wsl+docker)
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
# 根据cuda版本选择安装pytoch版本
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 提前把gpu版本的torch安装好
pip install -e .[torch,metrics]
# 遇到包冲突时,使用 pip install --no-deps -e . 解决
# 测试torch是否可用gpu
命令行输入python
import torch
print(torch.cuda.is_available()) #返回True则说明torch可用gpu
二,训练
1,数据集的准备和配置
参考:https://github.com/hiyouga/LLaMA-Factory/blob/main/data/README_zh.md
# 我自己使用的是 角色对话 的数据集格式
[
{
"conversations": [
{
"from": "human",
"value": "人类指令"
},
{
"from": "gpt",
"value": "模型回答"
}
],
"system": "系统提示词(选填)",
}
]
需要同步修改 dataset_info.json 中的配置(开始训练时会根据这个文件去找定义好的存放数据的json文件)
"yi_6b_chat": {
"file_name": "yi_6b_chat_520_24000.json",
"formatting": "sharegpt", # 表示数据使用的格式
"tags": { # 和数据集中的格式一一对应
"role_tag": "from",
"content_tag": "value",
"user_tag": "human",
"assistant_tag": "gpt"
}
},
2,训练,启动web ui界面(ui 界面训练只支持单卡,多卡只能通过命令行训练)
训练命令:
CUDA_VISIBLE_DEVICES=0 GRADIO_SHARE=1 llamafactory-cli webui
三,vllm部署(不一定是llama3的模型,自己根据 llama3_vllm.yaml 配置修改就行,配置文件中也可用修改用huggingface部署)
1,vllm安装很多坑,pytorch版本和cuda版本必须保持一致兼容,使用pytoch的docker镜像可用省事很多,先看pytorch的版本,pytorch版本11.8,12.1,最好是cuda11.8版本的cuda和torch
2,vllm启动会预先分配一定的显存,也可用自行修改,如还有其他应用要启动,可用调低一些
启动命令:
CUDA_VISIBLE_DEVICES=0,1 API_PORT=8000 llamafactory-cli api examples/inference/llama3_vllm.yaml