跳轉到主要內容
公告

torchtune: 使用 PyTorch 輕鬆微調大型語言模型 (LLM)

作者: 2024 年 4 月 16 日2025 年 4 月 30 日暫無評論

我們很高興地宣佈 torchtune 的 Alpha 版本釋出,這是一個用於輕鬆微調大型語言模型的 PyTorch 原生庫。

torchtune 秉承 PyTorch 的設計原則,提供可組合和模組化的構建塊以及易於擴充套件的訓練方案,可在各種消費級和專業級 GPU 上微調流行的 LLM。

torchtune 支援從頭到尾的完整微調工作流程,包括:

  • 下載並準備資料集和模型檢查點。
  • 透過支援不同模型架構、引數高效微調 (PEFT) 技術等的可組合構建塊自定義訓練。
  • 記錄進度和指標,以深入瞭解訓練過程。
  • 微調後量化模型。
  • 在流行基準上評估微調後的模型。
  • 執行本地推理以測試微調後的模型。
  • 檢查點與流行的生產推理系統相容。

要開始使用,請直接訪問程式碼或瀏覽我們的許多教程

為什麼選擇 torchtune?

在過去的一年裡,人們對開放式 LLM 的興趣激增。微調這些最先進的模型已成為使其適應特定用例的關鍵技術。這種適應可能需要從資料集和模型選擇到量化、評估和推理的廣泛定製。此外,這些模型的規模在嘗試使用記憶體有限的消費級 GPU 進行微調時帶來了重大挑戰。

現有的解決方案透過將必要的部件隱藏在抽象層後面,使得新增這些定製或最佳化變得困難。不同的元件如何相互作用,以及需要更新哪些元件才能新增新功能,這些都不清楚。torchtune 使開發人員能夠完全控制和可見地根據其特定需求和限制調整 LLM。

torchtune 的設計

torchtune 的構建考慮了以下原則:

  • 易於擴充套件 – 新技術層出不窮,每個人的微呼叫例都不同。torchtune 的方案圍繞易於組合的元件和可修改的訓練迴圈設計,最大限度地減少了阻礙您微調微調的抽象。每個方案都是獨立的——沒有訓練器或框架,並且設計成易於閱讀——少於 600 行程式碼!
  • 普及微調 – 無論專業水平如何,使用者都應該能夠使用 torchtune。克隆和修改配置,或者親自動手編寫一些程式碼!您也不需要強大的資料中心 GPU。我們的記憶體高效方案已在配備單個 24GB 遊戲 GPU 的機器上進行了測試。
  • 與開源 LLM 生態系統互操作 – 開源 LLM 生態系統蓬勃發展,torchtune 利用這一點與廣泛的產品進行互操作。這種靈活性使您能夠完全控制如何訓練和使用微調後的模型。

在未來一年,開放式 LLM 將變得更加強大,支援更多語言(多語言)、更多模態(多模態)和更多工。隨著這些模型複雜性的增加,我們需要像關注提供的功能或訓練執行的效能一樣,關注我們設計庫的“方式”。靈活性將是確保社群能夠保持當前創新速度的關鍵,許多庫/工具將需要相互協作,以支援各種用例。torchtune 從一開始就考慮到了這個未來。

本著 PyTorch 的真正精神,torchtune 透過提供與一些最流行的 LLM 工具的整合,使其易於上手。

  • Hugging Face Hub – Hugging Face 提供了一個龐大的開源模型和資料集儲存庫,用於微調。torchtune 透過 tune download CLI 命令無縫整合,因此您可以立即開始微調您的第一個模型。
  • PyTorch FSDP – 使用 PyTorch FSDP 擴充套件您的訓練。人們投資配備多個消費級顯示卡(如 NVidia 的 3090/4090)的機器是很常見的。torchtune 允許您透過提供由 FSDP 提供支援的分散式方案來利用這些設定。
  • Weights & Biases – torchtune 使用 Weights & Biases AI 平臺在訓練期間記錄指標和模型檢查點。在一個地方跟蹤您的配置、指標和微調執行的模型!
  • EleutherAI 的 LM 評估工具 – 評估微調後的模型對於瞭解微調是否能提供您需要的結果至關重要。torchtune 包含一個由 EleutherAI 的 LM 評估工具提供支援的簡單評估方案,可輕鬆訪問一套全面的標準 LLM 基準。鑑於評估的重要性,我們將在未來幾個月與 EleutherAI 密切合作,以構建更深入、更“原生”的整合。
  • ExecuTorch – 使用 torchtune 微調的模型可以輕鬆匯出到 ExecuTorch,從而實現在各種移動和邊緣裝置上高效推理。
  • torchao – 使用由 torchao 量化 API 提供支援的簡單訓練後方案,輕鬆高效地將微調後的模型量化為 4 位或 8 位。

下一步是什麼?

這僅僅是個開始,我們非常高興能將這個 Alpha 版本呈現給一個充滿活力和熱情的社群。在接下來的幾周裡,我們將繼續透過更多模型、功能和微調技術來豐富該庫。我們很樂意透過我們的 GitHub 倉庫上的 GitHub 問題或我們的Discord 頻道收到任何反饋、評論或功能請求。一如既往,我們歡迎這個優秀社群的任何貢獻。祝您微調愉快!