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, consulta questo documento.

Creare un esperimento pianificato per il punteggio

Analogamente agli esperimenti pianificati per la formazione, la creazione di un esperimento pianificato per il punteggio viene eseguita anche includendo una template al parametro body. Inoltre, il name campo 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 verrà eseguito fino al 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}: le credenziali della tua organizzazione sono state trovate nell’integrazione univoca di Adobe Experience Platform.
{ACCESS_TOKEN}: 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 della proprietà modelId il parametro è il id parametro restituito nella richiesta del modello di GET 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}: le credenziali della tua organizzazione sono state trovate nell’integrazione univoca di Adobe Experience Platform.
{ACCESS_TOKEN}: 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}: valore del token Bearer specifico fornito dopo l’autenticazione.
{ORG_ID}: le credenziali della tua organizzazione sono state 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, è possibile eseguire una query su una richiesta DELETE al {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}: valore del token Bearer specifico fornito dopo l’autenticazione.
{ORG_ID}: le credenziali della tua organizzazione sono state trovate nell’integrazione univoca di Adobe Experience Platform.

NOTE
La chiamata API disabiliterà la creazione di nuove esecuzioni dell’esperimento. Tuttavia, non interrompe l’esecuzione di esecuzioni di esperimenti già in esecuzione.

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"
}
recommendation-more-help
cc79fe26-64da-411e-a6b9-5b650f53e4e9