Kompilieren ein Modell (AWS Command Line Interface) - 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.

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 der CreateCompilationJobAPI-Operation 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 CreateCompilationJob API konfigurieren, je nachdem, ob es sich bei Ihrem Ziel um ein Gerät oder eine Plattform handelt.

    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 Ihr Zielgerät ein ml_* Ziel ist.

    { "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. SageMaker AI Neo ruft die Eingabekonfiguration aus der Modelldefinitionsdatei ab, mit der Sie sie erstellen PyTorch. Weitere Informationen zum Erstellen der Definitionsdatei finden Sie im PyTorch Abschnitt unter Speichern von Modellen für SageMaker AI Neo.

    • 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

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

    Beispiele für JSON-Strings von DataInputConfig , die von den verschiedenen Frameworks abhängen, finden Sie unter Welche Eingabedatenformen Neo erwartet.

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

  2. Führen Sie nach der Konfiguration der JSON-Datei den folgenden Befehl aus, um den Kompilierungsjob 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