Liger GRPO 與 TRL 整合

Liger GRPO 與 TRL 的整合

Liger GRPO 正在與 TRL(Transformer Reinforcement Learning)庫整合,以優化 Group Relative Policy Optimization(GRPO)訓練。然而,目前的報告指出在使用特定分散式訓練配置時存在相容性問題。

DeepSpeed ZeRO-3 相容性問題

已發現一項技術問題:在使用 DeepSpeed ZeRO-3 配置時,Liger GRPO 損失在多 GPU 訓練過程中失敗。

錯誤細節

當嘗試使用 bf16 精度和 DeepSpeed ZeRO-3 訓練 Qwen/Qwen2.5-0.5B-Instruct 模型時,會出現 torch._dynamo.exc.TorchRuntimeError。此錯誤被描述為矩陣乘法(matmul)操作期間的尺寸不匹配。

具體而言,回溯顯示以下情境中的形狀不匹配:

  • 輸入尺寸(s0x896)
  • 向量尺寸(0)
  • 錯誤訊息size mismatch, got input (s0x896), vec (0)

技術背景

失敗發生在前向傳播期間的 LigerFusedLinearGRPOFunction 中,具體是在 liger_kernel/chunked_loss/fused_linear_ppo.py 中呼叫 accumulate_chunk 時。這暗示融合的 kernel 可能未正確處理 DeepSpeed ZeRO-3 提供的分片參數或狀態管理,導致一個空張量(尺寸為 0)被傳遞至矩陣乘法操作。

Sources