目录

PyTorch Tune 概览

在本页,我们将逐步介绍 torchtune 的概览,包括其功能、核心概念和额外提示。

Pytorch深度学习框架是什么?

torchtune 是一个 PyTorch 库,旨在让您轻松构建、微调并实验大语言模型(LLMs)。该库着重强调以下四个关键方面:

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

  • 正确性。对组件和配方的正确性证明设定高标准

  • 稳定性。PyTorch 开箱即用。torchtune 也应如此

  • 让大语言模型微调普及化。开箱即用,适配不同硬件

torchtune 提供:

  • 流行大型语言模型的模块化原生 PyTorch 实现

  • 通过检查点转换工具实现与流行模型库的互操作性

  • 适用于多种微调技术的训练方案

  • Hugging Face 数据集 集成用于训练,以及与 EleutherAI 的 Eval Harness 集成用于评估

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

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

兴奋吗?开始使用吧,查看我们的部分教程,包括:

  • 我们的 快速入门指南,使用 torchtune 微调您的第一个大型语言模型。

  • 我们的 LoRA 教程,用于学习使用 torchtune 的参数高效微调。

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

关键概念

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

配置文件。 YAML 文件可帮助您在不修改代码的情况下配置训练设置(数据集、模型、检查点)和超参数(批量大小、学习率)。 有关更多信息,请参阅 《配置文件详解》

训练示例(Recipes)。 训练示例可视为面向特定目标的端到端流程,用于训练大语言模型(LLM),并可选地进行评估。 每个训练示例均实现一种训练方法(例如:全量微调),并针对特定模型系列(例如:Llama2)应用一组实用特性(例如:FSDP + 激活检查点 + 梯度累积 + 降低精度训练)。 更多详情,请参阅 什么是训练示例?深度解析


设计原则

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

原生 PyTorch

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

简洁性与可扩展性

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

  • 组合优于实现继承——为代码复用而设计的多层继承结构会使代码难以阅读和扩展。

  • 无需训练框架——明确阐述训练逻辑,使其易于扩展以支持自定义用例。

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

  • 基于单体组件的模块化构建块

正确性

torchtune 提供经过充分测试的组件,并坚持高标准以确保正确性。本库不会率先推出新功能,但所有已提供的功能都将经过严格测试。我们提供

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

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

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

文档

访问 PyTorch 的全面开发人员文档

查看文档

教程

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

查看教程

资源

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

查看资源