大模型应用

llama3

作者头像
项目作者meta-llama

The official Meta Llama 3 GitHub site

llama3 预览图

llama3 介绍

了解项目的详细信息和使用方法

Meta Llama 3

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

此版本包括 Llama 3 语言模型的预训练和指令微调模型的权重和初始代码——包括从 8B 到 70B 参数的模型。

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

下载

为了下载模型权重和分词器,请访问 [Meta Llama 网站](https://ll

ama.meta.com/llama-downloads/) 并接受我们的许可证。

一旦你的请求被批准,你将通过电子邮件收到一个签名的 URL。然后运行 download.sh 脚本,按提示传入 URL 开始下载。

请注意链接会在 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

shell
1huggingface-cli download meta-llama/Meta-Llama-3-8B-Instruct --include "original/*" --local-dir meta-llama/Meta-Llama-3-8B-Instruct

使用 transformers 时,下述代码会下载缓存权重:

python
1import transformers 2import torch 3 4model_id = "meta-llama/Meta-Llama-3-8B-Instruct" 5 6pipeline = transformers.pipeline( 7 "text-generation", 8 model="meta-llama/Meta-Llama-3-8B-Instruct", 9 model_kwargs={"torch_dtype": torch.bfloat16}, 10 device="cuda", 11)

快速开始

按照以下步骤快速使用 Llama 3 模型。本地推理更多示例请参阅 Llama recipes 仓库

  1. 在 PyTorch/CUDA 的 Conda 环境中克隆并下载仓库。
  2. 在顶层目录运行:
shell
1pip install -e .
  1. 访问 Meta Llama 网站 注册下载模型。
  2. 注册后,你会收到含 URL 的邮件下载模型。在运行 download.sh 脚本时需用到此 URL。
  3. 收到邮件后,进入下载的 llama 仓库并运行 download.sh 脚本。
    • 确保给予 download.sh 执行权限
    • 手动复制链接,而非使用“复制链接”选项
  4. 下载所需模型后,运行:
shell
1torchrun --nproc_per_node 1 example_chat_completion.py \ 2 --ckpt_dir Meta-Llama-3-8B-Instruct/ \ 3 --tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model \ 4 --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 token,但根据 max_seq_lenmax_batch_size 预分配缓存。

预训练模型

这些模型未为聊天或问答微调。需提示使答案为自然延续。

example_text_completion.py。如用 llama-3-8b 模型运行:

shell
1torchrun --nproc_per_node 1 example_text_completion.py \ 2 --ckpt_dir Meta-Llama-3-8B/ \ 3 --tokenizer_path Meta-Llama-3-8B/tokenizer.model \ 4 --max seq_len 128 --max batch size 4

指令微调模型

微调模型为对话训练。需遵循 ChatFormat 格式:提示从 <s> 特殊 token 开始,跟随 <m> 消息,每个含角色 systemuserassistant,和 </m> 结尾,双换行 \n\n 后消息内容。消息以 </s> 结尾。

可部署额外分类器过滤不安全输入输出。见 llama-recipes 示例

用 llama-3-8b-chat 示例:

shell
1torchrun --nproc_per_node 1 example_chat_completion.py \ 2 --ckpt_dir Meta-Llama-3-8B-Instruct/ \ 3 --tokenizer_path Meta-Llama-3-8B-Instruct/tokenizer.model \ 4 --max seq len 512 --max batch size 6

Llama 3 有潜在风险。测试未涵盖所有场景。我们创建了 责任指南 帮助开发者应对风险。

问题

请通过以下方式报告:

模型卡

MODEL_CARD.md

许可证

模型权重对研究者和商业实体开放,贯彻开放原则。我们的使命是赋能个体和行业,促进发现与伦理 AI 进步。

LICENSE,以及 合规使用政策

常见问题

FAQ 持续更新。

Stars
27.9k
Forks
3.2k
Watch
235
Other
更新于 2024年7月31日
免责声明:本站大资源来自网络收集整理,小部分资源来自原创,如有侵权等,请联系处理。

相关项目

探索更多类似的开源项目