Punteggio di un modello utilizzando Sensei Machine Learning API
Questa esercitazione ti mostrerà come sfruttare le API per creare un’esecuzione di un esperimento e di un esperimento. Per un elenco di tutti gli endpoint nell'API di apprendimento automatico di Sensei, fare riferimento a questo documento.
Creare un esperimento pianificato per il punteggio
Analogamente agli esperimenti pianificati per l’apprendimento, la creazione di un esperimento pianificato per il punteggio viene eseguita anche includendo una sezione template
nel parametro body. Inoltre, il campo name
in tasks
nel corpo è impostato come score
.
Di seguito è riportato un esempio di creazione di un esperimento che verrà eseguito ogni 20 minuti a partire da startTime
e fino a endTime
.
Richiesta
curl -X POST \
https://platform.adobe.io/data/sensei/experiments \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/vnd.adobe.platform.sensei+json;profile=experiment.v1.json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-d '{JSON_PAYLOAD}'
{ORG_ID}
: credenziali organizzazione trovate nell'integrazione univoca di Adobe Experience Platform.{ACCESS_TOKEN}
: il valore del token Bearer specifico fornito dopo l'autenticazione.{API_KEY}
: valore chiave API specifico trovato nell'integrazione univoca di Adobe Experience Platform.{JSON_PAYLOAD}
: oggetto esecuzione esperimento da inviare. L’esempio utilizzato nel nostro tutorial è mostrato qui:
{
"name": "Experiment for Retail",
"mlInstanceId": "{INSTANCE_ID}",
"template": {
"tasks": [{
"name": "score",
"parameters": [
{
"key": "modelId",
"value": "{MODEL_ID}"
}
],
"specification": {
"type": "SparkTaskSpec",
"executorCores": 5,
"numExecutors": 5
}
}],
"schedule": {
"cron": "*/20 * * * *",
"startTime": "2018-07-04",
"endTime": "2018-07-06"
}
}
}
{INSTANCE_ID}
: ID che rappresenta l'istanza MLI.{MODEL_ID}
: ID che rappresenta il modello addestrato.
Di seguito è riportata la risposta dopo la creazione dell’esperimento pianificato.
Risposta
{
"id": "{EXPERIMENT_ID}",
"name": "Experiment for Retail",
"mlInstanceId": "{INSTANCE_ID}",
"created": "2018-11-11T11:11:11.111Z",
"updated": "2018-11-11T11:11:11.111Z",
"template": {
"tasks": [
{
"name": "score",
"parameters": [...],
"specification": {
"type": "SparkTaskSpec",
"executorCores": 5,
"numExecutors": 5
}
}
],
"schedule": {
"cron": "*\/20 * * * *",
"startTime": "2018-07-04",
"endTime": "2018-07-06"
}
}
}
{EXPERIMENT_ID}
: ID che rappresenta l'esperimento.{INSTANCE_ID}
: ID che rappresenta l'istanza MLI.
Creare un’esecuzione dell’esperimento per il punteggio
Ora con il modello addestrato, possiamo creare un’esecuzione di esperimento per il punteggio. Il valore del parametro modelId
è il parametro id
restituito nella richiesta GET Model precedente.
Richiesta
curl -X POST \
https://platform.adobe.io/data/sensei/experiments/{EXPERIMENT_ID}/runs \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/vnd.adobe.platform.sensei+json;profile=experimentRun.v1.json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-d '{JSON_PAYLOAD}'
{ORG_ID}
: credenziali organizzazione trovate nell'integrazione univoca di Adobe Experience Platform.{ACCESS_TOKEN}
: il valore del token Bearer specifico fornito dopo l'autenticazione.{API_KEY}
: valore chiave API specifico trovato nell'integrazione univoca di Adobe Experience Platform.{EXPERIMENT_ID}
: ID corrispondente all'esperimento di cui desideri eseguire il targeting. Questo si trova nella risposta durante la creazione dell’esperimento.{JSON_PAYLOAD}
: dati da pubblicare. L’esempio utilizzato nel nostro tutorial è il seguente:
{
"mode":"score",
"tasks": [
{
"name": "score",
"parameters": [
{
"key": "modelId",
"value": "{MODEL_ID}"
}
]
}
]
}
{MODEL_ID}
: ID corrispondente al modello.
La risposta dalla creazione dell’esecuzione dell’esperimento è mostrata di seguito:
Risposta
{
"id": "{EXPERIMENT_RUN_ID}",
"mode": "score",
"experimentId": "{EXPERIMENT_ID}",
"created": "2018-01-01T11:11:11.011Z",
"updated": "2018-01-01T11:11:11.011Z",
"deleted": false,
"tasks": [
{
"name": "score",
"parameters": [...]
}
]
}
{EXPERIMENT_ID}
: ID corrispondente all'esperimento in cui si trova l'esecuzione.{EXPERIMENT_RUN_ID}
: ID corrispondente all'esecuzione dell'esperimento appena creata.
Recuperare lo stato di esecuzione di un esperimento per l’esecuzione pianificata dell’esperimento
Per eseguire un esperimento per gli esperimenti pianificati, la query è mostrata di seguito:
Richiesta
curl -X GET \
'https://platform.adobe.io/data/sensei/experiments/{EXPERIMENT_ID}/runs' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}'
{EXPERIMENT_ID}
: ID corrispondente all'esperimento in cui si trova l'esecuzione.{ACCESS_TOKEN}
: il valore del token Bearer specifico fornito dopo l'autenticazione.{ORG_ID}
: credenziali organizzazione trovate nell'integrazione univoca di Adobe Experience Platform.
Poiché esistono più esecuzioni di esperimenti per un esperimento specifico, la risposta restituita avrà una matrice di ID di esecuzione.
Risposta
{
"children": [
{
"id": "{EXPERIMENT_RUN_ID}",
"experimentId": "{EXPERIMENT_ID}",
"created": "2018-01-01T11:11:11.011Z",
"updated": "2018-01-01T11:11:11.011Z"
},
{
"id": "{EXPERIMENT_RUN_ID}",
"experimentId": "{EXPERIMENT_ID}",
"created": "2018-01-01T11:11:11.011Z",
"updated": "2018-01-01T11:11:11.011Z"
}
]
}
{EXPERIMENT_RUN_ID}
: ID corrispondente all'esecuzione dell'esperimento.{EXPERIMENT_ID}
: ID corrispondente all'esperimento in cui si trova l'esecuzione.
Interrompere ed eliminare un esperimento pianificato
Se desideri interrompere l'esecuzione di un esperimento pianificato prima del relativo endTime
, puoi eseguire una query su una richiesta DELETE a {EXPERIMENT_ID}
Richiesta
curl -X DELETE \
'https://platform.adobe.io/data/sensei/experiments/{EXPERIMENT_ID}' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}'
{EXPERIMENT_ID}
: ID corrispondente all'esperimento.{ACCESS_TOKEN}
: il valore del token Bearer specifico fornito dopo l'autenticazione.{ORG_ID}
: credenziali organizzazione trovate nell'integrazione univoca di Adobe Experience Platform.
Di seguito è riportata la risposta con la quale si notifica che l’esperimento è stato eliminato correttamente.
Risposta
{
"title": "Success",
"status": 200,
"detail": "Experiment successfully deleted"
}