快捷方式

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 文件帮助您配置训练设置(数据集、模型、检查点)和超参数(批次大小、学习率),无需修改代码。有关更多信息,请参阅 关于配置的深入了解

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


设计原则

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

原生 PyTorch

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

简单性和可扩展性

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

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

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

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

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

正确性

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

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

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

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

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

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

查看教程

资源

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

查看资源