当前位置:首页 > 技术 > 正文内容

统信UOS系统中部署Llama-Factory完整指南

访客 技术 2026年7月8日 1

环境概览

在国产操作系统上运行大模型微调框架,已成为许多政企团队关注的重点。统信UOS作为国产操作系统代表,结合Llama-Factory开源框架,可构建一套完整的本地化AI训练环境。本文基于统信UOS Desktop 20和NVIDIA RTX 3090,记录从驱动配置到WebUI启动的完整流程。

硬件与系统要求

组件最低配置
操作系统统信UOS Desktop 20 (x86_64)
内核版本≥ 5.15
CPUIntel 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 TypeQwen
Model Name or Path/home/user/models/Qwen-7B-Chat
Datasetalpaca_en(内置)
Fine-tuning MethodLoRA
Quantization Bit4
LoRA Target Modulesq_proj, v_proj
Batch Size per Device1
Gradient Accumulation Steps8
Learning Rate3e-4
Epochs3
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的兼容性提升,此模式可平滑迁移至全国产硬件环境。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。