Amazon SageMaker
Entwicklerhandbuch

Bereitstellen eines Modells mit Amazon SageMaker-Hosting-Services

Amazon SageMaker bietet auch Modell-Hosting-Services für die Modellbereitstellung, wie in der folgenden Abbildung dargestellt. Amazon SageMaker bietet einen HTTPS-Endpunkt, an dem sich Ihr Machine Learning-Modell befindet, um Inferenzen zur Verfügung zu stellen.

Die Modellbereitstellung mit Amazon SageMaker-Hosting-Services erfolgt in drei Schritten:

  1. Erstellen eines Modells in Amazon SageMaker – Durch das Erstellen eines Modells teilen Sie Amazon SageMaker den Speicherplatz der Modellkomponenten mit. Dies umfasst den S3-Pfad, unter dem die Modellartefakte gespeichert sind, sowie den Docker-Registrierungspfad zum Image, in dem der Inferenzcode enthalten ist. In den nachfolgenden Bereitstellungsschritten geben Sie den Modellnamen an. Weitere Informationen finden Sie in der CreateModel-API.

  2. Erstellen einer Endpunktkonfiguration für einen HTTPS-Endpunkt – Geben Sie den Namen von einem oder mehreren Modellen in Produktionsvarianten und die ML-Compute-Instances, die Amazon SageMaker zum Hosten in jeder Produktionsvariante starten soll, an.

    Beim Hosten von Modellen in der Produktion können Sie den Endpunkt so konfigurieren, dass die bereitgestellten ML-Compute-Instances elastisch skaliert werden. Sie geben für jede Produktionsvariante die Anzahl der bereitzustellenden ML-Compute-Instances an. Wenn Sie zwei oder mehr Instances angeben, werden diese von Amazon SageMaker in mehreren Availability Zones gestartet. Auf diese Weise wird kontinuierliche Verfügbarkeit sichergestellt. Amazon SageMaker verwaltet die Bereitstellung der Instances. Weitere Informationen finden Sie in der CreateEndpointConfig-API.

  3. Erstellen eines HTTPS-Endpunkts – Stellen Sie die Endpunktkonfiguration in Amazon SageMaker bereit. Der Service startet die ML-Compute-Instances und stellt die Modelle gemäß der Konfiguration bereit. Weitere Informationen finden Sie in der CreateEndpoint-API. Clientanwendungen können Anforderungen an den Runtime-HTTPS-Endpunkt von Amazon SageMaker senden, um Inferenzen vom Modell abzurufen. Weitere Informationen zur API finden Sie in der InvokeEndpoint-API.

Anmerkung

Wenn Sie einen Endpunkt erstellen, hängt Amazon SageMaker ein Amazon EBS-Speicher-Volume an jede ML-Datenverarbeitungs-Instance an, die den Endpunkt hostet. Die Größe des Speicher-Volumes hängt vom Instance-Typ ab. Eine Liste der Instance-Typen, die der Amazon SageMaker-Hosting-Service unterstützt, finden Sie unter AWS Service Limits. Eine Liste der Größen der Speicher-Volumes, die Amazon SageMaker jeder Instance anfügt, finden Sie unter Hosten von Instance-Speicher-Volumes.

Um die Genauigkeit eines Modells erhöhen, können Sie die Eingabedaten des Benutzers sowie die Referenzdaten (sofern verfügbar) als Teil der Schulungsdaten speichern. Anschließend können Sie das Modell in regelmäßigen Abständen weiter mithilfe eines umfangreicheren und verbesserten Schulungsdatasets schulen.

Beim Hosten von Modellen mit den Hosting-Services von Amazon SageMaker sollte Folgendes in Betracht gezogen werden:

  • In der Regel sendet eine Clientanwendung Anforderungen an den HTTPS-Endpunkt von Amazon SageMaker, um Inferenzen von einem bereitgestellten Modell abzurufen. Während der Testphase können Sie auch Anforderungen von Ihrem Jupyter-Notebook an diesen Endpunkt senden.

     

  • Ein mit Amazon SageMaker geschultes Modell lässt sich auf Ihrem eigenen Bereitstellungsziel bereitstellen. Dazu müssen Sie das für den Algorithmus spezifische Format der Modellartefakte kennen, die im Rahmen der Modellschulung generiert wurden. Weitere Informationen zu Ausgabeformaten finden Sie im entsprechenden Abschnitt zum verwendeten Algorithmus unter Datenformate für Schulungen .

     

  • Sie können mehrere Varianten eines Modells auf demselben Amazon SageMaker-HTTPS-Endpunkt bereitstellen. Das ist sinnvoll, um Variationen eines Modells in der Produktion zu testen. Nehmen Sie zum Beispiel an, dass Sie ein Modell für die Produktion bereitgestellt haben. Sie möchten eine Variante des Modells testen, indem eine geringe Menge an Datenverkehr, d. h. 5 %, an das neue Modell umgeleitet wird. Erstellen Sie dazu eine Endpunktkonfiguration, in der beide Modellvarianten beschrieben werden. Geben Sie die ProductionVariant in Ihrer Anforderung an CreateEndPointConfig an. Weitere Informationen finden Sie unter ProductionVariant.

     

  • Sie können eine ProductionVariant zur Verwendung von Auto Scaling von Anwendungen konfigurieren. Weitere Informationen zum Konfigurieren von Auto Scaling finden Sie unter Automatisches Skalieren von Amazon SageMaker-Modellen.

     

  • Sie können einen Endpunkt ändern, ohne dafür bereits in der Produktionsumgebung bereitgestellte Modelle zu deaktivieren. Beispielsweise können Sie neue Modellvarianten hinzufügen, die ML-Compute-Instance-Konfigurationen von vorhandenen Modellvarianten aktualisieren oder die Verteilung des Datenverkehrs für die Modellvarianten ändern. Um einen Endpunkt anzupassen, geben Sie eine neue Endpunktkonfiguration an. Amazon SageMaker implementiert die Änderungen ohne Ausfallzeiten. Weitere Informationen finden Sie unter UpdateEndpoint und UpdateEndpointWeightsAndCapacities.

     

  • Falls Sie nach der Modellbereitstellung die Modellartefakte ändern oder entfernen oder Inferenzcode modifizieren, führt das zu unvorhersehbaren Ergebnissen. Ist dies unumgänglich, ändern Sie den Endpunkt durch die Bereitstellung einer neuen Endpunktkonfiguration. Nachdem Sie die neue Endpunktkonfiguration bereitgestellt haben, können Sie die Modellartefakte der alten Endpunktkonfiguration entsprechend ändern oder löschen.

     

  • Wenn Sie Inferenzen auf ganzen Datasets abrufen möchten, sollten Sie die Stapeltransformation als Alternative zu Hosting-Services in Erwägung ziehen. Weitere Informationen finden Sie unter Abrufen von Inferenzen für ein ganzes Dataset mit der Stapeltransformation

Funktionsweise: Nächstes Thema

Validieren eines Machine Learning-Modells