Publish en modell som en tjänst med Sensei Machine Learning API
I den här självstudien beskrivs processen att publicera en modell som en tjänst med hjälp av Sensei Machine Learning API.
Komma igång
Den här självstudiekursen kräver en fungerande förståelse för Adobe Experience Platform Data Science Workspace. Innan du börjar med den här självstudiekursen bör du gå igenom Workspace-översikten för datavetenskap för att få en introduktion till tjänsten på hög nivå.
Om du vill följa med i den här självstudiekursen måste du ha en befintlig ML-motor, ML-instans och Experiment. Anvisningar om hur du skapar dessa i API:t finns i självstudiekursen Importera ett paketerat recept.
Innan du startar den här självstudiekursen bör du gå igenom avsnittet Komma igång i utvecklarhandboken för att få viktig information som du behöver känna till för att kunna anropa API:t för Sensei Machine Learning, inklusive de rubriker som krävs som används i den här självstudiekursen:
{ACCESS_TOKEN}
{ORG_ID}
{API_KEY}
Alla förfrågningar från POST, PUT och PATCH kräver ytterligare en rubrik:
- Content-Type: application/json
Nyckeltermer
I följande tabell beskrivs några vanliga termer som används i den här självstudiekursen:
Skapa en ML-tjänst med en befintlig övningsexperimentell körning och schemalagd poängsättning
När du publicerar en utbildningsexperimentell körning som en ML-tjänst kan du schemalägga betygsättning genom att ange information för bedömningsförsöket Kör nyttolasten för en POST. Detta resulterar i att en schemalagd experimententitet för poängsättning skapas.
API-format
POST /mlServices
Begäran
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
innebär till exempel att data från de senaste 10080 minuterna eller 168 timmar kommer att användas för varje schemalagd bedömningsutvärderingskörning. Observera att värdet 0
inte kommer att filtrera data. Alla data i datauppsättningen används för poängsättningen.scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Svar
Ett lyckat svar returnerar information om den nyligen skapade ML-tjänsten, inklusive dess unika id
och scoringExperimentId
för motsvarande poängsättningsexperiment.
{
"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"
}
Skapa en ML-tjänst från en befintlig ML-instans
Beroende på ditt specifika användningsfall och dina specifika krav är det flexibelt att skapa en ML-tjänst med en ML-instans när det gäller schemaläggning av kurser och poängsättning i Experiment Runs. Den här självstudiekursen handlar om följande specialfall:
Observera att en ML-tjänst kan skapas med en ML-instans utan schemaläggning av några utbildnings- eller poängsättningsexperiment. Sådana ML-tjänster kommer att skapa vanliga experimentenheter och en enda Experimentrunda för utbildning och poängsättning.
ML-tjänst med schemalagd utvärdering för bedömning ml-service-with-scheduled-experiment-for-scoring
Du kan skapa en ML-tjänst genom att publicera en ML-instans med schemalagda Experiment Runs för bedömning, som skapar en vanlig Experimentenhet för utbildning. En utbildnings-Experimentkörning genereras och kommer att användas för alla schemalagda poängsättningsutvärderingsutvärderingsprocesser. Kontrollera att du har mlInstanceId
, trainingDataSetId
och scoringDataSetId
som krävs för att skapa ML-tjänsten och att de finns och är giltiga värden.
API-format
POST /mlServices
Begäran
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"
innebär till exempel att data från de senaste 10080 minuterna eller 168 timmar kommer att användas för att utbilda Experiment Run. Observera att värdet "0"
inte filtrerar data. Alla data i datauppsättningen används för utbildning.scoringDataSetId
scoringTimeframe
"10080"
innebär till exempel att data från de senaste 10080 minuterna eller 168 timmar kommer att användas för varje schemalagd bedömningsutvärderingskörning. Observera att värdet "0"
inte kommer att filtrera data. Alla data i datauppsättningen används för poängsättningen.scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Svar
Ett lyckat svar returnerar information om den nyligen skapade ML-tjänsten. Detta inkluderar tjänstens unika id
samt trainingExperimentId
och scoringExperimentId
för motsvarande utbildning och poängsättningsexperiment.
{
"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-tjänst med schemalagda experiment för utbildning och poängsättning ml-service-with-scheduled-experiments-for-training-and-scoring
Om du vill publicera en befintlig ML-instans som en ML-tjänst med schemalagda kurser och poängsättningsprovperioder måste du tillhandahålla både utbildnings- och poängscheman. När en ML-tjänst av den här konfigurationen skapas skapas även schemalagda experimentenheter för både utbildning och poängsättning. Observera att kursplaner och poängscheman inte behöver vara desamma. Under ett poängsättningsjobb kommer den senaste utbildningsmodellen som skapats av schemalagda kurser i Experiment Runs att hämtas och användas för den schemalagda poängsättningen.
API-format
POST /mlServices
Begäran
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"
innebär till exempel att data från de senaste 10080 minuterna eller 168 timmar kommer att användas för att utbilda Experiment Run. Observera att värdet "0"
inte filtrerar data. Alla data i datauppsättningen används för utbildning.scoringDataSetId
scoringTimeframe
"10080"
innebär till exempel att data från de senaste 10080 minuterna eller 168 timmar kommer att användas för varje schemalagd bedömningsutvärderingskörning. Observera att värdet "0"
inte kommer att filtrera data. Alla data i datauppsättningen används för poängsättningen.trainingSchedule
scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Svar
Ett lyckat svar returnerar information om den nyligen skapade ML-tjänsten. Detta inkluderar tjänstens unika id
, samt trainingExperimentId
och scoringExperimentId
för motsvarande utbildnings- och poängsättningsexperiment. I exempelsvaret nedan tyder närvaron av trainingSchedule
och scoringSchedule
på att Experimententiteterna för utbildning och poängsättning är schemalagda experiment.
{
"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"
}
Söka efter en ML-tjänst retrieving-ml-services
Du kan söka efter en befintlig ML-tjänst genom att göra en GET
-begäran till /mlServices
och ange den unika id
för ML-tjänsten i sökvägen.
API-format
GET /mlServices/{SERVICE_ID}
{SERVICE_ID}
id
för ML-tjänsten som du söker efter.Begäran
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}'
Svar
Ett godkänt svar returnerar information om ML-tjänsten.
{
"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"
}
Schemalägg utbildning eller poängsättning
Om du vill schemalägga poängsättning och utbildning för en ML-tjänst som redan har publicerats kan du göra det genom att uppdatera den befintliga ML-tjänsten med en PUT
-begäran /mlServices
.
API-format
PUT /mlServices/{SERVICE_ID}
{SERVICE_ID}
id
för ML-tjänsten som du uppdaterar.Begäran
Följande begäran schemalägger utbildning och poängsättning för en befintlig ML-tjänst genom att lägga till nycklarna trainingSchedule
och scoringSchedule
med respektive tangent startTime
, endTime
och cron
.
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 befintliga schemalagda utbildnings- och poängsättningsjobb. Om startTime
måste ändras bör du överväga att publicera samma modell och schemalägga om utbildnings- och bedömningsjobb.Svar
Ett godkänt svar returnerar information om den uppdaterade ML-tjänsten.
{
"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"
}