Show Menu
ARGOMENTI×

Importare una ricetta in pacchetti (API)

Questa esercitazione utilizza l'API sensei-ml-api.yaml Sensei Machine Learning 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
Modello
Formazione e valutazione
Servizio
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 artefatto binario o URL Docker. Seguite i file sorgente del pacchetto in un'esercitazione sulla ricetta per creare un file Recipe in pacchetto o fornitene uno personalizzato.
  • Artefatto binario (obsoleto): L'artefatto binario (ad esempio JAR, EGG) utilizzato per creare un motore.
  • {DOCKER_URL} : Un indirizzo URL a un'immagine Docker di un servizio intelligente.
Questa esercitazione richiede che sia stata completata l'esercitazione Autenticazione e accesso alle API della piattaforma Experience Autenticazione in Adobe Experience Platform per effettuare correttamente le chiamate alle API della piattaforma. Completando l'esercitazione sull'autenticazione, vengono forniti i valori per ciascuna delle intestazioni richieste in tutte le chiamate API di 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 integrazione unica con Adobe Experience Platform.
  • {API_KEY} : Il valore chiave API specifico trovato nella vostra integrazione unica con Adobe Experience Platform.

Creare un motore

A seconda del modulo del file Recipe del pacchetto da includere come parte della richiesta API, viene creato un motore in uno dei due modi seguenti:

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.
Se utilizzi Python o R utilizza la richiesta riportata 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 di 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 di 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
La tua {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 ). L’esempio di seguito illustra la risposta relativa a un motore Python. Le chiavi executionType e type le chiavi 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 nell’esercitazione successiva per creare un’istanza MLI. Prima di continuare con i passaggi successivi, assicurarsi 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. Potete utilizzare questo identificatore del motore nell'esercitazione successiva per apprendere come creare, formare e valutare un modello utilizzando l'API .

Creare un motore con un artefatto binario (obsoleto)

I manufatti binari sono utilizzati nelle vecchie ricette PySpark e Spark. Data Science Workspace ora supporta gli URL Docker per tutte le ricette. Con questo aggiornamento, tutti i motori ora vengono creati utilizzando un URL Docker. Vedere la sezione URL Docker del documento. Gli artefatti binari sono impostati per essere rimossi in una release successiva.
Per creare un Motore utilizzando un artifact locale compresso .jar o .egg binario, è necessario fornire il percorso assoluto del file binario artifact nel file system locale. Prendere in considerazione la navigazione alla directory contenente l'artifact binario in un ambiente Terminal ed eseguire il comando pwd Unix per il percorso assoluto.
La seguente chiamata crea un motore con un artefatto binario:
Formato API
POST /engines

Richiesta
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}' \
    -F 'engine={
        "name": "Retail Sales Engine PySpark",
        "description": "A description for Retail Sales Engine, this Engines execution type is PySpark",
        "type": "PySpark"
    }' \
    -F 'defaultArtifact=@path/to/binary/artifact/file/pysparkretailapp-0.1.0-py3.7.egg'

Proprietà
Descrizione
engine.name
Nome desiderato per il motore. La ricetta corrispondente a questo Motore erediterà questo valore per essere visualizzato nell'interfaccia utente di 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 di 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 è stato sviluppato l'artefatto binario. Quando si carica un artefatto binario per creare un motore, type è Spark o PySpark .
defaultArtifact
Percorso assoluto del file binario dell'artifact utilizzato per creare il motore. Assicurarsi di includere @ prima del percorso del file.
Risposta
{
    "id": "00000000-1111-2222-3333-abcdefghijkl",
    "name": "Retail Sales Engine PySpark",
    "description": "A description for Retail Sales Engine, this Engines execution type is PySpark",
    "type": "PySpark",
    "created": "2019-01-01T00:00:00.000Z",
    "createdBy": {
        "userId": "your_user_id@AdobeID"
    },
    "updated": "2019-01-01T00:00:00.000Z",
    "artifacts": {
        "default": {
            "image": {
                "location": "wasbs://some-storage-location.net/some-path/your-uploaded-binary-artifact.egg",
                "name": "pysparkretailapp-0.1.0-py3.7.egg",
                "executionType": "PySpark",
                "packagingType": "egg"
            }
        }
    }
}

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 nell’esercitazione successiva per creare un’istanza MLI. Prima di continuare con i passaggi successivi, assicurarsi di salvare l’identificatore del motore.