本文匯總使用DLC模組遇到的常見問題、定位思路以及解決辦法。
Q:模型訓練時報錯:SupportsDistributedTraining false, please set InstanceCount=1
報錯原因:當前訓練任務啟用了多個執行個體(節點數大於1),但該模型不支援分布式訓練。
解決方案:將節點數量設定為1。

Q:模型訓練時報錯:failed to compose dlc job specs, resource limiting triggered, you are trying to use more GPU resources than the threshold
訓練任務當前限制最多同時運行2*GPU,超過會觸發資源限制。請等待正在運行中的訓練任務完成再啟動,或提交工單申請增加配額。
Q:“exited with code 137”,遇到錯誤碼137怎麼辦?
當您遇到錯誤碼137時,如“xxx exited with code 137”,您可以嘗試更換記憶體規格更大的執行個體,或增加worker數量,或修改您的代碼中記憶體申請的數量。

在Linux系統中,錯誤碼137表示進程被SIGKILL訊號強制中止了,最常見的原因是記憶體使用量量過高,即OOM(Out Of Memory)錯誤。您可以結合任務詳情中worker的記憶體水位來進一步判斷記憶體不足的原因,或更換記憶體規格更大的執行個體,或增加worker數量,或修改您的代碼中記憶體申請的數量。
Q:當DLC任務執行狀態為已失敗或已出隊時該如何處理?
DLC的任務執行狀態順序為:
任務類型 | 任務執行狀態順序 | |
使用隨用隨付資源提交DLC任務 | 使用靈駿智算競價資源 |
|
使用靈駿智算或通用計算公用資源 |
| |
使用訂用帳戶資源提交DLC任務 |
| |
Q:使用公用資源的DLC任務後期能調整為專屬資源嗎?
您需要重新建立任務來調整所使用的資源。您可以在原始任務操作列下單擊複製,以建立一個新的任務,該任務將複用原始任務的配置,避免重新輸入和配置相同的參數。關於計費詳情介紹,請參見分布式訓練(DLC)計費說明。
Q:在DLC中使用多機多卡如何設定?
您可以在建立DLC任務時,配置以下啟動命令,更多配置詳情,請參見建立訓練任務。
python -m torch.distributed.launch \ --nproc_per_node=2 \ --master_addr=${MASTER_ADDR} \ --master_port=${MASTER_PORT} \ --nnodes=${WORLD_SIZE} \ --node_rank=${RANK} \ train.py --epochs=100Q:如何將在PAI-DLC平台訓練得到的模型下載到本地?
在提交分布式訓練(DLC)任務時,您可以關聯所需的資料集,並在啟動命令中通過配置相應命令將訓練結果輸出至已掛載的資料集目錄中。
這樣,在訓練完成後,產生的模型檔案會自動儲存到已掛載的資料集目錄中。後續您可以直接存取已掛載資料集對應的檔案系統,並從中下載模型檔案到本地。
如何在提交DLC任務時綁定資料集,請參見通過控制台建立任務。
如何將Object Storage Service檔案系統中的檔案下載到本地,請參見控制台快速入門。
如何將NAS檔案系統中的檔案下載到本地,請參見Function Compute掛載檔案系統。
Q:在DLC中如何使用Docker鏡像?
使用Docker鏡像建立DLC任務:您可以將Docker鏡像推送至阿里雲Container RegistryACR中,然後再將其添加至PAI工作空間的自訂鏡像中,即可在建立DLC任務時選擇對應鏡像啟動執行個體。
將Docker鏡像推送至Container RegistryACR中,請參見使用個人版執行個體推送拉取鏡像。
添加PAI自訂鏡像,請參見自訂鏡像。
在DLC容器中安裝和使用Docker:DLC任務本身運行在容器中,因此無法在DLC再安裝和使用Docker。
,或者查看執行個體動作記錄,來初步定位任務執行失敗的原因,詳情請參見