Meta Llama 3是Meta最新推出的大语言模型,提供从8B到70B参数的预训练和指令调优版本。本文将深入探讨如何下载、安装和运行Llama 3模型,帮助开发者快速入门并利用这项强大的技术进行创新。
什么是Meta Llama 3?
Meta Llama 3是Meta最新的大语言模型(LLM),旨在为个人、创作者、研究人员和企业提供强大的语言理解和生成能力。这个版本包含预训练和指令调优的模型,参数规模从8B到70B不等。Llama 3的发布标志着LLMs的又一次重大进步,为用户提供了更多的实验和创新机会。
下载和安装
要下载模型权重和分词器,可以访问Meta Llama网站并接受许可协议。请求通过后,你将收到一封包含签名URL的电子邮件。然后运行下载脚本并传入提供的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
文件夹的内容,也可以通过命令行下载:
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 repository。
-
在一个包含PyTorch / CUDA的conda环境中克隆并下载此仓库。
-
在顶级目录下运行:
pip install -e .
-
访问Meta Llama网站并注册以下载模型。
-
注册后,你会收到一封包含下载URL的电子邮件。你将在运行下载脚本时需要此URL。
-
收到电子邮件后,导航到已下载的Llama仓库并运行下载脚本:
- 确保授予下载脚本执行权限。
- 在此过程中,你将被提示输入电子邮件中的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
参数。
推理
不同模型需要不同的模型并行(MP)值:
Model | MP |
---|---|
8B | 1 |
70B | 8 |
所有模型支持最长8192个tokens的序列长度,但我们根据max_seq_len
和max_batch_size
值预分配缓存。因此,请根据你的硬件设置这些参数。
预训练模型
这些模型未针对聊天或问答进行微调。它们应该被提示,以便预期答案是提示的自然延续。
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
定义的特定格式:提示以特殊token开头,之后是一条或多条消息。每条消息以
token。标签开头,角色可以是
system、
user或
assistant,并以
标签结束。消息内容在双换行
\n\n之后跟随。每条消息的结束标记为
你还可以部署附加分类器,以过滤被认为不安全的输入和输出。有关如何向推理代码中添加安全检查器的示例,请参阅llama-recipes repo。
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
问题反馈
请通过以下方式报告软件“错误”或模型的其他问题:
- 报告模型问题:https://github.com/meta-llama/llama3/issues
- 报告模型生成的风险内容:developers.facebook.com/llama_output_feedback
- 报告错误和安全问题:facebook.com/whitehat/info
模型卡
请参阅MODEL_CARD.md。
许可
我们的模型和权重对研究人员和商业实体开放,并遵循开放原则。我们的使命是通过这一机会赋予个人和行业力量,同时促进发现和伦理AI的进步。
常见问题
有关常见问题的解答,请参阅FAQ,我们将随着新问题的出现不断更新。
结论
Meta Llama 3通过提供从8B到70B参数的预训练和指令调优模型,为开发者和研究人员提供了强大的工具。无论是用于实验还是创新,Llama 3都能帮助你在语言模型的应用中实现更高的效率和效果。