Voraussetzungen - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Voraussetzungen

SageMaker Neo ist eine Funktion, mit der Sie Modelle für maschinelles Lernen einmal trainieren und sie dann überall in der Cloud und am Edge ausführen können. Bevor Sie Ihre Modelle mit Neo kompilieren und optimieren können, müssen Sie einige Voraussetzungen einrichten. Sie müssen die erforderlichen Python-Bibliotheken installieren, Ihre AWS Anmeldeinformationen konfigurieren, eine IAM-Rolle mit den erforderlichen Berechtigungen erstellen und einen S3-Bucket zum Speichern von Modellartefakten einrichten. Außerdem müssen Sie über ein trainiertes Modell für maschinelles Lernen verfügen. Die folgenden Schritte führen Sie durch die Einrichtung:

  1. Installieren Sie Boto3

    Wenn Sie diese Befehle auf Ihrem Edge-Gerät ausführen, müssen Sie den AWS SDK for Python (Boto3) installieren. Führen Sie in einer Python-Umgebung (vorzugsweise einer virtuellen Umgebung) Folgendes lokal auf dem Terminal Ihres Edge-Geräts oder in einer Jupyter-Notebook-Instance aus:

    Terminal
    pip install boto3
    Jupyter Notebook
    !pip install boto3
  2. AWS Zugangsdaten einrichten

    Sie müssen Anmeldedaten für Amazon Web Services auf Ihrem Gerät einrichten, um SDK for Python (Boto3) ausführen zu können. Standardmäßig sollten die AWS Anmeldeinformationen in der Datei ~/.aws/credentials auf Ihrem Edge-Gerät gespeichert werden. In der Datei mit den Anmeldeinformationen sollten Sie zwei Umgebungsvariablen sehen: aws_access_key_id und aws_secret_access_key.

    Führen Sie in Ihrem Terminal aus:

    $ more ~/.aws/credentials [default] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_KEY

    Das AWS allgemeine Referenzhandbuch enthält Anweisungen, wie Sie die erforderlichen aws_access_key_id und aws_secret_access_key erhalten. Weitere Informationen zur Einrichtung von Anmeldeinformationen auf Ihrem Gerät finden Sie in der Boto3 Dokumentation.

  3. Richten Sie eine IAM-Rolle ein und fügen Sie Richtlinien hinzu.

    Neo benötigt Zugriff auf Ihre S3-Bucket-URI. Erstellen Sie eine IAM-Rolle, die SageMaker KI ausführen kann und über die Berechtigung verfügt, auf die S3-URI zuzugreifen. Sie können eine IAM-Rolle erstellen, indem Sie entweder SDK for Python (Boto3), die Konsole oder AWS CLI. Das folgende Beispiel veranschaulicht, wie eine IAM-Rolle mit SDK for Python (Boto3) erstellt wird:

    import boto3 AWS_REGION = 'aws-region' # Create an IAM client to interact with IAM iam_client = boto3.client('iam', region_name=AWS_REGION) role_name = 'role-name'

    Weitere Informationen zum Erstellen einer IAM-Rolle mit der Konsole oder über die AWS API finden Sie unter Einen IAM-Benutzer in Ihrem Konto erstellen. AWS CLI AWS

    Erstellen Sie ein Wörterbuch, das die IAM-Richtlinie beschreibt, die Sie anhängen. Diese Richtlinie wird verwendet, um eine neue IAM-Rolle zu erstellen.

    policy = { 'Statement': [ { 'Action': 'sts:AssumeRole', 'Effect': 'Allow', 'Principal': {'Service': 'sagemaker.amazonaws.com'}, }], 'Version': '2012-10-17' }

    Erstellen Sie eine neue IAM-Rolle mit der Richtlinie, die Sie oben definiert haben:

    import json new_role = iam_client.create_role( AssumeRolePolicyDocument=json.dumps(policy), Path='/', RoleName=role_name )

    Sie müssen wissen, wie Ihr Amazon-Ressourcenname (ARN) lautet, wenn Sie in einem späteren Schritt einen Kompilierungsauftrag erstellen. Speichern Sie ihn daher auch in einer Variablen.

    role_arn = new_role['Role']['Arn']

    Nachdem Sie eine neue Rolle erstellt haben, fügen Sie die Berechtigungen hinzu, die sie für die Interaktion mit Amazon SageMaker AI und Amazon S3 benötigt:

    iam_client.attach_role_policy( RoleName=role_name, PolicyArn='arn:aws:iam::aws:policy/AmazonSageMakerFullAccess' ) iam_client.attach_role_policy( RoleName=role_name, PolicyArn='arn:aws:iam::aws:policy/AmazonS3FullAccess' );
  4. Erstellen Sie einen Amazon-S3-Bucket zur Speicherung Ihrer Modellartefakte

    SageMaker Neo wird von Amazon S3 aus auf Ihre Modellartefakte zugreifen

    Boto3
    # Create an S3 client s3_client = boto3.client('s3', region_name=AWS_REGION) # Name buckets bucket='name-of-your-bucket' # Check if bucket exists if boto3.resource('s3').Bucket(bucket) not in boto3.resource('s3').buckets.all(): s3_client.create_bucket( Bucket=bucket, CreateBucketConfiguration={ 'LocationConstraint': AWS_REGION } ) else: print(f'Bucket {bucket} already exists. No action needed.')
    CLI
    aws s3 mb s3://'name-of-your-bucket' --region specify-your-region # Check your bucket exists aws s3 ls s3://'name-of-your-bucket'/
  5. Trainieren eines Machine-Learning-Modells

    Weitere Informationen zum Trainieren eines Modells für maschinelles Lernen mit Amazon SageMaker AI finden Sie unter Train a Model with Amazon SageMaker AI. Sie können Ihr lokal trainiertes Modell optional direkt in einen Amazon-S3-URI-Bucket hochladen.

    Anmerkung

    Stellen Sie sicher, dass das Modell je nach verwendetem Framework korrekt formatiert ist. Weitere Informationen finden Sie unter Welche Formen der Eingabedaten erwartet SageMaker Neo?

    Wenn Sie noch kein Modell haben, verwenden Sie den curl Befehl, um eine lokale Kopie des coco_ssd_mobilenet Modells von TensorFlow der Website abzurufen. Das Modell, das Sie gerade kopiert haben, ist ein Objekterkennungsmodell, das anhand des COCO-Datensatzes trainiert wurde. Geben Sie Folgendes in Ihr Jupyter Notebook ein:

    model_zip_filename = './coco_ssd_mobilenet_v1_1.0.zip' !curl http://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip \ --output {model_zip_filename}

    Beachten Sie, dass dieses spezielle Beispiel in eine .zip-Datei gepackt wurde. Entpacken Sie diese Datei und verpacken Sie sie als komprimierte TAR-Datei (.tar.gz) neu, bevor Sie sie in späteren Schritten verwenden. Geben Sie Folgendes in Ihr Jupyter Notebook ein:

    # Extract model from zip file !unzip -u {model_zip_filename} model_filename = 'detect.tflite' model_name = model_filename.split('.')[0] # Compress model into .tar.gz so SageMaker Neo can use it model_tar = model_name + '.tar.gz' !tar -czf {model_tar} {model_filename}
  6. Laden Sie das trainierte Modell in einen S3-Bucket hoch

    Sobald Sie Ihren Modus für Machine Learning trainiert haben, speichern Sie ihn in einem S3-Bucket.

    Boto3
    # Upload model s3_client.upload_file(Filename=model_filename, Bucket=bucket, Key=model_filename)
    CLI

    Ersetzen Sie your-model-filename und amzn-s3-demo-bucket durch den Namen Ihres Amazon-S3-Buckets.

    aws s3 cp your-model-filename s3://amzn-s3-demo-bucket