Publish as a -Modell als Service unter Verwendung des Sensei Machine Learning API
- Themen:
- Data Science Workspace
Erstellt für:
- Benutzende
- Entwickler
In diesem Tutorial wird der Prozess zum Veröffentlichen eines Modells als Service mithilfe der Sensei Machine Learning API beschrieben.
Erste Schritte
Dieses Tutorial setzt ein Grundverständnis von Adobe Experience Platform Data Science Workspace voraus. Workspace Bevor Sie mit diesem Tutorial beginnen, lesen Sie Übersicht über Data Science), um eine allgemeine Einführung in den Service zu erhalten.
Um diesem Tutorial folgen zu können, müssen Sie über eine vorhandene ML-Engine, ML-Instanz und ein vorhandenes Experiment verfügen. Anweisungen zum Erstellen dieser Rezepte in der API finden Sie im Tutorial Importieren eines gepackten Rezepts.
Bevor Sie mit diesem Tutorial beginnen, lesen Sie abschließend den Abschnitt Erste Schritte des Entwicklerhandbuchs , um wichtige Informationen zu erhalten, die Sie für die erfolgreiche Durchführung von Aufrufen an die Sensei Machine Learning-API benötigen, einschließlich der erforderlichen Kopfzeilen, die in diesem Tutorial verwendet werden:
{ACCESS_TOKEN}
{ORG_ID}
{API_KEY}
Für alle POST-, PUT- und PATCH-Anfragen ist eine zusätzliche -Kopfzeile erforderlich:
- Content-Type: application/json
Schlüsselbegriffe
In der folgenden Tabelle sind einige der in diesem Tutorial häufig verwendeten Begriffe aufgeführt:
Erstellen eines ML-Service mit einem vorhandenen Trainings-Experiment und geplanter Bewertung
Wenn Sie ein Trainings-Experiment veröffentlichen, das als ML-Service ausgeführt wird, können Sie die Bewertung planen, indem Sie Details zum Scoring-Experiment angeben und die Payload einer POST-Anfrage ausführen. Dies führt zur Erstellung einer Entität für das geplante Experiment zur Bewertung.
API-Format
POST /mlServices
Anfrage
curl -X POST
https://platform.adobe.io/data/sensei/mlServices
-H 'Authorization: {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'Content-Type: application/json'
-d '{
"name": "Service name",
"description": "Service description",
"trainingExperimentId": "c4155146-b38f-4a8b-86d8-1de3838c8d87",
"trainingExperimentRunId": "5c5af39c73fcec153117eed1",
"scoringDataSetId": "5c5af39c73fcec153117eed1",
"scoringTimeframe": "20000",
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
}
}'
mlInstanceId
trainingExperimentId
trainingExperimentRunId
scoringDataSetId
scoringTimeframe
10080
verwendet, was Daten aus den letzten 10080 Minuten oder 168 Stunden bedeutet. Beachten Sie, dass mit dem Wert von 0
keine Daten gefiltert werden. Alle Daten im Datensatz werden für die Auswertung verwendet.scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Antwort
Eine erfolgreiche Antwort gibt die Details des neu erstellten ML-Service zurück, einschließlich der eindeutigen id
und der scoringExperimentId
für das entsprechende Scoring-Experiment.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingExperimentRunId": "string",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"scoringSchedule": {
"startTime": "2019-03-13T00:00",
"endTime": "2019-03-14T00:00",
"cron": "30 * * * *"
},
"created": "2019-04-08T14:45:25.981Z",
"updated": "2019-04-08T14:45:25.981Z"
}
Erstellen eines ML-Service aus einer vorhandenen ML-Instanz
Je nach Ihrem spezifischen Anwendungsfall und Ihren Anforderungen ist die Erstellung eines ML-Service mit einer ML-Instanz in Bezug auf die Planung von Schulungs- und Scoring-Experimentausführungen flexibel. In diesem Tutorial werden die spezifischen Fälle behandelt, in denen:
Beachten Sie, dass ein ML-Service mit einer ML-Instanz erstellt werden kann, ohne Schulungs- oder Bewertungsexperimente zu planen. Solche ML-Services erstellen normale Experimententitäten und einen einzigen Experimentdurchgang für das Training und die Bewertung.
ML-Dienst mit geplantem Experiment für die Auswertung
Sie können einen ML-Service erstellen, indem Sie eine ML-Instanz mit geplanten Experimentausführungen zur Bewertung veröffentlichen, wodurch eine normale Experimententität für das Training erstellt wird. Ein Trainings-Experimentdurchgang wird generiert und für alle geplanten Scoring-Experimentdurchgänge verwendet. Vergewissern Sie sich, dass Sie über mlInstanceId
, trainingDataSetId
und scoringDataSetId
verfügen, die für das Erstellen des ML-Dienstes erforderlich sind und dass diese vorliegen und gültige Werte sind.
API-Format
POST /mlServices
Anfrage
curl -X POST
https://platform.adobe.io/data/sensei/mlServices
-H 'Authorization: {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "Service name",
"description": "Service description",
"mlInstanceId": "c4155146-b38f-4a8b-86d8-1de3838c8d87",
"trainingDataSetId": "5c5af39c73fcec153117eed1",
"trainingTimeframe": "10000",
"scoringDataSetId": "5c5af39c73fcec153117eed1",
"scoringTimeframe": "20000",
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
}
}'
mlInstanceId
trainingDataSetId
trainingTimeframe
"10080"
verwendet, was Daten aus den letzten 10080 Minuten oder 168 Stunden bedeutet. Beachten Sie, dass mit dem Wert von "0"
keine Daten gefiltert werden. Alle Daten im Datensatz werden für die Schulung verwendet.scoringDataSetId
scoringTimeframe
"10080"
verwendet, was Daten aus den letzten 10080 Minuten oder 168 Stunden bedeutet. Beachten Sie, dass mit dem Wert von "0"
keine Daten gefiltert werden. Alle Daten im Datensatz werden für die Auswertung verwendet.scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Antwort
Eine erfolgreiche Antwort gibt die Details des neu erstellten ML-Service zurück. Dazu gehören die eindeutige id
des Service sowie die trainingExperimentId
und scoringExperimentId
für die entsprechenden Schulungs- bzw. Bewertungsexperimente.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"created": "2019-04-09T08:58:10.956Z",
"updated": "2019-04-09T08:58:10.956Z"
}
ML-Dienst mit geplanten Experimenten für Schulung und Auswertung
Um eine vorhandene ML-Instanz als ML-Service mit geplanten Trainings- und Scoring-Experimentausführungen zu veröffentlichen, müssen Sie sowohl Trainings- als auch Scoring-Zeitpläne bereitstellen. Wenn ein ML-Service dieser Konfiguration erstellt wird, werden auch geplante Experimententitäten für Training und Bewertung erstellt. Beachten Sie, dass Schulungs- und Auswertungszeitpläne nicht identisch sein müssen. Während der Ausführung eines Auswertungsauftrags wird das neueste geschulte Modell, das von geplanten Schulungs-Experimentabläufen produziert wird, abgerufen und für den geplanten Auswertungsablauf verwendet.
API-Format
POST /mlServices
Anfrage
curl -X POST 'https://platform.adobe.io/data/sensei/mlServices'
-H 'Authorization: Bearer {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "string",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
}
}'
mlInstanceId
trainingDataSetId
trainingTimeframe
"10080"
verwendet, was Daten aus den letzten 10080 Minuten oder 168 Stunden bedeutet. Beachten Sie, dass mit dem Wert von "0"
keine Daten gefiltert werden. Alle Daten im Datensatz werden für die Schulung verwendet.scoringDataSetId
scoringTimeframe
"10080"
verwendet, was Daten aus den letzten 10080 Minuten oder 168 Stunden bedeutet. Beachten Sie, dass mit dem Wert von "0"
keine Daten gefiltert werden. Alle Daten im Datensatz werden für die Auswertung verwendet.trainingSchedule
scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Antwort
Eine erfolgreiche Antwort gibt die Details des neu erstellten ML-Service zurück. Dazu gehören die eindeutige id
des Service sowie die trainingExperimentId
und scoringExperimentId
der entsprechenden Schulungs- bzw. Bewertungsexperimente. In der folgenden Beispielantwort legt das Vorhandensein von trainingSchedule
und scoringSchedule
nahe, dass die Experimententitäten für das Training und die Bewertung geplante Experimente sind.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",,
"scoringTimeframe": "integer",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"created": "2019-04-09T08:58:10.956Z",
"updated": "2019-04-09T08:58:10.956Z"
}
Suchen eines ML-Service
Sie können einen vorhandenen ML-Service suchen, indem Sie eine GET
-Anfrage an /mlServices
stellen und die eindeutige id
des ML-Service im Pfad angeben.
API-Format
GET /mlServices/{SERVICE_ID}
{SERVICE_ID}
id
des ML-Services, den Sie suchen.Anfrage
curl -X GET 'https://platform.adobe.io/data/sensei/mlServices/{SERVICE_ID}'
-H 'Authorization: Bearer {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'x-sandbox-name: {SANDBOX_NAME}'
Antwort
Eine erfolgreiche Antwort gibt die Details des ML-Service zurück.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-10T00:00",
"cron": "10 * * * *"
},
"created": "2019-05-13T23:46:03.478Z",
"updated": "2019-05-13T23:46:03.478Z"
}
Planen von Schulungen oder Auswertungen
Wenn Sie die Bewertung und Schulung für einen bereits veröffentlichten ML-Service planen möchten, können Sie dies tun, indem Sie den vorhandenen ML-Service mit einer PUT
auf /mlServices
aktualisieren.
API-Format
PUT /mlServices/{SERVICE_ID}
{SERVICE_ID}
id
des ML-Services, den Sie aktualisieren.Anfrage
Mit der folgenden Anfrage wird ein Zeitplan für das Training und die Bewertung für einen vorhandenen ML-Service erstellt, indem die trainingSchedule
- und scoringSchedule
-Schlüssel mit den entsprechenden startTime
-, endTime
- und cron
-Schlüsseln hinzugefügt werden.
curl -X PUT 'https://platform.adobe.io/data/sensei/mlServices/{SERVICE_ID}'
-H 'Authorization: {ACCESS_TOKEN}'
-H 'x-api-key: {API_KEY}'
-H 'x-gw-ims-org-id: {ORG_ID}'
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '{
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-11T00:00",
"cron": "20 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-11T00:00",
"cron": "20 * * * *"
}
}'
startTime
für bestehende geplante Schulungs- und Scoring-Aufträge zu ändern. Wenn die startTime
geändert werden muss, sollten Sie erwägen, dasselbe Modell zu veröffentlichen und die Schulungs- und Auswertungsaufträge umzuplanen.Antwort
Eine erfolgreiche Antwort gibt die Details des aktualisierten ML-Service zurück.
{
"id": "string",
"name": "string",
"description": "string",
"mlInstanceId": "string",
"trainingExperimentId": "string",
"trainingDataSetId": "string",
"trainingTimeframe": "integer",
"scoringExperimentId": "string",
"scoringDataSetId": "string",
"scoringTimeframe": "integer",
"trainingSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-11T00:00",
"cron": "20 * * * *"
},
"scoringSchedule": {
"startTime": "2019-04-09T00:00",
"endTime": "2019-04-11T00:00",
"cron": "20 * * * *"
},
"created": "2019-04-09T08:58:10.956Z",
"updated": "2019-04-09T09:43:55.563Z"
}