google/paxml

Pax is a Jax-based machine learning framework for training large scale models. Pax allows for advanced and fully configurable experimentation and parallelization, and has demonstrated industry leading model flop utilization rates.

解決的問題

Paxml(或 Pax)提供了一個用於設定與執行大規模機器學習實驗的框架,專為在 Jax 之上運作而設計。它簡化了在分散式硬體(如 Cloud TPU VM 和 TPU Pod 切片)上管理複雜模型設定與部署的過程。

工作原理

Pax 利用 Jax 進行計算,並透過設定檔以結構化方式定義實驗。它支援多種平行策略,包括使用 pjitpmap 的 SPMD(Single Program, Multiple Data)以及流水線平行。該框架處理多主機資料輸入,確保資料在不同 Jax 進程之間分片,避免訓練期間出現重複批次。它也與多種資料輸入類型整合,包括 SeqIO、Lingvo 和自訂實作,以向模型提供訓練、評估與解碼所需的資料。

適用對象

專為訓練超大規模模型(參數量從數十億到數兆)的機器學習研究人員與工程師設計,需要在 TPU 或 GPU 基礎設施上管理這些實驗的穩健系統。

主要亮點

  • TPU 優化:與 Cloud TPU VM 和 Pod 切片深度整合,實現高效率訓練。
  • 可擴展性:支援大規模語言模型的弱擴展,允許模型大小隨使用晶片數量成比例增長。
  • 靈活的平行:支援 pjit(SPMD)和 pmap 用於分散式執行。
  • 資料管理:內建多主機輸入支援,透過 SeqIO 實現評估資料的自動分片/填補。
  • 效能指標:利用 Model FLOPs Utilization(MFU)衡量端到端訓練效率。

相關

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