news 2026/6/15 19:22:14

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/15 14:23:30

FaceFusion本地部署指南:Windows环境配置

FaceFusion本地部署指南&#xff1a;Windows环境配置 在AI视觉创作领域&#xff0c;人脸替换技术正从“炫技”走向实用。无论是短视频创作者想实现跨年龄演绎&#xff0c;还是影视后期需要修复老片画质&#xff0c;一个稳定、高效且可本地运行的人脸处理工具都显得尤为关键。F…

作者头像 李华
网站建设 2026/6/15 0:07:13

HttpURLConnection 与其他客户端关系

HttpURLConnection 与其他HTTP客户端的关系1. HttpURLConnection 是什么&#xff1f;基本概念&#xff1a;java// JDK原生HTTP客户端 URL url new URL("https://api.example.com/data"); HttpURLConnection connection (HttpURLConnection) url.openConnection(); …

作者头像 李华
网站建设 2026/6/15 15:36:42

FLUX.1-dev结合IP-Adapter图像生成实践

FLUX.1-dev 结合 IP-Adapter 图像生成实践 在当前多模态生成模型的爆发期&#xff0c;我们正见证从“能画出来”到“精准画出你想要的”这一关键跃迁。以往依赖纯文本提示生成图像的方式&#xff0c;虽然灵活&#xff0c;但在人物一致性、风格复现和构图控制上始终存在不确定性…

作者头像 李华
网站建设 2026/6/14 14:43:41

在VSCode中使用Excalidraw绘制示意图

在 VSCode 中使用 Excalidraw 绘制示意图 你有没有过这样的经历&#xff1a;正在写一份技术文档&#xff0c;突然想画个架构图来说明流程&#xff0c;结果不得不停下思路&#xff0c;切换到另一个工具——Draw.io、Figma 或者 Visio——花十几分钟搭出几个框和箭头&#xff1f;…

作者头像 李华
网站建设 2026/6/15 12:20:16

LobeChat能否实现断点续传?网络不稳定应对策略

LobeChat能否实现断点续传&#xff1f;网络不稳定应对策略 在移动办公普及、远程协作常态化的今天&#xff0c;AI 聊天助手早已从“锦上添花”变为“生产刚需”。无论是写代码、起草邮件&#xff0c;还是处理客户咨询&#xff0c;用户期望的是一个始终在线、稳定响应的智能伙伴…

作者头像 李华
网站建设 2026/6/14 18:20:07

MongoDB: 升级版本至:5.0.28

说明&#xff1a; 限制因素&#xff1a; 服务器为centos7, sdk1.8,springboot2.7.18 &#xff0c;spring-data-mongodb3.4.18&#xff0c; mongodb-driver-core4.6.1 centos7 官网下载选项可支持7.0.26等高版本。 spring-data-mongodb3.4.18 最高支持5.0。 当前选择&#xf…

作者头像 李华