在 Amazon 建立私有模型中樞 SageMaker JumpStart - Amazon SageMaker

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

在 Amazon 建立私有模型中樞 SageMaker JumpStart

建立組織內的使用者可以存取的一或多個私人策劃模型中樞。

以下步驟將引導您完成如何使用 SageMaker Python 創建私有集線器SDK。

必要條件

若要在 Studio 中建立私人集線器,您必須具備下列先決條件:

  • 具有管理員存取權的 AWS 帳戶

  • 一個 AWS Identity and Access Management (IAM)角色訪問 Amazon SageMaker 工作室

  • 一個 JumpStart 啟用的 Amazon SageMaker 域

如需開始使用 Studio 的詳細資訊,請參閱Amazon SageMaker 一室

建立私有模型中樞

請使用下列步驟來建立私人中樞。在建立模型集線器之前,您必須安裝 SageMaker Python SDK 並設定必要的IAM權限。

建立私人中樞
  1. 安裝 SageMaker Python SDK 並導入必要的 Python 包。

    # Install the SageMaker Python SDK !pip3 install sagemaker --force-reinstall --quiet # Import the necessary Python packages import boto3 from sagemaker import Session from sagemaker.jumpstart.hub.hub import Hub
  2. 初始化工 SageMaker 作階段。

    sm_client = boto3.client('sagemaker') session = Session(sagemaker_client=sm_client) session.get_caller_identity_arn()
  3. 設定私人中樞的詳細資料,例如內部中樞名稱、UI 顯示名稱和 UI 中樞描述。

    注意

    如果您在建立集線器時未指定 Amazon S3 儲存貯體名稱,則 SageMaker Hub 服務會代表您建立新儲存貯體。新值區具有下列命名結構:sagemaker-hubs-REGION-ACCOUNT_ID

    HUB_NAME="Example-Hub" HUB_DISPLAY_NAME="Example Hub UI Name" HUB_DESCRIPTION="A description of the example private curated hub." REGION="us-west-2"
  4. 檢查您的管理員IAM角色是否具有建立私有中樞所需的 Amazon S3 許可。如果您的角色沒有必要的權限,請瀏覽至IAM主控台中的 [角色] 頁面。選擇 [管理員] 角色,然後在 [權限] 原則窗格中選擇 [新增權限],以使用JSON編輯器建立具有下列權限的內嵌原則:

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:ListBucket", "s3:GetObject", "s3:GetObjectTagging" ], "Resource": [ "arn:aws:s3:::jumpstart-cache-prod-REGION", "arn:aws:s3:::jumpstart-cache-prod-REGION/*" ], "Effect": "Allow" } ] }
  5. 使用步驟 3 中的組態建立專用模型中樞hub.create()

    hub = Hub(hub_name=HUB_NAME, sagemaker_session=session) try: # Create the private hub hub.create( description=HUB_DESCRIPTION, display_name=HUB_DISPLAY_NAME ) print(f"Successfully created Hub with name {HUB_NAME} in {REGION}") # Check that no other hubs with this internal name exist except Exception as e: if "ResourceInUse" in str(e): print(f"A hub with the name {HUB_NAME} already exists in your account.") else: raise e
  6. 使用下列describe命令驗證新私人中樞的組態:

    hub.describe()

將模型新增至私有中樞

建立私人中樞後,您就可以新增允許列出的模型。有關可用模 JumpStart 型的完整列表,請參閱 SageMaker Python SDK 參考中的帶有預先訓練模型表的內置算法

  1. 您可以使用該方法以程式設計hub.list_sagemaker_public_hub_models()方式篩選可用的模型。您可以選擇性地依類別 (例如 framework ("framework == pytorch")、影像分類 ("task == ic") 等工作進行篩選。如需篩選條件的詳細資訊,請參閱notebook_utils.py。該hub.list_sagemaker_public_hub_models()方法中的過濾器參數是可選的。

    filter_value = "framework == meta" response = hub.list_sagemaker_public_hub_models(filter=filter_value) models = response["hub_content_summaries"] while response["next_token"]: response = hub.list_sagemaker_public_hub_models(filter=filter_value, next_token=response["next_token"]) models.extend(response["hub_content_summaries"]) print(models)
  2. 然後,您可以透過ARN在hub.create_model_reference()方法中指定模型來新增篩選的模型。

    for model in models: print(f"Adding {model.get('hub_content_name')} to Hub") hub.create_model_reference(model_arn=model.get("hub_content_arn"), model_name=model.get("hub_content_name"))

從私人集線器刪除模型

您可以透過在hub.delete_model_reference()方法中指定模型,從私有ARN中樞刪除模型。

hub.delete_model_reference(model-name)

移除對 SageMaker 公用模型中心的存取

除了在 Studio 中新增私人策劃的 JumpStart 中樞之外,您也可以移除使用者對 SageMaker 公用模型中心的存取權。 SageMaker 公用模型中心可以存取所有可用的 JumpStart 基礎模型。

如果您移除 SageMaker 公用模型集線器的存取權,而使用者只能存取一個私人集線器,則當使用者在 Studio 的左側導覽窗格JumpStart中選擇時,會直接進入該私人集線器。如果使用者可以存取多個私人集線器,則當使用者在 Studio 的左側導覽窗格JumpStart中選擇時,會將使用者帶到集線器功能表頁面。

使用下列內嵌原則移除使用者對 SageMaker 公用模型中樞的存取權:

注意

您可以在以下政策中指定希望集線器存取的任何其他 Amazon S3 儲存貯體。一定要更換 REGION 與您的集線器的區域。

{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:*", "Effect": "Deny", "NotResource": [ "arn:aws:s3:::jumpstart-cache-prod-REGION/*.ipynb", "arn:aws:s3:::jumpstart-cache-prod-REGION/*eula*", "Additional-S3-bucket-ARNs-as-needed" ], }, { "Action": "sagemaker:*", "Effect": "Deny", "Resource": [ "arn:aws:sagemaker:REGION:aws:hub/SageMakerPublicHub", "arn:aws:sagemaker:REGION:aws:hub-content/SageMakerPublicHub/*/*" ] } ] }

刪除私人中樞

您可以從管理員帳戶刪除私人中樞。刪除私人中樞之前,您必須先移除該中樞中的任何內容。使用以下命令刪除 Hub 內容和集線器:

# List the model references in the private hub response = hub.list_models() models = response["hub_content_summaries"] while response["next_token"]: response = hub.list_models(next_token=response["next_token"]) models.extend(response["hub_content_summaries"]) # Delete all model references in the hub for model in models: hub.delete_model_reference(model_name=model.get('HubContentName')) # Delete the private hub hub.delete()

故障診斷

疑難排解建立專用模型中樞時可能出現的IAM權限問題。

ValidationException調用CreateModel操作時:無法訪問模型數據

當您沒有為管理員角色設定適當的 Amazon S3 許可時,就會出現此例外狀況。如需建立私有中樞所需 Amazon S3 許可的詳細資訊,請參閱中的步驟 3

Access Denied或打電話Forbiddencreate()

如果您沒有存取與 SageMaker公有模型中樞關聯的 Amazon S3 儲存貯體的適當許可,則在建立私有中樞時,您將被拒絕存取。如需建立私有中樞所需 Amazon S3 許可的詳細資訊,請參閱中的步驟 3

支援的 AWS 地區

策劃的私人中心目前正式在以下 AWS 商業區域提供:

  • us-east-1

  • us-east-2

  • us-west-2

  • eu-west-1

  • eu-central-1

  • ap-northeast-1

  • ap-northeast-2

  • ap-south-1

  • ap-southeast-1

  • ap-southeast-2

  • il-central-1(僅)SDK

單一區域中允許的中樞預設數目上限為 50。