Starten eines benutzerdefinierten SageMaker-Images in Amazon SageMaker Studio Classic - Amazon SageMaker AI

Starten eines benutzerdefinierten SageMaker-Images in Amazon SageMaker Studio Classic

Wichtig

Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, Amazon-SageMaker-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können bei dem Versuch, Ressourcen zu erstellen, „AccessDenied“-Fehler auftreten. Weitere Informationen finden Sie unter Bereitstellen von Berechtigungen für das Markieren von SageMaker-AI-Ressourcen.

Verwaltete AWS-Richtlinien für Amazon SageMaker AI, die Berechtigungen zum Erstellen von SageMaker-Ressourcen gewähren, enthalten bereits Berechtigungen zum Hinzufügen von Tags während der Erstellung dieser Ressourcen.

Wichtig

Am 30. November 2023 wurde Amazon SageMaker Studio in Amazon SageMaker Studio umbenannt. Der folgende Abschnitt bezieht sich konkret auf die Verwendung der Studio-Classic-Anwendung. Informationen zur Verwendung der aktualisierten Studio-Konfiguration finden Sie unter Amazon SageMaker Studio.

Dieses Thema beschreibt, wie Sie ein benutzerdefiniertes SageMaker-Image mithilfe der SageMaker-AI-Konsole oder der AWS CLI erstellen können.

Wenn Sie ein Image von der Konsole aus erstellen, erstellt SageMaker AI auch eine erste Image-Version. Die Image-Version repräsentiert ein Container-Image in Amazon Elastic Container Registry (ECR). Das Container-Image muss die Anforderungen erfüllen, um in Amazon SageMaker Studio Classic verwendet werden zu können. Weitere Informationen finden Sie unter Benutzerdefinierte SageMaker-Image-Spezifikationen für Amazon SageMaker Studio Classic. Informationen zum lokalen Testen Ihres Images und zum Beheben häufig auftretender Probleme finden Sie im SageMaker Studio Classic Custom Image Samples-Repository.

Nachdem Sie Ihr benutzerdefiniertes SageMaker-Image erstellt haben, müssen Sie es an Ihre Domain oder Ihren gemeinsam genutzten Bereich anhängen, um es mit Studio Classic verwenden zu können. Weitere Informationen finden Sie unter Anfügen eines benutzerdefinierten SageMaker-Images in Amazon SageMaker Studio Classic.

Erstellen Sie ein SageMaker-Image von der Konsole aus

Im folgenden Abschnitt wird gezeigt, wie Sie ein benutzerdefiniertes SageMaker-Image über die SageMaker-AI-Konsole erstellen.

So erstellen Sie ein Image
  1. Öffnen Sie die Konsole von Amazon SageMaker AI unter https://console.aws.amazon.com/sagemaker/.

  2. Wählen Sie im linken Navigationsbereich Admin-Konfigurationen.

  3. Wählen Sie unter Admin-Konfigurationen die Option Images.

  4. Wählen Sie auf der Seite Benutzerdefinierte Images die Option Image erstellen aus.

  5. Geben Sie als Image-Quelle den Registry-Pfad zum Container-Image in Amazon ECR ein. Der Pfad hat das folgende Format:

    acct-id.dkr.ecr.region.amazonaws.com/repo-name[:tag] or [@digest]

  6. Wählen Sie Weiter aus.

  7. Geben Sie unter Image-Eigenschaften Folgendes ein:

    • Image-Name – Der Name muss für Ihr Konto in der aktuellen AWS-Region eindeutig sein.

    • (Optional) Anzeigename – der Name, der auf der Studio-Classic-Benutzeroberfläche angezeigt wird. Wenn nicht angegeben, wird Image name angezeigt.

    • (Optional) Beschreibung – Eine Beschreibung des Images.

    • IAM-Rolle – Der Rolle muss die Richtlinie AmazonSageMakerFullAccess zugeordnet sein. Verwenden Sie das Dropdown-Menü, um eine der folgenden Optionen zu wählen:

      • Eine neue Rolle erstellen – Geben Sie alle zusätzlichen Amazon Simple Storage Service (Amazon S3)-Buckets an, auf die die Benutzer Ihrer Notebooks zugreifen können sollen. Wenn Sie den Zugriff auf zusätzliche Bereiche nicht zulassen möchten, wählen Sie Keine.

        SageMaker AI fügt die AmazonSageMakerFullAccess-Richtlinie an die Rolle an. Die Rolle ermöglicht Benutzern Ihrer Notebooks den Zugriff auf die S3-Buckets, die neben den Häkchen aufgeführt sind.

      • Geben Sie einen benutzerdefinierten IAM-Rollen-ARN ein – Geben Sie den Amazon-Ressourcennamen (ARN) Ihrer IAM-Rolle ein.

      • Bestehende Rolle verwenden – Wählen Sie eine Ihrer vorhandenen Rollen aus der Liste aus.

    • (Optional) Image-Tags – Wählen Sie Neues Tag hinzufügen. Sie können bis zu 50 Tags hinzufügen. Tags können über die Studio-Classic-Benutzeroberfläche, die SageMaker-AI-Konsole oder die SageMaker AI Search-API durchsucht werden.

  8. Wählen Sie Absenden aus.

Das neue Image wird in der Liste Benutzerdefinierte Images angezeigt und kurz hervorgehoben. Nachdem das Image erfolgreich erstellt wurde, können Sie den Namen des Images wählen, um seine Eigenschaften anzuzeigen, oder Version erstellen wählen, um eine weitere Version zu erstellen.

Um eine weitere Image-Version zu erstellen
  1. Wählen Sie Version erstellen in derselben Zeile wie das Image aus.

  2. Geben Sie als Image-Quelle den Registry-Pfad zum Amazon ECR-Container-Image ein. Das Container-Image sollte nicht dasselbe Image sein, das in einer früheren Version des SageMaker-Images verwendet wurde.

Erstellen Sie ein SageMaker-Image aus dem AWS CLI

Sie führen die folgenden Schritte aus, um ein SageMaker-Image aus dem Container-Image mit Hilfe des AWS CLI zu erstellen.

  • Erstellen einer Image VPC

  • Erstellen einer ImageVersion VPC

  • Erstellen einer Konfigurationsdatei

  • Erstellen einer AppImageConfig VPC

So erstellen Sie die SageMaker-Image-Entitäten
  1. Erstellen ein SageMaker-Image.

    aws sagemaker create-image \ --image-name custom-image \ --role-arn arn:aws:iam::<acct-id>:role/service-role/<execution-role>

    Die Antwort sollte in etwa so aussehen wie die folgende.

    { "ImageArn": "arn:aws:sagemaker:us-east-2:acct-id:image/custom-image" }
  2. Erstellen Sie eine SageMaker-Image-Version aus dem Container-Image.

    aws sagemaker create-image-version \ --image-name custom-image \ --base-image <acct-id>.dkr.ecr.<region>.amazonaws.com/smstudio-custom:custom-image

    Die Antwort sollte in etwa so aussehen wie die folgende.

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1" }
  3. Überprüfen Sie, ob die Image-Version erfolgreich erstellt wurde.

    aws sagemaker describe-image-version \ --image-name custom-image \ --version-number 1

    Die Antwort sollte in etwa so aussehen wie die folgende.

    { "ImageVersionArn": "arn:aws:sagemaker:us-east-2:acct-id:image-version/custom-image/1", "ImageVersionStatus": "CREATED" }
    Anmerkung

    Wenn die Antwort lautet"ImageVersionStatus": "CREATED_FAILED", enthält die Antwort auch den Grund für den Fehler. Ein Problem mit Berechtigungen ist eine häufige Fehlerursache. Sie können auch Ihre Amazon CloudWatch-Protokolle überprüfen, wenn beim Starten oder Ausführen der KernelGateway-App für ein benutzerdefiniertes Image ein Fehler auftritt. Der Name der Protokollgruppe ist /aws/sagemaker/studio. Der Name des Protokollstroms ist $domainID/$userProfileName/KernelGateway/$appName.

  4. Erstellen Sie eine Konfigurationsdatei mit dem Namen app-image-config-input.json. Der Name Wert von KernelSpecs muss mit dem Namen des KernelSpec übereinstimmen, der in dem mit diesem AppImageConfig verbundenen Image verfügbar ist. Bei diesem Wert ist die Groß- und Kleinschreibung zu beachten. Sie können die verfügbaren kernelSpecs in einem Image finden, indem Sie jupyter-kernelspec list von einer Shell innerhalb des Containers ausführen. MountPath ist der Pfad innerhalb des Images, um Ihr Amazon Elastic File System (Amazon EFS) Home-Verzeichnis zu mounten. Dieser muss sich von dem Pfad unterscheiden, den Sie innerhalb des Containers verwenden, da dieser Pfad überschrieben wird, wenn Ihr Amazon EFS-Home-Verzeichnis bereitgestellt wird.

    Anmerkung

    Die folgenden DefaultUID und DefaultGID Kombinationen sind die einzigen akzeptierten Werte:

    • defaultUID: 1000 und defaultGID: 100

    • defaultUID: 0 und defaultGID: 0

    { "AppImageConfigName": "custom-image-config", "KernelGatewayImageConfig": { "KernelSpecs": [ { "Name": "python3", "DisplayName": "Python 3 (ipykernel)" } ], "FileSystemConfig": { "MountPath": "/home/sagemaker-user", "DefaultUid": 1000, "DefaultGid": 100 } } }
  5. Erstellen Sie AppImageConfig mithilfe der im vorherigen Schritt erstellten Datei.

    aws sagemaker create-app-image-config \ --cli-input-json file://app-image-config-input.json

    Die Antwort sollte in etwa so aussehen wie die folgende.

    { "AppImageConfigArn": "arn:aws:sagemaker:us-east-2:acct-id:app-image-config/custom-image-config" }