Amazon Machine Learning
Entwicklerhandbuch (Version Latest)

Anfordern von Echtzeitvoraussagen

Eine Echtzeitvoraussage ist ein synchroner Aufruf an Amazon Machine Learning (Amazon ML). Die Voraussage wird erstellt, wenn Amazon ML die Anforderung erhält, und die Antwort wird sofort zurückgegeben. Echtzeitvoraussagen werden häufig verwendet, um Voraussagefunktionen in interaktiven Web-, Mobil- oder Desktopanwendungen zu ermöglichen. Sie können ein mit Amazon ML erstelltes ML-Modell mit der latenzarmen Predict-API abfragen, um Voraussagen in Echtzeit zu erhalten. Die Predict-Operation akzeptiert eine einzelne Input-Beobachtung in der Nutzlast der Anforderung und gibt die Voraussage synchron in der Antwort zurück. Dadurch unterscheidet sie sich von der Stapelvoraussage-API, die mit der ID eines Amazon ML-Datenquellenobjekts aufgerufen wird, das auf den Ort der Input-Beobachtungen verweist, und die asynchron einen URI zu einer Datei zurückgibt, die Voraussagen für alle diese Beobachtungen enthält. Amazon ML reagiert auf die meisten Anforderungen für Echtzeitvoraussagen innerhalb von 100 Millisekunden.

Sie können Echtzeitvoraussagen testen, ohne dass Gebühren in der Amazon ML-Konsole entstehen. Wenn Sie dann Echtzeitvoraussagen verwenden möchten, müssen Sie zuerst einen Endpunkt für die Generierung von Echtzeitvoraussagen erstellen. Sie können dies in der Amazon ML-Konsole oder mithilfe der CreateRealtimeEndpoint-API tun. Nachdem Sie einen Endpunkt haben, verwenden Sie die API für Echtzeitvoraussagen, um Echtzeitvoraussagen zu generieren.

Anmerkung

Nach dem Erstellen eines Echtzeitendpunkts für Ihr Modell fallen Gebühren für die Kapazitätsreservierung an, die auf der Größe des Modells basieren. Weitere Informationen dazu finden Sie unter Preise. Wenn Sie den Echtzeitendpunkt in der Konsole erstellen, zeigt die Konsole eine Aufschlüsselung der geschätzten Kosten an, die sich für den Endpunkt fortlaufend anfallen werden. Damit Ihnen keine Kosten mehr berechnet werden, wenn Sie keine Echtzeitvoraussagen von diesem Modell mehr benötigen, entfernen Sie den Echtzeitendpunkt mithilfe der Konsole oder der DeleteRealtimeEndpoint-Operation.

Beispiele für Predict-Anforderungen und -Antworten finden Sie im Abschnitt Voraussagen im Amazon Machine Learning API Reference. Ein Beispiel für das exakte Antwortformat Ihres Modells finden Sie unter Testen von Echtzeitvoraussagen.

Testen von Echtzeitvoraussagen

Um Ihnen die Entscheidung zu erleichtern, ob Sie Echtzeitvoraussagen nutzen möchten oder nicht, ermöglicht Amazon ML es Ihnen, die Generierung von Voraussagen für einzelne Datensätze zu testen, ohne dass die zusätzlichen Gebühren in Verbindung mit der Einrichtung eines Endpunkts für Echtzeitvoraussagen anfallen. Um Echtzeitvoraussagen zu testen, müssen Sie über ein ML-Modell verfügen. Um Echtzeitvoraussagen im größeren Maßstab zu erstellen, verwenden Sie die Predict-API im Amazon Machine Learning API Reference.

Vorgehensweise zum Testen von Echtzeitvoraussagen

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Machine Learning-Konsole unter https://console.aws.amazon.com/machinelearning/ an.

  2. Wählen Sie im Dropdownmenü Amazon Machine Learning in der Navigationsleiste die Option ML-Modelle aus.

  3. Wählen Sie das Modell aus, das Sie zum Testen von Echtzeitvoraussagen verwenden möchten, beispielsweise das Subscription propensity model aus dem Tutorial.

  4. Wählen Sie auf der ML-Modell-Berichtsseite unter Voraussagen die Option Übersicht und dann Try real-time predictions (Echtzeitvoraussagen ausprobieren) aus.

    Amazon ML zeigt eine Liste der Variablen, aus denen die Datensätze bestehen, die Amazon ML für die Schulung Ihres Modells verwendet hat.

  5. Sie können fortfahren, indem Sie Daten in die einzelnen Felder im Formular eingeben oder einen einzelnen Datensatz im CSV-Format in das Textfeld einfügen.

    Geben Sie bei Verwendung des Formulars in jedes Wert-Feld die Daten ein, die Sie zum Testen Ihrer Echtzeitvoraussagen verwenden möchten. Wenn der Datensatz, den Sie eingeben, keine Werte für ein oder mehrere Datenattribut(e) enthält, lassen Sie die Eingabefelder leer.

    Wählen Sie die Option Paste a record, um einen Datensatz bereitzustellen. Fügen Sie eine einzelne Datenzeile im CSV-Format in das Textfeld ein und klicken Sie auf Absenden. Amazon ML füllt die Wert-Felder automatisch für Sie aus.

    Anmerkung

    Die Daten im Datensatz müssen die gleiche Anzahl von Spalten wie die Schulungsdaten haben und in der gleichen Reihenfolge angeordnet sein. Die einzige Ausnahme ist, dass Sie den Zielwert auslassen sollten. Wenn Sie einen Zielwert angeben, wird dieser von Amazon ML ignoriert.

  6. Klicken Sie unten auf der Seite auf Create prediction (Voraussage erstellen). Amazon ML gibt die Voraussage sofort zurück.

    Im Bereich Prediction results (Voraussageergebnisse) sehen Sie das Voraussageobjekt, das vom Predict-API-Aufruf zurückgegeben wird, sowie den ML-Modelltyp, den Namen der Zielvariable und die vorausgesagte Klasse oder den vorausgesagten Wert. Weitere Informationen zur Interpretation dieser Ergebnisse finden Sie unter Den Inhalt von Stapelvoraussagedateien für ein binäres ML-Klassifikationsmodell interpretieren.

Erstellen eines Echtzeitendpunkts

Um Echtzeitvoraussagen generieren zu können, müssen Sie einen Echtzeitendpunkt erstellen. Für die Erstellung eines Echtzeitendpunkt müssen Sie bereits über ein ML-Modell verfügen, für das Sie Echtzeitvoraussagen generieren möchten. Sie können einen Echtzeitendpunkt mithilfe der Amazon ML-Konsole oder durch Aufruf der CreateRealtimeEndpoint-API erstellen. Weitere Informationen zur Verwendung der CreateRealtimeEndpoint-API finden Sie unter https://docs.aws.amazon.com/machine-learning/latest/APIReference//API_CreateRealtimeEndpoint.html im Amazon Machine Learning API Reference.

Vorgehensweise zum Erstellen eines Echtzeitendpunkts

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Machine Learning-Konsole unter https://console.aws.amazon.com/machinelearning/ an.

  2. Wählen Sie im Dropdownmenü Amazon Machine Learning in der Navigationsleiste die Option ML-Modelle aus.

  3. Wählen Sie das Modell aus, für das Sie die Echtzeitvoraussagen generieren möchten.

  4. Wählen Sie auf der Seite ML model summary unter Predictions die Option Create real-time endpoint aus.

    Es wird ein Dialogfeld mit Erläuterungen zur Preisberechnung für Echtzeitvoraussagen angezeigt.

  5. Wählen Sie Create aus. Die Echtzeitendpunkt-Anforderung wird an Amazon ML gesendet und in eine Warteschlange gestellt. Der Status des Echtzeitendpunkts ist Wird aktualisiert.

  6. Wenn der Echtzeitendpunkt bereit ist, ändert sich der Status in Bereit und Amazon ML zeigt die Endpunkt-URL an. Verwenden Sie die Endpunkt-URL, um Echtzeitvoraussagen mit der Predict-API zu erstellen. Weitere Informationen zur Verwendung der Predict-API finden Sie unter https://docs.aws.amazon.com/machine-learning/latest/APIReference//API_Predict.html im Amazon Machine Learning API Reference.

Auffinden des Endpunkts für Echtzeitvoraussagen (Konsole)

Wenn Sie die Amazon ML-Konsole zum Suchen der Endpunkt-URL für ein ML-Modell verwenden möchten, navigieren Sie zur Seite ML model summary (ML-Modellzusammenfassung) des Modells.

Vorgehensweise zum Finden einer Echtzeitendpunkt-URL

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Machine Learning-Konsole unter https://console.aws.amazon.com/machinelearning/ an.

  2. Wählen Sie im Dropdownmenü Amazon Machine Learning in der Navigationsleiste die Option ML-Modelle aus.

  3. Wählen Sie das Modell aus, für das Sie die Echtzeitvoraussagen generieren möchten.

  4. Scrollen Sie auf der Seite ML model summary nach unten, bis Sie den Abschnitt Predictions sehen.

  5. Die Endpunkt-URL für das Modell wird unter Real-time prediction angezeigt. Verwenden Sie die URL als Endpoint Url-URL für Ihre Echtzeitvoraussage-Aufrufe. Informationen zur Verwendung der Endpunkts für die Generierung von Voraussagen finden Sie unter https://docs.aws.amazon.com/machine-learning/latest/APIReference//API_Predict.html im Amazon Machine Learning API Reference.

Auffinden des Endpunkts für Echtzeitvoraussagen (API)

Wenn Sie mithilfe der CreateRealtimeEndpoint-Operation einen Echtzeitendpunkt erstellen, werden Ihnen in der Antwort die URL und der Status des Endpunkts mitgeteilt. Wenn Sie einen Echtzeitendpunkt mithilfe der Konsole erstellt haben oder die URL und den Status einen zuvor erstellten Endpunkts abrufen möchten, rufen Sie die GetMLModel-Operation mit der ID der Modells auf, das Sie für Echtzeitvoraussagen abfragen möchten. Die Endpunktinformationen sind im EndpointInfo-Abschnitt der Antwort enthalten. Bei einem Modell, dem ein Echtzeitendpunkt zugeordnet ist, können die EndpointInfo wie folgt aussehen:

"EndpointInfo":{ "CreatedAt": 1427864874.227, "EndpointStatus": "READY", "EndpointUrl": "https://endpointUrl", "PeakRequestsPerSecond": 200 }

Ein Modell ohne Echtzeitendpunkt würde zu folgender Antwort führen:

EndpointInfo":{ "EndpointStatus": "NONE", "PeakRequestsPerSecond": 0 }

Erstellen einer Echtzeitvoraussage-Anforderung

Eine Beispielnutzlast für eine Predict-Anforderung kann wie folgt aussehen:

{ "MLModelId": "model-id", "Record":{ "key1": "value1", "key2": "value2" }, "PredictEndpoint": "https://endpointUrl" }

Das PredictEndpoint-Feld muss mit dem EndpointUrl-Feld der EndpointInfo-Struktur übereinstimmen. Amazon ML verwendet dieses Feld, um die Anforderung an die entsprechenden Server in der Echtzeitvoraussage-Flotte zu leiten.

Die MLModelId ist die ID eines zuvor geschulten Modells mit einem Echtzeitendpunkt.

Ein Record ist eine Zuordnung von Variablennamen zu Variablenwerten. Jedes Paar stellt eine Beobachtung dar. Die Record-Zuordnung enthält die Inputs für Ihr Amazon ML-Modell. Sie ist vergleichbar mit einer einzelnen Datenzeile in Ihrem Schulungsdatensatz, ohne die Zielvariable. Unabhängig von der Art der Werte in den Schulungsdaten enthält Record eine Zuordnung von Zeichenfolgen.

Anmerkung

Sie können Variablen auslassen, für die Sie keinen Wert haben. Das kann allerdings die Genauigkeit Ihrer Voraussage reduzieren. Je mehr Variablen Sie integrieren können, umso präziser wird Ihr Modell.

Das Format der Antwort von Predict-Anforderungen hängt von der Art des Modells ab, das für die Voraussage abgefragt wird. Das details-Feld enthält in jedem Fall Informationen über die Voraussage-Anforderung, darunter insbesondere das PredictiveModelType-Feld mit dem Modelltyp.

Das folgende Beispiel zeigt eine Antwort für eine Binärmodell:

{ "Prediction":{ "details":{ "PredictiveModelType": "BINARY" }, "predictedLabel": "0", "predictedScores":{ "0": 0.47380468249320984 } } }

Beachten Sie das predictedLabel-Feld, das die Voraussagekennzeichnung enthält, in diesem Fall 0. Amazon ML berechnet die Voraussagekennzeichnung, indem die Voraussagepunktzahl mit dem Klassifizierungsgrenzwert verglichen wird:

  • Den Klassifizierungsgrenzwert, der aktuell mit einem ML-Modell verbunden ist, finden Sie im Feld ScoreThreshold der Antwort der GetMLModel-Operation oder in den Modellinformationen, die in der Amazon ML-Konsole bereitgestellt werden. Wenn Sie keinen Schwellenwert festlegen, verwendet Amazon ML den Standardwert 0,5.

  • Die genaue Voraussagepunktzahl für ein binäres Klassifizierungsmodell erhalten Sie, indem Sie die predictedScores-Zuordnung überprüfen. Innerhalb dieser Zuordnung ist die Voraussagekennzeichnung mit der genauen Voraussagepunktzahl verknüpft.

Weitere Informationen zu Binärvoraussagen finden Sie unter Interpretieren der Voraussagen.

Das folgende Beispiel zeigt eine Antwort für ein Regressionsmodell. Beachten Sie, dass der numerische Voraussagewert sich im Feld predictedValue befindet:

{ "Prediction":{ "details":{ "PredictiveModelType": "REGRESSION" }, "predictedValue": 15.508452415466309 } }

Das folgende Beispiel zeigt eine Antwort für ein Multiclass-Modell:

{ "Prediction":{ "details":{ "PredictiveModelType": "MULTICLASS" }, "predictedLabel": "red", "predictedScores":{ "red": 0.12923571467399597, "green": 0.08416014909744263, "orange": 0.22713537514209747, "blue": 0.1438363939523697, "pink": 0.184102863073349, "violet": 0.12816807627677917, "brown": 0.10336143523454666 } } }

Wie bei binären Klassifizierungsmodellen befindet sich die Voraussagekennzeichnung/-klasse im Feld predictedLabel. Die starke Verbindung zwischen der Voraussage und den einzelnen Klassen können Sie besser nachvollziehen, wenn Sie sich die predictedScores-Zuordnung ansehen. Je höher die Punktzahl ist, umso stärker ist die Voraussage mit der Klasse verbunden. Der höchste Wert wird schlussendlich als predictedLabel ausgewählt.

Weitere Informationen zu Multiclass-Voraussagen finden Sie unter Einblicke in Mehrklassen-Modelle.

Löschen eines Echtzeitendpunkts

Wenn Sie Ihre Echtzeitvoraussagen abgeschlossen haben, löschen Sie den Echtzeitendpunkt, damit keine weiteren Gebühren anfallen. Sobald Sie den Endpunkt gelöscht haben, fallen keine Gebühren mehr an.

Vorgehensweise zum Löschen eines Echtzeitendpunkts

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Machine Learning-Konsole unter https://console.aws.amazon.com/machinelearning/ an.

  2. Wählen Sie im Dropdownmenü Amazon Machine Learning in der Navigationsleiste die Option ML-Modelle aus.

  3. Wählen Sie das Modell aus, für das keine Echtzeitvoraussagen mehr erforderlich sind.

  4. Wählen Sie auf der ML-Modell-Berichtsseite unter Predictions die Option Summary aus.

  5. Wählen Sie Delete real-time endpoint.

  6. Klicken Sie im Dialogfeld Delete real-time endpoint auf Delete.