当前位置: 首页 > news >正文

llama-recipes

文章目录

    • 一、关于 llama-recipes
    • 二、入门
      • 1、先决条件
        • PyTorch Nightlies
      • 2、安装
        • 1、使用pip安装
        • 2、使用可选依赖项安装
        • 3、从源代码安装
      • 3、得到 Meta Llama 模型
        • 模型转换为 Hugging Face
    • 三、存储库组织
      • 1、`recipes/`
      • 2、`src/`
    • 贡献


一、关于 llama-recipes

  • github : https://github.com/meta-llama/llama-recipes

使用可组合的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 确保您更新您的本地克隆


二、入门

这些说明将为您提供项目的副本,并在本地计算机上运行,以用于开发和测试目的。
有关如何在实时系统上部署项目的说明,请参阅部署。


1、先决条件


PyTorch Nightlies

如果您想使用PyTorch Nightlies 而不是稳定版,请转到本指南以检索平台上pip install命令的正确--extra-index-url URL参数。


2、安装

Llama-recipes提供了一个pip发行版,便于在其他项目中安装和使用。
或者,它可以从源代码安装。

注:确保在安装PyTorch轮子时使用正确的CUDA版本(来自nvidia-smi)。
这里我们使用11.8作为cu118。 H100 GPU 在 CUDA>12.0时工作得更好


1、使用pip安装
pip install llama-recipes

2、使用可选依赖项安装

Llama-recipes提供可选包的安装。
有三个可选的依赖组。
要运行单元测试,我们可以使用以下方式安装所需的依赖项:

pip install llama-recipes[tests]

对于vLLM示例,我们需要可以安装的附加要求:

pip install llama-recipes[vllm]

要使用敏感主题安全检查器安装:

pip install llama-recipes[auditnlg]

可选依赖项也可以与[option1, option2]结合使用。


3、从源代码安装

要从源代码安装,例如开发使用这些命令。
我们使用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]

3、得到 Meta Llama 模型

你可以在 Hugging Face 中心这里找到 Meta Llama 模型,其中名称中带有hf的模型已经转换为 Hugging Face checkpoint ,因此不需要进一步转换。
下面的转换步骤仅适用于托管在 Hugging Face 模型中心上的元模型权重。


模型转换为 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 highergit 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/


1、recipes/

包含的示例按主题组织在文件夹中:

子文件夹说明
快速入门使用Llama的“Hello World”,如果您不熟悉使用Llama,请从此处开始。
use_cases显示Meta Llama3常见应用程序的脚本
3p_integrations合作伙伴拥有的文件夹显示Meta Llama3的常见应用程序
responsible_ai使用PurpleLlama保护模型输出的脚本

2、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(六)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • YOLO v8进行目标检测的遇到的bug小结
  • 澳门建筑插画:成都亚恒丰创教育科技有限公司
  • 【操作系统】进程管理——死锁(个人笔记)
  • IP 地址与 CDN 性能优化
  • java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Int
  • 【系统架构设计】计算机组成与体系结构(三)
  • 【机器学习理论基础】回归模型定义和分类
  • 【CSS in Depth 2 精译】2.6 CSS 自定义属性(即 CSS 变量)+ 2.7 本章小结
  • Spring MVC 全面指南:从入门到精通的详细解析
  • MiniGPT-Med 通用医学视觉大模型:生成医学报告 + 视觉问答 + 医学疾病识别
  • 【公益案例展】亚运天穹——践行亚运理念,筑牢安全防线
  • MOS管知识整理
  • 【Python 项目】类鸟群:仿真鸟群
  • 网络协议 — Keepalived 高可用方案
  • Lab1 论文 MapReduce
  • Angular数据绑定机制
  • CAP理论的例子讲解
  • Consul Config 使用Git做版本控制的实现
  • Druid 在有赞的实践
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • oschina
  • TypeScript迭代器
  • Webpack 4 学习01(基础配置)
  • 回顾 Swift 多平台移植进度 #2
  • 跨域
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 手写一个CommonJS打包工具(一)
  • 树莓派 - 使用须知
  • 应用生命周期终极 DevOps 工具包
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 白色的风信子
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​水经微图Web1.5.0版即将上线
  • $.ajax()
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (4)STL算法之比较
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (libusb) usb口自动刷新
  • (八)Flink Join 连接
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (一)appium-desktop定位元素原理
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .net快速开发框架源码分享
  • @Autowired和@Resource装配
  • [ C++ ] 继承
  • [2010-8-30]
  • [20150707]外部表与rowid.txt