pi0 和 pi0-FAST:視覺-語言-動作模型,適用於一般機器人控制

Hugging Face 已將 π0 和 π0-FAST,由 Physical Intelligence 開發的通用視覺-語言-動作 (VLA) 模型,整合到 LeRobot 儲存庫。這些模型透過大規模預訓練和創新的動作表示技術,使機器人能夠在不同硬體配置下執行複雜且靈巧的操作任務。

π0: 透過流匹配的通用機器人控制

π0 (Pi-Zero) 是一個專為通用機器人控制設計的 VLA 模型,訓練資料來自七個機器人平台和 68 個獨特任務。它能夠在零樣本和微調環境中執行真實世界的任務,例如衣物折疊、雜貨打包、箱子組裝和物體檢索。

與標準機器人策略不同,π0 使用 flow matching 在 50Hz 下生成平滑且即時的動作軌跡。此過程從隨機噪聲開始,逐步收斂至一系列馬達動作,確保模型在部署過程中高效且精確。

π0-FAST: 自回歸效率與 FAST 權杖化

π0-FAST 是 π0 的自回歸版本,利用 Frequency-space Action Sequence Tokenization (FAST) 來提升訓練速度和動作保真度。

π0-FAST 的主要優勢

π0-FAST 相較於擴散基礎的 VLA 提供了以下幾項改進:

  • 訓練速度: 訓練速度提升 5 倍。
  • 動作表示: 透過減少動作序列的冗餘,提升表示品質。
  • 泛化能力: 在不同機器人形態和未見環境中展現更強的泛化能力。

FAST 權杖化的運作方式

FAST 使用 離散餘弦變換 (DCT) 將連續動作序列壓縮為離散權杖。流程步驟如下:

  1. 正規化: 原始機器人動作進行分位數正規化至 [-1, 1] 範圍,以確保不同系統間的一致性。
  2. DCT 變換: 每個動作維度從時域轉換至頻域。
  3. 壓縮: 透過縮放並四捨五入操作移除無關係數。
  4. 展平: 得到的稀疏 DCT 係數矩陣展平為一維整數序列,優先保留低頻分量。
  5. BPE 編碼: Byte Pair Encoding (BPE) 合併頻繁出現的模式以維持固定大小的詞彙表。

由於這些操作是可逆的,動作可以無損重建。普遍版本 FAST+ 已在來自移動、雙臂和單臂機器人的一百萬個動作序列上進行訓練,並可作為 Hugging Face AutoProcessor 使用。

技術架構:VLA 注意力機制

VLA 透過加入動作和觀測狀態權杖來擴展視覺-語言模型 (VLM)。π0 採用特定的注意力結構來處理這些多模態輸入:

  • 前綴權杖: 代表完整場景(圖像和文字),並且彼此完全關注,類似於 PaliGemma。
  • 狀態權杖: 代表機器人當前的環境狀態(例如關節角度)。它們以三角(因果)方式關注前綴權杖和先前的狀態權杖。
  • 動作權杖: 代表馬達指令序列。這些權杖對圖像權杖、文字權杖、狀態權杖和其他動作權杖具有完全可見性,不包括填充。

使用 FlexAttention 優化注意力

為了處理產生的 2D 因果遮罩(該遮罩表現出強塊稀疏性),實作使用 PyTorch FlexAttention。與其使用 naive 矩陣乘法或 FlashAttention2(後者在處理不規則塊遮罩時會遇到困難),團隊透過索引因果遮罩來建立塊遮罩。此方法能有效跳過不必要的計算,提升效能。

在 LeRobot 中的實作

π0 和 π0-FAST 現在已在 LeRobot 儲存庫中提供。使用者可以在預訓練模型上進行推論,或將其微調至特定環境。微調可透過 lerobot/scripts/train.py 指令執行,使基礎 π0 模型能夠適應特定的機器人任務與環境。

Sources