Skip to main content

LLaMA-Factory

基本信息

镜像名称分类镜像版本 (以 github 中release 版本号或者对应 commit id)软件环境Github测试机器制作时间
LLaMA-Factory高级镜像v0.7.1ubuntu = 20.04 python = 3.11 cuda = 12.1 vllm = 0.4.3https://github.com/hiyouga/LLaMA-FactoryH800 A800 40902024.06.05

镜像介绍

LLaMA-Factory是一个开源项目,旨在简化和优化大规模语言模型的训练和部署,该镜像提供高训练、便捷的模型部署和丰富的数据处理、评估工具,包括可视化LLaMA Board GUI。

使用步骤

1. 云平台机器配置

❗️需要挂载公开数据 \ ❗️所有的测试最多需要2卡,可以直接开2卡

机器添加 ssh 公钥:

  1. cd /root/.ssh
  2. vi authorized_keys
  3. 添加 public key 后保存

2. 登录 HuggingFace

huggingface-cli login
# Enter your hf token

image image

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 可视化界面

开放本地端口

  1. 云主机界面查看 SSH 连接方式
  2. 本地 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
  1. 云平台 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

Huggingface

vLLM