本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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 格式輸入。您可以使用 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 AI 內建演算法不支援此功能。
如需使用 API 建立批次轉換任務的資訊,請參閱 CreateTransformJob
API。如需批次轉換輸入與輸出物件間關係的詳細資訊,請參閱OutputDataConfig
。如需如何使用批次轉換的範例,請參閱(選用) 使用批次轉換進行預測。
加速批次轉換任務
如果您使用的是 CreateTransformJob
API,則可以使用參數的最佳值,減少完成批次轉換任務所需的時間。這包括參數,例如 MaxPayloadInMB
、 MaxConcurrentTransforms
或 BatchStrategy
。MaxConcurrentTransforms
的理想值等於批次轉換工作中的運算工作者的數量。
如果您使用的是 SageMaker AI 主控台,請在批次轉換任務組態頁面的其他組態區段中指定這些最佳參數值。SageMaker AI 會自動尋找內建演算法的最佳參數設定。針對自訂演算法,請透過 execution-parameters 端點來提供這些值。
使用批次轉換來測試生產變體
若要測試不同的模型或超參數設定,請為每個新模型變體建立個別的轉換任務,並使用驗證資料集。針對每個轉換任務,請為輸出檔案指定唯一的模型名稱和 Amazon S3 中的位置。若要分析結果,請使用 推論管道日誌和指標。
批次轉換範例筆記本
如需使用批次轉換的範例筆記本,請參閱搭配 PCA 和 DBSCAN Movie 叢集的批次轉換
如需建立和存取 Jupyter 筆記本執行個體的指示,您可以使用這些執行個體在 SageMaker AI 中執行範例,請參閱 Amazon SageMaker 筆記本執行個體。建立並開啟筆記本執行個體後,請選擇 SageMaker 範例索引標籤,以查看所有 SageMaker AI 範例的清單。使用 NTM 演算法的主題模組化範例筆記本,位於進階功能一節。若要開啟筆記本,請選擇其使用標籤,然後選擇建立複本。