使用DLC模組時,可參考本頁面的常見問題及解決方案。
有問題先問小PAI
PAI智能助手(小PAI)提供PAI全鏈路產品的使用說明和操作指引,支援對DSW執行個體、DLC任務、EAS服務進行營運診斷,自動識別失敗原因並給出處理建議。

Q:DLC 任務長時間處於“排隊中狀態”,且資源監控顯示總體資源充足,該如何排查?
資源監控頁面顯示的通常是資源集區的配額總量,而任務調度器在分配資源時,是以單節點可用資源為匹配條件的。即使叢集總資源充足,若單個節點無法滿足任務所需的完整資源群組合(如 CPU+GPU),任務仍會排隊。
請根據以下常見原因進行排查和最佳化:
1. 資源片段化(最常見原因)
現象描述:GPU 資源集中在少數節點,但這些節點上的 CPU 或記憶體已被其他任務佔用,導致剩餘資源無法滿足當前任務對“CPU+GPU”的組合需求。
解決方案:嘗試停止部分低優先順序的佔用任務,釋放節點資源後重新提交目標任務。適當調小任務所需的 CPU 規格後重試,以適配當前片段化的資源狀況。
2. 請求的單節點資源規格過大
現象描述:工作要求的單節點資源規格(如 CPU 核心數、記憶體大小)超過了資源群組內任意一個節點的實際可用量。
解決方案:檢查資源群組中各節點的實際配置。嘗試縮小任務的單節點資源規格(例如減少 CPU 核心數),確認是否能正常調度。
3. 並發任務競爭與優先順序問題
現象描述:多個任務同時競爭同一資源集區,較低優先順序的任務需等待高優先順序任務釋放資源。
解決方案:合理配置任務優先順序。將非緊急任務錯峰提交,避免在高峰時段集中競爭資源。
4. 錯誤碼指引
若任務報錯
Resource queue timeout, lack of sufficient resources,請重點確認當前資源群組中各節點的實際可用 CPU/GPU 數量,而非僅看總量。
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表示進程被SIGKILL強制中止,最常見原因是記憶體溢出(OOM)。可結合任務詳情中worker的記憶體水位確認,然後選擇:更換記憶體規格更大的執行個體、增加worker數量,或減少代碼中的記憶體申請量。
Q:當DLC任務執行狀態為已失敗或已出隊時該如何處理?
DLC的任務執行狀態順序為:
任務類型 | 任務執行狀態順序 | |
使用隨用隨付資源提交DLC任務 | 使用靈駿智算競價資源 |
|
使用靈駿智算或通用計算公用資源 |
| |
使用訂用帳戶資源提交DLC任務 |
| |
當任務執行狀態為環境準備中時如何處理?
如果任務長時間處於環境準備中狀態,可能是因為您建立的分布式訓練任務配置了CPFS類型的資料集,但沒有配置專用網路導致的。您需要重新建立分布式訓練任務,配置CPFS類型資料集並配置專用網路,且選擇的專用網路需要與CPFS一致,詳情請參見建立訓練任務。
當任務執行狀態為已失敗時如何處理?
您可以在任務詳情頁面中,將滑鼠懸浮到任務執行狀態後的
,或者查看執行個體動作記錄,來初步定位任務執行失敗的原因,詳情請參見查看訓練詳情。如果任務在環境準備結束後立即失敗,前端使用者日誌可能為空白,這是因為日誌尚未從機器同步到 DLC 前端。此時可通過以下方法排查:
在日誌頁簽中擴大採集時間範圍,以任務 ID 為關鍵詞搜尋日誌事件。
如果已配置 SLS 日誌轉寄,可在 SLS 中以 DLC 任務 ID 為關鍵詞查詢實際報錯。
在執行命令前添加
sleep 10可以為日誌同步留出時間,但該方法僅在任務命令本身有標準輸出(stdout)或標準錯誤(stderr)輸出時有效。如果任務命令(例如exit 1)本身不產生輸出,添加sleep也不會產生可同步的日誌。
Q:使用公用資源的DLC任務後期能調整為專屬資源嗎?
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平台訓練得到的模型下載到本地?
在任務的環境資訊中添加自訂資料集,將掛載路徑設定為 /mnt/data/,然後在啟動命令中加入 cp -r ./output /mnt/data,將訓練產出複製到掛載目錄。訓練完成後,直接從資料集對應的檔案系統下載模型檔案。
如何在提交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。
Q:DLC 任務有部分節點已經完成要怎麼配置才能釋放給其他dlc使用?
問題描述:
在DLC任務啟動多worker分布式訓練任務時,由於每個worker資料不完全一致(比如資料扭曲),會有部分worker先完成,並正常退出的現象。但是預設配置下,部分worker仍會佔用調度的節點。
解決方案:參考PAI-DLC進階參數ReleaseResourcePolicy,將其配置為 pod-exit。預設情況下資源在整個任務完成後才釋放;設定為 pod-exit 後,worker退出即釋放對應資源。
Q:DLC任務報錯OSError: [Errno 116] Stale file handle?
問題描述:
多個Worker在執行PyTorch的torch.compile(AOT編譯)時,因讀取快取檔案失敗而報錯OSError: [Errno 116] Stale file handle。
排查思路&過程:
同步複現發現:該錯誤通常發生在NFS(Network File System)環境下,當某個進程持有檔案控制代碼但檔案在伺服器端已被刪除或移動時,用戶端嘗試訪問會導致控制代碼失效。
問題原因:
PyTorch的AOT編譯會將最佳化後的計算圖緩衝到檔案系統(預設在/tmp)。在叢集環境中,緩衝可能寫入NFS掛載的CPFS,而NFS對檔案刪除敏感。觸發Stale file handle的條件:PyTorch自動清理舊緩衝或其他進程刪除了緩衝目錄;NFS伺服器端檔案被移動、刪除或許可權變更,但用戶端仍持有舊控制代碼;NFS用戶端快取檔案屬性,可能感知不到伺服器端變更。此外,CPFS基於NFS,在高並發訪問時容易出現該問題;多Worker並發讀寫緩衝會進一步引發競爭。
解決方案:
優先驗證:強制緩衝使用本地tmpfs(通過環境變數TORCHINDUCTOR_CACHE_DIR=/dev/shm/torch_cache)。
備選方案:
參考Torch官方文檔改用Redis作為共用快取(需搭建Redis服務)。
檢查CPFS的NFS配置(noac掛載選項可能緩解但影響效能)。
禁用緩衝(TORCHINDUCTOR_CACHE_DIR="",但犧牲編譯效能)。
Q:訪問/mnt/data資料集報錯"Transport endpoint is not connected"?
問題描述:
DLC任務啟動後,執行命令中訪問已掛載的資料集路徑(如/mnt/data)時報錯:Transport endpoint is not connected,表示NFS掛載點已中斷連線。
常見原因:
CPFS VPC不匹配:使用CPFS資料集時,訓練任務所在VPC必須與CPFS檔案系統的VPC一致,否則掛載失敗。
資料集未就緒:通過AI資產管理建立的資料集可能仍在初始化中。
掛載路徑配置錯誤:任務配置中指定的掛載路徑與資料集實際掛載點不一致。
解決方案:
Q:DLC任務一直卡在"環境準備中",報錯"Unable to attach or mount volumes"?
問題描述:
DLC任務啟動過程中,一直卡在網路初始化/環境準備階段,日誌中出現如下報錯:
Unable to attach or mount volumes: unmounted volumes=[hostpath-volume], unattached volumes=[...]: timed out waiting for the condition常見原因:
節點磁碟空間不足:計算節點本地磁碟空間已滿,無法掛載hostpath-volume。
儲存後端異常:NAS/CPFS/OSS等儲存後端出現暫時性故障或連線逾時。
節點資源爭搶:多個任務同時調度到同一節點,導致volume掛載排隊逾時。
解決方案:
重新提交任務:大多數情況下,該錯誤為暫時性問題,重新建立任務即可恢複。
檢查儲存連通性:確認資料集關聯的NAS/CPFS/OSS服務狀態正常,VPC和安全性群組配置正確。
如果問題持續出現,請聯絡阿里雲支援人員並附上任務ID和完整錯誤記錄檔。
Q:任務建立失敗,報錯ResourceAllocateFailed/下單被中止,怎麼解決?
現象: 在DataWorks營運中心查看周期執行個體時,任務狀態為失敗,作業記錄或DLC工作清單中出現ResourceAllocateFailed,提示“為保護您的賬戶安全,下單被中止”。
原因: 系統自動觸發賬戶安全保護機制,中斷了資源分派請求。
解決方案:
訪問阿里雲自助服務工具:https://smartservice.console.alibabacloud.com/service/self-service-center/search?questionId=27591。
按頁面提示填寫資料並提交申訴,專員通常會在1個工作日內完成審核。
審核通過後,您可以通過以下方式繼續:
在DataWorks營運中心對失敗的周期執行個體執行重跑;
等待下一個調度周期自動產生新的DLC任務執行個體。
查看審核進度: 登入阿里雲控制台,進入右上方訊息中心 > 站內信;或重新訪問上述自助工具鏈接查看申訴單狀態。