Mit Neo zusammengestellte Empfehlungen - Amazon SageMaker AI

Mit Neo zusammengestellte Empfehlungen

In Inference Recommender können Sie Ihr Modell mit Neo kompilieren und Endpunktempfehlungen für Ihr kompiliertes Modell abrufen. SageMaker Neo ist ein Service, der Ihr Modell für eine Zielhardwareplattform (d. h. einen bestimmten Instance-Typ oder eine bestimmte Umgebung) optimieren kann. Die Optimierung eines Modells mit Neo kann die Leistung Ihres gehosteten Modells verbessern.

Für von NEO unterstützte Frameworks und Container schlägt Inference Recommender automatisch NEO-optimierte Empfehlungen vor. Um für die Neo-Kompilierung in Frage zu kommen, muss Ihr Input die folgenden Voraussetzungen erfüllen:

  • Sie verwenden einen SageMaker-AI-eigenen DLC- oder XGBoost-Container.

  • Sie verwenden eine Framework-Version, die von Neo unterstützt wird. Informationen zu den von Neo unterstützten Framework-Versionen finden Sie Cloud-Instances in der SageMaker Neo-Dokumentation.

  • Neo erfordert, dass Sie eine korrekte Eingabedatenform für Ihr Modell angeben. Sie können diese Datenform als DataInputConfig im InferenceSpecification angeben, wenn Sie ein Modellpaket erstellen. Informationen zu den richtigen Datenformen für jedes Framework finden Sie unter Modell für die Kompilierung vorbereiten in der SageMaker Neo-Dokumentation.

    Das folgende Beispiel zeigt, wie das DataInputConfig Feld in der InferenceSpecification angegeben wird. Dabei handelt es sich um eine Variable data_input_configuration, die die Datenform im Wörterbuchformat enthält (z. B. {'input':[1,1024,1024,3]}).

    "InferenceSpecification": { "Containers": [ { "Image": dlc_uri, "Framework": framework.upper(), "FrameworkVersion": framework_version, "NearestModelName": model_name, "ModelInput": {"DataInputConfig": data_input_configuration}, } ], "SupportedContentTypes": input_mime_types, # required, must be non-null "SupportedResponseMIMETypes": [], "SupportedRealtimeInferenceInstanceTypes": supported_realtime_inference_types, # optional }

Wenn diese Bedingungen in Ihrer Anfrage erfüllt sind, führt Inference Recommender Szenarien sowohl für kompilierte als auch für unkompilierte Versionen Ihres Modells aus, sodass Sie aus mehreren Empfehlungskombinationen wählen können. Sie können die Konfigurationen für kompilierte und unkompilierte Versionen derselben Inferenzempfehlung vergleichen und herausfinden, welche am besten zu Ihrem Anwendungsfall passt. Die Empfehlungen sind nach den Kosten pro Inferenz geordnet.

Um die Empfehlungen zur Neo-Kompilierung zu erhalten, müssen Sie keine zusätzliche Konfiguration vornehmen, außer sicherzustellen, dass Ihre Eingabe die zuvor genannten Anforderungen erfüllt. Inference Recommender führt automatisch die Neo-Kompilierung auf Ihrem Modell durch, wenn Ihre Eingabe die Anforderungen erfüllt, und Sie erhalten eine Antwort, die Neo-Empfehlungen enthält.

Falls bei der Neo-Kompilierung Fehler auftreten, finden Sie weitere Informationen unter Beheben von NEO-Kompilierungsfehlern.

Die folgende Tabelle ist ein Beispiel für eine Antwort, die Sie möglicherweise von einem Inference Recommender-Job erhalten, der Empfehlungen für kompilierte Modelle enthält. Wenn das InferenceSpecificationName Feld den Wert hat None, handelt es sich bei der Empfehlung um ein unkompiliertes Modell. Die letzte Zeile, in der unter InferenceSpecificationName der Name neo-00011122-2333-4445-5566-677788899900 angegeben ist, bezieht sich auf ein mit Neo kompiliertes Modell. Der Wert im Feld ist der Name des Neo-Jobs, der zur Kompilierung und Optimierung Ihres Modells verwendet wird.

EndpointName InstanceType InitialInstanceCount Umgebungsparameter Kosten pro Stunde Kosten pro Inferenz Max. Aufrufe Latenz modellieren Name der Inferenzspezifikation

sm-epc-beispiel-000111222

ml.c5.9xlarge

1

[]

1 836

9,15E-07

33456

7

Keine

sm-epc-beispiel-111222333

ml.c5.2xlarge

1

[]

0,408

2,11E-07

32211

21

Keine

sm-epc-beispiel-222333444

ml.c5.xlarge

1

[]

0,204

1,86E-07

18276

92

Keine

sm-epc-beispiel-333444555

ml.c5.xlarge

1

[]

0,204

1,60E-07

21286

42

neo-00011122-2333-4445-5566-677788899900

Erste Schritte

Die allgemeinen Schritte zur Erstellung eines Inference Recommender-Jobs, der NEO-optimierte Empfehlungen enthält, lauten wie folgt:

  • Bereiten Sie Ihr ML-Modell für die Kompilierung vor. Weitere Informationen finden Sie unter Modell für die Kompilierung vorbereiten in der Neo-Dokumentation.

  • Package Sie Ihr Modell in einem Modellarchiv (.tar.gz Datei).

  • Erstellen Sie ein Beispiel-Payload-Archiv.

  • Registrieren Sie Ihr Modell in SageMaker Model Registry.

  • Erstellen Sie einen Inference Recommender-Job.

  • Sehen Sie sich die Ergebnisse des Inference Recommender-Jobs an und wählen Sie eine Konfiguration aus.

  • Debuggen Sie Kompilierungsfehler, falls vorhanden. Weitere Informationen finden Sie unter Fehlerbehebung bei Neo-Kompilierungsfehlern.

Ein Beispiel, das den vorherigen Workflow und das Abrufen von NEO-optimierten Empfehlungen mit XGBoost demonstriert, finden Sie im folgenden Beispiel-Notebook. Ein Beispiel, das zeigt, wie Sie mit TensorFlow NEO-optimierte Empfehlungen erhalten, finden Sie im folgenden Beispiel-Notebook.