让 Llama 3 支持离线使用的核心思路是在有网环境提前准备好模型与依赖,再在无网环境完成本地安装与启动。下面给出三种易落地的方案,按“准备 → 离线搬运 → 离线启动”组织,便于直接照做。
方案一 Ollama + Open WebUI 离线部署(推荐)
- 准备阶段(有网)
- 安装 Ollama(Windows/macOS/Linux),并可通过命令行执行 ollama 验证安装成功。
- 预先拉取模型并缓存到本地:执行 ollama pull llama3:8b(或 llama3:70b)。如计划改模型存放路径,设置环境变量 OLLAMA_MODELS 指向你的目录。
- 在有网机器安装 Docker,拉取 Open WebUI 镜像:执行
- GPU 版:docker pull ghcr.io/open-webui/open-webui:cuda
- CPU 版:docker pull ghcr.io/open-webui/open-webui:main
- 离线搬运
- 将 Ollama 安装包、已缓存的模型目录(OLLAMA_MODELS 指向的目录)拷贝到离线机。
- 将 Open WebUI 镜像导出为 tar:docker save -o open-webui.tar ghcr.io/open-webui/open-webui:main(或 :cuda)。
- 离线启动
- 在离线机安装 Ollama 并配置 OLLAMA_MODELS 指向模型目录,执行 ollama run llama3:8b 确认可离线启动。
- 导入并启动 Open WebUI:docker load -i open-webui.tar,然后运行
- GPU:docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
- CPU:docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
- 浏览器访问 http://localhost:3000 使用。
方案二 原生 Python 方式离线运行(Hugging Face 权重)
- 准备阶段(有网)
- 在 Meta Llama 3 下载页注册并获取签名下载链接(链接通常 24 小时或一定下载次数后过期)。
- 克隆仓库:git clone https://github.com/meta-llama/llama3.git && cd llama3
- 安装依赖:pip install -e .
- 运行下载脚本,粘贴签名 URL,选择需要的模型(如 8B/8B-Instruct/70B/70B-Instruct)。
- 离线搬运
- 将整个仓库目录(含已下载的模型权重与脚本)拷贝到离线机。
- 离线启动
- 在离线机执行示例推理:
- torchrun --nproc_per_node=1 example_chat_completion.py --ckpt_dir Meta-Llama-3-8B-Instruct/ --tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model --max_seq_len 512 --max_batch_size 6
- 注意:Llama 3 的上下文窗口为 8192 tokens,请将 max_seq_len 控制在 ≤8192。
方案三 桌面离线应用(Jan、GPT4All)
- Jan
- 在官网下载 Jan 离线安装包并安装;在应用内或手动将 Llama 3 的 GGUF 模型放入用户目录(如 C:Users<你的用户名>janmodels),在 Jan 中加载模型即可离线聊天。
- GPT4All
- 下载 GPT4All 安装包并安装;在应用内“Download”页面选择 Llama 3 模型下载到本地,随后在应用内选择模型开始离线对话。
硬件与性能建议
- 模型规模与内存:8B 版本建议至少 16GB 内存,70B 版本建议至少 64GB 内存;有 NVIDIA GPU(计算能力 ≥5.0)可显著加速。
- 上下文与性能:Llama 3 上下文窗口为 8192 tokens;在 Python 原生方式下请将 max_seq_len ≤8192,并根据显存/内存适当调节 batch 与并行参数。
常见问题与排查
- 模型拉不下来或离线不可用:优先使用 Ollama 缓存 + Docker 镜像离线导入 的组合,确保模型与镜像在有网机已完整下载后再搬运。
- Open WebUI 找不到本地模型:确认 Ollama 服务已启动(如执行 ollama run llama3:8b 能对话),且 Open WebUI 与 Ollama 在同一主机或已正确设置网络映射(如使用 --add-host=host.docker.internal:host-gateway)。
- GPU 未生效:启动 Open WebUI 时添加 --gpus all 参数,并确保已安装支持 GPU 的 Docker 与驱动。