LLaMA-Factory
基本信息
镜像名称 | 分类 | 镜像版本 (以 github 中release 版本号或者对应 commit id) | 软件环境 | Github | 测试机器 | 制作时间 |
---|---|---|---|---|---|---|
LLaMA-Factory | 高级镜像 | v0.7.1 | ubuntu = 20.04 python = 3.11 cuda = 12.1 vllm = 0.4.3 | https://github.com/hiyouga/LLaMA-Factory | H800 A800 4090 | 2024.06.05 |
镜像介绍
LLaMA-Factory是一个开源项目,旨在简化和优化大规模语言模型的训练和部署,该镜像提供高训练、便捷的模型部署和丰富的数据处理、评估工具,包括可视化LLaMA Board GUI。
使用步骤
1. 云平台机器配置
❗️需要挂载公开数据 \ ❗️所有的测试最多需要2卡,可以直接开2卡
机器添加 ssh 公钥:
- cd
/root/.ssh
- vi authorized_keys
- 添加 public key 后保存
2. 登录 HuggingFace
huggingface-cli login
# Enter your hf token
3. 创建软连接
❗️由于云平台机器储存空间有限,建议把.cache软链到数据盘
mv .cache dataDisk
ln -s /root/dataDisk/.cache .cache
4. 快速开始 LLaMA-Factory
# 进入LLaMA-Factory目录
cd /root/LLaMA-Factory
❗️4090额外环境变量设置
export NCCL_P2P_DISABLE="1"
export NCCL_IB_DISABLE="1"
单卡测试
【官网案例】Llama3-8B-Instruct模型的LoRA微调、推理和合并
注:❗️如果不想下载hf模型权重,可以将yaml文件中的model_name_or_path
设置成:
/root/commonData/Meta-Llama-3-8B-Instruct
Step 1: lora fine-tuning(预计12min)
如果不想下载hf模型权重,可以将llama3_lora_sft.yaml文件中的 model_name_or_path
设置成:
/root/commonData/Meta-Llama-3-8B-Instruct
# vi examples/lora_single_gpu/llama3_lora_sft.yaml
CUDA_VISIBLE_DEVICES=0 llamafactory-cli train examples/lora_single_gpu/llama3_lora_sft.yaml
训练成功后,lora 权重在默认条件下被保存到了以下路径:/root/LLaMA-Factory/saves/llama3-8b/
接下来我们可以利用训练好的 lora 权重,结合原模型权重进行推理。
Step 2: inference
如果不想下载hf模型权重,可以将llama3_lora_sft.yaml文件中的 model_name_or_path
设置成:
/root/commonData/Meta-Llama-3-8B-Instruct
# vi examples/inference/llama3_lora_sft.yaml
CUDA_VISIBLE_DEVICES=0 llamafactory-cli chat examples/inference/llama3_lora_sft.yaml
💡exit退出对话测试
Step 3: merging lora
如果前面用了本地模型权重,需要将llama3_lora_sft.yaml文件中的 model_name_or_path
设置成:
/root/commonData/Meta-Llama-3-8B-Instruct
# vi examples/merge_lora/llama3_lora_sft.yaml
CUDA_VISIBLE_DEVICES=0 llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml
多卡测试(2卡,预计13mins)
【官网案例】
如果不想下载hf模型权重,可以将llama3_lora_sft.yaml文件中的model_name_or_path
设置成:
/root/commonData/Meta-Llama-3-8B-Instruct
# vi examples/lora_multi_gpu/llama3_lora_sft.yaml
CUDA_VISIBLE_DEVICES=0,1 llamafactory-cli train examples/lora_multi_gpu/llama3_lora_sft.yaml
5. 启动 LLaMA Board GUI 可视化界面
开放本地端口
- 云主机界面查看 SSH 连接方式
- 本地 terminal
ssh -CNg -L 8003:0.0.0.0:7860 root@云主机地址 -p 云主机port
# 例如ssh -CNg -L 8003:0.0.0.0:7860 root@xxx.xxx.xxx.xxx -p 31100
- 云平台 terminal
# 将frpc_linux_amd64_v0.2文件复制到指定位置
cp /root/commonData/OpenSora-1.0/frpc_linux_amd64_v0.2 /opt/conda/lib/python3.11/site-packages/gradio
cd /root/LLaMA-Factory
CUDA_VISIBLE_DEVICES=0 GRADIO_SHARE=1 llamafactory-cli webui
4. 访问本地网站:http://0.0.0.0:8003/ 或者 http://localhost:8003/
训练测试
模型路径:/root/commonData/Colossal-LLaMA-2-7b-base
评估测试
模型路径:/root/commonData/Colossal-LLaMA-2-7b-base
对话测试
模型路径:/root/commonData/Colossal-LLaMA-2-7b-base