快捷方式

torchtune 概述

在本页中,我们将介绍 torchtune 的概述,包括功能、关键概念和额外提示。

什么是 torchtune?

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

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

  • 正确性。在证明组件和配方的正确性方面的高标准

  • 稳定性。PyTorch 就是好用。torchtune 也应该如此

  • 普及 LLM 微调。可在不同的硬件上开箱即用

torchtune 提供

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

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

  • 用于各种微调技术的训练配方

  • Hugging Face Datasets 集成用于训练,与 EleutherAI 的 Eval Harness 集成用于评估

  • 使用 FSDP2 支持分布式训练

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

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

  • 我们的 快速入门指南,用于使用 torchtune 微调您的首个 LLM。

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

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

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

关键概念

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

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

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

设计原则

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

原生 PyTorch

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

简洁性和可扩展性

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

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

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

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

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

正确性

torchtune 提供经过良好测试的组件,具有很高的正确性标准。该库永远不会是第一个提供功能的库,但可用的功能将经过彻底的测试。我们提供

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

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

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

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得解答

查看资源