Importare una ricetta confezionata utilizzando l’API di apprendimento automatico di Sensei

NOTE
Data Science Workspace non è più disponibile per l’acquisto.
Questa documentazione è destinata ai clienti esistenti che dispongono di diritti precedenti su Data Science Workspace.

Questa esercitazione utilizza Sensei Machine Learning API per creare un motore, noto anche come ricetta nell'interfaccia utente.

Prima di iniziare, è importante notare che Adobe Experience Platform Data Science Workspace utilizza termini diversi per fare riferimento a elementi simili nell'API e nell'interfaccia utente. In questa esercitazione vengono utilizzati i termini API e la tabella seguente illustra i termini correlati:

interfaccia Termine
Termine API
Ricetta
Motore
Modello
MLInstance
Formazione e valutazione
Rsperimento
Servizio
MLService

Un motore contiene algoritmi di apprendimento automatico e logica per risolvere problemi specifici. Il diagramma seguente fornisce una visualizzazione del flusso di lavoro API in Data Science Workspace. Questa esercitazione si concentra sulla creazione di un motore, il cervello di un modello di apprendimento automatico.

Introduzione

Questa esercitazione richiede un file di composizione in pacchetti sotto forma di URL Docker. Segui l'esercitazione Creazione di file di origine del pacchetto in una ricetta per creare un file di composizione in pacchetto o fornirne uno tuo.

  • {DOCKER_URL}: indirizzo URL di un'immagine Docker di un servizio intelligente.

Questo tutorial richiede di aver completato l'esercitazione Autenticazione per Adobe Experience Platform per effettuare correttamente le chiamate alle API Platform. Completando il tutorial sull’autenticazione si ottengono i valori per ciascuna delle intestazioni richieste in tutte le chiamate API di Experience Platform, come mostrato di seguito:

  • {ACCESS_TOKEN}: il valore del token Bearer specifico fornito dopo l'autenticazione.
  • {ORG_ID}: credenziali organizzazione trovate nell'integrazione univoca di Adobe Experience Platform.
  • {API_KEY}: valore chiave API specifico trovato nell'integrazione univoca di Adobe Experience Platform.

Creare un motore

I motori possono essere creati effettuando una richiesta POST all’endpoint /engines. Il motore creato viene configurato in base alla forma del file Recipe pacchettizzato che deve essere incluso come parte dell'API richiesta.

Crea un motore con un Docker URL create-an-engine-with-a-docker-url

Per creare un motore con un file di ricetta confezionato archiviato in un contenitore Docker, è necessario fornire il URL Docker al file di ricetta pacchettizzato.

CAUTION
Se si utilizza Python o R, utilizzare la richiesta riportata di seguito. Se si utilizza PySpark o Scala, utilizzare l'esempio di richiesta PySpark/Scala che si trova sotto l'esempio Python/R.

Formato API

POST /engines

Richiedi Python/R

curl -X POST \
    https://platform.adobe.io/data/sensei/engines \
    -H 'Authorization: {ACCESS_TOKEN}' \
    -H 'X-API-KEY: {API_KEY}' \
    -H 'content-type: multipart/form-data' \
    -H 'x-gw-ims-org-id: {ORG_ID}' \
    -H `x-sandbox-name: {SANDBOX_NAME}` \
    -F 'engine={
        "name": "Retail Sales Engine Python",
        "description": "A description for Retail Sales Engine, this Engines execution type is Python",
        "type": "Python"
        "artifacts": {
            "default": {
                "image": {
                    "location": "{DOCKER_URL}",
                    "name": "retail_sales_python",
                    "executionType": "Python"
                }
            }
        }
    }'
Proprietà
Descrizione
engine.name
Il nome desiderato per il motore. La Ricetta corrispondente a questo Motore erediterà questo valore da visualizzare nell Data Science Workspace utente interfaccia come nome della Ricetta.
engine.description
Descrizione facoltativa del motore. La Ricetta corrispondente a questo Motore erediterà questo valore da visualizzare nell Data Science Workspace utente interfaccia come descrizione della Ricetta. Non rimuovere questa proprietà, lascia che questo valore sia una stringa vuota se scegli di non fornire una descrizione.
engine.type
Tipo di esecuzione del motore. Questo valore corrisponde al linguaggio in cui viene sviluppata l’immagine Docker. Quando viene fornito un URL Docker per creare un motore, type è Python, R, PySpark, Spark (Scala) o Tensorflow.
artifacts.default.image.location
{DOCKER_URL} verrà inserito qui. Un URL Docker completo ha la seguente struttura: your_docker_host.azurecr.io/docker_image_file:version
artifacts.default.image.name
Un nome aggiuntivo per il file di immagine Docker. Non rimuovere questa proprietà, lascia che questo valore sia una stringa vuota se scegli di non fornire un nome di file immagine Docker aggiuntivo.
artifacts.default.image.executionType
Tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui è stata sviluppata l'immagine Docker. Quando viene fornito un URL Docker per creare un motore, executionType è Python, R, PySpark, Spark (Scala) o Tensorflow.

Richiedi PySpark

curl -X POST \
  https://platform.adobe.io/data/sensei/engines \
    -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: multipart/form-data' \
    -F 'engine={
    "name": "PySpark retail sales recipe",
    "description": "A description for this Engine",
    "type": "PySpark",
    "mlLibrary":"databricks-spark",
    "artifacts": {
        "default": {
            "image": {
                "name": "modelspark",
                "executionType": "PySpark",
                "packagingType": "docker",
                "location": "v1d2cs4mimnlttw.azurecr.io/sarunbatchtest:0.0.1"
            }
        }
    }
}'
Proprietà
Descrizione
name
Il nome desiderato per il motore. La ricetta corrispondente a questo motore erediterà questo valore per essere visualizzato nell’interfaccia utente come nome della ricetta.
description
Descrizione facoltativa del motore. La Ricetta corrispondente a questo Motore erediterà questo valore da visualizzare in interfaccia come descrizione della Ricetta. Questa proprietà è obbligatoria. Se non si desidera fornire una descrizione, impostarne il valore come stringa vuota.
type
Tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui l'immagine Docker è basata su "PySpark".
mlLibrary
Campo richiesto per la creazione di motori per le ricette PySpark e Scala.
artifacts.default.image.location
Posizione dell’immagine Docker collegata da un URL Docker.
artifacts.default.image.executionType
Tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui l’immagine Docker è generata su "Spark".

Scala richieste

curl -X POST \
  https://platform.adobe.io/data/sensei/engines \
    -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: multipart/form-data' \
    -F 'engine={
    "name": "Spark retail sales recipe",
    "description": "A description for this Engine",
    "type": "Spark",
    "mlLibrary":"databricks-spark",
    "artifacts": {
        "default": {
            "image": {
                "name": "modelspark",
                "executionType": "Spark",
                "packagingType": "docker",
                "location": "v1d2cs4mimnlttw.azurecr.io/sarunbatchtest:0.0.1"
            }
        }
    }
}'
Proprietà
Descrizione
name
Il nome desiderato per il motore. La ricetta corrispondente a questo motore erediterà questo valore per essere visualizzato nell’interfaccia utente come nome della ricetta.
description
Descrizione facoltativa del motore. La ricetta corrispondente a questo motore erediterà questo valore per essere visualizzato nell’interfaccia utente come descrizione della ricetta. Questa proprietà è obbligatoria. Se non si desidera fornire una descrizione, impostarne il valore su una stringa vuota.
type
Tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui l'immagine Docker è basata su "Spark".
mlLibrary
Campo richiesto durante la creazione di motori per le ricette PySpark e Scala.
artifacts.default.image.location
Posizione dell'immagine Docker collegata da un URL Docker.
artifacts.default.image.executionType
Tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui l'immagine Docker è basata su "Spark".

Risposta

In caso di esito positivo, la risposta restituisce un payload contenente i dettagli del motore appena creato, incluso il relativo identificatore univoco (id). La risposta di esempio seguente è per un motore Python. Le chiavi executionType e type cambiano in base al POST fornito.

{
    "id": "{ENGINE_ID}",
    "name": "A name for this Engine",
    "description": "A description for this Engine",
    "type": "Python",
    "algorithm": "Classification",
    "created": "2019-01-01T00:00:00.000Z",
    "createdBy": {
        "userId": "Jane_Doe@AdobeID"
    },
    "updated": "2019-01-01T00:00:00.000Z",
    "artifacts": {
        "default": {
            "image": {
                "location": "{DOCKER_URL}",
                "name": "An additional name for the Docker image",
                "executionType": "Python",
                "packagingType": "docker"
            }
        }
    }
}

Una risposta corretta mostra un payload JSON con informazioni relative al motore appena creato. La id chiave rappresenta l'identificatore univoco del motore ed è necessaria nella esercitazione successiva per creare un MLInstance. Assicurarsi che l'identificatore Engine sia salvato prima di procedere con i passaggi successivi.

Passaggi successivi next-steps

È stato creato un motore utilizzando l'API ed è stato ottenuto un identificatore motore univoco come parte del corpo della risposta. È possibile utilizzare questo identificatore del motore nell'esercitazione successiva mentre si apprende come creare, addestrare e valutare un modello utilizzando l'API.

recommendation-more-help
cc79fe26-64da-411e-a6b9-5b650f53e4e9