赞
踩
使用可组合的FSDP和PEFT方法 微调Meta Llama3,以覆盖单/多节点GPU的脚本。
支持用于摘要和问答等应用程序的默认和自定义数据集。
支持许多直接的推理解决方案,例如用于本地或云部署的 HF TGI、VLLM。
展示WhatsApp 和 Messenger 的 Meta Llama3的演示应用程序。
“llama-recipes”存储库是Meta Llama 3模型的伴侣。
该存储库的目标是 提供一个可扩展的库,用于微调Meta Llama模型,以及一些示例脚本和笔记本,以便在各种用例中 快速开始使用模型,包括 域适应微调 以及使用Meta Llama和LLM生态系统中的其他工具 构建基于LLM的应用程序。
此处的示例展示了如何在本地、云端和本地运行Meta Llama。
Meta Llama 2也支持此存储库。我们强烈建议大家使用Meta Llama 3,因为它增强了功能。
Meta Llama 3有一个新的提示模板和特殊token (基于TikTokenizer)。
token | 描述 |
---|---|
`< | begin_of_text |
`< | end_of_text |
`< | eot_id |
`< | start_header_id |
Meta Llama 3的多伦对话遵循以下提示模板:
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
{{ system_prompt }}<|eot_id|><|start_header_id|>user<|end_header_id|>
{{ user_message_1 }}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
{{ model_answer_1 }}<|eot_id|><|start_header_id|>user<|end_header_id|>
{{ user_message_2 }}<|eot_id|><|start_header_id|>assistant<|end_header_id|>
在启动新标头之前,每条消息都会被一个<|eot_id|>
标记跟踪,发出角色更改的信号。
有关新标记器和提示模板的更多详细信息,请参见此处。
注意:最近重新构造了llama recipes库,以促进开发人员更好地使用示例。一些文件已移动到新位置。
src/
文件夹未被修改,因此此repo和包的功能不受影响。
通过运行 git pull origin main
确保您更新您的本地克隆
这些说明将为您提供项目的副本,并在本地计算机上运行,以用于开发和测试目的。
有关如何在实时系统上部署项目的说明,请参阅部署。
如果您想使用PyTorch Nightlies 而不是稳定版,请转到本指南以检索平台上pip install
命令的正确--extra-index-url URL
参数。
Llama-recipes提供了一个pip发行版,便于在其他项目中安装和使用。
或者,它可以从源代码安装。
注:确保在安装PyTorch轮子时使用正确的CUDA版本(来自nvidia-smi
)。
这里我们使用11.8作为cu118
。 H100 GPU 在 CUDA>12.0时工作得更好
pip install llama-recipes
Llama-recipes提供可选包的安装。
有三个可选的依赖组。
要运行单元测试,我们可以使用以下方式安装所需的依赖项:
pip install llama-recipes[tests]
对于vLLM示例,我们需要可以安装的附加要求:
pip install llama-recipes[vllm]
要使用敏感主题安全检查器安装:
pip install llama-recipes[auditnlg]
可选依赖项也可以与[option1, option2]结合使用。
要从源代码安装,例如开发使用这些命令。
我们使用hatchling作为我们的构建后端,它需要最新的pip以及setuptools包。
git clone git@github.com:meta-llama/llama-recipes.git
cd llama-recipes
pip install -U pip setuptools
pip install -e .
为了开发和贡献骆驼recipes,请安装所有可选依赖项:
git clone git@github.com:meta-llama/llama-recipes.git
cd llama-recipes
pip install -U pip setuptools
pip install -e .[tests,auditnlg,vllm]
你可以在 Hugging Face 中心这里找到 Meta Llama 模型,其中名称中带有hf
的模型已经转换为 Hugging Face checkpoint ,因此不需要进一步转换。
下面的转换步骤仅适用于托管在 Hugging Face 模型中心上的元模型权重。
此文件夹中的 recipes 和笔记本使用了 Hugging Face 的变形金刚库提供的 Meta Llama 模型定义。
鉴于原始 checkpoint 位于模型/7B,您可以安装所有要求并将 checkpoint 转换为:
## Install Hugging Face Transformers from source
pip freeze | grep transformers ## verify it is version 4.31.0 or higher
git clone git@github.com:huggingface/transformers.git
cd transformers
pip install protobuf
python src/transformers/models/llama/convert_llama_weights_to_hf.py \
--input_dir /path/to/downloaded/llama/weights --model_size 7B --output_dir /output/path
处理Llama用法的大部分代码被组织在两个主文件夹中:recipes/
和src/
。
recipes/
包含的示例按主题组织在文件夹中:
子文件夹 | 说明 |
---|---|
快速入门 | 使用Llama的“Hello World”,如果您不熟悉使用Llama,请从此处开始。 |
use_cases | 显示Meta Llama3常见应用程序的脚本 |
3p_integrations | 合作伙伴拥有的文件夹显示Meta Llama3的常见应用程序 |
responsible_ai | 使用PurpleLlama保护模型输出的脚本 |
src/
包含支持示例recipes的模块:
子文件夹 | 描述 |
---|---|
配置 | 包含PEFT方法、FSDP、数据集、权重和偏差实验跟踪的配置文件。 |
数据集 | 包含要下载和处理的每个数据集的单独脚本。注意 |
推理 | 包括用于微调模型的推理模块。 |
model_checkpointing | 包含FSDP checkpoint 处理程序。 |
策略 | 包含FSDP脚本以提供不同的策略,例如混合精度、变压器包装策略和激活 checkpoint 以及任何精度优化器(用于以纯bf16模式运行FSDP)。 |
实用程序 | 实用程序文件: -train_utils.py 提供训练/eval循环和更多训练实用程序。- dataset_utils.py 以获取预处理的数据集。- config_utils.py 覆盖从CLI接收的配置。- fsdp_utils.py 为PEFT方法提供FSDP包装策略。- memory_utils.py 上下文管理器以跟踪训练循环中的不同内存统计信息。 |
请阅读CONTRIBUTING.md,了解我们的行为准则以及向我们提交拉取请求的流程。
伊织 + NMT
2024-07-13(六)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。