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 提供经过充分测试的组件,并对正确性设置了高标准。该库永远不会率先提供功能,但可用功能将经过彻底测试。我们提供
广泛的单元测试,以确保组件级数值与参考实现的奇偶校验
检查点测试,以确保模型级数值与参考实现的奇偶校验
集成测试,以确保食谱级性能与标准基准上的参考实现的奇偶校验