在 AWS Clean Rooms ML 中使用分散式訓練 - AWS Clean Rooms

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

在 AWS Clean Rooms ML 中使用分散式訓練

事前準備:

  • AWS 帳戶 可存取 的 AWS Clean Rooms

  • 在 中設定的協同合作 AWS Clean Rooms

  • 支援分散式訓練的已設定模型演算法

  • 適用於分散式處理的大型資料集

  • 在協同合作中建立和管理 ML 模型的適當許可

  • 足以執行多個執行個體以進行分散式訓練的 Amazon EC2 配額

分散式訓練會利用許多運算節點的強大功能並行運作,以有效率地處理大量資料和更新模型參數。

如需分散式訓練的詳細資訊,請參閱《Amazon SageMaker AI 開發人員指南》中的分散式訓練概念

Console
執行分散式訓練任務 (主控台)
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cleanrooms 開啟 AWS Clean Rooms 主控台。

  2. 在左側導覽窗格中,選擇協同合作

  3. 協同合作頁面上,選擇您要建立訓練模型的協同合作。

  4. 協同合作開啟後,選擇 ML 模型索引標籤。

  5. 自訂 ML 模型下,在訓練模型區段中,選擇建立訓練模型

  6. 建立訓練過的模型頁面上,針對關聯的模型演算法指定演算法

  7. 如需訓練模型的詳細資訊,請輸入下列項目:

    1. 名稱中,輸入協同合作中模型的唯一名稱。

    2. (選用) 針對描述,輸入訓練模型的描述。

    3. 針對訓練資料輸入模式,選擇下列其中一項:

      • 如果您的資料集較小,可以容納 ML 儲存磁碟區,而且您偏好訓練指令碼的傳統檔案系統存取,請選取檔案

      • 選取管道讓大型資料集直接從 S3 串流資料,避免將所有資料下載到磁碟,從而提高訓練速度並減少儲存需求。

      • 如果您想要將 S3 串流的優點與檔案系統存取結合,請選取 FastFile,尤其是循序讀取資料或處理較少的檔案以加快啟動時間時。

  8. 對於 ML 輸入通道詳細資訊,請執行下列動作:

    1. 針對 ML 輸入通道,指定將資料提供給模型演算法的 ML 輸入通道。

      若要新增另一個頻道,請選擇新增另一個 ML 輸入頻道。您最多可以新增 19 個額外的 ML 輸入通道。

    2. 針對頻道名稱,輸入 ML 輸入頻道的名稱。

    3. 針對 Amazon S3 資料分佈類型,選擇下列其中一項:

      • 選取完全複寫,為每個訓練執行個體提供完整的資料集副本。當您的資料集夠小,足以容納在記憶體中,或每個執行個體都需要存取所有資料時,這最適合使用。

      • 選取依 S3 金鑰分割,根據 S3 金鑰跨訓練執行個體分割資料集。每個執行個體會收到大約總 S3 物件的 1/n,其中 'n' 是執行個體的數量。這最適合您要平行處理的大型資料集。

      注意

      選取分佈類型時,請考慮您的資料集大小和訓練需求。完全複寫可提供完整的資料存取,但需要更多儲存空間,而由 S3 金鑰碎片可分散式處理大型資料集。

  9. 針對訓練持續時間上限,選擇您想要訓練模型的時間上限。

  10. 對於超參數,指定任何演算法特定的參數及其預期值。超參數專屬於要訓練的模型,並用於微調模型訓練。

  11. 針對環境變數,指定任何演算法特定的變數及其預期值。環境變數是在 Docker 容器中設定。

  12. 針對加密,若要使用自訂 AWS KMS key,請選取使用自訂 KMS 金鑰加密秘密核取方塊。

  13. 針對 EC2 資源組態,指定用於模型訓練之運算資源的相關資訊。

    1. 針對執行個體類型,選擇您要執行的執行個體類型。

      分散式訓練支援的執行個體類型為:

      • ml.m5.4xlarge

      • ml.m5.12xlarge

      • ml.m5.2xlarge

      • ml.g5.12xlarge

      • ml.g5.24xlarge

    2. 針對執行個體計數,輸入執行個體的數量。

    3. 對於以 GB 為單位的磁碟區大小,輸入 ML 儲存磁碟區大小。

  14. 選擇建立訓練過的模型

API

執行分散式訓練任務 (API)

使用特定參數執行下列程式碼:

import boto3 acr_ml_client= boto3.client('cleanroomsml') acr_ml_client.create_trained_model( membershipIdentifier= 'membership_id', configuredModelAlgorithmAssociationArn = 'arn:aws:cleanrooms-ml:region:account:membership/membershipIdentifier/configured-model-algorithm-association/identifier', name='trained_model_name', trainingInputMode: "File", resourceConfig={ 'instanceCount': "3" 'instanceType': "ml.m5.xlarge", 'volumeSizeInGB': 3 }, dataChannels=[ { "mlInputChannelArn": channel_arn_1, "channelName": "channel_name", "S3DataDistributionType:" "FullyReplicated" } ] )
注意

建立訓練模型後,您無法編輯模型。若要進行變更,請刪除訓練過的模型並建立新的模型。