SageMaker Smart Sifting 的運作方式 - Amazon SageMaker AI

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

SageMaker Smart Sifting 的運作方式

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

下圖是如何設計 SageMaker Smart Sifting 演算法的概觀。

架構圖:載入資料時,SageMaker Smart Sifting 如何在訓練期間運作。

簡而言之,SageMaker Smart Sifting 會在載入資料時於訓練期間運作。SageMaker Smart Sifting 演算法會在批次上計算損失,並在每次反覆計算的向前和向後傳遞之前移除無改善功用的資料。然後,精簡的資料批次就會用於向前和向後傳遞。

注意

SageMaker AI 上的資料 Smart Sifting 會額外向前傳遞,來分析和篩選訓練資料。反之則較少向後傳遞,因為較不具影響的資料會從訓練任務中排除。因此,有長期或高成本向後傳遞的模型在使用 Smart Sifting 時,效率提升的效果最好。同時,如果您模型的向前傳遞需要比向後傳遞花費更多時間,額外負荷可能增加總訓練時間。若要測量每次傳遞所花費的時間,您可以執行試行訓練任務,並收集記錄程序時間的日誌。另外,您也可以考慮使用提供分析工具和使用者介面應用程式的 SageMaker Profiler。如需詳細資訊,請參閱 Amazon SageMaker Profiler

SageMaker Smart Sifting 適用於具傳統分散式資料平行的 PyTorch 型訓練任務,可在每個 GPU 工作者上建立模型複本,並執行 AllReduce。它適用於 PyTorch DDP 和 SageMaker AI 分散式資料平行程式庫。