Importare una ricetta in pacchetti utilizzando l'API di apprendimento di Sensei Machine

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 all'interno dell'API e dell'interfaccia utente. I termini API vengono utilizzati in questa esercitazione e nella tabella seguente sono riportati i termini correlati:

Termine interfaccia utente Termine API
Ricetta Motore
Modello MLInance
Formazione e valutazione Sperimentazione
Servizio MLService

Un Motore contiene algoritmi di machine learning 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 Recipe compresso sotto forma di URL Docker. Seguite i Pacchetto di file sorgente in un'esercitazione Recipe per creare un file Recipe pacchetto o fornitene uno personalizzato.

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

Questa esercitazione richiede che sia stata completata l'esercitazione Authentication to Adobe Experience Platform tutorial per eseguire correttamente le chiamate alle Platform API. Completando l'esercitazione sull'autenticazione, vengono forniti i valori per ciascuna delle intestazioni richieste in tutte le chiamate API Experience Platform, come illustrato di seguito:

  • {ACCESS_TOKEN}: Il valore del token del portatore specificato dopo l'autenticazione.
  • {IMS_ORG}: Credenziali organizzazione IMS trovate nella vostra unica integrazione con Adobe Experience Platform.
  • {API_KEY}: Il valore chiave API specifico trovato nella vostra integrazione Adobe Experience Platform univoca.

Creare un motore

I motori possono essere creati eseguendo una richiesta POST all'endpoint /Engine. Il motore creato è configurato in base al modulo del file Recipe del pacchetto che deve essere incluso come parte della richiesta API.

Creare un motore con un URL Docker

Per creare un Motore con un file Recipe in pacchetto memorizzato in un contenitore Docker, dovete fornire l'URL Docker al file Recipe in pacchetto.

ATTENZIONE

Se utilizzi Python o R utilizza la richiesta indicata di seguito. Se utilizzate PySpark o Scala, usate l’esempio di richiesta PySpark/Scala, situato sotto l’esempio Python/R.

Formato API

POST /engines

Richiesta 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: {IMS_ORG}' \
    -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 Nome desiderato per il motore. La ricetta corrispondente a questo motore erediterà questo valore per essere visualizzato nell'interfaccia utente Data Science Workspace come nome della ricetta.
engine.description Una descrizione facoltativa per il motore. La ricetta corrispondente a questo motore erediterà questo valore da visualizzare nell'interfaccia utente Data Science Workspace come descrizione della ricetta. Non rimuovere questa proprietà, lasciare che questo valore sia una stringa vuota se si sceglie di non fornire una descrizione.
engine.type Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui è 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 Il tuo {DOCKER_URL} va qui. Un URL Docker completo ha la struttura seguente: your_docker_host.azurecr.io/docker_image_file:version
artifacts.default.image.name Un nome aggiuntivo per il file immagine Docker. Non rimuovere questa proprietà, lasciare che questo valore sia una stringa vuota se si sceglie di non fornire un nome di file immagine Docker aggiuntivo.
artifacts.default.image.executionType Il tipo di esecuzione di questo motore. Questo valore corrisponde alla lingua in cui è sviluppata l'immagine Docker. Quando viene fornito un URL Docker per creare un motore, executionType è Python, R, PySpark, Spark (Scala) o Tensorflow.

Richiesta 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: {IMS_ORG}' \
    -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 Nome desiderato per il motore. La ricetta corrispondente a questo motore erediterà questo valore per essere visualizzata nell'interfaccia utente come nome della ricetta.
description Una descrizione facoltativa per il motore. La ricetta corrispondente a questo motore erediterà il valore che verrà visualizzato nell'interfaccia utente come descrizione della ricetta. Questa proprietà è obbligatoria. Se non si desidera fornire una descrizione, impostare il relativo valore su una stringa vuota.
type Il 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 a un URL Docker.
artifacts.default.image.executionType Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui l'immagine Docker è basata su "Spark".

Richiesta scala

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: {IMS_ORG}' \
    -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 Nome desiderato per il motore. La ricetta corrispondente a questo motore erediterà questo valore per essere visualizzata nell'interfaccia utente come nome della ricetta.
description Una descrizione facoltativa per il motore. La ricetta corrispondente a questo motore erediterà il valore che verrà visualizzato nell'interfaccia utente come descrizione della ricetta. Questa proprietà è obbligatoria. Se non si desidera fornire una descrizione, impostare il relativo valore su una stringa vuota.
type Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui l'immagine Docker è basata su "Spark".
mlLibrary Campo richiesto per la creazione di motori per le ricette PySpark e Scala.
artifacts.default.image.location Posizione dell'immagine Docker collegata a un URL Docker.
artifacts.default.image.executionType Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui l'immagine Docker è basata su "Spark".

Risposta

Una risposta corretta restituisce un payload contenente i dettagli del motore appena creato, incluso il relativo identificatore univoco (id). La risposta di esempio seguente è relativa a un motore Python. I tasti 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 chiave id rappresenta l'identificatore univoco del motore ed è necessaria nell'esercitazione successiva per creare un'istanza MLI. Prima di continuare con i passaggi successivi, accertati che l’identificatore del motore sia salvato.

Passaggi successivi

Avete creato un Motore utilizzando l'API ed è stato ottenuto un identificatore univoco del Motore come parte del corpo della risposta. L'identificatore del motore può essere utilizzato nell'esercitazione successiva quando si apprende come creare, formare e valutare un modello utilizzando l'API.

In questa pagina

Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free
Adobe Summit Banner

A virtual event April 27-28.

Expand your skills and get inspired.

Register for free