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 版本的夜間建構。 |
典型工作流程
- 安裝 –
pip install torchtitan(或使用夜間 PyTorch + 夜間torchtitan輪子)。可在單節點或 Slurm/ParallelCluster 集群上開箱即用。 - 準備資料 – 使用內建 C4 加載器,或在設定中指向自訂資料集。
- 選擇模型 – Llama 3.1(8 B、70 B、405 B)已內建;新增模型請參考
torchtitan/models/README.md中的簡明指南。 - 設定 – 所有選項透過 Python 設定檔和 CLI 標誌(
--module,--config)暴露。可自由啟用/停用任何並行、檢查點或量化選項。 - 啟動 – 在 1~N 個節點上執行
torchrun(或提供的run_train.sh)。torchtitan會自動組合請求的並行策略並開始訓練。 - 監控 – 指標在 TensorBoard/W&B 中顯示;日誌包含用於除錯的每秩追蹤資訊。
- 檢查點與微調 – 保存的 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.md和torchtitan/experiments/README.md。 - 第三方分叉 – 存在 AMD 優化分叉(
AMD‑AGI/torchtitan‑amd)。
許可證
torchtitan 采用 BSD‑3‑Clause 許可證發布。程式碼本身為寬鬆許可,但使用者必須遵守所下載外部資料或模型權重的許可證(例如 Meta‑Llama 分詞器和檢查點)。
總結 – torchtitan 提供了一個生產就緒、僅依賴 PyTorch 的大規模 LLM 訓練堆疊,強調程式碼可讀性、可擴展性和最新的分散式訓練研究。若需在不引入重型外部生態的情況下訓練或實驗大規模生成模型,此庫是最佳起點。
相關
- 專案
- 專案
- 專案
- 專案
- 專案