🤗 Hugging Face 上的模型 | 博客 | 网站 | 开始使用
废弃声明
感谢您使用Llama模型进行开发。作为Llama 3.1发布的一部分,我们已经整合了GitHub仓库,并随着Llama功能扩展成为端到端Llama堆栈而添加了一些新的仓库。请今后使用以下仓库:
- llama-models - 基础模型的中心仓库,包括基本工具、模型卡片、许可证和使用政策
- PurpleLlama - Llama堆栈的关键组件,专注于安全风险和推理时缓解措施
- llama-toolchain - 模型开发(推理/微调/安全防护/合成数据生成)接口和规范实现
- llama-agentic-system - 端到端独立Llama堆栈系统,以及用于创建代理应用程序的基础接口
- llama-recipes - 社区驱动的脚本和集成
如果您有任何问题,请随时在上述任何仓库中提出问题,我们将尽最大努力及时回复。
谢谢!
(已废弃) Meta Llama 3
我们正在释放大型语言模型的力量。我们最新版本的Llama现在可供个人、创作者、研究人员和各种规模的企业使用,以便他们能够负责任地进行实验、创新和扩展他们的想法。
此版本包括预训练和指令微调的Llama 3语言模型的模型权重和启动代码 —— 包括8B到70B参数的规模。
这个仓库是加载Llama 3模型和运行推理的最小示例。有关更详细的示例,请参阅llama-recipes。
下载
要下载模型权重和分词器,请访问Meta Llama网站并接受我们的许可协议。
一旦您的请求被批准,您将通过电子邮件收到一个签名URL。然后,运行download.sh脚本,在提示时输入提供的URL以开始下载。
前提条件:确保您已安装wget
和md5sum
。然后运行脚本:./download.sh
。
请记住,链接在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一起使用,以下pipeline代码片段将下载并缓存权重:
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脚本执行权限
- 在此过程中,系统将提示您输入电子邮件中的URL。
- 请勿使用"复制链接"选项;手动从电子邮件中复制链接。
-
下载所需的模型后,您可以使用以下命令在本地运行模型:
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个标记的序列长度,但我们根据max_seq_len
和max_batch_size
值预分配缓存。因此,请根据您的硬件设置这些值。
预训练模型
这些模型没有针对聊天或问答进行微调。应该以期望的答案是提示的自然延续的方式来提示它们。
请参阅example_text_completion.py
中的一些示例。为了说明,请看下面使用llama-3-8b模型运行它的命令(nproc_per_node
需要设置为MP
值):
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
中定义的特定格式:提示以<|begin_of_text|>
特殊标记开始,之后是一条或多条消息。每条消息以<|start_header_id|>
标签开始,角色为system
、user
或assistant
,然后是<|end_header_id|>
标签。在双换行符\n\n
之后,是消息的内容。每条消息的结尾由<|eot_id|>
标记标记。
您还可以部署额外的分类器来过滤掉被认为不安全的输入和输出。有关如何在推理代码中添加安全检查器的示例,请参阅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
模型卡片
请参阅MODEL_CARD.md。
许可证
我们的模型和权重授权给研究人员和商业实体使用,坚持开放原则。我们的使命是通过这个机会赋予个人和行业力量,同时培育一个发现和道德AI进步的环境。
问题
有关常见问题,可以在这里找到FAQ,随着新问题的出现,FAQ将不断更新。