Amazon에서 프라이빗 모델 허브 생성 SageMaker JumpStart - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon에서 프라이빗 모델 허브 생성 SageMaker JumpStart

조직 내 사용자가 액세스할 수 있는 하나 이상의 비공개 큐레이팅 모델 허브를 만드세요.

다음 단계는 SageMaker Python SDK를 사용하여 프라이빗 허브를 만드는 방법을 안내합니다.

사전 조건 

Studio에서 프라이빗 허브를 만들려면 다음과 같은 사전 요구 사항이 있어야 합니다.

  • 관리자 액세스 AWS 권한이 있는 계정

  • 아마존 SageMaker 스튜디오에 액세스할 수 있는 AWS Identity and Access Management (IAM) 역할

  • JumpStart 활성화된 Amazon SageMaker 도메인

Studio를 시작하는 방법에 대한 자세한 내용은 을 참조하십시오아마존 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 허브 서비스가 사용자를 대신하여 새 버킷을 생성합니다. 새 버킷의 명명 구조는 다음과 같습니다. 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 == 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"))

프라이빗 허브에서 모델을 삭제합니다.

메서드에서 모델 ARN을 지정하여 프라이빗 허브에서 모델을 삭제할 수 있습니다. hub.delete_model_reference()

hub.delete_model_reference(model-name)

SageMaker 퍼블릭 모델 허브에 대한 액세스 권한 제거

Studio에 비공개 큐레이션된 허브를 추가하는 JumpStart 것 외에도 사용자의 SageMaker 공개 모델 허브에 대한 액세스 권한을 제거할 수도 있습니다. SageMaker 공개 모델 허브에서는 사용 가능한 모든 JumpStart 기초 모델에 액세스할 수 있습니다.

SageMaker 공개 모델 허브에 대한 액세스 권한을 제거하고 사용자가 하나의 개인 허브에만 액세스할 수 있는 경우 사용자는 Studio의 왼쪽 탐색 JumpStart창에서 선택하면 해당 개인 허브로 바로 이동됩니다. 사용자가 여러 개의 프라이빗 허브를 이용할 수 있는 경우 Studio의 왼쪽 탐색 JumpStart창에서 선택하면 Hubs 메뉴 페이지로 이동합니다.

다음 인라인 정책을 사용하여 사용자의 SageMaker 퍼블릭 모델 허브 액세스 권한을 제거하세요.

{ "Version": "2012-10-17", "Statement": [ { "Action": "s3:*", "Effect": "Deny", "Resource": [ "arn:aws:s3:::jumpstart-cache-prod-REGION", "arn:aws:s3:::jumpstart-cache-prod-REGION/*" ], "Condition": { "StringNotLike": {"s3:prefix": ["*.ipynb", "*/eula.txt"]} } }, { "Action": "sagemaker:*", "Effect": "Deny", "Resource": [ "arn:aws:sagemaker:REGION:aws:hub/SageMakerPublicHub", "arn:aws:sagemaker:REGION:aws:hub-content/SageMakerPublicHub/*/*" ] } ] }

프라이빗 허브 삭제

관리자 계정에서 프라이빗 허브를 삭제할 수 있습니다. 프라이빗 허브를 삭제하기 전에 먼저 해당 허브의 모든 콘텐츠를 제거해야 합니다. 다음 명령을 사용하여 허브 콘텐츠 및 허브를 삭제합니다.

# 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 권한 문제를 해결하세요.

ValidationExceptionCreateModel작업 호출 시: 모델 데이터에 액세스할 수 없습니다.

이 예외는 관리자 역할에 적절한 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개입니다.