
Llama 3:Meta 开源 8B/70B 参数大模型权重与最小推理示例|部署与使用全指南
项目仓库: https://github.com/meta-llama/llama3
开源协议:Llama 3 社区许可(可商用,需遵守 Acceptable Use Policy) · 交付形态:模型权重 + 原生 PyTorch 推理示例代码 · 模型规格:8B / 70B 预训练与指令微调版本 · 上下文长度:最高 8192 tokens · 官方站:llama.meta.com
官方维护状态说明(务必先读):仓库 README 顶部明确标注 "Note of deprecation"——随 Llama 3.1 发布,Meta 已将本仓库合并到新的家族仓库体系:
llama-models(基础模型与许可)、llama-toolchain(推理/微调工具链)、llama-agentic-system(端到端 Agent 系统)、llama-recipes(社区脚本与集成)。本仓库meta-llama/llama3仍保留为最小推理示例,本文命令与权重下载方式均取自该仓库 README;新功能与生产部署请以官方新仓库与 llama.meta.com 最新说明为准。
1 项目简介
Llama 3 是 Meta 发布的开源大语言模型系列,本次仓库提供 8B 与 70B
两种参数规模的预训练(pretrained)与指令微调(instruction-tuned)权重及对应的最小推理启动代码。仓库本身不打包模型权重,权重需通过
Meta 官网许可申请或 Hugging Face 授权后下载;示例代码基于原生 PyTorch 与
torchrun 启动,支持单机多卡模型并行(MP)。
非官方 / 第三方边界声明:Llama 3 模型权重由 Meta 发布并受 Llama 3 社区许可约束;本仓库仅为官方推理示例。使用方须自行完成 Meta 许可申请、接受 Acceptable Use Policy,并遵守所在地区的 AI 模型使用法规。文章中出现的 Hugging Face、PyTorch、NVIDIA CUDA 等名称归各自厂商所有。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Llama 3(Meta Llama 3) |
| 仓库地址 | github.com/meta-llama/llama3 |
| 项目定位 | 开源大语言模型权重与最小推理示例(8B / 70B) |
| 开源协议 | Llama 3 社区许可(权重),代码仓库遵循相应许可;详见 LICENSE |
| 模型规格 | 8B、70B;各分预训练与指令微调(Instruct)两版 |
| 上下文长度 | 最高 8192 tokens |
| 推理启动 | torchrun 原生 PyTorch;或 Hugging Face
transformers.pipeline |
| 模型并行(MP) | 8B=1 卡;70B=8 卡 |
| 权重获取 | Meta 官网许可申请后邮件链接下载;或 Hugging Face 授权下载 |
| 独立服务端口 | 仓库本身不监听端口;示例为本地命令行推理 |
| 官方文档 | llama.meta.com;Hugging Face 组织页 |
1.2 适用场景
- 研究者与开发者希望在本地或自有 GPU 上直接加载官方权重,跑通预训练续写与指令对话的最小闭环。
- 团队需要基于原生 PyTorch 推理栈(而非第三方框架)做性能调优、显存切片或多卡并行实验。
- 希望通过 Hugging Face Transformers 管线快速集成到现有 Python 服务中。
- 作为后续 Llama 3.1 / 3.3 / Llama Stack 学习前的基线模型参照。
1.3 能力边界(官方口径)
- 仓库 README 自述为 "minimal example of loading Llama 3 models and
running inference",不提供 Web 服务、API 网关、对话 UI
或训练流程;更完整示例见
llama-recipes仓库。 - 权重下载链接在邮件中发出后 24 小时内有效且有下载次数限制,出现
403: Forbidden需重新申请。 - 指令微调模型需遵循特定对话模板(
<|begin_of_text|>/<|start_header_id|>/<|end_header_id|>/<|eot_id|>),直接拼接文本会导致效果异常。 - 模型生成内容可能存在风险,官方提供 Responsible Use Guide 并建议叠加安全分类器过滤输入输出。
2 功能特性
2.1 双权重形态:预训练与指令微调
- 预训练模型(
Meta-Llama-3-8B、Meta-Llama-3-70B)用于自然续写,提示词应让期望答案成为上文的自然延续。 - 指令微调模型(
Meta-Llama-3-8B-Instruct、Meta-Llama-3-70B-Instruct)面向多轮对话,按官方 ChatFormat 组织 system / user / assistant 消息。
2.2 模型并行与多卡启动
- 通过
torchrun --nproc_per_node <MP>启动,MP 值按模型规模选择:8B 用 1 卡,70B 用 8 卡。 - 所有模型支持最长 8192 tokens 上下文;KV cache 按
max_seq_len与max_batch_size预分配,需按硬件实际容量调整。
2.3 双通道权重获取
- Meta 官网通道:访问 llama.meta.com/llama-downloads
接受许可,邮件收到签名 URL 后运行仓库内
download.sh。 - Hugging Face 通道:在 huggingface.co/meta-llama
任一模型页接受许可,审批通过后授权全部 Llama 3 模型;可通过
huggingface-cli download拉取原生格式或直接用transformers管线缓存。
2.4 与 Llama Stack 家族的衔接
仓库 README 明确指引新用户迁移到
llama-models、llama-toolchain、llama-agentic-system、llama-recipes
等仓库,分别承担基础模型、推理/微调工具链、Agent
系统与社区脚本集成。
3 官方界面预览
本仓库为命令行推理示例,不提供 Web 界面;图 1 为官方仓库 README 顶部横幅。模型加载后通过终端输出文本续写或对话结果。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | github.com/meta-llama/llama3 | 已弃用,保留为最小推理示例 |
| 官方网站 | llama.meta.com | 模型下载、许可申请、FAQ |
| 博客 | ai.meta.com/blog | Llama 发布与技术解读 |
| Hugging Face | huggingface.co/meta-llama | 授权后下载权重与 transformers 格式 |
| Llama 模型中心仓库 | github.com/meta-llama/llama-models | 基础模型、模型卡、许可 |
| Llama 工具链 | github.com/meta-llama/llama-toolchain | 推理/微调/安全 Shield 接口 |
| Llama Agent 系统 | github.com/meta-llama/llama-agentic-system | 端到端 Agent 应用 |
| Llama Cookbook | github.com/meta-llama/llama-recipes | 社区脚本与集成示例 |
| Issues | github.com/meta-llama/llama3/issues | 本仓库历史问题反馈 |
| 责任使用指南 | Responsible Use Guide | 模型风险与缓解建议 |
5 前置要求与服务器配置
5.1 软件前提
- 操作系统:Linux(推荐 Ubuntu 20.04/22.04);示例代码在 conda 环境下开发。
- Python 与 PyTorch:仓库要求在已装好 PyTorch / CUDA 的 conda 环境中运行。
- wget 与 md5sum:
download.sh依赖这两个工具校验权重完整性。 - Git:用于克隆仓库。
- GPU 驱动:NVIDIA 驱动与 CUDA,满足 PyTorch 对应版本要求。
5.2 硬件建议(按模型规模)
| 模型 | 推荐 GPU | 显存(bf16 粗估) | 并发 |
|---|---|---|---|
| 8B | 单张 A100 / H100 或同档 | 约 16 GB 起 | MP=1 |
| 70B | 8 张 A100 / H100(模型并行) | 约 140 GB 以上 | MP=8 |
上表为基于参数规模的粗估;实际显存还取决于
max_seq_len与max_batch_size,请按官方示例参数与自身硬件调整。
5.3 端口说明
| 端口 | 服务 | 默认绑定 | 用途 |
|---|---|---|---|
| 无 | 仓库示例 | — | 命令行推理,不对外监听 Web 端口 |
| 8000(可选) | 自行封装的 API 服务 | 0.0.0.0 |
本仓库未提供,需自行基于 Flask/FastAPI 封装 |
6 方式一:Hugging Face Transformers 管线快速加载
适用于希望直接用 transformers 在 Python
中调用模型,不依赖仓库原生推理脚本的场景。
6.1 安装依赖并接受许可
# 创建并激活 conda 环境(示例)
conda create -n llama3 python=3.10 -y
conda activate llama3
# 安装 PyTorch(CUDA 版本按本机驱动选择,此处略)
pip install torch
# 安装 transformers 与 huggingface-hub
pip install transformers huggingface-hub- 浏览器访问 huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct。
- 阅读并接受许可;审批通过后(官方称最长约 1 小时)即可访问全部 Llama 3 模型。
- 用 Hugging Face Token
登录命令行:
huggingface-cli login。
6.2 用 pipeline 跑一次对话
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device="cuda",
)
messages = [
{"role": "system", "content": "你是一个简洁的助手。"},
{"role": "user", "content": "用一句话解释什么是大语言模型。"},
]
prompt = pipeline.tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
output = pipeline(prompt, max_new_tokens=256)
print(output[0]["generated_text"])首次运行会自动下载并缓存权重;如需单独下载原生权重用于本仓库示例,可执行:
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include "original/*" --local-dir meta-llama/Meta-Llama-3-8B-Instruct
7 方式二:克隆仓库并运行原生推理示例
适用于希望使用仓库自带 example_chat_completion.py /
example_text_completion.py 的场景。
7.1 克隆仓库并安装
git clone https://github.com/meta-llama/llama3.git
cd llama3
# 在已装好 PyTorch / CUDA 的 conda 环境中安装本包
pip install -e .7.2 下载权重
方式 A(Meta 官网):
# 访问 https://llama.meta.com/llama-downloads/ 接受许可
# 收到邮件后,手动复制邮件中的链接(不要用 "Copy Link")
chmod +x download.sh
./download.sh
# 按提示粘贴邮件链接,选择要下载的模型方式 B(Hugging Face 原生格式):
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct \
--include "original/*" \
--local-dir Meta-Llama-3-8B-Instruct7.3 运行对话示例
# 8B 模型:MP=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
# 70B 模型:MP=8,需 8 张卡
torchrun --nproc_per_node 8 example_chat_completion.py \
--ckpt_dir Meta-Llama-3-70B-Instruct/ \
--tokenizer_path Meta-Llama-3-70B-Instruct/tokenizer.model \
--max_seq_len 512 --max_batch_size 6预训练模型续写示例:
torchrun --nproc_per_node 1 example_text_completion.py \
--ckpt_dir Meta-Llama-3-8B/ \
--tokenizer_path Meta-Llama-3-8B/tokenizer.model \
--max_seq_len 128 --max_batch_size 48 配置项说明
8.1 torchrun 启动参数
| 参数 | 用途 | 示例 |
|---|---|---|
--nproc_per_node |
模型并行 GPU 数(MP) | 8B=1;70B=8 |
--ckpt_dir |
模型权重目录 | Meta-Llama-3-8B-Instruct/ |
--tokenizer_path |
tokenizer.model 路径 | Meta-Llama-3-8B-Instruct/tokenizer.model |
--max_seq_len |
最大上下文长度(≤8192) | 512、1024 |
--max_batch_size |
批大小 | 4、6 |
8.2 Hugging Face pipeline 关键参数
| 参数 | 用途 | 示例 |
|---|---|---|
model |
模型 ID 或本地路径 | meta-llama/Meta-Llama-3-8B-Instruct |
model_kwargs={"torch_dtype": ...} |
权重精度 | torch.bfloat16 |
device |
推理设备 | cuda |
max_new_tokens |
生成 token 上限 | 256 |
8.3 对话模板(Instruct 模型)
指令微调模型需按 llama/tokenizer.py 中
ChatFormat 组织:消息以
<|begin_of_text|> 开头,每条消息由
<|start_header_id|>{role}<|end_header_id|>\n\n{content}<|eot_id|>
组成;推荐用 tokenizer.apply_chat_template
自动拼接,避免手写出错。
9 常用运维命令
# 查看已下载的权重目录
ls -lh Meta-Llama-3-8B-Instruct/
# 查看 conda 环境
conda env list
conda activate llama3
# 查看 GPU 占用
nvidia-smi
# 查看 Hugging Face 已缓存模型
ls ~/.cache/huggingface/hub/
# 终止正在运行的推理进程
# Ctrl+C 即可;如卡住可通过 pkill -f "torchrun" 结束
# 重新下载权重(链接过期后)
# 重新到 https://llama.meta.com/llama-downloads/ 申请新链接10 常见故障排查
403: Forbidden运行 download.sh:Meta 邮件签名链接 24 小时内有效且有次数限制,重新到 llama.meta.com/llama-downloads 申请新链接;不要用 "Copy Link" 按钮,手动复制邮件正文里的完整 URL。- Hugging Face 提示 401 /
未授权:未在模型页接受许可,或未执行
huggingface-cli login;先在浏览器接受许可,审批通过后再命令行重试。 - OOM 显存不足:降低
max_seq_len与max_batch_size;70B 必须按 MP=8 启动;8B 在显存较小的卡上可改用float16或量化方案(量化需依赖第三方库,不在本仓库范围)。 nproc_per_node与 MP 不匹配:70B 模型必须用 8,否则权重加载报错;8B 用 1。- 对话输出乱码 / 重复:未按 ChatFormat
拼接,或用了预训练模型跑对话;改用
apply_chat_template并使用 Instruct 版本权重。 - PyTorch 找不到 CUDA:conda 环境未装带 CUDA 版本的 PyTorch,按官方命令重新安装对应 CUDA 版本 wheel。
11 风险与合规说明
- 模型许可:Llama 3 权重采用 Llama 3 社区许可,允许商用但需遵守 Acceptable Use Policy;超出许可范围的二次分发与下游产品需自行法务确认。
- 内容风险:官方明确 Llama 3 为新技术,存在潜在生成风险,建议叠加输入输出安全分类器,并阅读 Responsible Use Guide。
- 数据隐私:本地推理不上传数据,但通过 Hugging Face 下载权重会与 HF 服务交互;对公网部署的 API 须自行做好速率限制与内容审核。
- 仓库弃用:本仓库已停止新功能开发,生产环境请迁移到
llama-models/llama-toolchain/llama-agentic-system等新仓库。 - 本文非官方文档:命令与参数均取自官方 README 与示例脚本;如官方文档更新,以官方仓库最新说明为准。