Publish creó un modelo como servicio utilizando Sensei Machine Learning API
Este tutorial cubre el proceso de publicación de un modelo como servicio mediante Sensei Machine Learning API.
Introducción
Este tutorial requiere una comprensión práctica de Adobe Experience Platform Data Science Workspace. Antes de comenzar este tutorial, revise la descripción general de Data Science Workspace para obtener una introducción de alto nivel al servicio.
Para seguir este tutorial, debe tener un motor ML, una instancia ML y un experimento existentes. Para ver los pasos sobre cómo crearlos en la API, consulta el tutorial sobre importación de una fórmula empaquetada.
Por último, antes de iniciar este tutorial, consulte la sección introducción de la guía para desarrolladores para obtener información importante que necesita conocer para realizar correctamente llamadas a la API Sensei Machine Learning, incluidos los encabezados necesarios utilizados en este tutorial:
{ACCESS_TOKEN}
{ORG_ID}
{API_KEY}
Todas las solicitudes de POST, PUT y PATCH requieren un encabezado adicional:
- Content-Type: application/json
Términos clave
En la tabla siguiente se describen algunos términos comunes utilizados en este tutorial:
Crear un servicio ML con una ejecución de experimento de formación existente y una puntuación programada.
Al publicar un experimento de formación Ejecutar como servicio ML, puede programar la puntuación proporcionando detalles para la puntuación del experimento Ejecutar la carga útil de una solicitud de POST. Esto resulta en la creación de una entidad de Experimento programada para la puntuación.
Formato de API
POST /mlServices
Solicitud
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
significa que se usarán datos de los últimos 10080 minutos o 168 horas para cada ejecución de experimento de puntuación programada. Tenga en cuenta que un valor de 0
no filtrará los datos, todos los datos dentro del conjunto de datos se utilizan para la puntuación.scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Respuesta
Una respuesta correcta devuelve los detalles del servicio ML recién creado, incluido su id
único y el scoringExperimentId
para su experimento de puntuación correspondiente.
{
"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"
}
Creación de un servicio XML a partir de una instancia XML existente
Según el caso de uso y los requisitos específicos, la creación de un servicio XML con una instancia XML es flexible en términos de programación de la formación y la puntuación de las ejecuciones de experimentos. Este tutorial analizará los casos específicos en los que:
Tenga en cuenta que se puede crear un servicio XML con una instancia XML sin programar ningún experimento de formación o puntuación. Estos servicios XML crearán entidades de experimento normales y una única ejecución de experimento para formación y puntuación.
Servicio ML con experimento programado para puntuación ml-service-with-scheduled-experiment-for-scoring
Puede crear un servicio XML publicando una instancia XML con ejecuciones de experimento programadas para puntuación, lo que creará una entidad de experimento normal para formación. Se genera una ejecución de experimento de formación que se utilizará en todas las ejecuciones de experimento de puntuación programadas. Asegúrese de que dispone de los mlInstanceId
, trainingDataSetId
y scoringDataSetId
necesarios para la creación del servicio XML y de que existen y son valores válidos.
Formato de API
POST /mlServices
Solicitud
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"
significa que se utilizarán datos de los últimos 10080 minutos o 168 horas para la ejecución del experimento de formación. Tenga en cuenta que un valor de "0"
no filtrará los datos, todos los datos dentro del conjunto de datos se utilizan para aprendizaje.scoringDataSetId
scoringTimeframe
"10080"
significa que se usarán datos de los últimos 10080 minutos o 168 horas para cada ejecución de experimento de puntuación programada. Tenga en cuenta que un valor de "0"
no filtrará los datos, todos los datos dentro del conjunto de datos se utilizan para la puntuación.scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Respuesta
Una respuesta correcta devuelve los detalles del servicio XML recién creado. Esto incluye el(la) único(a) id
del servicio, así como trainingExperimentId
y scoringExperimentId
para sus correspondientes experimentos de entrenamiento y puntuación, respectivamente.
{
"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"
}
Servicio ML con experimentos programados para formación y puntuación ml-service-with-scheduled-experiments-for-training-and-scoring
Para publicar una instancia de ML existente como servicio ML con formación programada y ejecuciones de experimento de puntuación, debe proporcionar programaciones de formación y puntuación. Cuando se crea un servicio XML de esta configuración, también se crean entidades de experimento programadas tanto para formación como para puntuación. Tenga en cuenta que los horarios de formación y puntuación no tienen que ser los mismos. Durante la ejecución de un trabajo de puntuación, se recuperará el último modelo entrenado producido por aprendizaje Experimento Runs programadas y se utilizará para la ejecución de puntuación programada.
Formato de API
POST /mlServices
Solicitud
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"
de los últimos 10080 minutos o 168 horas para la aprendizaje Experimento ejecución. Tenga en cuenta que un valor de "0"
no filtrará datos, todos los datos dentro del conjunto de datos se utilizan para aprendizaje.scoringDataSetId
scoringTimeframe
"10080"
medias de los últimos 10080 minutos o 168 horas para cada puntuación programada Experimento carrera. Tenga en cuenta que un valor de "0"
no filtrará los datos, todos los datos dentro del conjunto de datos se utilizan para la puntuación.trainingSchedule
scoringSchedule
scoringSchedule.startTime
scoringSchedule.endTime
scoringSchedule.cron
Respuesta
Una respuesta correcta devuelve los detalles del servicio de aprendizaje automático recién creado. Esto incluye el servicio único id
, así como el trainingExperimentId
y scoringExperimentId
de sus correspondientes aprendizaje y puntuación, respectivamente. En la respuesta de ejemplo siguiente, la presencia de y scoringSchedule
sugiere que las entidades Experimento trainingSchedule
para aprendizaje y puntuación son experimentos programados.
{
"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"
}
Look un servicio de aprendizaje automático retrieving-ml-services
Puede buscar un servicio de ML existente haciendo un GET
solicitud y /mlServices
proporcionando el único id
del servicio de ML en la ruta.
Formato de API
GET /mlServices/{SERVICE_ID}
{SERVICE_ID}
id
del servicio ML que está buscando.Solicitud
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}'
Respuesta
Una respuesta correcta devuelve los detalles del servicio XML.
{
"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"
}
Programar formación o puntuación
Si desea programar la puntuación y la formación en un servicio XML que ya se ha publicado, puede hacerlo actualizando el servicio XML existente con una solicitud PUT
en /mlServices
.
Formato de API
PUT /mlServices/{SERVICE_ID}
{SERVICE_ID}
id
del servicio XML que está actualizando.Solicitud
La siguiente solicitud programa la formación y la puntuación de un servicio XML existente agregando las claves trainingSchedule
y scoringSchedule
con sus respectivas claves startTime
, endTime
y 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
en los trabajos de entrenamiento y puntuación programados existentes. Si se debe modificar startTime
, considere la posibilidad de publicar el mismo modelo y reprogramar los trabajos de formación y puntuación.Respuesta
Una respuesta correcta devuelve los detalles del servicio XML actualizado.
{
"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"
}