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
DataInputConfigimInferenceSpecificationangeben, 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
DataInputConfigFeld in derInferenceSpecificationangegeben wird. Dabei handelt es sich um eine Variabledata_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.gzDatei). -
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