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

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

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

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

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

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

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

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

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

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

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

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 啟動運算執行個體,並在它們之間分配推論或預先處理工作負載。批次轉換依據金鑰分區輸入中的 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 會分別處理每個輸入檔案。為符合 MaxPayloadInMB 限制,它不會合併不同輸入檔案的微型批次。

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

  • 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 內建演算法不支援此功能。

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

加速批次轉換任務

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

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

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

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

批次轉換範例筆記本

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

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