Llama3

Meta公司发布了最新版本的Llama3语言模型,可供个人和企业使用。文章介绍了两种下载方式:通过网站申请许可或HuggingFace。提供了模型的预训练和指令调整方法,以及使用示例和注意事项,包括负责任使用和可能的问题报告途径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述


关于 Llama3


Meta正在释放大型语言模型的力量。Meta最新版本的 Llama 现在可供个人、创作者、研究人员和各种规模的企业使用,以便他们能够负责任地实验、创新和扩展他们的想法。

此版本包括预训练和指令调整的 Llama 3 语言模型的模型权重和起始代码 - 包括 8B 到 70B 参数的大小。

该存储库旨在作为加载 Llama 3 模型并运行推理的最小示例。有关更详细的示例,请参阅llama-recipes


下载

方式一:网站申请许可

要下载模型权重和分词器,请访问Meta Llama 网站并接受许可证。

一旦您的请求获得批准,您将通过电子邮件收到签名的 URL。然后运行 download.sh 脚本,并在提示开始下载时传递提供的 URL。

先决条件:确保您已经wget安装md5sum。然后运行脚本:./download.sh

请记住,链接将在 24 小时和一定下载量后过期。如果开始看到诸如 403: Forbidden之类的错误,您可以随时重新请求链接。


方式二:通过 Hugging Face

Meta还提供Hugging Face上的下载,包括转换器和本机llama3格式。要从 Hugging Face 下载权重,请按照以下步骤操作:

  • 访问其中一个存储库,例如 meta-llama/Meta-Llama-3-8B-Instruct
  • 阅读并接受许可证。一旦您的请求获得批准,您将有权访问所有 Llama 3 模型。请注意,处理请求最多需要一小时。
  • 要下载原始权重以与此repo 一起使用,请单击 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 repository

  1. 在具有 PyTorch / CUDA 的 conda 环境中,可以克隆并下载此存储库。
  2. 在 top-level 目录中运行:
pip install -e .
  1. 访问Meta Llama 网站并注册以下载模型。
  2. 注册后,您将收到一封电子邮件,其中包含下载模型的 URL。运行 download.sh 脚本时您将需要此 URL。
  3. 收到电子邮件后,前往下载的 llama 存储库 并运行 download.sh 脚本。
  • 确保授予 download.sh 脚本执行权限
  • 在此过程中,系统将提示您输入电子邮件中的 URL。
  • 不要使用“复制链接”选项,而应确保手动复制电子邮件中的链接。
  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

注意

  • 替换 Meta-Llama-3-8B-Instruct/为检查点目录的路径和 Meta-Llama-3-8B-Instruct/tokenizer.model 分词器模型的路径。
  • 应将其–nproc_per_node 设置为您正在使用的型号的MP 值。
  • 根据需要调整max_seq_lenmax_batch_size 参数。
  • 此示例运行在此存储库中的example_chat_completion.py,但您可以将其更改为不同的 .py 文件。

推理

不同的模型需要不同的模型并行 (MP) 值:

模型MP
8B1
70B8

所有模型都支持高达 8192 个令牌的序列长度,但Meta根据 max_seq_lenmax_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|>标签、systemuserassistant角色和 <|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 是一项新技术,使用时存在潜在风险。迄今为止进行的测试尚未(也不可能)涵盖所有场景。
为了帮助开发人员解决这些风险,Meta创建了负责任的使用指南


其他

问题

请通过以下方式之一报告任何软件“错误”或模型的其他问题:


型号卡

请参阅MODEL_CARD.md


License

Meta的模型和权重已获得研究人员和商业实体的许可,坚持开放原则。
Meta的使命是通过这个机会为个人和行业赋能,同时营造一个发现和道德人工智能进步的环境。

请参阅许可证 文件 以及Meta随附的可接受使用政策


问题

对于常见问题,可以在此处找到常见问题解答,该常见问题解答将随着新问题的出现而不断更新。


2024-04-19(五)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值