ML Feedback-Anschluss - AWS IoT Greengrass

AWS IoT Greengrass Version 1 trat am 30. Juni 2023 in die erweiterte Lebensphase ein. Weitere Informationen finden Sie in der AWS IoT Greengrass V1 Wartungsrichtlinie. Nach diesem Datum AWS IoT Greengrass V1 werden keine Updates mehr veröffentlicht, die Funktionen, Verbesserungen, Bugfixes oder Sicherheitspatches bieten. Geräte, die auf laufen, werden AWS IoT Greengrass V1 nicht gestört und funktionieren weiterhin und stellen eine Verbindung zur Cloud her. Wir empfehlen Ihnen dringend, zu migrieren AWS IoT Greengrass Version 2, da dies wichtige neue Funktionen und Unterstützung für zusätzliche Plattformen bietet.

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.

ML Feedback-Anschluss

Warnung

Dieser Konnektor befindet sich in der Phase der verlängerten Lebensdauer und veröffentlicht AWS IoT Greengrass keine Updates, die Funktionen, Verbesserungen vorhandener Funktionen, Sicherheitspatches oder Bugfixes bieten. Weitere Informationen finden Sie unter AWS IoT Greengrass Version 1Wartungspolitik.

Der ML-Feedback-Konnektor erleichtert den Zugriff auf Ihre Modelldaten für maschinelles Lernen (ML) für das erneute Trainieren und Analysieren von Modellen. Der Konnektor:

  • Lädt Eingabedaten (Beispiele), die von Ihrem ML-Modell verwendet werden, auf Amazon S3 hoch. Die Modelleingabe kann in einem beliebigen Format vorliegen, z. B. in Form von Bildern, im JSON-Format oder als Audio. Nachdem Beispiele in die Cloud hochgeladen wurden, können Sie diese verwenden, um das Modell neu zu schulen und so die Genauigkeit und Präzision seiner Prognosen zu verbessern. Sie können beispielsweise SageMaker KI Ground Truth verwenden, um Ihre Proben zu kennzeichnen, und SageMaker KI, um das Modell neu zu trainieren.

  • Veröffentlicht die Prognoseergebnisse aus dem Modell als MQTT-Nachrichten. Auf diese Weise können Sie die Inferenzqualität Ihres Modells in Echtzeit überwachen und analysieren. Sie können die Prognoseergebnisse auch speichern und mit ihrer Hilfe Trends im Laufe der Zeit analysieren.

  • Veröffentlicht Metriken zu Beispiel-Uploads und Beispieldaten auf Amazon CloudWatch.

Um diesen Konnektor zu konfigurieren, beschreiben Sie Ihre unterstützten Feedback-Konfigurationen im JSON-Format. Eine Feedback-Konfiguration definiert Eigenschaften wie den Amazon S3-Ziel-Bucket, den Inhaltstyp und die Sampling-Strategie. (Mit einer Samplingstrategie wird ermittelt, welche Beispiele hochgeladen werden sollen.)

Sie können den ML-Feedback-Connector in den folgenden Szenarien verwenden:

  • Mit benutzerdefinierten Lambda-Funktionen. Ihre lokalen Inferenz-Lambda-Funktionen verwenden das AWS IoT Greengrass Machine Learning SDK, um diesen Konnektor aufzurufen und die Ziel-Feedback-Konfiguration, die Modelleingabe und die Modellausgabe (Vorhersageergebnisse) weiterzuleiten. Ein Beispiel finden Sie unter Beispiel für die Verwendung.

  • Mit dem ML Image Classification Connector (v2). Um diesen Konnektor mit dem ML Image Classification-Konnektor zu verwenden, konfigurieren Sie den MLFeedbackConnectorConfigId Parameter für den ML Image Classification-Konnektor.

  • Mit dem ML Object Detection-Konnektor. Um diesen Konnektor mit dem ML-Objekterkennungs-Konnektor zu verwenden, konfigurieren Sie den MLFeedbackConnectorConfigId Parameter für den ML-Objekterkennungs-Konnektor.

ARN: arn:aws:greengrass:region::/connectors/MLFeedback/versions/1

Voraussetzungen

Dieser Konnektor hat die folgenden Anforderungen:

  • AWS IoT Greengrass Kernsoftware v1.9.3 oder höher.

  • Python-Version 3.7 oder 3.8 wurde auf dem Core-Gerät installiert und zur Umgebungsvariablen PATH hinzugefügt.

    Anmerkung

    Um Python 3.8 zu verwenden, führen Sie den folgenden Befehl aus, um einen symbolischen Link vom standardmäßigen Python 3.7-Installationsordner zu den installierten Python 3.8-Binärdateien zu erstellen.

    sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7

    Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt.

  • Ein oder mehrere Amazon S3 S3-Buckets. Wie viele Buckets Sie verwenden, hängt von Ihrer Samplingstrategie ab.

  • Die Greengrass-Gruppenrolle ist so konfiguriert, dass sie die s3:PutObject Aktion für Objekte im Amazon S3 S3-Ziel-Bucket zulässt, wie in der folgenden IAM-Beispielrichtlinie dargestellt.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::bucket-name/*" ] } ] }

    Die Richtlinie sollte alle Ziel-Buckets als Ressourcen enthalten. Sie können granularen oder bedingten Zugriff auf Ressourcen gewähren (etwa mit einem Benennungsschema mit Platzhaltern *).

    Für die Gruppenrollenanforderung müssen Sie die Rolle so konfigurieren, dass die erforderlichen Berechtigungen erteilt werden, und sicherstellen, dass die Rolle der Gruppe hinzugefügt wurde. Weitere Informationen finden Sie unter Verwalten der Greengrass-Gruppenrolle (Konsole) oder Verwalten der Greengrass-Gruppenrolle (CLI).

  • Der CloudWatch Metrics-Konnektor wurde der Greengrass-Gruppe hinzugefügt und konfiguriert. Nur erforderlich, wenn Sie die Berichterstellungsfunktion für Metriken verwenden möchten.

  • AWS IoT Greengrass Für die Interaktion mit diesem Connector ist das Machine Learning SDK v1.1.0 erforderlich.

Parameter

FeedbackConfigurationMap

Eine Reihe von einer oder mehreren Feedback-Konfigurationen, die der Connector verwenden kann, um Proben auf Amazon S3 hochzuladen. Eine Feedback-Konfiguration definiert Parameter wie z. B. den Ziel-Bucket, den Inhaltstyp und die Samplingstrategie. Wenn dieser Konnektor aufgerufen wird, spezifiziert die aufrufende Lambda-Funktion oder der aufrufende Connector eine Ziel-Feedback-Konfiguration.

Anzeigename in der AWS IoT Konsole: Feedback-Konfigurationsübersicht

Erforderlich: true

Typ: Eine wohlgeformte JSON-Zeichenfolge, die den Satz der unterstützten Feedback-Konfigurationen definiert. Ein Beispiel finden Sie unter FeedbackConfigurationMap Beispiel.

Für die ID eines Feedback-Konfigurationsobjekts gelten folgende Anforderungen.

Die ID:

  • Muss für alle Konfigurationsobjekte eindeutig sein.

  • Muss mit einem Buchstaben oder einer Zahl beginnen. Kann Kleinbuchstaben und Großbuchstaben, Zahlen und Bindestriche enthalten.

  • Muss zwischen 2 und 63 Zeichen lang sein.

Erforderlich: true

Typ: string

Gültiges Muster: ^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$

Beispiele: MyConfig0, config-a, 12id.

Der Text eines Feedback-Konfigurationsobjekts enthält die folgenden Eigenschaften.

s3-bucket-name

Der Name des Amazon S3-Ziel-Buckets.

Anmerkung

Die Gruppenrolle muss die Aktion s3:PutObject auf allen Ziel-Buckets erlauben. Weitere Informationen finden Sie unter Voraussetzungen.

Erforderlich: true

Typ: string

Gültiges Muster: ^[a-z0-9\.\-]{3,63}$

content-type

Der Inhaltstyp der hochzuladenden Beispiele. Alle Inhalte für eine einzelne Feedback-Konfiguration müssen denselben Typ aufweisen.

Erforderlich: true

Typ: string

Beispiele: image/jpeg, application/json, audio/ogg.

s3-prefix

Das Schlüsselpräfix, das für hochgeladene Beispiele verwendet werden soll. Ein Präfix ist einem Verzeichnisnamen ähnlich. Es bietet Ihnen die Möglichkeit, ähnliche Daten unter demselben Verzeichnis in einem Bucket zu speichern. Weitere Informationen finden Sie unter Objektschlüssel und Metadaten im Amazon Simple Storage Service-Benutzerhandbuch.

Erforderlich: false

Typ: string

file-ext

Die Dateierweiterung, die für hochgeladene Beispiele verwendet werden soll. Es muss sich um eine gültige Dateierweiterung für den Inhaltstyp handeln.

Erforderlich: false

Typ: string

Beispiele: jpg, json, ogg.

sampling-strategy

Die Samplingstrategie zum Filtern der hochzuladenden Beispiele. Wenn nicht angegeben, versucht der Konnektor, alle empfangenen Beispiele hochzuladen.

Erforderlich: false

Typ: Eine wohlgeformte JSON-Zeichenfolge, die die folgenden Eigenschaften enthält.

strategy-name

Der Name der Samplingstrategie.

Erforderlich: true

Typ: string

Gültige Werte: RANDOM_SAMPLING, LEAST_CONFIDENCE, MARGIN oder ENTROPY

rate

Die Rate für die Random-Samplingstrategie.

Erforderlich: true wenn strategy-name jaRANDOM_SAMPLING.

Typ: number

Zulässige Werte: 0.0 - 1.0

threshold

Der Schwellenwert für die Samplingstrategie Least Confidence (Geringste Zuverlässigkeit), Margin (Abstand) oder Entropy (Entropie).

Erforderlich: true wenn strategy-name ist LEAST_CONFIDENCEMARGIN, oderENTROPY.

Typ: number

Zulässige Werte:

  • 0.0 - 1.0 für die Strategie LEAST_CONFIDENCE oder MARGIN.

  • 0.0 - no limit für die Strategie ENTROPY.

RequestLimit

Die maximale Anzahl von Anforderungen, die der Konnektor gleichzeitig verarbeiten kann.

Mithilfe dieses Parameters können Sie die Speicherbelegung einschränken, indem Sie die Anzahl der Anforderungen begrenzen, die der Konnektor gleichzeitig verarbeitet. Über dieses Limit hinausgehende Anforderungen werden ignoriert.

Anzeigename in der AWS IoT Konsole: Limit anfordern

Erforderlich: false

Typ: string

Zulässige Werte: 0 - 999

Gültiges Muster: ^$|^[0-9]{1,3}$

Beispiel für das Erstellen eines Konnektors (AWS CLI)

Der folgende CLI-Befehl erstellt eine ConnectorDefinition mit einer ersten Version, die den ML-Feedback-Konnektor enthält.

aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{ "Connectors": [ { "Id": "MyMLFeedbackConnector", "ConnectorArn": "arn:aws:greengrass:region::/connectors/MLFeedback/versions/1", "Parameters": { "FeedbackConfigurationMap": "{ \"RandomSamplingConfiguration\": { \"s3-bucket-name\": \"my-aws-bucket-random-sampling\", \"content-type\": \"image/png\", \"file-ext\": \"png\", \"sampling-strategy\": { \"strategy-name\": \"RANDOM_SAMPLING\", \"rate\": 0.5 } }, \"LeastConfidenceConfiguration\": { \"s3-bucket-name\": \"my-aws-bucket-least-confidence-sampling\", \"content-type\": \"image/png\", \"file-ext\": \"png\", \"sampling-strategy\": { \"strategy-name\": \"LEAST_CONFIDENCE\", \"threshold\": 0.4 } } }", "RequestLimit": "10" } } ] }'

FeedbackConfigurationMap Beispiel

Im Folgenden sehen Sie einen erweiterten Beispielwert für den Parameter FeedbackConfigurationMap. Dieses Beispiel enthält mehrere Feedback-Konfigurationen, die verschiedene Samplingstrategien verwenden.

{ "ConfigID1": { "s3-bucket-name": "my-aws-bucket-random-sampling", "content-type": "image/png", "file-ext": "png", "sampling-strategy": { "strategy-name": "RANDOM_SAMPLING", "rate": 0.5 } }, "ConfigID2": { "s3-bucket-name": "my-aws-bucket-margin-sampling", "content-type": "image/png", "file-ext": "png", "sampling-strategy": { "strategy-name": "MARGIN", "threshold": 0.4 } }, "ConfigID3": { "s3-bucket-name": "my-aws-bucket-least-confidence-sampling", "content-type": "image/png", "file-ext": "png", "sampling-strategy": { "strategy-name": "LEAST_CONFIDENCE", "threshold": 0.4 } }, "ConfigID4": { "s3-bucket-name": "my-aws-bucket-entropy-sampling", "content-type": "image/png", "file-ext": "png", "sampling-strategy": { "strategy-name": "ENTROPY", "threshold": 2 } }, "ConfigID5": { "s3-bucket-name": "my-aws-bucket-no-sampling", "s3-prefix": "DeviceA", "content-type": "application/json" } }

Samplingstrategien

Der Konnektor unterstützt vier Samplingstrategien, die bestimmen, ob Beispiele hochgeladen werden sollen, die an den Konnektor übergeben werden. Beispiele sind einzelne Dateninstanzen, die von einem Modell für eine Prognose verwendet werden. Sie können Samplingstrategien verwenden, um nach den Beispielen zu filtern, die die Modellgenauigkeit am ehesten verbessern.

RANDOM_SAMPLING

Lädt nach dem Zufallsprinzip Beispiele basierend auf der angegebenen Rate hoch. Ein Beispiel wird hochgeladen, wenn ein zufällig generierter Wert kleiner als die Rate ist. Je höher die Rate, desto mehr Beispiele werden hochgeladen.

Anmerkung

Diese Strategie ignoriert alle bereitgestellten Modellprognosen.

LEAST_CONFIDENCE

Lädt Beispiele hoch, deren maximale Zuverlässigkeitswahrscheinlichkeit unter den angegebenen Schwellenwert fällt.

Beispielszenario:

Schwellenwert: .6

Modellprognose: [.2, .2, .4, .2]

Maximale Zuverlässigkeitswahrscheinlichkeit: .4

Ergebnis:

Verwenden Sie das Beispiel, da die maximale Zuverlässigkeitswahrscheinlichkeit (.4) <= Schwellenwert (.6) ist.

MARGIN

Lädt Beispiele hoch, wenn der Abstand zwischen den beiden höchsten Zuverlässigkeitswahrscheinlichkeiten innerhalb des angegebenen Schwellenwerts liegt. Der Abstand ist die Differenz zwischen den beiden höchsten Zuverlässigkeitswahrscheinlichkeiten.

Beispielszenario:

Schwellenwert: .02

Modellprognose: [.3, .35, .34, .01]

Zwei höchste Zuverlässigkeitswahrscheinlichkeiten: [.35, .34]

Abstand: .01 (.35 - .34)

Ergebnis:

Verwenden Sie das Beispiel, da der Abstand (.01) <= Schwellenwert (.02) ist.

ENTROPY

Lädt Beispiele hoch, deren Entropie größer als der angegebene Schwellenwert ist. Verwendet die normalisierte Entropie der Modellprognose.

Beispielszenario:

Schwellenwert: 0.75

Modellprognose: [.5, .25, .25]

Entropie für die Prognose: 1.03972

Ergebnis:

Verwenden Sie das Beispiel, da die Entropie (1.03972) > Schwellenwert (0.75) ist.

Eingabedaten

Benutzerdefinierte Lambda-Funktionen verwenden die publish Funktion des feedback Clients im AWS IoT Greengrass Machine Learning SDK, um den Connector aufzurufen. Ein Beispiel finden Sie unter Beispiel für die Verwendung.

Anmerkung

Dieser Konnektor akzeptiert keine MQTT-Nachrichten als Eingabedaten.

Die publish-Funktion verwendet die folgenden Argumente:

ConfigId

Die ID der Ziel-Feedback-Konfiguration. Dies muss mit der ID einer Feedback-Konfiguration übereinstimmen, die im FeedbackConfigurationMapParameter für den ML-Feedback-Konnektor definiert ist.

Erforderlich: wahr

Typ: Zeichenfolge

ModelInput

Die Eingabedaten, die an ein Modell zur Inferenz übergeben wurden. Diese Eingabedaten werden unter Verwendung der Zielkonfiguration hochgeladen, es sei denn, sie werden basierend auf der Samplingstrategie herausgefiltert.

Erforderlich: wahr

Typ: Bytes

ModelPrediction

Die Prognoseergebnisse aus dem Modell. Ergebnistyp kann ein Wörterbuch oder eine Liste sein. Beispielsweise handelt es sich bei den Prognoseergebnissen des ML Image Classification-Konnektors um eine Liste von Wahrscheinlichkeiten (z. B.[0.25, 0.60, 0.15]). Diese Daten werden im Thema /feedback/message/prediction veröffentlicht.

Erforderlich: wahr

Typ: Wörterbuch oder float Werteliste

Metadaten

Kundendefinierte, anwendungsspezifische Metadaten, die an das hochgeladene Beispiel angefügt und im Thema /feedback/message/prediction veröffentlicht werden. Der Konnektor fügt auch einen publish-ts-Schlüssel mit einem Zeitstempelwert in die Metadaten ein.

Erforderlich: falsch

Typ: Wörterbuch

Beispiel: {"some-key": "some value"}

Ausgabedaten

Dieser Konnektor veröffentlicht Daten in drei MQTT-Themen:

  • Statusinformationen vom Konnektor im Thema feedback/message/status.

  • Prognoseergebnisse im Thema feedback/message/prediction.

  • Metriken, die für das CloudWatch cloudwatch/metric/put Thema bestimmt sind.

Sie müssen Abonnements konfigurieren, damit der Konnektor über MQTT-Themen kommunizieren kann. Weitere Informationen finden Sie unter Eingaben und Ausgaben.

Themenfilter: feedback/message/status

Verwenden Sie dieses Thema, um den Status von Beispiel-Uploads und verworfenen Beispielen zu überwachen. Der Konnektor veröffentlicht jedes Mal, wenn er eine Anforderung erhält, in diesem Thema.

Beispielausgabe: Beispiel-Upload erfolgreich
{ "response": { "status": "success", "s3_response": { "ResponseMetadata": { "HostId": "IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km", "RetryAttempts": 1, "HTTPStatusCode": 200, "RequestId": "79104EXAMPLEB723", "HTTPHeaders": { "content-length": "0", "x-amz-id-2": "lbbqaDVFOhMlyU3gRvAX1ZIdg8P0WkGkCSSFsYFvSwLZk3j7QZhG5EXAMPLEdd4/pEXAMPLEUqU=", "server": "AmazonS3", "x-amz-expiration": "expiry-date=\"Wed, 17 Jul 2019 00:00:00 GMT\", rule-id=\"OGZjYWY3OTgtYWI2Zi00ZDllLWE4YmQtNzMyYzEXAMPLEoUw\"", "x-amz-request-id": "79104EXAMPLEB723", "etag": "\"b9c4f172e64458a5fd674EXAMPLE5628\"", "date": "Thu, 11 Jul 2019 00:12:50 GMT", "x-amz-server-side-encryption": "AES256" } }, "bucket": "greengrass-feedback-connector-data-us-west-2", "ETag": "\"b9c4f172e64458a5fd674EXAMPLE5628\"", "Expiration": "expiry-date=\"Wed, 17 Jul 2019 00:00:00 GMT\", rule-id=\"OGZjYWY3OTgtYWI2Zi00ZDllLWE4YmQtNzMyYzEXAMPLEoUw\"", "key": "s3-key-prefix/UUID.file_ext", "ServerSideEncryption": "AES256" } }, "id": "5aaa913f-97a3-48ac-5907-18cd96b89eeb" }

Der Connector fügt die key Felder bucket und zur Antwort von Amazon S3 hinzu. Weitere Informationen zur Amazon S3 S3-Antwort finden Sie unter PUT-Objekt in der Amazon Simple Storage Service API-Referenz.

Beispielausgabe: Beispiel aufgrund der Samplingstrategie verworfen
{ "response": { "status": "sample_dropped_by_strategy" }, "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3" }
Beispielausgabe: Beispiel-Upload fehlgeschlagen

Ein Fehlerstatus enthält die Fehlermeldung als Wert für error_message und die Ausnahmeklasse als Wert für error.

{ "response": { "status": "fail", "error_message": "[RequestId: 4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3] Failed to upload model input data due to exception. Model prediction will not be published. Exception type: NoSuchBucket, error: An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket does not exist", "error": "NoSuchBucket" }, "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3" }
Beispielausgabe: Anforderung aufgrund des Anforderungslimits gedrosselt
{ "response": { "status": "fail", "error_message": "Request limit has been reached (max request: 10 ). Dropping request.", "error": "Queue.Full" }, "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3" }
Themenfilter: feedback/message/prediction

Verwenden Sie dieses Thema, um auf Prognosen basierend auf hochgeladenen Daten zu achten. Auf diese Weise können Sie die Modellleistung in Echtzeit analysieren. Modellvorhersagen werden zu diesem Thema nur veröffentlicht, wenn Daten erfolgreich auf Amazon S3 hochgeladen wurden. Nachrichten, die in diesem Thema veröffentlicht werden, haben das JSON-Format. Sie enthalten den Link zu dem hochgeladenen Datenobjekt, die Prognose des Modells und die Metadaten in der Anforderung.

Sie können Prognoseergebnisse auch speichern und mithilfe dieser Daten Trends im Laufe der Zeit melden und analysieren. Trends können wertvolle Erkenntnisse liefern. Ein Trend zu abnehmender Genauigkeit im Zeitverlauf kann Ihnen beispielsweise helfen, zu entscheiden, ob das Modell neu geschult werden muss.

Beispielausgabe
{ "source-ref": "s3://greengrass-feedback-connector-data-us-west-2/s3-key-prefix/UUID.file_ext", "model-prediction": [ 0.5, 0.2, 0.2, 0.1 ], "config-id": "ConfigID2", "metadata": { "publish-ts": "2019-07-11 00:12:48.816752" } }
Tipp

Sie können den IoT Analytics Analytics-Connector so konfigurieren, dass er dieses Thema abonniert und die Informationen AWS IoT Analytics zur weiteren oder historischen Analyse an diesen sendet.

Themenfilter: cloudwatch/metric/put

Dies ist das Ausgabethema, das zum Veröffentlichen von Metriken in CloudWatch verwendet wird. Für diese Funktion müssen Sie den CloudWatch Metrics-Connector installieren und konfigurieren.

Zu den Metriken gehören:

  • Die Anzahl der hochgeladenen Beispiele.

  • Die Größe der hochgeladenen Beispiele.

  • Die Anzahl der Fehler bei Uploads auf Amazon S3.

  • Die Anzahl der verworfenen Beispiele basierend auf der Samplingstrategie.

  • Die Anzahl der gedrosselten Anforderungen.

Beispielausgabe: Größe des Datenbeispiels (veröffentlicht vor dem tatsächlichen Upload)
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 47592, "unit": "Bytes", "metricName": "SampleSize" } } }
Beispielausgabe: Beispiel-Upload erfolgreich
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "SampleUploadSuccess" } } }
Beispielausgabe: Beispiel-Upload erfolgreich und Prognoseergebnis veröffentlicht
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "SampleAndPredictionPublished" } } }
Beispielausgabe: Beispiel-Upload fehlgeschlagen
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "SampleUploadFailure" } } }
Beispielausgabe: Beispiel aufgrund der Samplingstrategie verworfen
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "SampleNotUsed" } } }
Beispielausgabe: Anforderung aufgrund des Anforderungslimits gedrosselt
{ "request": { "namespace": "GreengrassFeedbackConnector", "metricData": { "value": 1, "unit": "Count", "metricName": "ErrorRequestThrottled" } } }

Beispiel für die Verwendung

Das folgende Beispiel ist eine benutzerdefinierte Lambda-Funktion, die das AWS IoT Greengrass Machine Learning SDK verwendet, um Daten an den ML-Feedback-Connector zu senden.

Anmerkung

Sie können das AWS IoT Greengrass Machine Learning SDK von der AWS IoT Greengrass Download-Seite herunterladen.

import json import logging import os import sys import greengrass_machine_learning_sdk as ml client = ml.client('feedback') try: feedback_config_id = os.environ["FEEDBACK_CONFIG_ID"] model_input_data_dir = os.environ["MODEL_INPUT_DIR"] model_prediction_str = os.environ["MODEL_PREDICTIONS"] model_prediction = json.loads(model_prediction_str) except Exception as e: logging.info("Failed to open environment variables. Failed with exception:{}".format(e)) sys.exit(1) try: with open(os.path.join(model_input_data_dir, os.listdir(model_input_data_dir)[0]), 'rb') as f: content = f.read() except Exception as e: logging.info("Failed to open model input directory. Failed with exception:{}".format(e)) sys.exit(1) def invoke_feedback_connector(): logging.info("Invoking feedback connector.") try: client.publish( ConfigId=feedback_config_id, ModelInput=content, ModelPrediction=model_prediction ) except Exception as e: logging.info("Exception raised when invoking feedback connector:{}".format(e)) sys.exit(1) invoke_feedback_connector() def function_handler(event, context): return

Lizenzen

Der ML Feedback Connector umfasst die folgende Software/Lizenzierung von Drittanbietern:

Dieser Connector ist im Rahmen der Greengrass Core Software-Lizenzvereinbarung veröffentlicht.

Weitere Informationen finden Sie auch unter