產品背景
大模型訓練過程往往比較長,根據業界數據,平均約兩天,大模型訓練會中斷一次,經常遇到的問題例如:
程序出現故障
節點出現故障
loss數據惡化,需要手動暫停,調參重訓
服務器故障、網絡中斷、開發平臺故障等
斷點續訓過程需要排查節點、隔離節點、重新啟動上一次CKPT,浪費了資源和訓練時間,是大模型訓練的重要痛點之一。針對這一問題,平臺提供了斷點續訓能力并支持配置客戶需要的策略。
斷點續訓
平臺對節點故障、集群故障、程序故障等多種場景,支持故障感知、故障定位、故障修復。目前支持PyTorch、Mindspore框架。
支持以下故障類型:
網絡故障:當網卡鏈接出現故障或狀態異常(link status: DOWN)后,可正常觸發重調度,實現斷點續訓
節點心跳故障:當節點因Label異常等原因導致心跳丟失后,可正常觸發重調度,實現斷點續訓
節點Shutdown/Reboot故障:當節點被關閉或重啟后,可正常觸發重調度,實現斷點續訓
芯片PCIE故障:當節點發生芯片丟失等異常后,可正常觸發重調度,實現斷點續訓
斷點故障:當錯誤發生時斷點正在寫入,未正常完成保存即斷點保存不完整時,可正常恢復至上一完整斷點,實現斷點續訓
優雅容錯
優雅容錯功能可以在NPU芯片級別的故障發生時,優先嘗試恢復故障芯片(需要在支持的場景下),從而實現訓練任務的進程級別的重啟,無需觸發集群的重調度來切換新的節點再進行訓練。
優雅容錯有以下優點:
進程級別殺死和恢復,相比重調度切換節點的方式減少了耗時
底層組件嘗試芯片故障熱恢復,減少機器因故障隔離導致利用率下降
目前優雅容錯支持PyTorch、Mindspore,支持以下故障類型:
L3故障--tsdaemon異常:可正常恢復進程并斷點續訓
L4故障--slogd心跳異常:可正常繼續訓練,L4級別故障不影響任務,故障等待任務結束后處理并恢復
L5故障--內存超限異常:可正常恢復進程并斷點續訓
L5故障--跨板心跳異常:可正常恢復進程并斷點續訓
L5故障--小核心跳異常:恢復失敗,節點隔離并觸發重調度
所有故障處理級別
| 故障級別 | 故障類型 | 說明 | 重調度處理 | 優雅容錯處理 |
|---|---|---|---|---|
| L1 | NotHandleFault | 對業務無影響的故障,無需處理 | 暫不處理 | 暫不處理 |
| L2 | RestartRequest | 影響業務執行,需要重新執行業務請求 | 隔離設備,進行任務重調度 | 推理場景重執行推理請求,訓練場景重新執行訓練業務 |
| L3 | RestartBusiness | 影響業務執行,需要重新執行業務 | 隔離設備,進行任務重調度 | 重新執行業務 |
| L4 | FreeRestartNPU | 影響業務執行,待芯片空閑時需復位芯片 | 隔離設備,進行任務重調度 | 復位芯片后重新執行業務 |
| L5 | RestartNPU | 影響業務執行,需立即復位芯片 | 隔離設備,進行任務重調度 | 復位芯片后重新執行業務 |
| L6 | SeparateNPU | 無法恢復,需要隔離設備 | 隔離設備,進行任務重調度 | 隔離設備,進行任務重調度 |