meta-llama/llama3

GitHub: meta-llama/llama3

Meta 官方 Llama 3 大语言模型仓库,提供预训练和指令微调模型的权重及本地推理代码(已弃用,功能拆分至多个子仓库)。

Stars: 29282 | Forks: 3528

🤗 Hugging Face 上的模型  | 博客  | 网站  | 开始使用 
## **弃用说明** 感谢您使用 Llama 模型进行开发。作为 Llama 3.1 发布的一部分,我们整合了 GitHub 仓库,并随着 Llama 的功能扩展为端到端的 Llama Stack 添加了一些额外的仓库。今后请使用以下仓库: - [llama-models](https://github.com/meta-llama/llama-models) - 基础模型的核心仓库,包括基本实用程序、模型卡片、许可证和使用政策 - [PurpleLlama](https://github.com/meta-llama/PurpleLlama) - Llama Stack 的关键组件,专注于安全风险和推理时缓解措施 - [llama-toolchain](https://github.com/meta-llama/llama-toolchain) - 模型开发(推理/微调/安全防护/合成数据生成)接口和规范实现 - [llama-agentic-system](https://github.com/meta-llama/llama-agentic-system) - 端到端独立 Llama Stack 系统,带有自带的底层接口,支持创建智能体应用 - [llama-cookbook](https://github.com/meta-llama/llama-recipes) - 社区驱动的脚本和集成 如果您有任何问题,请随时在上述任何仓库中提交 issue,我们将尽力及时回复。 谢谢! # (已弃用)Meta Llama 3 我们正在释放大型语言模型的力量。最新版本的 Llama 现已向个人、创作者、研究人员和各种规模的企业开放,以便他们能够负责任地进行实验、创新和扩展他们的想法。 本次发布包括预训练和指令微调的 Llama 3 语言模型的模型权重和入门代码——包括 80 亿(8B)到 700 亿(70B)参数的规模。 本仓库是加载 Llama 3 模型和运行推理的极简示例。有关更详细的示例,请参阅 [llama-cookbook](https://github.com/facebookresearch/llama-recipes/)。 ## 下载 要下载模型权重和 tokenizer,请访问 [Meta Llama 网站](https://llama.meta.com/llama-downloads/) 并接受我们的许可协议。 一旦您的请求被批准,您将通过电子邮件收到一个签名 URL。然后,运行 download.sh 脚本,并在提示时传入该 URL 以开始下载。 前提条件:确保您已安装 `wget` 和 `md5sum`。然后运行脚本:`./download.sh`。 请记住,这些链接会在 24 小时和一定下载次数后过期。如果您开始看到诸如 `403: Forbidden` 之类的错误,您可以随时重新请求链接。 ### 访问 Hugging Face 我们还在 [Hugging Face](https://huggingface.co/meta-llama) 上提供了下载,支持 transformers 和原生 `llama3` 格式。要从 Hugging Face 下载权重,请按照以下步骤操作: - 访问其中一个仓库,例如 [meta-llama/Meta-Llama-3-8B-Instruct](https://huggingface.co/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](https://huggingface.co/docs/transformers/en/main_classes/pipelines) 代码片段将下载并缓存权重: 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 Cookbook 仓库](https://github.com/facebookresearch/llama-recipes)。 1. 在包含 PyTorch / CUDA 的 conda 环境中克隆并下载此仓库。 2. 在顶级目录中运行: pip install -e . 3. 访问 [Meta Llama 网站](https://llama.meta.com/llama-downloads/) 并注册以下载模型。 4. 注册后,您将收到一封包含下载模型 URL 的电子邮件。在运行 download.sh 脚本时,您将需要此 URL。 5. 收到电子邮件后,导航到您下载的 llama 仓库并运行 download.sh 脚本。 - 确保授予 download.sh 脚本执行权限 - 在此过程中,系统会提示您输入电子邮件中的 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/` 替换为您的 checkpoint 目录的路径,并将 `Meta-Llama-3-8B-Instruct/tokenizer.model` 替换为您的 tokenizer 模型的路径。 - `–nproc_per_node` 应设置为您所使用模型的 [MP](#inference) 值。 - 根据需要调整 `max_seq_len` 和 `max_batch_size` 参数。 - 此示例运行本仓库中的 [example_chat_completion.py](example_chat_completion.py),但您可以将其更改为其他 .py 文件。 ## 推理 不同的模型需要不同的模型并行 (MP) 值: | 模型 | MP | |--------|----| | 8B | 1 | | 70B | 8 | 所有模型都支持高达 8192 tokens 的序列长度,但我们会根据 `max_seq_len` 和 `max_batch_size` 的值预先分配缓存。因此,请根据您的硬件进行设置。 ### 预训练模型 这些模型没有针对聊天或问答进行微调。应该通过 prompt 让预期的答案成为 prompt 的自然延续。 有关一些示例,请参见 `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`](https://github.com/meta-llama/llama3/blob/main/llama/tokenizer.py#L202) 中定义的特定格式 :prompt 以 `<|begin_of_text|>` 特殊 token 开头,然后是一或多条消息。每条消息以 `<|start_header_id|>` 标签、角色 `system`、`user` 或 `assistant` 以及 `<|end_header_id|>` 标签开始。在双换行符 `\n\n` 之后是消息的内容。每条消息的末尾由 `<|eot_id|>` token 标记。 您还可以部署额外的分类器,以过滤掉被认为不安全的输入和输出。有关如何将安全检查器添加到推理代码的输入和输出的[示例](https://github.com/meta-llama/llama-recipes/blob/main/recipes/inference/local_inference/inference.py),请参阅 llama-cookbook 仓库。 使用 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://ai.meta.com/static-resource/responsible-use-guide/)。 ## 问题 请通过以下任一方式报告模型相关的任何软件“bug”或其他问题: - 报告模型问题:[https://github.com/meta-llama/llama3/issues](https://github.com/meta-llama/llama3/issues) - 报告模型生成的风险内容:[developers.facebook.com/llama_output_feedback](http://developers.facebook.com/llama_output_feedback) - 报告 bug 和安全问题:[facebook.com/whitehat/info](http://facebook.com/whitehat/info) ## 模型卡片 请参阅 [MODEL_CARD.md](MODEL_CARD.md)。 ## 许可协议 我们的模型和权重授权给研究人员和商业实体使用,坚持开放原则。我们的使命是通过这一机会赋能个人和行业,同时促进发现和道德 AI 进步的环境。 请参阅 [LICENSE](LICENSE) 文件,以及随附的[可接受使用政策](USE_POLICY.md) ## 常见问题 对于常见问题,常见问题解答可以在[这里](https://llama.meta.com/faq) 找到,随着新问题的出现,我们将随时间更新这些内容。

标签:DLL 劫持, IaC 扫描, Meta Llama, Vectored Exception Handling, 人工智能, 凭据扫描, 大语言模型, 深度学习, 用户模式Hook绕过, 系统调用监控, 逆向工具