Kompilieren ein Modell (AWS Command Line Interface) - Amazon SageMaker

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.

Kompilieren ein Modell (AWS Command Line Interface)

In diesem Abschnitt wird gezeigt, wie Sie Amazon SageMaker Neo-Kompilierungsaufträge für Machine-Learning-Modelle mithilfe von AWS Command Line Interface (CLI) verwalten. Sie können Kompilierungsaufträge erstellen, beschreiben, anhalten und auflisten.

  1. Erstellen eines Kompilierungsauftrags

    Mit diesem CreateCompilationJobAPIVorgang können Sie das Dateneingabeformat, den S3-Bucket, in dem Ihr Modell gespeichert werden soll, den S3-Bucket, in den das kompilierte Modell geschrieben werden soll, und das Zielhardwaregerät oder die Zielplattform angeben.

    Die folgende Tabelle zeigt, wie Sie die Konfiguration CreateCompilationJob API je nachdem, ob es sich bei Ihrem Ziel um ein Gerät oder eine Plattform handelt, durchführen.

    Device Example
    { "CompilationJobName": "neo-compilation-job-demo", "RoleArn": "arn:aws:iam::<your-account>:role/service-role/AmazonSageMaker-ExecutionRole-yyyymmddThhmmss", "InputConfig": { "S3Uri": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/train", "DataInputConfig": "{'data': [1,3,1024,1024]}", "Framework": "MXNET" }, "OutputConfig": { "S3OutputLocation": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/compile", # A target device specification example for a ml_c5 instance family "TargetDevice": "ml_c5" }, "StoppingCondition": { "MaxRuntimeInSeconds": 300 } }

    Sie können optional die Framework-Version angeben, die Sie mit dem FrameworkVersionFeld verwendet haben, wenn Sie das PyTorch Framework zum Trainieren Ihres Modells verwendet haben und es sich bei Ihrem Zielgerät um ein ml_* Ziel handelt.

    { "CompilationJobName": "neo-compilation-job-demo", "RoleArn": "arn:aws:iam::<your-account>:role/service-role/AmazonSageMaker-ExecutionRole-yyyymmddThhmmss", "InputConfig": { "S3Uri": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/train", "DataInputConfig": "{'data': [1,3,1024,1024]}", "Framework": "PYTORCH", "FrameworkVersion": "1.6" }, "OutputConfig": { "S3OutputLocation": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/compile", # A target device specification example for a ml_c5 instance family "TargetDevice": "ml_c5", # When compiling for ml_* instances using PyTorch framework, use the "CompilerOptions" field in # OutputConfig to provide the correct data type ("dtype") of the model’s input. Default assumed is "float32" "CompilerOptions": "{'dtype': 'long'}" }, "StoppingCondition": { "MaxRuntimeInSeconds": 300 } }
    Hinweise:
    • Wenn Sie Ihr Modell mit PyTorch Version 2.0 oder höher gespeichert haben, ist das DataInputConfig Feld optional. SageMakerNeo ruft die Eingabekonfiguration aus der Modelldefinitionsdatei ab, mit der Sie sie erstellen PyTorch. Weitere Informationen zum Erstellen der Definitionsdatei finden Sie im PyTorch Abschnitt Modelle für SageMaker Neo speichern.

    • Dieses API Feld wird nur für unterstützt PyTorch.

    Platform Example
    { "CompilationJobName": "neo-test-compilation-job", "RoleArn": "arn:aws:iam::<your-account>:role/service-role/AmazonSageMaker-ExecutionRole-yyyymmddThhmmss", "InputConfig": { "S3Uri": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/train", "DataInputConfig": "{'data': [1,3,1024,1024]}", "Framework": "MXNET" }, "OutputConfig": { "S3OutputLocation": "s3://<your-bucket>/sagemaker/neo-compilation-job-demo-data/compile", # A target platform configuration example for a p3.2xlarge instance "TargetPlatform": { "Os": "LINUX", "Arch": "X86_64", "Accelerator": "NVIDIA" }, "CompilerOptions": "{'cuda-ver': '10.0', 'trt-ver': '6.0.1', 'gpu-code': 'sm_70'}" }, "StoppingCondition": { "MaxRuntimeInSeconds": 300 } }
    Anmerkung

    Für die OutputConfig API Operation schließen sich die TargetPlatform API Operationen TargetDevice und gegenseitig aus. Sie müssen eine der beiden Optionen wählen.

    Beispiele für JSON Zeichenketten, die von Frameworks DataInputConfig abhängen, findest du unter Welche Eingabedatenformen Neo erwartet.

    Weitere Informationen zum Einrichten der Konfigurationen finden Sie unter den TargetPlatformAPIOperationen InputConfigOutputConfig, und in der SageMaker API Referenz.

  2. Nachdem Sie die JSON Datei konfiguriert haben, führen Sie den folgenden Befehl aus, um den Kompilierungsauftrag zu erstellen:

    aws sagemaker create-compilation-job \ --cli-input-json file://job.json \ --region us-west-2 # You should get CompilationJobArn
  3. Beschreiben Sie den Kompilierungsauftrag, indem Sie den folgenden Befehl ausführen:

    aws sagemaker describe-compilation-job \ --compilation-job-name $JOB_NM \ --region us-west-2
  4. Beenden Sie den Kompilierungsauftrag, indem Sie den folgenden Befehl ausführen:

    aws sagemaker stop-compilation-job \ --compilation-job-name $JOB_NM \ --region us-west-2 # There is no output for compilation-job operation
  5. Führen Sie den Kompilierungsauftrag auf, indem Sie den folgenden Befehl ausführen:

    aws sagemaker list-compilation-jobs \ --region us-west-2