使用 Amazon SageMaker AI 進行批次轉換以進行推論 - Amazon SageMaker AI

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

使用 Amazon SageMaker AI 進行批次轉換以進行推論

當您需要執行下列動作時,請使用批次轉換:

  • 預先處理資料集,以移除干擾資料集訓練或推論的雜訊或偏差。

  • 從大型資料集取得推論。

  • 當您不需要持久性端點時,執行推論。

  • 將輸入記錄與推論建立關聯,以協助解釋結果。

若要先篩選輸入資料再執行推論,或建立輸入記錄和有關這些記錄推論的關聯性,請參閱建立預測結果與輸入記錄的關聯性。例如,您可以篩選輸入資料,以提供用於建立和解譯輸出資料報告的內容。

使用批次轉換從大型資料集取得推論

批次轉換會在指定的參數限制內,自動管理大型資料集的處理作業。例如,將資料集檔案 input1.csv存放在 S3 儲存貯體中。輸入檔案的內容可能如下所示。

Record1-Attribute1, Record1-Attribute2, Record1-Attribute3, ..., Record1-AttributeM Record2-Attribute1, Record2-Attribute2, Record2-Attribute3, ..., Record2-AttributeM Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM ... RecordN-Attribute1, RecordN-Attribute2, RecordN-Attribute3, ..., RecordN-AttributeM

當批次轉換任務開始時,SageMaker AI 會啟動運算執行個體,並在它們之間分配推論或預先處理工作負載。批次轉換依據金鑰分區輸入中的 Amazon S3 物件,並將 Amazon S3 物件對應到執行個體。有多個檔案時,一個執行個體可能會處理 input1.csv,而另一個執行個體可能會處理名為 input2.csv 的檔案。如果您有一個輸入檔案,但要初始化多個運算執行個體,則只有一個執行個體會處理輸入檔案。其餘執行個體為閒置狀態。

您還可以將輸入檔案分割為微型批次。例如,您可能只包含兩個記錄,從 input1.csv 建立微批次。

Record3-Attribute1, Record3-Attribute2, Record3-Attribute3, ..., Record3-AttributeM Record4-Attribute1, Record4-Attribute2, Record4-Attribute3, ..., Record4-AttributeM
注意

SageMaker AI 會分別處理每個輸入檔案。為符合 MaxPayloadInMB 限制,它不會合併不同輸入檔案的微型批次。

若要將輸入檔案分割成數個微型批次,則建立批次轉換工作時,請將 SplitType 參數值設為 Line。SageMaker AI 會在下列情況下,在單一請求中使用整個輸入檔案:

  • SplitType 設定為 None

  • 輸入檔案無法分割為迷你批次。

。 請注意,批次轉換不支援包含內嵌新行字元的 CSV 格式輸入。您可以使用 BatchStrategyMaxPayloadInMB 參數控制微型批次的大小。MaxPayloadInMB 不得大於 100 MB。如果您指定選用的 MaxConcurrentTransforms 參數,則 (MaxConcurrentTransforms * MaxPayloadInMB) 的值也不得超過 100 MB。

如果批次轉換任務成功處理輸入檔案中的所有記錄,則會建立輸出檔案。輸出檔案具有相同的名稱和.out副檔名。對於 input1.csvinput2.csv 之類的多個輸入檔,系統會將輸出檔命名為 input1.csv.outinput2.csv.out。批次轉換工作會將輸出檔案儲存在 Amazon S3 的指定位置,例如 s3://amzn-s3-demo-bucket/output/

系統會以輸入檔中對應記錄的相同順序來列出輸出檔的預測結果。根據前文所示的輸入檔內容,input1.csv.out 輸出檔的內容可能如下所示。

Inference1-Attribute1, Inference1-Attribute2, Inference1-Attribute3, ..., Inference1-AttributeM Inference2-Attribute1, Inference2-Attribute2, Inference2-Attribute3, ..., Inference2-AttributeM Inference3-Attribute1, Inference3-Attribute2, Inference3-Attribute3, ..., Inference3-AttributeM ... InferenceN-Attribute1, InferenceN-Attribute2, InferenceN-Attribute3, ..., InferenceN-AttributeM

如果將 SplitType 設定為 Line,您可以將 AssembleWith 參數設定為 Line,以行分隔符號串連輸出記錄。串連不會改變輸出檔案的數量。輸出檔案的數量等於輸入檔案的數量,而且使用 AssembleWith 不合併檔案。如果您未指定 AssembleWith 參數,輸出記錄預設會以二進位格式串連。

輸入資料非常大,且使用 HTTP 區塊編碼傳輸時,若要將資料串流至演算法,請將 MaxPayloadInMB 設為 0。Amazon SageMaker AI 內建演算法不支援此功能。

如需使用 API 建立批次轉換任務的資訊,請參閱 CreateTransformJob API。如需批次轉換輸入與輸出物件間關係的詳細資訊,請參閱OutputDataConfig。如需如何使用批次轉換的範例,請參閱(選用) 使用批次轉換進行預測

加速批次轉換任務

如果您使用的是 CreateTransformJob API,則可以使用參數的最佳值,減少完成批次轉換任務所需的時間。這包括參數,例如 MaxPayloadInMBMaxConcurrentTransformsBatchStrategyMaxConcurrentTransforms 的理想值等於批次轉換工作中的運算工作者的數量。

如果您使用的是 SageMaker AI 主控台,請在批次轉換任務組態頁面的其他組態區段中指定這些最佳參數值。SageMaker AI 會自動尋找內建演算法的最佳參數設定。針對自訂演算法,請透過 execution-parameters 端點來提供這些值。

使用批次轉換來測試生產變體

若要測試不同的模型或超參數設定,請為每個新模型變體建立個別的轉換任務,並使用驗證資料集。針對每個轉換任務,請為輸出檔案指定唯一的模型名稱和 Amazon S3 中的位置。若要分析結果,請使用 推論管道日誌和指標

批次轉換範例筆記本

如需使用批次轉換的範例筆記本,請參閱搭配 PCA 和 DBSCAN Movie 叢集的批次轉換。此筆記本使用批次轉換搭配主體元件分析 (PCA) 模型,以減少使用者項目檢閱矩陣中的資料。然後,它會顯示具有雜訊 (DBSCAN) 演算法的應用程式,以密度為基礎的空間叢集來叢集電影。

如需建立和存取 Jupyter 筆記本執行個體的指示,您可以使用這些執行個體在 SageMaker AI 中執行範例,請參閱 Amazon SageMaker 筆記本執行個體。建立並開啟筆記本執行個體後,請選擇 SageMaker 範例索引標籤,以查看所有 SageMaker AI 範例的清單。使用 NTM 演算法的主題模組化範例筆記本,位於進階功能一節。若要開啟筆記本,請選擇其使用標籤,然後選擇建立複本