news 2026/6/10 16:00:38

LLaMA-Factory本地部署与离线安装指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LLaMA-Factory本地部署与离线安装指南

LLaMA-Factory本地部署与离线安装实战指南

在大模型技术飞速发展的今天,越来越多企业和开发者希望基于主流预训练模型构建专属的垂直领域AI能力。然而,从环境配置到微调训练,整个流程往往伴随着复杂的依赖管理和网络限制问题——尤其是在内网部署、数据安全要求严格的生产环境中。

LLaMA-Factory 正是为解决这一痛点而生。它不仅集成了全参数微调、LoRA、QLoRA 等多种高效微调方法,还提供了直观的 WebUI 操作界面,真正实现了“开箱即用”。更关键的是,其对多后端推理引擎(如 vLLM)、量化格式(GPTQ/AWQ/HQQ)和优化技术(FlashAttention-2、Unsloth)的全面支持,让资源受限场景下的高性能训练成为可能。

但如果你所在的服务器无法访问公网?如何确保在防火墙之后依然能顺利搭建这套系统?本文将带你一步步完成本地化部署完全离线安装的全过程,尤其适用于金融、政务、制造等对网络隔离有严格要求的行业环境。


我们先从最简单的在线安装说起,再深入剖析无网环境下的完整迁移方案。你会发现,只要掌握核心思路,即使是跨机器的复杂部署,也能变得清晰可控。


若目标机器具备外网连接能力,推荐采用标准在线方式快速启动。整个过程分为四个步骤:克隆代码、创建虚拟环境、安装依赖、启动服务。

首先执行项目拉取:

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

--depth 1参数可以显著减少下载体积和时间,特别适合仅需最新版本的场景。

接下来建议使用 Conda 创建独立 Python 环境以避免依赖冲突:

conda create -n llamafactory python=3.11 -y conda activate llamafactory

Python 3.10+ 是必须的,因为部分底层库(如transformerspeft)已不再兼容旧版本。

然后安装主包及其扩展组件:

pip install -e ".[torch,metrics]"

这里的-e表示可编辑模式安装,便于后续调试源码;[torch,metrics]则包含了 PyTorch 基础运行时以及评估指标所需库(如evaluate,nltk)。

根据实际需求,你还可以追加更多功能模块。例如:

组件功能说明
deepspeed支持 ZeRO 分布式优化策略,适用于大规模模型或多卡训练
bitsandbytes实现 4-bit/8-bit 量化训练(NF4/FP4),大幅降低显存占用
gptq,awq,hqq,eetq兼容不同厂商或社区推出的量化模型加载
vllm集成 PagedAttention 技术的高速推理后端,提升吞吐量
galore,badam新型优化器支持,适合长序列或低秩更新场景
qwen,modelscope加载通义千问系列模型所需的阿里云工具链

一个典型的完整安装命令如下:

pip install -e ".[torch,metrics,bitsandbytes,vllm,gptq]"

等待所有依赖安装完成后,即可通过以下命令启动图形化界面:

python webui.py

默认服务监听在http://localhost:7860。如果需要远程访问,应绑定开放地址并指定端口:

python webui.py --host 0.0.0.0 --port 8080

此时打开浏览器输入对应 IP 和端口,就能看到熟悉的 LLaMA-Factory 页面,开始进行数据集上传、模型选择和训练配置了。


然而,在真实的企业环境中,事情往往没这么简单。许多计算节点处于物理隔离或逻辑隔离的内网中,既不能访问 GitHub,也无法连接 PyPI 镜像站。这时候就需要一套可靠的离线部署流程

我们的策略是:借助一台可联网的“中转机”预先构建好完整运行环境,打包后迁移到目标机器上解压复用。这种方法本质上是将“安装行为”转化为“文件传输”,绕过了网络限制。

整个流程包括五个阶段:
1. 在中转机准备代码和依赖
2. 缓存所有 pip 包并安装
3. 使用 conda-pack 打包 Python 环境
4. 将环境与项目文件一并传输至目标机
5. 解压、激活、验证并启动服务

前提条件如下:
- 一台可上网的 Linux x86_64 中转机(Ubuntu/CentOS 均可)
- 一台架构相同的离线目标机
- 已手动下载 LLaMA-Factory 主分支压缩包
- 目标机已安装基础工具:tar,unzip,condaminiconda

首先在中转机创建专用环境:

conda create -n llamafactory python=3.11 -y conda activate llamafactory

接着安装用于环境打包的工具:

conda install -c conda-forge conda-pack -y

然后解压项目代码:

unzip LLaMA-Factory-main.zip -d LLaMA-Factory cd LLaMA-Factory

最关键的一步是提前缓存所有 Python 依赖包。由于目标机无网,我们必须在中转机上把所有 pip 安装项下载到本地目录,供后续离线安装使用:

mkdir -p ~/llamafactory-offline-pkgs pip download ".[torch,metrics,bitsandbytes,vllm]" \ -d ~/llamafactory-offline-pkgs \ -i https://pypi.tuna.tsinghua.edu.cn/simple \ --find-links ~/llamafactory-offline-pkgs \ --no-index --prefer-binary

这里使用清华 TUNA 镜像源提高下载成功率,并通过--no-index强制只从本地查找,防止意外联网尝试。

下载完成后,正常执行一次安装操作,确保中转机环境可用(这也有助于检测缺失项):

pip install ".[torch,metrics,bitsandbytes,vllm]" \ -i https://pypi.tuna.tsinghua.edu.cn/simple

如有需要,还可额外安装推理服务支持库:

pip install "xinference[transformers,vllm]" -i https://pypi.tuna.tsinghua.edu.cn/simple

现在进入打包阶段。退出项目目录,使用conda pack将整个环境压缩成单个.tar.gz文件:

cd ~ mkdir -p /opt/llamafactory/env conda pack -n llamafactory -o /opt/llamafactory/env/llamafactory.tar.gz

这个压缩包包含了 Python 解释器、已安装的所有第三方库(含 CUDA 相关动态链接库.so文件)、环境变量脚本等,几乎相当于一个“便携式运行时”。

为了方便管理,我们可以进一步将环境包和 pip 缓存合并归档:

cd /opt/llamafactory tar -czf offline-deps.tar.gz env/llamafactory.tar.gz ../llamafactory-offline-pkgs/

最终得到的offline-deps.tar.gz即为可用于离线部署的完整资源包,可通过 SCP、U盘、内网传输等方式送入目标机器。

在目标机上,首先解压该文件:

cd /opt/llamafactory tar -xzf offline-deps.tar.gz

然后解压 Conda 环境:

cd env mkdir llamafactory tar -xzf llamafactory.tar.gz -C llamafactory

注意不要直接解压到根目录,否则会污染当前 shell 环境。

接下来激活环境:

source /opt/llamafactory/env/llamafactory/bin/activate

激活成功后,可通过以下命令验证:

which python pip list | grep torch

预期应返回正确的路径和已安装的包列表。

为进一步确认环境完整性,建议编写一个简单的测试脚本test_env.py

import torch import sys print("✅ Python Version:", sys.version) print("✅ Torch Version:", torch.__version__) print("✅ CUDA Available:", torch.cuda.is_available()) if torch.cuda.is_available(): print("✅ GPU Device:", torch.cuda.get_device_name(0)) print("✅ Current Device ID:", torch.cuda.current_device()) else: print("⚠️ CUDA not available. Running on CPU.") try: import transformers print("✅ transformers imported") except ImportError as e: print("❌ Failed to import transformers:", e) try: import peft print("✅ PEFT (LoRA support) imported") except ImportError as e: print("❌ Failed to import peft:", e) try: from vllm import LLM print("✅ vLLM imported (if installed)") except ImportError: pass

运行:

python test_env.py

理想输出应显示 Python 版本正确、PyTorch 可用、CUDA 正常识别 GPU(如有),且关键库均可导入。

一旦验证通过,就可以进入项目目录并启动 WebUI:

cd /opt/llamafactory/LLaMA-Factory source /opt/llamafactory/env/llamafactory/bin/activate python webui.py --host 0.0.0.0 --port 7860

访问http://<server-ip>:7860,你应该能看到完整的图形界面,可以自由选择模型、上传数据集、设置 LoRA 参数并提交训练任务。


在实际部署过程中,可能会遇到一些典型问题,以下是常见情况及应对建议。

❌ 模块找不到:ModuleNotFoundError: No module named 'xxx'

这类错误通常源于两个原因:一是环境未正确激活,二是某些原生扩展(如.so文件)在打包时被遗漏。

解决方案
- 每次使用前务必执行source <path>/bin/activate
- 若仍报错,回到中转机重新安装该模块后再打包
- 对于 NCCL、cuDNN 等硬件级依赖,建议目标机安装匹配版本的 NVIDIA 驱动和 CUDA Toolkit

⚠️ 显存映射警告:UserWarning: nvidia_gpu_memory_maps is not enabled

此提示意味着 GPU 显存映射未开启,可能影响多卡通信效率,特别是在使用 DeepSpeed 时。

建议启用持久模式并设置功率上限:

sudo nvidia-smi -pm 1 # 启用持久模式 sudo nvidia-smi -i 0 -pl 300 # 设置 GPU0 功率上限为 300W(按显卡型号调整)

这不仅能改善性能,还能加快设备初始化速度。

💡 如何更新离线环境?

当需要升级框架版本或添加新依赖时,无需从头再来。只需在中转机上:
1. 拉取新版代码或更新requirements.txt
2. 使用pip download获取新增包
3. 重新执行conda pack
4. 替换目标机原有环境包并解压

需要注意的是,不建议跨 Python 大版本或 CUDA 架构迁移环境。例如,Python 3.10 打包的环境不应在 3.12 上解压使用,否则可能导致 ABI 不兼容问题。


最后分享几点来自工程实践的最佳建议,帮助你在不同场景下更高效地利用 LLaMA-Factory。

应用场景推荐做法
多用户共享平台使用 Docker 容器封装环境,结合 Nginx 实现反向代理与多实例负载均衡
大规模分布式训练配合 DeepSpeed + SSH 免密登录,启用 ZeRO-3 分片策略以支持百亿级以上模型
生产环境长期运行集成 MLflow 记录实验日志,定期将 checkpoints 备份至对象存储(如 MinIO/S3)
多项目并行开发为每个项目创建独立虚拟环境或容器,避免依赖版本冲突

此外,对于安全性要求较高的单位,建议在容器或虚拟机中运行微调任务,实现资源与权限的双重隔离。


LLaMA-Factory 的价值不仅在于其强大的功能整合,更体现在它对“易用性”的极致追求。无论是个人开发者想快速验证 SFT 效果,还是企业团队要在内网构建私有化 AI 平台,这套工具都能显著缩短从想法到落地的时间周期。

更重要的是,它的离线部署能力为企业级应用打开了大门。只要掌握了“中转机制包 + conda-pack 迁移”这一核心范式,哪怕面对最严格的网络管控环境,也能从容应对。

📚 官方文档:https://llamafactory.readthedocs.io
💬 项目地址:GitHub - hiyouga/LLaMA-Factory

动手试试吧,你的专属大模型可能只需要一次部署、一次点击。

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:22:42

用Deepseek-v3.1在Trae中构建AI中继服务

用 Deepseek-v3.1 在 Trae 中构建 AI 中继服务 在本地开发 AI 应用时&#xff0c;我们常常会遇到这样一个问题&#xff1a;某些工具链或 SDK 只支持 OpenAI 的接口规范&#xff0c;但实际想调用的却是国产大模型平台&#xff08;如百度飞桨星河社区&#xff09;提供的服务。由于…

作者头像 李华
网站建设 2026/6/10 13:50:35

LobeChat能否辅助法律咨询?律师工作效率翻倍

LobeChat能否辅助法律咨询&#xff1f;律师工作效率翻倍 在律所加班到凌晨的场景并不罕见&#xff1a;一份复杂的并购合同需要逐条核对&#xff0c;客户却要求第二天一早就给出修改意见&#xff1b;年轻律师面对劳动纠纷案件时拿不准赔偿标准&#xff0c;只能反复查阅过往判例&…

作者头像 李华
网站建设 2026/6/10 15:09:57

VSCode Jupyter集成Anything-LLM智能问答

VSCode Jupyter集成Anything-LLM智能问答 当你在Jupyter Notebook里写到第17个单元格时&#xff0c;突然卡住了—— “这个user_segment_v2字段……到底是以注册时间划分的&#xff0c;还是基于消费行为聚类的结果&#xff1f;” 你翻遍项目目录&#xff0c;只找到一份命名混乱…

作者头像 李华
网站建设 2026/6/10 15:15:26

Protobuf 3.1.0 安装与C++使用指南

Protobuf 3.1.0 安装与 C 使用实践指南 在构建高性能分布式 AI 系统时&#xff0c;数据序列化的效率往往成为系统吞吐量的瓶颈。尤其是在 PaddlePaddle 这类深度学习框架中&#xff0c;模型结构、算子描述和参数传输都需要频繁地进行跨进程甚至跨设备的数据交换。这时候&#…

作者头像 李华
网站建设 2026/6/9 19:55:13

基于PaddleOCR的中文识别项目搭建:推荐使用conda与清华镜像源

基于PaddleOCR的中文识别项目搭建&#xff1a;推荐使用conda与清华镜像源 在企业推进数字化转型的过程中&#xff0c;文档自动化处理已成为提升效率的关键一环。尤其是面对大量非结构化中文文本——如发票、合同、身份证件等&#xff0c;如何快速、准确地提取其中的文字信息&am…

作者头像 李华
网站建设 2026/6/8 11:53:47

随机森林:当“三个臭皮匠”成为数据科学家的超能力

随机森林&#xff1a;当“三个臭皮匠”成为数据科学家的超能力当你面对一堆复杂的调查问卷&#xff0c;每个人都有自己的判断标准时&#xff0c;随机森林就像是把所有人的智慧集合起来&#xff0c;让你在预测时不仅更准确&#xff0c;还更稳定。想象一下&#xff0c;你要在城市…

作者头像 李华