离线部署大模型依赖无网络住宅主机

为什么要在无网络住宅主机上部署大模型依赖

很多用户把家用 PC 或旧服务器改造成内网大模型工作站,但这类主机通常没有上网权限(比如物理隔离、弱网环境)。
大模型依赖的 Python 包动辄几十个,加上模型文件本身可能超过 10GB,直接 pip install 会失败。
离线部署大模型依赖到无网络住宅主机,核心思路就是“用一台能联网的机器当搬运机,把所有依赖和模型打包好,再通过 U 盘或局域网传到目标主机上安装”。

准备工作:你需要一台能联网的“搬运机”

  • 联网机器:任何能正常上网的电脑(Linux / macOS / Windows 都可以),用来下载依赖包和模型。
  • 无网络主机:需要安装大模型的目标机器,系统推荐 Ubuntu 20.04+ 或 CentOS 7+。
  • 传输介质:U 盘(建议 32GB 以上)、移动硬盘,或者两台机器在同一个内网里(通过直连网线或路由器)。
  • Python 环境:目标主机上提前装好 Python 3.8+(建议 3.10),如果还没装,需要离线安装 Python,参考另一篇教程。

第一步:在联网机器上下载所有依赖包

先确定你要运行的大模型框架(比如 Transformers、PyTorch、vLLM 等)。
下面以常见的 transformers + torch 为例。

  1. 创建一个空目录,存放所有离线包:
   mkdir offline_packages
   cd offline_packages
  1. 生成依赖列表。如果你已经有项目代码,直接导出 requirements.txt
   pip freeze > requirements.txt

如果没有现成项目,可以手动写一个最小依赖文件,例如写入以下内容:

   transformers>=4.30.0
   torch>=2.0.0
   accelerate
   sentencepiece
  1. pip download 命令下载所有依赖包及其子依赖:
   pip download -r requirements.txt -d ./ --platform manylinux2014_x86_64 --only-binary=:all:
参数说明:-d ./ 指定下载到当前目录;--platform 指定目标主机架构(如果你目标主机是 x86_64 则用这个);--only-binary=:all: 只下载预编译的 wheel 包,避免目标主机上缺少编译工具。
  1. 下载模型文件(可选)。用 Hugging Face 的 snapshot_download 或直接手动下载:
   pip install huggingface_hub
   huggingface-cli download meta-llama/Llama-2-7b-chat-hf --local-dir ./model_cache

注意:模型文件很大,确保存储空间充足。

第二步:打包传输到无网络主机

  • 将所有下载的 .whl 文件和模型文件夹打包成一个压缩包:
  tar czf offline_deploy.tar.gz ./*
  • 通过 U 盘复制到目标主机,或用 scp(如果两台机器在同一网段):
  scp offline_deploy.tar.gz user@192.168.1.100:/home/user/

第三步:离线安装依赖与模型文件

  1. 在无网络主机上解压:
   tar xzf offline_deploy.tar.gz
   cd offline_packages
  1. 离线安装所有 .whl 文件:
   pip install --no-index --find-links . -r requirements.txt

--no-index 禁止联网索引,--find-links . 指定从当前目录查找包。

  1. 验证安装是否成功:
   python -c "import transformers; print(transformers.__version__)"
   python -c "import torch; print(torch.__version__)"

如果输出版本号,说明依赖安装正常。

  1. 将模型文件移动到合适位置(例如 ~/.cache/huggingface/hub/):
   mv model_cache ~/.cache/huggingface/hub/

或直接在代码中指定路径。

避坑指南:常见错误与解决方法

  • pip download 报错“No matching distribution”:通常是因为你指定的 --platform 和目标主机架构不一致。先 uname -m 确认目标主机架构(x86_64 还是 aarch64),然后在下载时使用正确的平台值。
  • 安装时提示“ERROR: Could not find a version that satisfies the requirement”:很可能 requirements.txt 里写死了某个版本,但下载时没有拉取其依赖。建议用 pip download -r requirements.txt -d ./ 不加 --only-binary 试试,但会下载源码包;若目标主机缺少编译环境则更麻烦。推荐始终使用 --only-binary 并提前检查依赖关系。
  • 模型文件太大,U 盘空间不足:优先使用移动硬盘或内网传输。也可以只下载模型权重文件,忽略不必要的文件(如 tokenizer 配置等必备的)。
  • 目标主机没有 pip:先用安装包离线安装 pip。从联网机器下载 get-pip.py,再 python get-pip.py --no-index(需要预先下载 pip 的 wheel)。

验证最终效果

用一段简单代码测试整个流程是否可用:

from transformers import AutoTokenizer, AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("./model_cache")
tokenizer = AutoTokenizer.from_pretrained("./model_cache")
inputs = tokenizer("Hello, I am a language model", return_tensors="pt")
outputs = model.generate(**inputs)
print(tokenizer.decode(outputs[0]))

如果输出推理结果,那恭喜你——离线部署大模型依赖到无网络住宅主机已经成功了。

高频问题解答

Q:我必须使用特定的 Python 版本吗?
A:建议与联网机器版本一致,避免二进制包兼容问题。可以用 pyenv 多版本管理。

Q:我的目标主机是 ARM 架构(比如树莓派),怎么处理?
A:在下载时把 --platform 改成 manylinux2014_aarch64,并且找对应的预编译包。部分包可能没有 ARM 的 wheel,需要源码编译。

Q:每次更新依赖都要重新打包吗?
A:如果你只是更新少量包,可以单独下载单个 wheel 文件,再用 pip install --no-index 安装即可,不需要重新打包全部。

如果你正在处理离线部署大模型依赖到无网络住宅主机的任务,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
本地私有Git仓库存储建站与中转脚本
下一篇
容器网络互通隔离双重安全配置:容器网络互通与隔离双重安全配置
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意