废弃声明
感谢您使用Llama模型进行开发。作为Llama 3.1版本发布的一部分,我们整合了GitHub仓库,并随着Llama功能扩展为端到端Llama技术栈,新增了一些仓库。请在今后使用以下仓库:
- llama-models - 基础模型的中央仓库,包括基本工具、模型卡片、许可证和使用政策
- PurpleLlama - Llama技术栈的关键组件,专注于安全风险和推理时缓解措施
- llama-toolchain - 模型开发(推理/微调/安全防护/合成数据生成)接口和规范实现
- llama-agentic-system - 端到端独立Llama技术栈系统,以及支持创建智能应用的底层接口
- llama-recipes - 社区驱动的脚本和集成
如有任何问题,请随时在上述任何仓库中提出问题,我们将尽最大努力及时回复。
谢谢!
(已废弃)Llama 2
我们正在释放大型语言模型的力量。Llama 2现已向个人、创作者、研究人员和各种规模的企业开放,以便他们能够负责任地进行实验、创新和扩展他们的想法。
此版本包括预训练和微调的Llama语言模型的模型权重和初始代码 - 参数范围从7B到70B。
本仓库旨在提供一个最小示例,用于加载Llama 2模型并运行推理。有关利用Hugging Face的更详细示例,请参阅llama-recipes。
发布后更新
请参阅UPDATES.md。另外,有关常见问题的持续更新列表,请参阅此处。
下载
要下载模型权重和分词器,请访问Meta网站并接受我们的许可协议。
一旦您的请求获得批准,您将通过电子邮件收到一个签名URL。然后运行download.sh脚本,在提示时输入提供的URL以开始下载。
前提条件:确保已安装wget
和md5sum
。然后运行脚本:./download.sh
。
请注意,链接在24小时后或达到一定下载次数后会失效。如果您开始看到诸如403: Forbidden
之类的错误,您可以随时重新请求链接。
访问Hugging Face
我们还在Hugging Face上提供下载。您可以通过确认许可协议并填写仓库模型卡中的表格来请求访问模型。完成后,您应该在1小时内获得对所有版本(Code Llama、Llama 2或Llama Guard)Llama模型的访问权限。
快速入门
您可以按照以下步骤快速开始使用Llama 2模型。这些步骤将让您在本地运行快速推理。有关更多示例,请参阅Llama 2 recipes仓库。
-
在安装了PyTorch / CUDA的conda环境中克隆并下载此仓库。
-
在顶级目录中运行:
pip install -e .
-
访问Meta网站并注册以下载模型。
-
注册后,您将收到一封包含下载模型URL的电子邮件。运行download.sh脚本时,您将需要此URL。
-
收到电子邮件后,导航到您下载的llama仓库并运行download.sh脚本。
- 确保授予download.sh脚本执行权限
- 在此过程中,系统会提示您输入电子邮件中的URL。
- 请勿使用"复制链接"选项,而是确保手动从电子邮件中复制链接。
-
一旦您想要的模型已下载完成,您可以使用以下命令在本地运行模型:
torchrun --nproc_per_node 1 example_chat_completion.py \
--ckpt_dir llama-2-7b-chat/ \
--tokenizer_path tokenizer.model \
--max_seq_len 512 --max_batch_size 6
注意
- 将
llama-2-7b-chat/
替换为您的检查点目录路径,将tokenizer.model
替换为您的分词器模型路径。 –nproc_per_node
应设置为您所使用模型的 MP 值。- 根据需要调整
max_seq_len
和max_batch_size
参数。 - 此示例运行了本仓库中的 example_chat_completion.py,但您可以将其更改为其他 .py 文件。
推理
不同的模型需要不同的模型并行 (MP) 值:
模型 | MP |
---|---|
7B | 1 |
13B | 2 |
70B | 8 |
所有模型支持最多 4096 个标记的序列长度,但我们根据 max_seq_len
和 max_batch_size
值预分配缓存。因此请根据您的硬件设置这些值。
预训练模型
这些模型未经过聊天或问答的微调。它们应该被提示,使预期的答案成为提示的自然延续。
请参阅 example_text_completion.py
以获取一些示例。举例说明,请看下面使用 llama-2-7b 模型运行的命令(nproc_per_node
需要设置为 MP
值):
torchrun --nproc_per_node 1 example_text_completion.py \
--ckpt_dir llama-2-7b/ \
--tokenizer_path tokenizer.model \
--max_seq_len 128 --max_batch_size 4
微调的聊天模型
微调的模型是为对话应用而训练的。要获得它们的预期功能和性能,需要遵循 chat_completion
中定义的特定格式,包括 INST
和 <<SYS>>
标签、BOS
和 EOS
标记,以及其间的空格和换行符(我们建议对输入调用 strip()
以避免双空格)。
您还可以部署额外的分类器来过滤掉被认为不安全的输入和输出。请参阅 llama-recipes 仓库中的示例,了解如何在推理代码的输入和输出中添加安全检查器。
使用 llama-2-7b-chat 的示例:
torchrun --nproc_per_node 1 example_chat_completion.py \
--ckpt_dir llama-2-7b-chat/ \
--tokenizer_path tokenizer.model \
--max_seq_len 512 --max_batch_size 6
Llama 2 是一项新技术,使用时可能存在潜在风险。迄今为止进行的测试尚未 — 也无法 — 涵盖所有场景。 为了帮助开发者应对这些风险,我们创建了负责任使用指南。更多详细信息可以在我们的研究论文中找到。
问题
请通过以下方式之一报告任何软件"漏洞"或与模型相关的其他问题:
- 报告模型问题:github.com/facebookresearch/llama
- 报告模型生成的有风险内容:developers.facebook.com/llama_output_feedback
- 报告漏洞和安全问题:facebook.com/whitehat/info
模型卡片
请参阅 MODEL_CARD.md。
许可证
我们的模型和权重向研究人员和商业实体开放许可,坚持开放原则。我们的使命是通过这个机会赋予个人和行业力量,同时培育一个发现和道德AI进步的环境。
参考文献
- 研究论文
- Llama 2 技术概述
- 开放创新 AI 研究社区 常见问题解答可以在这里找到,随着新问题的出现,该页面将会不断更新。
原始Llama
原始Llama发布版本的代码库位于llama_v1
分支。