ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0px 1em;color: rgb(63, 63, 63);">8 卡 H100 大模型训练环境部署文档ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(250, 81, 81);">目标:在 Ubuntu 22.04 系统上部署一个支持模型训练和推理的深度学习环境,基于 8 张 NVIDIA H100 GPU,支持 LLaMA-Factory 和 DeepSpeed 分布式训练。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(250, 81, 81);">硬件环境:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;color: rgb(63, 63, 63);" class="list-paddingleft-1">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">• GPU:8 张 NVIDIA H100(80GB HBM3)ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">日期:2025年4月17日
目录
- 1. 系统准备
1.1 更新系统并安装基础工具
1.2 配置存储
1.3 配置网络 - 2. NVIDIA 驱动与 CUDA 配置
2.1 安装 NVIDIA 驱动
2.2 安装 NVIDIA Fabric Manager
2.3 安装 CUDA 特定版本 可选
2.4 安装 cuDNN 特定版本 可选 - 3. Anaconda 环境配置
3.1 安装 Anaconda
3.2 创建 Conda 环境 - 4. PyTorch 和依赖安装
4.1 安装 PyTorch 【必须】
4.2 安装 FlashAttention - 5. LLaMA-Factory 配置
5.1 安装 LLaMA-Factory
5.2 配置数据集和模型
5.3 模型格式转换(可选) - 6. 运行训练和推理任务
6.1 训练任务
6.2 推理任务 - 7. 辅助工具安装
7.1 安装 llama.cpp
7.2 安装 nvitop - 9. 安装过程AI分析
9.1 有效命令与关键安装
9.2 无效或重复命令 - 10. 故障排查
10.1 CUDA Error 802 (system not yet initialized)
1. 系统准备
1.1 更新系统并安装基础工具
确保系统包最新并安装必要工具:
sudoapt-get update
sudoapt install -y net-tools iputils-ping iptables parted lrzsz vim axel unzip cmake gcc make build-essential ninja-build
1.2 配置存储
为大数据集和模型检查点配置 NVMe SSD 和 LVM:
# 检查磁盘
fdisk -l
lsblk
# 分区 NVMe 磁盘
parted /dev/nvme0n1
# 命令:mklabel gpt, mkpart primary ext4 0% 100%, set 1 lvm on, quit
# 格式化分区
mkfs.ext4 /dev/nvme0n1p1
# 创建 LVM 逻辑卷
sudolvcreate -n backup-lv -l 100%FREE ubuntu-vg
mkfs.ext4 /dev/ubuntu-vg/backup-lv
# 创建挂载点
mkdir/data /backup
# 配置 /etc/fstab
sudovi /etc/fstab
# 添加以下内容(使用 blkid 获取 UUID):
# UUID=<nvme0n1p1-uuid> /data ext4 defaults 0 0
# /dev/ubuntu-vg/backup-lv /backup ext4 defaults 0 0
# 挂载
sudomount -a
验证:
- • 检查目录:
ls -larth /data/ /backup/
1.3 配置网络
确保网络接口支持高带宽通信:
cd/etc/netplan/
sudovi 00-installer-config.yaml
# 示例配置(根据实际网卡调整):
network:
ethernets:
enp25s0f0:
dhcp4: no
addresses: [10.1.1.10/24]
gateway4: 10.1.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
version: 2
sudonetplan apply
验证:
- • 检查网卡状态:
ethtool enp25s0f0
2. NVIDIA 驱动与 CUDA 配置
2.1 安装 NVIDIA 驱动
安装 H100 适配的 NVIDIA 数据中心驱动:
cd/data/install_deb/
sudochmod+x NVIDIA-Linux-x86_64-570.124.06.run
sudo./NVIDIA-Linux-x86_64-570.124.06.run --no-x-check --no-nouveau-check --no-opengl-files
验证:
- • 检查模块:
lsmod | grep nvidia
版本:
2.2 安装 NVIDIA Fabric Manager
为多 GPU 系统安装 Fabric Manager,支持 NVLink 和高效通信:
cd/data/install_deb/
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/nvidia-fabricmanager-570_570.124.06-1_amd64.deb
sudoapt-get install ./nvidia-fabricmanager-570_570.124.06-1_amd64.deb
systemctlenablenvidia-fabricmanager
systemctl restart nvidia-fabricmanager
验证:
- • 检查状态:
systemctl status nvidia-fabricmanager - • 检查 Fabric Manager:
nvidia-smi -q | grep -i -A 2 Fabric
版本:
- • Fabric Manager:570.124.06
2.3 安装 CUDA 特定版本 可选
安装 CUDA 12.4,支持 PyTorch 和深度学习任务:
cd/data/install_deb/
wget https://developer.download.nvidia.com/compute/cuda/12.8.0/local_installers/cuda_12.4.0_550.54.14_linux.run
sudo./cuda_12.4.0_550.54.14_linux.run --no-x-check --no-nouveau-check --no-opengl-files
# 配置环境变量
echo'export CUDA_HOME=/usr/local/cuda-12.4'>> ~/.bashrc
echo'export PATH=$CUDA_HOME/bin
PATH'>> ~/.bashrc
echo'export LD_LIBRARY_PATH=$CUDA_HOME/lib64
LD_LIBRARY_PATH'>> ~/.bashrc
source~/.bashrc
验证:
- • 检查 CUDA 版本:
nvcc --version
版本:
2.4 安装 cuDNN 特定版本 可选
安装 cuDNN,提升深度学习性能:
cd/data/install_deb/
wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/local_installers/cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudodpkg -i cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudoapt-get update
sudoapt-get install -y libcudnn9-cuda-12 libcudnn9-dev-cuda-12
验证:
- • 检查 cuDNN 版本:
cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
版本:
3. Anaconda 环境配置
3.1 安装 Anaconda
安装 Anaconda 用于环境隔离:
cd/data/install_deb/
wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
bash Anaconda3-2024.10-1-Linux-x86_64.sh
echo'export PATH="/root/anaconda3/bin
PATH"'>> ~/.bashrc
source~/.bashrc
conda init
验证:
- • 检查 Conda 版本:
conda --version
版本:
3.2 创建 Conda 环境
创建隔离环境llama_factory:
conda create -n llama_factory python=3.12
conda activate llama_factory
验证:
- • 检查 Python 版本:
python --version
4. PyTorch 和依赖安装
4.1 安装 PyTorch 【必须】
安装 PyTorch 2.5.1,支持 CUDA 12.4:
conda activate llama_factory
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124
验证:
- • 检查 PyTorch:
python-c"importtorch;print(torch.__version__);print(torch.cuda.is_available());print(torch.version.cuda);print(torch.cuda.device_count());print([torch.cuda.get_device_name(i)foriinrange(torch.cuda.device_count())])"
版本:
4.2 安装 FlashAttention
安装 FlashAttention,提升 Transformer 模型性能:
pipinstallflash_attn-2.7.4.post1+cu12torch2.5cxx11abiFALSE-cp312-cp312-linux_x86_64.whl
验证:
- • 检查安装:
pip show flash-attn - • 测试:
python-c"importflash_attn;print('FlashAttentioninstalledsuccessfully!')"
版本:
5. LLaMA-Factory 配置
5.1 安装 LLaMA-Factory
克隆并安装 LLaMA-Factory:
cd/data
gitclonehttps://github.com/hiyouga/LLaMA-Factory.git
cdLLaMA-Factory
pip install llamafactory==0.9.0 -i https://repo.huaweicloud.com/repository/pypi/simple
验证:
- • 检查版本:
llamafactory-cli --version
版本:
5.2 配置数据集和模型
准备数据集和预训练模型:
cd/data
tar xvf checkpoint-214971.tar
tar xvf Qwen2___5-7B-Instruct.tar
mvQwen2___5-7B-Instruct qwen25_7BI
# 移动数据集
cd/data/SKData
mvdata/*.jsonl ./
# 配置 dataset_info.json
cd/data/LLaMA-Factory/data
vim dataset_info.json
# 示例配置:
{
"v5": {
"file_name":"/data/SKData/new_step_data_20250317_train_ocv.jsonl",
"columns": {
"prompt":"prompt",
"response":"response"
}
},
"ddz_dataset": {
"file_name":"/data/ddz_dataset/ai_data_training_v1.0.json",
"columns": {
"prompt":"prompt",
"response":"response"
}
}
}
5.3 模型格式转换(可选)
将 Hugging Face 模型转换为 GGUF 格式,用于llama.cpp推理:
cd/data/llama.cpp
python convert_hf_to_gguf.py /data/checkpoint-214971 --outfile /data/qwen2-model.gguf
验证:
- • 检查 GGUF 文件:
ls -larth /data/qwen2-model.gguf
6. 运行训练和推理任务
6.1 训练任务
使用 DeepSpeed 和多 GPU 进行模型微调:
conda activate llama_factory
FORCE_TORCHRUN=1 DISABLE_VERSION_CHECK=1 CUDA_VISIBLE_DEVICES=0,1 llamafactory-cli train examples/qwen2_7b_freeze_sft_ddz_v1.yaml
配置文件示例(qwen2_7b_freeze_sft_ddz_v1.yaml):
model_name_or_path:/data/qwen25_7BI
dataset:v5,ddz_dataset
template:qwen
finetuning_type:freeze
use_deepspeed:true
deepspeed:ds_configs/stage3.json
per_device_train_batch_size:4
gradient_accumulation_steps:8
learning_rate:5e-5
num_train_epochs:3
output_dir:/data/checkpoint
验证:
- • 监控 GPU 使用:
nvitop或nvidia-smi - • 检查日志:
tail -f /data/checkpoint/train.log
6.2 推理任务
启动 API 服务进行推理:
conda activate llama_factory
API_PORT=6000 CUDA_VISIBLE_DEVICES=4,5 llamafactory-cli api examples/test_7b_dcot.yaml
配置文件示例(test_7b_dcot.yaml):
model_name_or_path:/data/checkpoint-214971
template:qwen
infer_backend:vllm
vllm_args:
gpu_memory_utilization:0.9
max_model_len:4096
7. 辅助工具安装
7.1 安装 llama.cpp
用于模型转换和轻量推理:
cd/data
gitclonehttps://github.com/ggerganov/llama.cpp
cdllama.cpp
mkdirbuild &&cdbuild
cmake .. -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES=90
cmake --build . --config Release
验证:
- • 测试推理:
./build/bin/llama-cli-m/data/qwen2-model.gguf--prompt"WhatisthecapitalofFrance?"-n256-t8--gpu-layers28-c4096
7.2 安装 nvitop
用于 GPU 监控:
pipinstallnvitop
验证:
版本:
8. 版本汇总
9. 安装过程AI分析
9.1 有效命令与关键安装
以下是.bash_history中有效的关键安装步骤,经过筛选和整理:
- 1.NVIDIA 驱动(
NVIDIA-Linux-x86_64-570.124.06.run):
- • 命令:
sudo ./NVIDIA-Linux-x86_64-570.124.06.run --no-x-check --no-nouveau-check --no-opengl-files - • 分析:570.124.06 是 H100 GPU 的最新数据中心驱动,安装成功,
nvidia-smi显示 8 张 H100 GPU。 - • 注意:多次尝试安装其他驱动版本(如 550、535),最终确认 570.124.06 最稳定。
- 2.NVIDIA Fabric Manager(
nvidia-fabricmanager-570_570.124.06-1_amd64.deb): - • 命令:
sudo apt-get install ./nvidia-fabricmanager-570_570.124.06-1_amd64.deb - • 分析:Fabric Manager 确保多 GPU 间 NVLink 高效通信,
systemctl status nvidia-fabricmanager确认服务运行正常,未进行安装可导致错误,详见 10.1。
- 3.CUDA 12.4(
cuda_12.4.0_550.54.14_linux.run): - • 命令:
sudo ./cuda_12.4.0_550.54.14_linux.run --no-x-check --no-nouveau-check --no-opengl-files - • 分析:CUDA 12.4 与 PyTorch 2.5.1 和 H100 兼容,环境变量配置正确,
nvcc --version显示 12.4.0。
- 4.cuDNN(
cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb): - • 命令:
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb && sudo apt-get install -y libcudnn9-cuda-12 libcudnn9-dev-cuda-12 - • 分析:cuDNN 9.0.0 增强深度学习性能,安装成功,
cat /usr/include/cudnn_version.h确认版本。
- 5.FlashAttention(
flash_attn-2.7.4.post1+cu12torch2.5cxx11abiFALSE-cp312-cp312-linux_x86_64.whl): - • 命令:
pip install flash_attn-2.7.4.post1+cu12torch2.5cxx11abiFALSE-cp312-cp312-linux_x86_64.whl - • 分析:使用预编译 wheel 避免编译问题,
ninja-build确保依赖完整,pip show flash-attn确认安装。
- • 命令:
pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124 - • 分析:PyTorch 2.5.1 与 CUDA 12.4 和 H100 兼容,多次卸载重装确保环境一致,
python -c "import torch; print(torch.cuda.is_available())"确认 GPU 可用。
- • 命令:
pip install llamafactory==0.9.0 transformers==4.46.1 accelerate==0.34.2 deepspeed==0.15.4 vllm==0.8.2 -i https://repo.huaweicloud.com/repository/pypi/simple - • 分析:LLaMA-Factory 0.9.0 稳定运行,
DISABLE_VERSION_CHECK=1解决版本冲突,vllm提供高效推理。
9.2 无效或重复命令
- •重复安装驱动:多次尝试
nvidia-driver-550、nvidia-driver-535等,最终使用570.124.06,早期版本无效。 - •Conda 渠道配置:多次调整 Conda 渠道(如
conda-forge、pytorch),但 PyTorch 最终通过 pip 安装,Conda 渠道配置影响有限。 - •FlashAttention 编译失败:尝试从源代码编译
flash-attn(git clone和python setup.py install),因依赖复杂失败,改为预编译 wheel。 - •vllm 安装问题:多次尝试不同版本(如 0.6.2、0.7.2),最终 0.8.2 兼容 LLaMA-Factory。
- •冗余命令:如
conda init llamafactory(无效,正确为conda init bash)、多次ls -larth和ps auxf用于调试,文档中已精简。
10. 故障排查
- • 检查模块:
lsmod | grep nvidia - • 清理旧驱动:
sudo apt purge nvidia*
- •CUDA 未检测到 GPU:CUDA initialization: Unexpected error from cudaGetDeviceCount
- • 验证环境变量:
echo $CUDA_HOME $LD_LIBRARY_PATH - • 检查 PyTorch:
python -c "import torch; print(torch.cuda.is_available())"
- • 确保
ninja已安装:ninja --version - • 使用预编译 wheel 或降级 Python 到 3.11。
- • 设置
DISABLE_VERSION_CHECK=1绕过检查。 - • 确保
transformers==4.46.1。
- • 检查
use_beam_search参数,必要时修改/root/anaconda3/envs/llama_factory/lib/python3.12/site-packages/llamafactory/chat/vllm_engine.py。
10.1 CUDA Error 802 (system not yet initialized)
- •错误日志:
CUDA initialization: Unexpected error from cudaGetDeviceCount(). Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 802: system not yet initialized(2025-04-15 17:45:57, 13:10:42)。 - • NVIDIA Fabric Manager 服务未启动或版本与驱动不匹配。
- •解决方法:
检查 Fabric Manager: systemctl unmask nvidia-fabricmanager.service
sudorm-f /lib/systemd/system/nvidia-fabricmanager.service
sudorm-f /etc/systemd/system/nvidia-fabricmanager.service
sudoapt-get remove nvidia-fabricmanager*
sudoapt-get install ./nvidia-fabricmanager-570_570.124.06-1_amd64.deb
sudosystemctlenablenvidia-fabricmanager
sudosystemctl restart nvidia-fabricmanager
- •验证:
python -c"import torch; print(torch.cuda.is_available()); print(torch.cuda.device_count())"
nvidia-smi