跳转到主要内容
公告

torchtune: 使用 PyTorch 轻松微调大型语言模型 (LLM)

作者: 2024年4月16日2025年4月30日暂无评论

我们很高兴地宣布 torchtune 的 Alpha 版本发布,这是一个 PyTorch 原生库,用于轻松微调大型语言模型。

秉承 PyTorch 的设计原则,torchtune 提供了可组合和模块化的构建块,以及易于扩展的训练方案,可在各种消费级和专业 GPU 上微调流行的 LLM。

torchtune 支持从头到尾的完整微调工作流程,包括:

  • 下载和准备数据集和模型检查点。
  • 使用支持不同模型架构、参数高效微调 (PEFT) 技术等的可组合构建块自定义训练。
  • 记录进度和指标,以深入了解训练过程。
  • 微调后量化模型。
  • 在流行基准上评估微调后的模型。
  • 运行本地推理以测试微调后的模型。
  • 与流行生产推理系统的检查点兼容性。

要开始使用,请直接进入代码或浏览我们的众多教程

为什么选择 torchtune?

在过去一年中,人们对开放式大型语言模型 (LLM) 的兴趣呈爆炸式增长。微调这些最先进的模型已成为使其适应特定用例的关键技术。这种适应可能需要广泛的定制,从数据集和模型选择到量化、评估和推理。此外,这些模型的大小在尝试使用内存有限的消费级 GPU 进行微调时构成了重大挑战。

现有的解决方案通过将必要的组件隐藏在抽象层之后,使得添加这些自定义或优化变得困难。不同组件之间如何交互以及哪些组件需要更新以添加新功能尚不清楚。torchtune 使开发人员能够完全控制和可见性地根据其特定需求和限制调整 LLM。

torchtune 的设计

torchtune 在构建时考虑了以下原则:

  • 易于扩展 – 新技术不断涌现,每个人的微调用例都不同。torchtune 的方案围绕易于组合的组件和可修改的训练循环设计,最大限度地减少了妨碍您进行微调的抽象。每个方案都是独立的——没有训练器或框架,并且设计易于阅读——代码行数少于 600 行!
  • 民主化微调 – 用户,无论其专业水平如何,都应该能够使用 torchtune。克隆并修改配置,或者亲自动手编写一些代码!您也不需要强大的数据中心 GPU。我们的内存高效方案已在单张 24GB 游戏 GPU 的机器上进行了测试。
  • 与 OSS LLM 生态系统互操作 – 开源 LLM 生态系统蓬勃发展,torchtune 利用这一点提供与各种产品的互操作性。这种灵活性使您能够牢牢控制如何训练和使用微调后的模型。

在接下来的一年里,开放式 LLM 将变得更加强大,支持更多语言(多语言)、更多模态(多模态)和更多任务。随着这些模型复杂性的增加,我们需要像关注所提供的功能或训练运行的性能一样,关注我们设计库的“方式”。灵活性将是确保社区能够保持当前创新步伐的关键,许多库/工具将需要相互协作以支持各种用例。torchtune 从一开始就考虑到了这一未来。

秉承 PyTorch 的真正精神,torchtune 通过与一些最流行的 LLM 工具集成,使其易于上手。

  • Hugging Face Hub – Hugging Face 提供了广泛的开源模型和数据集存储库,用于微调。torchtune 通过 tune download CLI 命令无缝集成,因此您可以立即开始微调您的第一个模型。
  • PyTorch FSDP – 使用 PyTorch FSDP 扩展您的训练。人们投资配备多个消费级显卡(如英伟达的 3090/4090)的机器非常普遍。torchtune 允许您通过提供由 FSDP 提供支持的分布式方案来利用这些设置。
  • Weights & Biases – torchtune 使用 Weights & Biases AI 平台在训练期间记录指标和模型检查点。在一个地方跟踪您的微调运行的配置、指标和模型!
  • EleutherAI 的 LM Evaluation Harness – 评估微调后的模型对于了解微调是否能为您提供所需的结果至关重要。torchtune 包含一个由 EleutherAI 的 LM Evaluation Harness 提供支持的简单评估方案,可轻松访问一套全面的标准 LLM 基准。鉴于评估的重要性,我们将在未来几个月与 EleutherAI 密切合作,以建立更深入、更“原生”的集成。
  • ExecuTorch – 使用 torchtune 微调的模型可以轻松导出到 ExecuTorch,从而实现在各种移动和边缘设备上高效推理。
  • torchao – 使用由 torchao 的量化 API 提供支持的简单训练后方案,轻松高效地将微调后的模型量化为 4 位或 8 位。

下一步是什么?

这仅仅是个开始,我们非常高兴能将这个 Alpha 版本呈现在一个充满活力和能量的社区面前。在接下来的几周里,我们将继续通过更多模型、功能和微调技术来增强该库。我们很乐意在我们的仓库的 GitHub Issues 或我们的Discord 频道中收到任何反馈、评论或功能请求。一如既往,我们欢迎这个强大社区的任何贡献。祝您微调愉快!