本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 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權限。
建立私人中樞
-
安裝 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
-
初始化工 SageMaker 作階段。
sm_client = boto3.client(
'sagemaker'
) session = Session(sagemaker_client=sm_client) session.get_caller_identity_arn() -
設定私人中樞的詳細資料,例如內部中樞名稱、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"
-
檢查您的管理員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" } ] } -
使用步驟 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 -
使用下列
describe
命令驗證新私人中樞的組態:hub.describe()
將模型新增至私有中樞
建立私人中樞後,您就可以新增允許列出的模型。有關可用模 JumpStart 型的完整列表,請參閱 SageMaker Python SDK 參考中的帶有預先訓練模型表的內置算法
-
您可以使用該方法以程式設計
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) -
然後,您可以透過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
或打電話Forbidden
時 create()
如果您沒有存取與 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。