探索Meta Llama 3:释放大语言模型的潜力

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开始下载。

前提条件

确保已安装wgetmd5sum,然后运行以下脚本:

./download.sh

需要注意的是,下载链接在24小时后会过期,且有一定的下载次数限制。如果看到403: Forbidden错误,可以重新请求链接。

通过Hugging Face访问

你也可以在Hugging Face上下载模型,支持transformers和原生llama3格式。以下是从Hugging Face下载权重的步骤:

  1. 访问其中一个仓库,例如meta-llama/Meta-Llama-3-8B-Instruct
  2. 阅读并接受许可。请求通过后,你将获得所有Llama 3模型的访问权限。
  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
  1. 要与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

  1. 在一个包含PyTorch / CUDA的conda环境中克隆并下载此仓库。

  2. 在顶级目录下运行:

    pip install -e .
  3. 访问Meta Llama网站并注册以下载模型。

  4. 注册后,你会收到一封包含下载URL的电子邮件。你将在运行下载脚本时需要此URL。

  5. 收到电子邮件后,导航到已下载的Llama仓库并运行下载脚本:

    • 确保授予下载脚本执行权限。
    • 在此过程中,你将被提示输入电子邮件中的URL。
    • 不要使用“复制链接”选项;手动从电子邮件复制链接。
  6. 下载所需模型后,可以使用以下命令在本地运行模型:

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参数。

推理

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

Model MP
8B 1
70B 8

所有模型支持最长8192个tokens的序列长度,但我们根据max_seq_lenmax_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开头,之后是一条或多条消息。每条消息以标签开头,角色可以是systemuserassistant,并以标签结束。消息内容在双换行\n\n之后跟随。每条消息的结束标记为 token。

你还可以部署附加分类器,以过滤被认为不安全的输入和输出。有关如何向推理代码中添加安全检查器的示例,请参阅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

问题反馈

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

模型卡

请参阅MODEL_CARD.md

许可

我们的模型和权重对研究人员和商业实体开放,并遵循开放原则。我们的使命是通过这一机会赋予个人和行业力量,同时促进发现和伦理AI的进步。

请参阅LICENSE文件以及我们的可接受使用政策

常见问题

有关常见问题的解答,请参阅FAQ,我们将随着新问题的出现不断更新。

结论

Meta Llama 3通过提供从8B到70B参数的预训练和指令调优模型,为开发者和研究人员提供了强大的工具。无论是用于实验还是创新,Llama 3都能帮助你在语言模型的应用中实现更高的效率和效果。

声明:本站所有文章,如无特殊说明或标注,均为本站(王大神)原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
开源

什么是LangChain?打造上下文感知的推理应用:深入了解LangChain

2024-5-17 14:50:54

开源

使用纯C/CUDA进行LLM训练:探索llm.c项目

2024-5-17 14:55:32

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索