快捷方式

torchtune 概述

在本页中,我们将介绍 torchtune 的概述,包括功能、关键概念和附加指针。

什么是 torchtune?

torchtune 是一个 PyTorch 库,用于轻松创作、微调和试验 LLM。该库强调 4 个关键方面

  • 简单性和可扩展性。原生 PyTorch、组件化设计和易于重用的抽象

  • 正确性。对证明组件和食谱的正确性有很高的标准

  • 稳定性。PyTorch 运行良好。torchtune 也是如此

  • 使 LLM 微调民主化。在不同硬件上开箱即用

torchtune 提供

  • 流行 LLM 的模块化原生 PyTorch 实现

  • 通过检查点转换实用程序与流行的模型库进行互操作

  • 用于各种微调技术的训练食谱

  • Hugging Face 数据集 集成,用于训练和与 EleutherAI 的评估工具 集成,用于评估

  • 支持使用 FSDP 进行分布式训练

  • YAML 配置,便于配置训练运行

很兴奋吗?要开始,请查看一些我们的教程,包括

  • 我们的 快速入门指南,使用 torchtune 微调你的第一个 LLM。

  • 我们的 LoRA 教程,了解如何使用 torchtune 进行参数高效微调。

  • 我们的 QLoRA 教程,了解如何使用 torchtune 获得最大的内存效率。

关键概念

当你浏览教程和代码时,有两个概念将帮助你更好地理解和使用 torchtune。

配置。YAML 文件,用于帮助你配置训练设置(数据集、模型、检查点)和超参数(批次大小、学习率),而无需修改代码。请参阅 关于配置的深入探讨,以了解更多信息。

食谱。食谱可以被认为是用于训练和可选地评估 LLM 的有针对性的端到端管道。每个食谱都实现了一种训练方法(例如:完全微调),并应用了一组有意义的功能(例如:FSDP + 激活检查点 + 梯度累积 + 降精度训练)到给定的模型系列(例如:Llama2)。请参阅 什么是食谱?深入探讨,以了解更多信息。


设计原则

torchtune 体现了 PyTorch 的设计理念,尤其是“可用性高于一切”。

原生 PyTorch

torchtune 是一个原生 PyTorch 库。虽然我们提供了与周围生态系统(例如:Hugging Face 数据集、EleutherAI 评估工具)的集成,但所有核心功能都是用 PyTorch 编写的。

简单性和可扩展性

torchtune 的设计目标是易于理解、使用和扩展。

  • 组合优先于实现继承 - 代码重用所需的层层继承会使代码难以阅读和扩展

  • 无训练框架 - 明确概述训练逻辑,便于扩展以满足自定义用例

  • 代码重复优先于不必要的抽象

  • 模块化构建块优先于单片组件

正确性

torchtune 提供了经过良好测试的组件,并对正确性有很高的标准。该库永远不会首先提供功能,但可用的功能将经过彻底测试。我们提供

  • 广泛的单元测试,以确保组件级数值与参考实现保持一致

  • 检查点测试,以确保模型级数值与参考实现保持一致

  • 集成测试,以确保食谱级性能与标准基准的参考实现保持一致

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题的解答

查看资源