本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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格式化輸入。您可以使用 BatchStrategy
和 MaxPayloadInMB
參數控制微型批次的大小。MaxPayloadInMB
不得大於 100 MB。如果您指定選用的 MaxConcurrentTransforms
參數,則 (MaxConcurrentTransforms * MaxPayloadInMB)
的值也不得超過 100 MB。
如果批次轉換任務成功處理輸入檔案中的所有記錄,則會建立輸出檔案。輸出檔案具有相同的名稱和.out
副檔名。對於 input1.csv
和 input2.csv
之類的多個輸入檔,系統會將輸出檔命名為 input1.csv.out
和 input2.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,則可以使用參數的最佳值來縮短完成批次轉換任務所需的時間。這包括參數,例如 MaxPayloadInMB
、 MaxConcurrentTransforms
或 BatchStrategy
。MaxConcurrentTransforms
的理想值等於批次轉換工作中的運算工作者的數量。
如果您使用 SageMaker 主控台,請在批次轉換任務組態頁面的其他組態區段中指定這些最佳參數值。 SageMaker 會自動尋找內建演算法的最佳參數設定。針對自訂演算法,請透過 execution-parameters 端點來提供這些值。
使用批次轉換來測試生產變體
若要測試不同的模型或超參數設定,請為每個新模型變體建立單獨的轉換任務,並使用驗證資料集。針對每個轉換任務,請為輸出檔案指定唯一的模型名稱和 Amazon S3 中的位置。若要分析結果,請使用 推論管道日誌和指標。
批次轉換範例筆記本
如需使用批次轉換的範例筆記本,請參閱使用 PCA和DBSCAN電影叢集進行批次轉換。
如需建立和存取可用於在 中執行範例的 Jupyter 筆記本執行個體的指示 SageMaker,請參閱 Amazon SageMaker Notebook 執行個體。建立和開啟筆記本執行個體之後,請選擇SageMaker範例索引標籤以查看所有 SageMaker 範例的清單。使用NTM演算法的主題建模範例筆記本位於進階功能區段中。若要開啟筆記本,請選擇其使用標籤,然後選擇建立複本。