离线安装 Llama 3 的可行方案
- 方案一(最简):使用 Ollama 在本地运行 Llama 3,适合零代码、快速体验。
- 方案二(可控):使用 Hugging Face Transformers 原生推理,适合需要自定义推理参数与集成的场景。
- 方案三(官方脚本):使用 Meta Llama 3 官方仓库脚本运行,适合学习、研究用途。
下文按“在线准备 → 离线搬运 → 离线安装与运行”的顺序给出步骤,并标注关键注意事项与硬件建议。
硬件与版本建议
- 模型规模与资源:
- Llama 3 8B:建议内存至少 16GB(有 8GB+ VRAM 的 GPU 更佳),磁盘约 5GB。
- Llama 3 70B:建议内存至少 64GB(多 GPU 更佳),磁盘 20GB+。
- 上下文长度:Llama 3 系列提供 8K 上下文;Llama 3.1 提供 128K 上下文(若使用 3.1)。
- 中文支持:原版对中文并非最优,可选中文微调模型或自行微调。
方案一 Ollama 离线安装与运行(推荐)
1) 下载并安装 Ollama(Windows/macOS/Linux 安装包)。
2) 拉取模型到本地缓存:执行一次在线命令(仅用于缓存,离线时不再需要网络)
- ollama pull llama3
- 或 ollama pull llama3:8b、ollama pull llama3:70b
3) 可选:安装 Open WebUI(Docker 方式)并首次启动一次以完成初始化
- 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
- 离线搬运
1) 将 Ollama 安装包拷贝到离线机并安装。
2) 拷贝 Ollama 模型缓存目录到离线机相同路径(默认在用户目录 ~/.ollama/models,可通过环境变量 OLLAMA_MODELS 自定义)。
3) 如用到 WebUI,将第 3 步的 Docker 镜像保存为 tar 并拷贝:
- docker save -o open-webui.tar ghcr.io/open-webui/open-webui:main
- 离线安装与运行
1) 启动 Ollama 服务后,直接运行:
- ollama run llama3(或 llama3:8b / llama3:70b),首次会自动加载本地模型。
2) 启动 WebUI(已导入镜像时):
- docker load -i open-webui.tar
- 运行与上文相同的 docker run 命令,浏览器访问 http://localhost:3000 使用。
方案二 Hugging Face Transformers 原生推理(可控参数)
1) 在 Hugging Face 申请 Llama 3 下载权限并获取 Access Token。
2) 在有网环境安装依赖并登录:
- pip install -U huggingface_hub transformers accelerate
- huggingface-cli login(粘贴 Token)
3) 下载模型(示例为 8B Instruct):
- huggingface-cli download --resume-download meta-llama/Meta-Llama-3-8B-Instruct --local-dir ./Meta-Llama-3-8B-Instruct --local-dir-use-symlinks False --token <你的Token>
- 离线搬运
1) 将模型目录(如 Meta-Llama-3-8B-Instruct)与代码环境整体拷贝到离线机。
1) 安装依赖(建议新建虚拟环境):
- pip install torch transformers accelerate
2) 推理示例(按需调整参数):
- from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline
import torch
model_path = "./Meta-Llama-3-8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.float16,
device_map="auto",
)
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, device_map="auto")
print(pipe("Hello, I'm a Llama 3 user.", max_new_tokens=128, temperature=0.7, top_p=0.9)0)
3) 低内存可选 4bit/8bit 量化(需 bitsandbytes 等),或改用更轻量模型。
方案三 Meta 官方仓库脚本运行(学习研究)
1) 在 Meta Llama 官网申请下载资格。
2) 克隆官方仓库并安装依赖:
3) 运行仓库提供的下载脚本,按提示粘贴邮件链接选择模型(如 8B-Instruct)进行下载。
1) 将下载好的模型目录与仓库代码拷贝到离线机。
- 离线运行示例
- 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。
常见问题与排障要点
- 模型拉不动或中断:优先使用 HF 镜像源(如 HF_ENDPOINT=https://hf-mirror.com)与断点续传(--resume-download)。
- 内存/显存不足:优先选择 8B 或开启 4bit 量化;必要时降低 max_seq_len 与 batch。
- 中文效果一般:选择 中文微调版 Llama 3 或自行微调;也可在系统提示中要求“用中文回答”。
- Open WebUI 找不到模型:确认 Ollama 服务已启动 且模型名一致(如 llama3:8b);首次使用先在 WebUI 中完成注册登录。