LLaMA-Factory

LLaMA-Factory是AI模型微调平台,它使用零代码命令行与Web UI可以轻松微调百余种大模型。
LLaMA-Factory特点:

  • 多种模型:LLaMA、LLaVA、Mistral、Mixtral-MoE、Qwen、Qwen2-VL、DeepSeek、Yi、Gemma、ChatGLM、Phi 等等。
  • 集成方法:(增量)预训练、(多模态)指令监督微调、奖励模型训练、PPO 训练、DPO 训练、KTO 训练、ORPO 训练等等。
  • 多种精度:16比特全参数微调、冻结微调、LoRA 微调和基于 AQLM/AWQ/GPTQ/LLM.int8/HQQ/EETQ 的 2/3/4/5/6/8 比特 QLoRA 微调。
  • 先进算法GaLoreBAdamAPOLLOAdam-mini、DoRA、LongLoRA、LLaMA Pro、Mixture-of-Depths、LoRA+、LoftQ 和 PiSSA。
  • 实用技巧FlashAttention-2UnslothLiger Kernel、RoPE scaling、NEFTune 和 rsLoRA。
  • 广泛任务:多轮对话、工具调用、图像理解、视觉定位、视频识别和语音理解等等。
  • 实验监控:LlamaBoard、TensorBoard、Wandb、MLflow、SwanLab 等等。
  • 极速推理:基于 vLLM 的 OpenAI 风格 API、浏览器界面和命令行接口。

官方文档:https://github.com/hiyouga/LLaMA-Factory/blob/main/README_zh.md

1.部署LLaMA-Factory

当前系统版本:CentOS Linux release 7.9.2009 (Core)
安装条件:

1.1.安装依赖

1.1.1.安装CUDA Toolkit

CUDA用于应用调用显卡的系统开发库!
NVIDIA® CUDA® 工具包为创建高性能的 GPU 加速应用程序提供了一个开发环境。借助它,您可以在GPU加速的嵌入式系统、桌面工作站、企业数据中心、基于云的平台和超级计算机上开发、优化和部署您的应用程序。该工具包包括 GPU 加速库、调试和优化工具、C/C++ 编译器和运行时库。
安装包下载地址:https://developer.nvidia.com/cuda-toolkit-archive

# 1.查看当前显卡驱动适合的CUDA版本
[root@localhost ~]# nvidia-smi
| NVIDIA-SMI 550.54.14              Driver Version: 550.54.14      CUDA Version: 12.4

# 2.下载并安装合适版本的的CUDA Toolkit包
[root@localhost ~]# wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
[root@localhost ~]# sh cuda_12.4.0_550.54.14_linux.run

# 3.配置环境变量
[root@localhost ~]# vi /etc/profile
export Path="/Workspace/Tools/anaconda3/bin:/usr/local/cuda-12.4/bin:$PATH"
export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64
[root@localhost ~]# source /etc/profile

# 4.检查CUDA版本以验证完成安装
[root@localhost ~]# nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Tue_Feb_27_16:19:38_PST_2024
Cuda compilation tools, release 12.4, V12.4.99
Build cuda_12.4.r12.4/compiler.33961263_0

1.1.2.安装Anaconda

Anaconda用于快速创建Python虚拟环境!
Anaconda是一个Python的发行版,包括了Python和很多常见的软件库, 和一个包管理器conda。
可以从清华大学开源镜像站中下载Anaconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

```bash
[root@localhost ~]# wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
[root@localhost ~]# bash Anaconda3-2024.10-1-Linux-x86_64.sh

1.1.3.源码安装GCC10

# 1.创建安装目录
[root@localhost ~]# mkdir /usr/local/gcc10
[root@localhost ~]# cd /usr/local/gcc10

# 2.下载并解压源码包
[root@localhost gcc10]# wget https://mirror.tuna.tsinghua.edu.cn/gnu/gcc/gcc-10.5.0/gcc-10.5.0.tar.gz
[root@localhost gcc10]# tar xzvf gcc-10.5.0.tar.gz

# 3.下载依赖
[root@localhost gcc10]# cd gcc-10.5.0
[root@localhost gcc-10.5.0]# ./contrib/download_prerequisites

# 4.配置编译安装源码包
[root@localhost gcc-10.5.0]# ./configure --prefix=/usr/local/gcc10  --enable-languages=c,c++ --enable-checking=release --disable-multilib
[root@localhost gcc-10.5.0]# make -j$(nproc)
[root@localhost gcc-10.5.0]# make install

# 5.配置环境变量
[root@localhost gcc-10.5.0]# vi /etc/profile
export GCC10_HOME=/usr/local/gcc10
export PATH=$GCC10_HOME/bin:$PATH
export LD_LIBRARY_PATH=$GCC10_HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$GCC10_HOME/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$GCC10_HOME/libxec:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$GCC10_HOME/include:$INCLUDE
[root@localhost gcc-10.5.0]# source /etc/profile

# 6.查看当前GCC版本以升级完成
[root@localhost gcc-10.5.0]# gcc -v
使用内建 specs。
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc10/libexec/gcc/x86_64-pc-linux-gnu/10.5.0/lto-wrapper
目标:x86_64-pc-linux-gnu
配置为:./configure --prefix=/usr/local/gcc10/ --enable-languages=c,c++ --enable-checking=release --disable-multilib
线程模型:posix
Supported LTO compression algorithms: zlib
gcc 版本 10.5.0 (GCC)

1.1.4.安装NodeJS

LLaMA-Factory的WEBUI依赖NodeJS!

[root@localhost ~]# mkdir /usr/local/nodejs
[root@localhost ~]# cd /usr/local/nodejs
[root@localhost nodejs]# wget https://nodejs.org/dist/latest-v10.x/node-v10.24.1-linux-x64.tar.gz
[root@localhost nodejs]# vi /etc/profile
# nodejs
export PATH=$PATH:/usr/local/nodejs/node-v10.24.1-linux-x64/bin
[root@localhost nodejs]# source /etc/profile
[root@localhost ~]# node -v
v10.24.1

1.1.5.安装libsndfile

libsndfile是一个广泛使用的C库,用于读写含有采样音频数据的文件,如Windows WAV和Apple/SGI AIFF格式。

[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install libsndfile

1.2.安装LLaMA-Factory

1.2.1.下载源码

[root@localhost ~]# wget https://github.com/hiyouga/LLaMA-Factory/archive/refs/tags/v0.9.1.tar.gz
[root@localhost ~]# tar xzvf v0.9.1.tar.gz
[root@localhost ~]# cd LLaMA-Factory-0.9.1/

1.2.2.使用conda创建Python310的虚拟环境

[root@localhost LLaMA-Factory-0.9.1]# conda create -n LLaMA-Factory python=3.10 -y
[root@localhost LLaMA-Factory-0.9.1]# conda activate LLaMA-Factory
(LLaMA-Factory) [root@localhost LLaMA-Factory-0.9.1]#

1.2.3.安装LLaMA-Factory

(LLaMA-Factory) [root@localhost LLaMA-Factory-0.9.1]# pip install -e ".[torch,metrics]"

1.2.4.查看LLaMA-Factory版本

(LLaMA-Factory) [root@localhost LLaMA-Factory-0.9.1]# llamafactory-cli version
----------------------------------------------------------
| Welcome to LLaMA Factory, version 0.9.1                |
|                                                        |
| Project page: https://github.com/hiyouga/LLaMA-Factory |
----------------------------------------------------------

1.3.启动LLaMA Board可视化微调

1.3.1.启动LLaMA Board

(LLaMA-Factory) [root@localhost LLaMA-Factory]# llamafactory-cli webui
Running on local URL:  http://0.0.0.0:7861

[可选] LLaMA Board由Gradio驱动,允许通过frpc将服务发布到Gradio平台上(免费链接仅有72小时!)。需要安装frpc内网穿透代理工具,若想要使用则需要FQ后手动下载并安装对应包。
从国内镜像站下载包并安装:

(LLaMA-Factory) [root@localhost LLaMA-Factory]# wget https://cdn-media.hf-mirror.com/frpc-gradio-0.2/frpc_linux_amd64
(LLaMA-Factory) [root@localhost LLaMA-Factory-0.9.1]# mv frpc_linux_amd64 frpc_linux_amd64_v0.2
(LLaMA-Factory) [root@localhost LLaMA-Factory-0.9.1]# chmod +x frpc_linux_amd64_v0.2
(LLaMA-Factory) [root@localhost LLaMA-Factory-0.9.1]# mv frpc_linux_amd64_v0.2 /root/anaconda3/envs/LLaMA-Factory/lib/python3.10/site-packages/gradio

重新启动:

(LLaMA-Factory) [root@localhost LLaMA-Factory]# GRADIO_SHARE=True llamafactory-cli webui
Running on local URL:  http://0.0.0.0:7861
Running on public URL: https://be50145ef35ab8d402.gradio.live
This share link expires in 72 hours

1.3.2.访问到LLaMA Board

posted @ 2025-02-26 16:29  RidingWind  阅读(855)  评论(0)    收藏  举报