本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從批次轉換工作擷取資料
無論您使用 AWS SDK for Python (Boto) 或 SageMaker Python SDK,開啟批次轉換任務資料擷取所需的步驟都類似。如果您使用 AWS SDK,請在開啟資料擷取CreateTransformJob
的方法中定義 DataCaptureConfig 字典以及必要欄位。如果您使用 SageMaker AI Python SDK,請匯入 BatchDataCaptureConfig
類別,並從此類別初始化執行個體。然後,將此物件傳遞給轉換工作執行個體的 batch_data_capture_config
參數。
如果要使用下列程式碼片段,請用您的資訊取代範例程式碼中的斜體預留位置文字
。
如何啟用資料擷取
在啟動轉換工作時指定資料擷取組態。無論您是使用 AWS SDK for Python (Boto3) 或 SageMaker Python SDK,您都必須提供 DestinationS3Uri
引數,這是您要轉換任務記錄擷取資料的目錄。您也可以選擇指定以下參數:
-
KmsKeyId
:用來加密擷取資料的 AWS KMS 金鑰。 -
GenerateInferenceId
:布林值標記,用於在擷取資料時,指出轉換工作是否要將推論 ID 和時間附加至輸出。這對於需要擷取 Ground Truth 資料的模型品質監控非常有用。推論 ID 和時間有助於將擷取資料與您的 Ground Truth 資料進行比對。
如何檢視擷取的資料
轉換工作完成後,擷取的資料就會記錄在您於資料擷取組態提供的 DestinationS3Uri
下。在 DestinationS3Uri
下有兩個子目錄 /input
和 /output
。如果 DestinationS3Uri
是 s3://my-data-capture
,則轉換工作會建立下列目錄:
-
s3://my-data-capture/input
:轉換工作擷取的輸入資料。 -
s3://my-data-capture/output
:轉換工作擷取的輸出資料。
為了避免資料重複,前兩個目錄下擷取的資料是清單檔案。每個清單檔案都是 JSONL 檔案,其中包含來源物件的 Amazon S3 位置。清單檔案看起來可能與以下範例相似:
# under "/input" directory [ {"prefix":"s3://
input_S3_uri
/"}, "dummy_0.csv", "dummy_1.csv", "dummy_2.csv", ... ] # under "/output" directory [ {"prefix":"s3://output_S3_uri
/"}, "dummy_0.csv.out", "dummy_1.csv.out", "dummy_2.csv.out", ... ]
轉換工作會使用 yyyy/mm/dd/hh
S3 前置詞來組織這些清單檔案並加上標籤,以指出擷取的時間。這有助於模型監控確定要分析的資料的適當部分。例如,如果您在世界協調時間 (UTC) 2022 年 8 月 26 日下午 1 點開始轉換工作,則擷取的資料會以 2022/08/26/13/
前置字串標示。
推論 ID 產生
設定 DataCaptureConfig
轉換工作時,您可以開啟布林值標記 GenerateInferenceId
。當您需要執行模型品質和模型偏差監控工作時,需要使用者擷取的 Ground Truth 資料,這時此功能特別有用。模型監控仰賴推論 ID 來比對擷取的資料和 Ground Truth 資料。如需 Ground Truth 擷取的其他詳細資料,請參閱擷取 Ground Truth 標籤並將其與預測合併。開啟 GenerateInferenceId
時,轉換輸出會附加推論 ID (隨機 UUID),以及每筆記錄的轉換工作開始時間 (以世界協調時間計算)。您需要這兩個值才能執行模型品質和模型偏差監控。當您建構 Ground Truth 資料時,您需要提供相同的推論 ID 以符合輸出資料。目前,此功能支援 CSV、JSON 和 JSONL 格式的轉換輸出。
如果轉換輸出為 CSV 格式,輸出檔案看起來會像下列範例:
0, 1f1d57b1-2e6f-488c-8c30-db4e6d757861,2022-08-30T00:49:15Z 1, 22445434-0c67-45e9-bb4d-bd1bf26561e6,2022-08-30T00:49:15Z ...
最後兩個欄位是推論 ID 和轉換工作開始時間。請勿修改這些欄位。其餘欄位是您的轉換工作輸出。
如果轉換輸出為 JSON 或 JSONL 格式,輸出檔案看起來會像下列範例:
{"output": 0, "SageMakerInferenceId": "1f1d57b1-2e6f-488c-8c30-db4e6d757861", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"} {"output": 1, "SageMakerInferenceId": "22445434-0c67-45e9-bb4d-bd1bf26561e6", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"} ...
有兩個保留的附加欄位 SageMakerInferenceId
和 SageMakerInferenceTime
。如果您需要執行模型品質或模型偏差監控,請勿修改這些欄位,因為合併工作時需要這些欄位。