SageMaker 智慧型篩選的運作方式 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

SageMaker 智慧型篩選的運作方式

SageMaker 智慧型篩選的目標是在訓練過程中篩選訓練資料,並僅向模型提供更多的資訊範例。使用 PyTorch 進行一般訓練期間,資料會反覆以批次方式傳送至訓練迴圈,以及由 PyTorch DataLoader傳送至加速器裝置 (例如 GPUs 或 Trainium 晶片)。SageMaker 智慧分片在此資料載入階段實作,因此與您訓練管道中的任何上游資料預先處理無關。SageMaker 智慧分片使用您的模型及其使用者指定的損失函數,在載入每個資料範例時執行評估性向前傳遞。傳回低損失值的樣本對模型的學習影響較小,因此排除在訓練之外,因為模型對它們的正確預測已經非常容易。同時,這些相對高損失的樣本是模型仍然需要學習的,因此這些樣本會保留用於訓練。您可以為 SageMaker 智慧篩選設定的金鑰輸入是要排除的資料比例。例如,透過將比例設定為 25%,分佈在損失分佈最低四分位數的樣本 (從使用者指定的先前樣本數量中取得) 會排除在訓練之外。高遺失範例會累積在精簡的資料批次中。精簡資料批次會傳送至訓練循環 (向前和向後傳遞),而模型會學習和訓練精簡資料批次。

下圖顯示如何設計 SageMaker 智慧篩選演算法的概觀。

SageMaker 智慧分片在載入資料時如何在訓練期間運作的架構圖。

簡而言之,SageMaker 智慧分片會在載入資料時於訓練期間運作。SageMaker 智慧分片演算法會在批次上執行損失計算,並在每次反覆運算的向前和向後傳遞之前將未改善的資料轉出。然後,精簡的資料批次會用於向前和向後傳遞。

注意

SageMaker AI 上的資料智慧篩選會使用額外的向前傳遞來分析和篩選訓練資料。反過來,由於訓練任務中排除了影響較小的資料,因此向下傳遞次數較少。因此,具有長或昂貴的反向通過的模型在使用智慧分片時,會獲得最大的效率。同時,如果您模型的向前傳遞需要比向後傳遞更長的時間,則額外負荷可能會增加總訓練時間。若要測量每次通過所花費的時間,您可以執行試行訓練任務,並收集記錄程序時間的日誌。另請考慮使用 SageMaker Profiler,以提供分析工具和 UI 應用程式。如需進一步了解,請參閱 Amazon SageMaker Profiler

SageMaker 智慧型篩選適用於 PyTorch 型訓練任務,其具有傳統分散式資料平行處理,可為每個 GPU 工作者建立模型複本,並執行 AllReduce。它適用於 PyTorch DDP 和 SageMaker AI 分散式資料平行程式庫。