pytorch/torchtitan

A PyTorch native platform for training generative AI models

torchtitan – 基於 PyTorch 的大規模生成式 AI 模型訓練平台

是什麼torchtitan 是由 PyTorch 團隊開發的開源庫,可讓你使用原生 PyTorch 原語,以可擴展的方式訓練 Llama 3.1 等大型語言模型(LLM)。它整合了多種分散式訓練技術(FSDP2、張量並行、流水線並行、上下文並行等),並搭配檢查點、量化和日誌記錄等實用工具,透過簡潔、可擴展的 Python API 提供服務。

為何重要 – 訓練現代 LLM(8 B 到 405 B 參數)通常需要複雜的自訂 CUDA 內核、第三方庫和重型編排工具堆疊。torchtitan 旨在透過提供一個最小程式碼庫,直接與最新的 PyTorch 夜間版本協同工作,降低這種複雜性。研究人員無需重寫模型程式碼即可實驗新的並行策略,而生產團隊則可使用同一庫從原型快速過渡到多節點訓練。


核心功能(如 README 所列)

類別 功能
並行處理 • 多維可組合並行:FSDP2(按參數分片)、張量並行(含異步 TP)、流水線並行(零氣泡)、超長序列用的上下文並行。
記憶體與速度優化 • 元裝置模型初始化、選擇性/完整激活檢查點、分散式異步檢查點、BF16 優化器狀態、Float8 和 MXFP8 量化(Blackwell GPU)。
訓練工作流 • 支援 torch.compile,透過令牌數標誌實現梯度累積,靈活的預熱-穩定-衰減型 LR 調度器,內建 C4 預設定資料載入器,支援自訂資料集插件。
可觀測性 • TensorBoard / Weights & Biases 指標(損失、記憶體、吞吐量、MFU),每秩結構化日誌,性能分析工具(CPU/GPU,飛行記錄器)。
互操作性 • 分散式檢查點格式(DCP)可直接載入至 torchtune 用於微調,支援 TorchFT 集成,提供下載分詞器和檢查點轉換的輔助腳本。
可擴展性 • 文件完善的擴展點,experiments 檔案夾支援快速原型(如 TitanRL RL 堆疊),新增模型的清晰指南。
支援硬體 • NVIDIA GPU(已測試至 H100,支援 512 GPU 運行),AMD ROCm 分支,相容任意 CUDA/ROCm 版本的夜間建構。

典型工作流程

  1. 安裝pip install torchtitan(或使用夜間 PyTorch + 夜間 torchtitan 輪子)。可在單節點或 Slurm/ParallelCluster 集群上開箱即用。
  2. 準備資料 – 使用內建 C4 加載器,或在設定中指向自訂資料集。
  3. 選擇模型 – Llama 3.1(8 B、70 B、405 B)已內建;新增模型請參考 torchtitan/models/README.md 中的簡明指南。
  4. 設定 – 所有選項透過 Python 設定檔和 CLI 標誌(--module, --config)暴露。可自由啟用/停用任何並行、檢查點或量化選項。
  5. 啟動 – 在 1~N 個節點上執行 torchrun(或提供的 run_train.sh)。torchtitan 會自動組合請求的並行策略並開始訓練。
  6. 監控 – 指標在 TensorBoard/W&B 中顯示;日誌包含用於除錯的每秩追蹤資訊。
  7. 檢查點與微調 – 保存的 DCP 檢查點可直接由 torchtune 加載,用於下游 SFT 或 RLHF。

快速入門(範例)

# 1️⃣ 安裝夜間 PyTorch + torchtitan 輪子
pip3 install --pre torch --index-url https://download.pytorch.org/whl/nightly/cu130
pip install --pre torchtitan --index-url https://download.pytorch.org/whl/nightly/cu130

# 2️⃣ 下載 Llama‑3.1 分詞器
python scripts/download_hf_assets.py \
    --repo_id meta-llama/Llama-3.1-8B \
    --assets tokenizer \
    --hf_token <your‑HF‑token>

# 3️⃣ 啟動 8 GPU 運行(單節點)
MODULE=llama3 CONFIG=llama3_8b ./run_train.sh

CONFIG=llama3_8b 檔案位於 torchtitan/config/,已啟用 FSDP2 + 張量並行 + 激活檢查點等設定。


適合誰使用?

  • 研究人員:探索新擴展定律、並行組合或量化技術者。其乾淨室實作使底層程式碼易於閱讀和修改。
  • 工程師:建構生產級 LLM 預訓練流程,希望留在 PyTorch 生態系統內,避免外部專有堆疊者。
  • 學生:學習分散式訓練概念者。experiments 檔案夾包含可執行的示範(如 TitanRL),展示同一模型程式碼如何用於 RL 訓練和推理。

社群與支援

  • 論壇 – 專用 PyTorch 論壇分類(pytorch‑forum → distributed → torchtitan)。
  • 論文 – ICLR 2025 論文 《TorchTitan: 用於生產就緒 LLM 預訓練的一站式 PyTorch 原生解決方案》(arXiv 2410.06511)。
  • 貢獻 – 核心變更與實驗性想法的貢獻指南見 CONTRIBUTING.mdtorchtitan/experiments/README.md
  • 第三方分叉 – 存在 AMD 優化分叉(AMD‑AGI/torchtitan‑amd)。

許可證

torchtitan 采用 BSD‑3‑Clause 許可證發布。程式碼本身為寬鬆許可,但使用者必須遵守所下載外部資料或模型權重的許可證(例如 Meta‑Llama 分詞器和檢查點)。


總結torchtitan 提供了一個生產就緒、僅依賴 PyTorch 的大規模 LLM 訓練堆疊,強調程式碼可讀性、可擴展性和最新的分散式訓練研究。若需在不引入重型外部生態的情況下訓練或實驗大規模生成模型,此庫是最佳起點。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案