本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
訓練任務的增強資訊清單檔案
使用擴增的資訊清單檔案,在訓練任務中包含具有您資料集的中繼資料。使用擴增的資訊清單檔案時,您的資料集必須存放在 Amazon Simple Storage Service (Amazon S3),而且您必須設定訓練任務使用存放於此的資料集。您要針對一或多個 Channel
指定此資料集的位置和格式。擴增資訊清單只能支援管道輸入模式。請參閱部分,InputMode在Channel
以瞭解有關管道輸入模式的詳細資訊。
指定通道的參數時,您指定的檔案路徑稱為 S3Uri
。Amazon SageMaker AI 會根據 S3DataType
中指定的 來解譯此 URIS3DataSource
。AugmentedManifestFile
選項定義的資訊清單格式,包括具有輸入資料的中繼資料。當您有標籤資料時,也可以使用擴增的資訊清單檔案預先處理。針對使用標籤日期的訓練任務,您通常需要預先處理資料集,結合輸入資料和中繼資料後再訓練。如果您的訓練資料集很大,預先處理費時又費錢。
擴增的資訊清單檔案格式
擴增的資訊清單檔案格式必須為 JSON 行
在訓練期間,SageMaker AI 會剖析每個 JSON 行,並將部分或全部屬性傳送到訓練演算法。您要使用 CreateTrainingJob
API 的 AttributeNames
參數指定傳遞的屬性內容和順序。AttributeNames
參數是 SageMaker AI 在 JSON 物件中尋找做為訓練輸入的屬性名稱的排序清單。
例如,如果您針對 AttributeNames
列出 ["line", "book"]
,則輸入資料必須依指定的順序包含 line
和 book
的屬性名稱。在此範例中,以下為有效的擴增資訊清單檔案內容:
{"author": "Herman Melville", "line": "Call me Ishmael", "book": "Moby Dick"} {"line": "It was love at first sight.", "author": "Joseph Heller", "book": "Catch-22"}
SageMaker AI 會忽略未列出的屬性名稱,即使它們在列出的屬性之前、之後或之間。
使用擴增的資訊清單檔案時,請遵循下列指導方針:
-
屬性在
AttributeNames
參數中的列示順序,會決定屬性在訓練任務中傳遞到演算法的順序。 -
列出的
AttributeNames
可以是 JSON 行中全部屬性的一部分。SageMaker AI 會忽略檔案中未列出的屬性。 -
您可以在
AttributeNames
中指定 JSON 格式允許的任何資料類型,包括文字、數值、資料陣列或物件。 -
若要包含 S3 URI 做為屬性名稱,請為其新增尾碼
-ref
。
如果屬性名稱包含尾碼 -ref
,則屬性值必須為訓練任務可存取之資料檔案的 S3 URI。例如,如果 AttributeNames
包含 ["image-ref", "is-a-cat"]
,下列範例會顯示有效的擴增資訊清單檔案:
{"image-ref": "s3://amzn-s3-demo-bucket/sample01/image1.jpg", "is-a-cat": 1} {"image-ref": "s3://amzn-s3-demo-bucket/sample02/image2.jpg", "is-a-cat": 0}
在此資訊清單檔案的第一行 JSON 中,SageMaker AI 會從 擷取image1.jpg
檔案,s3://amzn-s3-demo-bucket/sample01/
以及"1"
影像分類is-a-cat
屬性的字串表示法。
提示
若要建立擴增的資訊清單檔案,請使用 SageMaker Ground Truth 來建立標籤工作。如需有關從標籤工作輸出的詳細資訊,請參閱標記任務輸出資料。
使用增強型資訊清單檔案
下列各節說明如何在 Amazon SageMaker 訓練任務中使用擴增資訊清單檔案,無論是搭配 SageMaker AI 主控台,或是使用 SageMaker Python SDK 以程式設計方式使用。
使用擴增的資訊清單檔案 (主控台)
若要完成此程序,您需要:
-
存放擴增資訊清單檔案之 S3 儲存貯體的 URL。
-
將列在擴增資訊清單檔案中的資料存放在 S3 儲存貯體。
-
用來存放工作輸出的 S3 儲存貯體的 URL。
在訓練任務中使用擴增的資訊清單檔案 (主控台)
在 https://console.aws.amazon.com/sagemaker/
:// 開啟 Amazon SageMaker AI 主控台。 -
在導覽窗格中,選擇訓練,然後選擇訓練工作。
-
選擇建立訓練工作。
-
提供訓練任務的名稱。名稱在 AWS 帳戶中的 AWS 區域內必須是唯一的。長度為 1 至 63 個字元。有效字元:a-z、A-Z、0-9 和 . : + = @ _ % - (連字號)。
-
選擇您想要使用的演算法。如需支援內建演算法的詳細資訊,請參閱Amazon SageMaker 中的內建演算法和預先訓練的模型。如果您想要使用自訂的演算法,請確定它與管道模式相容。
-
(選用) 針對資源組態,接受預設值,或增加資源耗用量以降低運算時間。
-
(選用) 針對執行個體類型,選擇您想要使用的機器學習 (ML) 運算執行個體類型。在大部分的情況下,ml.m4.xlarge 就足夠。
-
針對執行個體計數,使用預設值
1
。 -
(選用) 針對 Additional volume per instance (GB) (每個執行個體的額外磁碟區 (GB)),選擇您要佈建的機器學習 (ML) 儲存磁碟區大小。在大多數情況下,您可以使用預設值
1
。如要使用大型資料集,請使用較大的大小。
-
-
提供訓練資料集的輸入資料資訊。
-
針對通道名稱,接受預設值 (
train
) 或輸入更有意義的名稱,例如training-augmented-manifest-file
。 -
針對 InputMode,選擇管道。
-
針對 S3 data distribution type (S3 資料分佈類型),選擇 FullyReplicated。以增量方式訓練時,完全複寫會讓每個機器學習 (ML) 運算執行個體使用已擴展資料集的完整複本。針對神經型演算法,例如 神經主題模型 (NTM) 演算法,選擇
ShardedByS3Key
。 -
如是擴增資訊清單檔案中指定的資料未經壓縮,請將 Compression type (壓縮類型) 設為 None (無)。如果使用 gzip 壓縮資料,請將它設為 Gzip。
-
(選用) 針對 Content type (內容類型),指定適當的 MIME 類型。內容類型是資料的多用途網際網路郵件延伸 (MIME) 類型。
-
針對 Record wrapper (記錄包裝函式),如果擴增資訊清單檔案中指定的資料集使用 RecordIO 格式儲存,請選擇 RecordIO。如果您的資料集未儲存為 RecordIO 格式的檔案,請選擇無。
-
針對 S3 data type (S3 資料類型),選擇 AugmentedManifestFile。
-
針對 S3 location (S3 位置),提供您存放擴增資訊清單檔案的儲存貯體路徑。
-
針對 AugmentedManifestFile 屬性名稱,指定您想要使用的屬性名稱。屬性名稱必須出現在擴增資訊清單檔案內,並區分大小寫。
-
(選用) 若要新增更多屬性名稱,請選擇新增資料列,並指定每個屬性的其他屬性名稱。
-
(選用) 如要調整屬性名稱的順序,請選擇名稱旁的向上或向下按鈕。使用擴增資訊清單檔案時,指定的屬性名稱順序很重要。
-
選擇完成。
-
-
針對輸出資料組態,提供下列資訊:
-
針對 S3 位置,輸入您想要存放輸出資料的 S3 儲存貯體路徑。
-
(選用) 您可以使用您的 AWS Key Management Service (AWS KMS) 加密金鑰來加密靜態輸出資料。針對加密金鑰,提供金鑰 ID 或其 Amazon Resource Name (ARN)。如需更多資訊,請參閱 KMS 受管加密金鑰。
-
-
(選用) 針對標籤,在訓練工作中新增一或多個標籤。標籤是您可以定義並指派給 AWS 資源的中繼資料。在這種情況下,您可以使用標籤協助管理您的訓練任務。標籤是由您定義的鍵和值構成。例如,您可能想要建立這樣的標籤:以
Project
做為鍵,而值為與訓練任務相關的專案,例如Home value forecasts
。 -
選擇建立訓練工作。SageMaker AI 會建立和執行訓練任務。
訓練任務完成後,SageMaker AI 會將模型成品存放在儲存貯體中,而您在輸出資料組態欄位中為 S3 輸出路徑提供的路徑。若要部署模型以取得預測,請參閱將模型部署至 Amazon EC2。
使用增強版資訊清單檔案 (API)
以下說明如何使用 SageMaker AI 高階 Python 程式庫,使用擴增資訊清單檔案來訓練模型:
import sagemaker # Create a model object set to using "Pipe" mode. model = sagemaker.estimator.Estimator(
training_image
, role, instance_count=1, instance_type='ml.p3.2xlarge', volume_size = 50, max_run = 360000, input_mode = 'Pipe', output_path=s3_output_location
, sagemaker_session=session
) # Create a train data channel with S3_data_type as 'AugmentedManifestFile' and attribute names. train_data = sagemaker.inputs.TrainingInput(your_augmented_manifest_file
, distribution='FullyReplicated', content_type='application/x-recordio', s3_data_type='AugmentedManifestFile', attribute_names=['source-ref'
,'annotations'
], input_mode='Pipe', record_wrapping='RecordIO' ) data_channels = {'train': train_data} # Train a model. model.fit(inputs=data_channels, logs=True)
訓練任務完成後,SageMaker AI 會將模型成品存放在儲存貯體中,而您在輸出資料組態欄位中為 S3 輸出路徑提供的路徑。若要部署模型以取得預測,請參閱將模型部署至 Amazon EC2。