Un MLService est un modèle formé publié qui permet à votre organisation d’accéder aux modèles précédemment développés et de les réutiliser. L’une des principales caractéristiques de MLServices est sa capacité d’automatiser la formation et la notation selon un calendrier précis. Les exécutions de formation planifiées peuvent contribuer à préserver l’efficacité et la précision d’un modèle, tandis que les exécutions de notation planifiées peuvent garantir que de nouvelles informations sont générées de manière cohérente.
Les calendriers de formation et de notation automatisés sont définis avec un horodatage de début et de fin, ainsi qu’une fréquence représentée sous la forme d’une expression cron. Les planifications peuvent être définies lors de la création d’un MLService ou appliquées en mettant à jour un MLService existant.
Vous pouvez créer un MLService en exécutant un payload et une requête POST qui fournit un nom pour le service et un identifiant MLInstance valide. L’instance MLInstance utilisée pour créer un MLService n’est pas nécessaire pour avoir des expériences de formation existantes, mais vous pouvez choisir de créer un MLService avec un modèle existant en fournissant l’identifiant d’expérience et l’identifiant d’exécution de formation correspondants.
Format d’API
POST /mlServices
Requête
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}' \
-H 'content-type: application/vnd.adobe.platform.sensei+json; profile=mlService.v1.json' \
-d '{
"name": "A name for this MLService",
"description": "A description for this MLService",
"mlInstanceId": "46986c8f-7739-4376-8509-0178bdf32cda",
"trainingDataSetId": "5ee3cd7f2d34011913c56941",
"trainingExperimentId": "014d8acf-08fb-421c-8b65-760c8799c627",
"trainingExperimentRunId": "33408593-2871-4198-a812-6d1b7d939cda",
"trainingSchedule": {
"startTime": "2019-01-01T00:00",
"endTime": "2019-12-31T00:00",
"cron": "20 * * * *"
},
"scoringSchedule": {
"startTime": "2019-01-01T00:00",
"endTime": "2019-12-31T00:00",
"cron": "20 * * * *"
}
}'
Propriété | Description |
---|---|
name |
Nom souhaité pour MLService. Le service correspondant à ce MLService héritera de cette valeur à afficher dans l’interface utilisateur de la galerie de services en tant que nom du service. |
description |
Description facultative du MLService. Le service correspondant à ce MLService héritera de cette valeur à afficher dans l’interface utilisateur de la galerie de services en tant que description du service. |
mlInstanceId |
Un identifiant MLInstance valide. |
trainingDataSetId |
Identifiant de jeu de données de formation qui, s’il est fourni, remplacera l’identifiant de jeu de données par défaut de MLInstance. Si l’instance MLInstance utilisée pour créer le MLService ne définit pas un jeu de données de formation, vous devez fournir un identifiant de jeu de données de formation approprié. |
trainingExperimentId |
Identifiant d’expérience que vous pouvez éventuellement fournir. Si cette valeur n’est pas fournie, la création de MLService créera également une nouvelle expérience à l’aide des configurations par défaut de MLInstance. |
trainingExperimentRunId |
Identifiant d’exécution de formation que vous pouvez éventuellement fournir. Si cette valeur n’est pas fournie, la création du MLService créera et exécutera également une exécution de formation à l’aide des paramètres de formation par défaut de MLInstance. |
trainingSchedule |
Calendrier des exécutions de formation automatisées. Si cette propriété est définie, le MLService effectue automatiquement des exécutions de formation selon un calendrier précis. |
trainingSchedule.startTime |
Horodatage pour lequel les exécutions de formation planifiées commenceront. |
trainingSchedule.endTime |
Horodatage pour lequel les exécutions de formation planifiées se termineront. |
trainingSchedule.cron |
Une expression cron qui définit la fréquence des exécutions de formation automatisées. |
scoringSchedule |
Calendrier des exécutions de notation automatisées. Si cette propriété est définie, le MLService effectue automatiquement des exécutions de notation selon un calendrier précis. |
scoringSchedule.startTime |
Horodatage pour lequel les exécutions de notation planifiées commenceront. |
scoringSchedule.endTime |
Horodatage pour lequel les exécutions de notation planifiées se termineront. |
scoringSchedule.cron |
Une expression cron qui définit la fréquence des exécutions de notation automatisées. |
Réponse
Une réponse réussie renvoie un payload contenant les détails du MLService nouvellement créé, y compris son identifiant unique (id
), son identifiant d’expérience pour la formation (trainingExperimentId
), son identifiant d’expérience pour la notation (scoringExperimentId
) et son identifiant de jeu de données de formation d’entrée (trainingDataSetId
).
{
"id": "68d936d8-17e6-44ef-a4b6-c7502055638b",
"name": "A name for this MLService",
"description": "A description for this MLService",
"mlInstanceId": "46986c8f-7739-4376-8509-0178bdf32cda",
"trainingExperimentId": "014d8acf-08fb-421c-8b65-760c8799c627",
"trainingDataSetId": "5ee3cd7f2d34011913c56941",
"scoringExperimentId": "76c2b1b-fad7-4b31-8c54-19ecc18b1ea0",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"userId": "Jane_Doe@AdobeID"
},
"trainingSchedule": {
"startTime": "2019-01-01T00:00",
"endTime": "2019-12-31T00:00",
"cron": "20 * * * *"
},
"scoringSchedule": {
"startTime": "2019-01-01T00:00",
"endTime": "2019-12-31T00:00",
"cron": "20 * * * *"
},
"updated": "2019-01-01T00:00:00.000Z"
}
Vous pouvez récupérer une liste de MLServices en exécutant une requête GET unique. Pour filtrer les résultats plus facilement, vous pouvez spécifier les paramètres de requête dans le chemin d’accès de la requête. Pour obtenir une liste des requêtes disponibles, reportez-vous à la section de l’annexe concernant les paramètres de requête pour la récupération des ressources.
Format d’API
GET /mlServices
GET /mlServices?{QUERY_PARAMETER}={VALUE}
GET /mlServices?{QUERY_PARAMETER_1}={VALUE_1}&{QUERY_PARAMETER_2}={VALUE_2}
Paramètre | Description |
---|---|
{QUERY_PARAMETER} |
L’un des paramètres de requête disponibles utilisé pour filtrer les résultats. |
{VALUE} |
La valeur du paramètre de requête précédent. |
Requête
La requête suivante contient une requête et récupère une liste de MLServices partageant le même identifiant MLInstance ({MLINSTANCE_ID}
).
curl -X GET \
'https://platform.adobe.io/data/sensei/mlServices?property=mlInstanceId==46986c8f-7739-4376-8509-0178bdf32cda' \
-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}'
Réponse
Une réponse réussie renvoie une liste de MLService et leurs informations, y compris leur identifiant MLService ({MLSERVICE_ID}
), son identifiant d’expérience pour la formation ({TRAINING_ID}
), son identifiant d’expérience pour la notation ({SCORING_ID}
) et son identifiant de jeu de données de formation d’entrée ({DATASET_ID}
).
{
"children": [
{
"id": "68d936d8-17e6-44ef-a4b6-c7502055638b",
"name": "A service created in UI",
"mlInstanceId": "46986c8f-7739-4376-8509-0178bdf32cda",
"trainingExperimentId": "014d8acf-08fb-421c-8b65-760c8799c627",
"trainingDataSetId": "5ee3cd7f2d34011913c56941",
"scoringExperimentId": "76c2b1b-fad7-4b31-8c54-19ecc18b1ea0",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"displayName": "Jane Doe",
"userId": "Jane_Doe@AdobeID"
},
"updated": "2019-01-01T00:00:00.000Z"
}
],
"_page": {
"property": "mlInstanceId==46986c8f-7739-4376-8509-0178bdf32cda,deleted==false",
"count": 1
}
}
Vous pouvez récupérer les détails d’une expérience spécifique en exécutant une requête GET qui inclut l’identifiant de MLService souhaité dans le chemin de la requête.
Format d’API
GET /mlServices/{MLSERVICE_ID}
{MLSERVICE_ID}
: un identifiant MLService valide.Requête
curl -X GET \
https://platform.adobe.io/data/sensei/mlServices/68d936d8-17e6-44ef-a4b6-c7502055638b \
-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}'
Réponse
Une réponse réussie renvoie un payload contenant les détails du MLService demandé.
{
"id": "68d936d8-17e6-44ef-a4b6-c7502055638b",
"name": "A name for this MLService",
"description": "A description for this MLService",
"mlInstanceId": "46986c8f-7739-4376-8509-0178bdf32cda",
"trainingExperimentId": "014d8acf-08fb-421c-8b65-760c8799c627",
"trainingDataSetId": "5ee3cd7f2d34011913c56941",
"scoringExperimentId": "76c2b1b-fad7-4b31-8c54-19ecc18b1ea0",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"userId": "Jane_Doe@AdobeID"
},
"updated": "2019-01-01T00:00:00.000Z"
}
Vous pouvez mettre à jour un MLService existant en écrasant ses propriétés par le biais d’une requête PUT qui inclut l’identifiant du MLService cible dans le chemin d’accès à la requête et en fournissant un payload JSON contenant des propriétés mises à jour.
Afin de garantir le succès de cette requête PUT, il est conseillé d’effectuer en premier lieu une requête GET pour récupérer le MLService par son identifiant. Ensuite, modifiez et mettez à jour l’objet JSON renvoyé et appliquez l’intégralité de l’objet JSON modifié en tant que payload de la requête PUT.
Format d’API
PUT /mlServices/{MLSERVICE_ID}
{MLSERVICE_ID}
: un identifiant MLService valide.Requête
curl -X PUT \
https://platform.adobe.io/data/sensei/mlServices/68d936d8-17e6-44ef-a4b6-c7502055638b \
-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}' \
-H 'content-type: application/vnd.adobe.platform.sensei+json; profile=mlService.v1.json' \
-d '{
"name": "A name for this MLService",
"description": "A description for this MLService",
"mlInstanceId": "46986c8f-7739-4376-8509-0178bdf32cda",
"trainingExperimentId": "014d8acf-08fb-421c-8b65-760c8799c627",
"trainingDataSetId": "5ee3cd7f2d34011913c56941",
"scoringExperimentId": "76c2b1b-fad7-4b31-8c54-19ecc18b1ea0",
"trainingSchedule": {
"startTime": "2019-01-01T00:00",
"endTime": "2019-12-31T00:00",
"cron": "20 * * * *"
},
"scoringSchedule": {
"startTime": "2019-01-01T00:00",
"endTime": "2019-12-31T00:00",
"cron": "20 * * * *"
}
}'
Réponse
Une réponse réussie renvoie un payload contenant les détails mis à jour du MLService.
{
"id": "68d936d8-17e6-44ef-a4b6-c7502055638b",
"name": "A name for this MLService",
"description": "A description for this MLService",
"mlInstanceId": "46986c8f-7739-4376-8509-0178bdf32cda",
"trainingExperimentId": "014d8acf-08fb-421c-8b65-760c8799c627",
"trainingDataSetId": "5ee3cd7f2d34011913c56941",
"scoringExperimentId": "76c2b1b-fad7-4b31-8c54-19ecc18b1ea0",
"created": "2019-01-01T00:00:00.000Z",
"createdBy": {
"userId": "Jane_Doe@AdobeID"
},
"trainingSchedule": {
"startTime": "2019-01-01T00:00",
"endTime": "2019-12-31T00:00",
"cron": "20 * * * *"
},
"scoringSchedule": {
"startTime": "2019-01-01T00:00",
"endTime": "2019-12-31T00:00",
"cron": "20 * * * *"
},
"updated": "2019-01-02T00:00:00.000Z"
}
Vous pouvez supprimer un seul MLService en exécutant une requête DELETE qui inclut l’identifiant du MLService cible dans le chemin de la requête.
Format d’API
DELETE /mlServices/{MLSERVICE_ID}
Paramètre | Description |
---|---|
{MLSERVICE_ID} |
Un identifiant MLService valide. |
Requête
curl -X DELETE \
https://platform.adobe.io/data/sensei/mlServices/68d936d8-17e6-44ef-a4b6-c7502055638b \
-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}'
Réponse
{
"title": "Success",
"status": 200,
"detail": "MLService deletion was successful"
}
Vous pouvez supprimer tous les MLServices appartenant à une MLInstance particulière en exécutant une requête DELETE qui spécifie un identifiant MLInstance comme paramètre de requête.
Format d’API
DELETE /mlServices?mlInstanceId={MLINSTANCE_ID}
Paramètre | Description |
---|---|
{MLINSTANCE_ID} |
Un identifiant MLInstance valide. |
Requête
curl -X DELETE \
https://platform.adobe.io/data/sensei/mlServices?mlInstanceId=46986c8f-7739-4376-8509-0178bdf32cda \
-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}'
Réponse
{
"title": "Success",
"status": 200,
"detail": "MLServices deletion was successful"
}