统信UOS系统中部署Llama-Factory完整指南
环境概览
在国产操作系统上运行大模型微调框架,已成为许多政企团队关注的重点。统信UOS作为国产操作系统代表,结合Llama-Factory开源框架,可构建一套完整的本地化AI训练环境。本文基于统信UOS Desktop 20和NVIDIA RTX 3090,记录从驱动配置到WebUI启动的完整流程。
硬件与系统要求
| 组件 | 最低配置 |
|---|---|
| 操作系统 | 统信UOS Desktop 20 (x86_64) |
| 内核版本 | ≥ 5.15 |
| CPU | Intel i7 / AMD Ryzen 7 或同级别 |
| 内存 | ≥ 32GB,建议额外16GB交换空间 |
| 显卡 | NVIDIA RTX 3090 / A4000 或更高 |
| 存储 | 至少100GB空间用于模型缓存 |
注意:ARM架构对PyTorch支持有限,推荐使用x86平台。
NVIDIA驱动与CUDA安装
方法一:应用商店安装
打开统信应用商店,搜索"NVIDIA驱动",选择最新版本安装,重启系统后生效。
方法二:手动安装(推荐)
从NVIDIA官网下载对应驱动,例如 NVIDIA-Linux-x86_64-535.113.01.run。
sudo systemctl stop lightdm
chmod +x NVIDIA-Linux-x86_64-*.run
sudo ./NVIDIA-Linux-x86_64-*.run --no-opengl-files
--no-opengl-files 参数避免覆盖系统图形库。安装后运行 nvidia-smi 验证。
安装CUDA工具包
sudo apt install nvidia-cuda-toolkit
检查CUDA版本:nvcc --version,若提示未找到,需将 /usr/local/cuda/bin 加入 PATH。
Python环境配置
安装Miniconda
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
创建独立环境
conda create -n llama-factory python=3.10
conda activate llama-factory
配置镜像源加速
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
部署Llama-Factory
克隆仓库
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
安装PyTorch(关键步骤)
根据CUDA版本选择:
- CUDA 11.8:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 - CUDA 12.1:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
安装其他依赖
pip install -r requirements.txt
常见错误处理
ERROR: Could not build wheels for triton:可忽略,不影响QLoRA。ImportError: libcudart.so:设置环境变量export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH,并添加到~/.bashrc。
启动WebUI
python src/webui.py --host 0.0.0.0 --port 7860
访问 http://localhost:7860。若中文字体显示为方框,安装字体包:
sudo apt install fonts-noto-cjk -y
远程访问需开放端口:sudo ufw allow 7860
QLoRA微调示例
模型准备
下载Qwen-7B-Chat模型到本地目录,例如 ~/models/Qwen-7B-Chat。
WebUI训练配置
| 参数 | 值 |
|---|---|
| Model Type | Qwen |
| Model Name or Path | /home/user/models/Qwen-7B-Chat |
| Dataset | alpaca_en(内置) |
| Fine-tuning Method | LoRA |
| Quantization Bit | 4 |
| LoRA Target Modules | q_proj, v_proj |
| Batch Size per Device | 1 |
| Gradient Accumulation Steps | 8 |
| Learning Rate | 3e-4 |
| Epochs | 3 |
| Output Directory | /home/user/output/qwen_lora |
点击"Start"按钮,等效命令行如下:
python src/train_bash.py \
--stage sft \
--do_train \
--model_name_or_path /home/user/models/Qwen-7B-Chat \
--dataset alpaca_en \
--template default \
--finetuning_type lora \
--lora_target q_proj,v_proj \
--output_dir /home/user/output/qwen_lora \
--per_device_train_batch_size 1 \
--gradient_accumulation_steps 8 \
--learning_rate 3e-4 \
--num_train_epochs 3.0 \
--fp16 \
--plot_loss \
--quantization_bit 4 \
--device_map auto
显存占用约18-20GB,页面可实时查看Loss曲线。
问题排查汇总
| 现象 | 原因 | 解决方法 |
|---|---|---|
nvidia-smi 无输出 | 使用了开源nouveau驱动 | 重新安装官方.run驱动 |
libcudart.so 缺失 | CUDA路径未配置 | 添加 LD_LIBRARY_PATH 环境变量 |
| WebUI连接失败 | 绑定127.0.0.1 | 启用 --host 0.0.0.0 |
| 中文字体显示异常 | 缺少CJK字体 | 安装 fonts-noto-cjk |
| 训练时OOM崩溃 | 批量大小过大 | 减小batch_size,启用梯度检查点 |
后台运行建议
nohup python src/webui.py --host 0.0.0.0 --port 7860 > llama_factory.log 2>&1 &
技术优势
该方案实现了三个关键闭环:
- 数据闭环:所有训练数据与模型权重存储在本地,杜绝数据外泄。
- 控制闭环:从底层驱动到应用层完全自主可控。
- 成本闭环:使用消费级显卡即可完成7B模型微调。
未来随着国产加速卡对PyTorch的兼容性提升,此模式可平滑迁移至全国产硬件环境。