The official Meta Llama 3 GitHub site
llama3基本信息
llama3介绍
Meta Llama 3
我们正在释放大型语言模型的力量。最新版本的 Llama 现已对个人、创作者、研究人员和各类规模的企业开放,使他们能够负责任地实验、创新和扩展他们的想法。
此版本包括 Llama 3 语言模型的预训练和指令微调模型的权重和初始代码——包括从 8B 到 70B 参数的模型。
该仓库旨在作为加载 Llama 3 模型并运行推理的最小化示例。如需更详细的示例,请参阅 llama-recipes。
下载
为了下载模型权重和分词器,请访问 [Meta Llama 网站](https://ll
ama.meta.com/llama-downloads/) 并接受我们的许可证。
一旦你的请求被批准,你将通过电子邮件收到一个签名的 URL。然后运行 download.sh 脚本,按提示传入 URL 开始下载。
请注意链接会在 24 小时后失效。如看到 403: Forbidden
错误,可以重新申请链接。
Hugging Face 下载
我们也提供 Hugging Face 上的下载,有 transformers 和原生 llama3
格式。要从 Hugging Face 下载权重,请访问其中一个仓库,例如 meta-llama/Meta-Llama-3-8B-Instruct。阅读并接受许可证。一旦获得批准,你将获得所有 Llama 3 模型的访问权限。
要下载原生权重,点击 "Files and versions" 标签下载 original
文件夹内容。也可用命令行 pip install huggingface-hub
:
huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include "original/*" --local-dir meta-llama/Meta-Llama-3-8B-Instruct
使用 transformers 时,下述代码会下载缓存权重:
import transformers
import torch
model_id = "meta-llama/Meta-Llama-3-8B-Instruct"
pipeline = transformers.pipeline(
"text-generation",
model="meta-llama/Meta-Llama-3-8B-Instruct",
model_kwargs={"torch_dtype": torch.bfloat16},
device="cuda",
)
快速开始
按照以下步骤快速使用 Llama 3 模型。本地推理更多示例请参阅 Llama recipes 仓库。
- 在 PyTorch/CUDA 的 Conda 环境中克隆并下载仓库。
- 在顶层目录运行:
pip install -e .
- 访问 Meta Llama 网站 注册下载模型。
- 注册后,你会收到含 URL 的邮件下载模型。在运行 download.sh 脚本时需用到此 URL。
- 收到邮件后,进入下载的 llama 仓库并运行 download.sh 脚本。
- 确保给予 download.sh 执行权限
- 手动复制链接,而非使用“复制链接”选项
- 下载所需模型后,运行:
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
注意
- 将
Meta-Llama-3-8B-Instruct/
替换为检查点目录,将Meta-Llama-3-8B-Instruct/tokenizer.model
替换为分词器路径。 –nproc_per_node
应设为模型的 MP 值。- 可调整
max_seq_len
和max_batch_size
。 - 示例运行仓库中的 example_chat_completion.py,可替换为其他 .py 文件。
推理
不同模型需要不同 MP 值:
模型 | MP |
---|---|
8B | 1 |
70B | 8 |
所有模型支持长度至 8192 token,但根据 max_seq_len
和 max_batch_size
预分配缓存。
预训练模型
这些模型未为聊天或问答微调。需提示使答案为自然延续。
见 example_text_completion.py
。如用 llama-3-8b 模型运行:
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 4
指令微调模型
微调模型为对话训练。需遵循 ChatFormat 格式:提示从 <s>
特殊 token 开始,跟随 <m>
消息,每个含角色 system
、user
或 assistant
,和 </m>
结尾,双换行 \n\n
后消息内容。消息以 </s>
结尾。
可部署额外分类器过滤不安全输入输出。见 llama-recipes 示例。
用 llama-3-8b-chat 示例:
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 有潜在风险。测试未涵盖所有场景。我们创建了 责任指南 帮助开发者应对风险。
问题
请通过以下方式报告:
- 模型问题:https://github.com/meta-llama/llama3/issues
- 生成风险内容:developers.facebook.com/llama_output_feedback
- 安全问题:facebook.com/whitehat/info
模型卡
许可证
模型权重对研究者和商业实体开放,贯彻开放原则。我们的使命是赋能个体和行业,促进发现与伦理 AI 进步。
常见问题
见 FAQ 持续更新。