快捷方式

torchtune 概述

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

什么是 torchtune?

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

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

  • **正确性**。对证明组件和食谱的正确性设置了高标准

  • **稳定性**。PyTorch 可以正常工作。torchtune 也应该如此

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

torchtune 提供

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

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

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

  • Hugging Face 数据集 集成用于训练,与 EleutherAI 的评估套件 集成用于评估

  • 使用 FSDP2 支持分布式训练

  • YAML 配置,用于轻松配置训练运行

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

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

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

  • 我们的 QLoRA 教程,使用 torchtune 实现最大内存效率。

您可以查看我们的 食谱概述,以查看我们支持的所有微调技术。

关键概念

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

**配置。**YAML 文件,帮助您配置训练设置(数据集、模型、检查点)和超参数(批量大小、学习率),而无需修改代码。有关更多信息,请参阅“关于配置的一切”深入探讨。

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

设计原则

torchtune 体现了 PyTorch 的设计理念,尤其是“可用性至上”。

原生 PyTorch

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

简单性和可扩展性

torchtune 旨在易于理解、使用和扩展。

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

  • 没有训练框架 - 明确概述训练逻辑,使其易于扩展以满足自定义用例

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

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

正确性

torchtune 提供经过充分测试的组件,并对正确性设置了高标准。该库永远不会率先提供功能,但可用功能将经过彻底测试。我们提供

  • 广泛的单元测试,以确保组件级数值与参考实现的奇偶校验

  • 检查点测试,以确保模型级数值与参考实现的奇偶校验

  • 集成测试,以确保食谱级性能与标准基准上的参考实现的奇偶校验

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取初学者和高级开发人员的深入教程

查看教程

资源

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

查看资源