跳到主要内容

AMD ROCm 与 LLamaFactory

引言

在人工智能技术迅猛发展的时代,越来越多的开发者和技术爱好者正积极投身于这一领域,希望通过构建和训练自己的模型来解锁各种创新应用的可能性。

本教程在Ubuntu环境下,配置AMD GPU驱动、conda配置Python环境,进而使用LLamaFactory调优模型。

实验环境

在此环境下成功部署LLamaFactory并调优模型。希望给予参考。

参数
显卡AMD® Radeon rx 6800 xt
处理器AMD® Ryzen 9 5900x 12-core processor x 24
内存32.0 GiB
操作系统名称Ubuntu 22.04.4 LTS
操作系统类型64位

显卡驱动Radeon™ Software for Linux® version 24.10.3 for Ubuntu 22.04.4 HWE

驱动安装

卸载旧驱动

amdgpu-install --uninstall
sudo apt remove --purge amdgpu-install

安装新驱动

  1. 依赖库
sudo apt update
sudo apt install -y libstdc++-12-dev
wget https://repo.radeon.com/amdgpu-install/6.1.3/ubuntu/jammy/amdgpu-install_6.1.60103-1_all.deb
sudo dpkg -i ./amdgpu-install_6.1.60103-1_all.deb
sudo amdgpu-install --usecase=graphics,multimedia,multimediasdk,rocm,rocmdev,rocmdevtools,lrt,opencl,openclsdk,hip,hiplibsdk,openmpsdk,mllib,mlsdk --no-dkms -y
  1. 环境变量
# rocm
export GFX_ARCH=gfx1100
export HCC_AMDGPU_TARGET=gfx1100
export CUPY_INSTALL_USE_HIP=1
export ROCM_VERSION=6.1
export ROCM_HOME=/opt/rocm
export LD_LIBRARY_PATH=/usr/include/vulkan:/opt/rocm/include:/opt/rocm/lib:$LD_LIBRARY_PATH
export PATH=/home/eliran/.local/bin:/opt/amdgpu/bin:/opt/rocm/bin:/opt/rocm/llvm/bin:$PATH
export HSA_OVERRIDE_GFX_VERSION=11.0.0
export ROCR_VISIBLE_DEVICES=GPU-1c1ba06da38c59a5
export GPU_DEVICE_ORDINAL=0,1
export HIP_VISIBLE_DEVICES=0,1
export CUDA_VISIBLE_DEVICES=0,1
export LLAMA_HIPLAS=0,1
export DRI_PRIME=1
export OMP_DEFAULT_DEVICE=1
# vulkan
export GGML_VULKAN_DEVICE=0,1
export GGML_VK_VISIBLE_DEVICES=0,1
export VULKAN_SDK=/usr/share/vulkan
注意

这一步很重要,必要依赖项没有安装完整,环境变量没有设置正确,会一直提示找不到ROCm。

验证是否安装成功

rocminfo

会打印如下类似信息:

******                  
Agent 2
*******
Name: gfx1100
Uuid: GPU-b14ca445df90862b
Marketing Name: Radeon RX 6800 XT
Vendor Name: AMD
Feature: KERNEL_DISPATCH
Profile: BASE_PROFILE
Float Round Mode: NEAR
Max Queue Number: 128(0x80)
Queue Min Size: 64(0x40)
Queue Max Size: 131072(0x20000)
Queue Type: MULTI
Node: 1

*******
Agent 3
*******
Name: gfx1100
Uuid: GPU-2ff143adb661d5fb
Marketing Name: Radeon RX 6800 XT
Vendor Name: AMD
Feature: KERNEL_DISPATCH
Profile: BASE_PROFILE
Float Round Mode: NEAR
Max Queue Number: 128(0x80)
Queue Min Size: 64(0x40)
Queue Max Size: 131072(0x20000)
Queue Type: MULTI
Node: 2

安装 MiniConda

获取脚本

wget https://repo.miniconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 或者
curl -O https://repo.miniconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

安装

sh Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc

验证

# 可以看到默认的conda环境预置的包
conda list

安装和配置 LLamaFactory

创建并激活llama Factory环境

conda create --name llamaFactory python=3.11
conda activate llamaFactory

安装 llama Factory

克隆仓库

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

如果没有git,apt install git

安装依赖

pip3 install --pre torch torchvision torchaudio metrics --index-url https://download.pytorch.org/whl/nightly/rocm6.1

其他可选的额外依赖项,根据自己需要选择:torch、torch-npu、metrics、deepspeed、bitsandbytes、hqq、eetq、gptq、awq、aqlm、vllm、galore、badam、qwen、modelscope、quality。

验证

微调

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

推理

llamafactory-cli chat examples/inference/llama3_lora_sft.yaml

导出模型

llamafactory-cli export examples/merge_lora/llama3_lora_sft.yaml

使用LLaMA Factory Web界面进行调优训练

llamafactory-cli webui

执行这个命令后,在浏览器中访问 http://127.0.0.1:7860 即可看到界面。