Show Menu
ARGOMENTI×

Motori

I motori sono le basi per i modelli di apprendimento automatico in Data Science Workspace. Contengono algoritmi di machine learning che risolvono problemi specifici, oleodotti per eseguire la progettazione di funzionalità o entrambi.

Cerca il tuo registro di Docker

Se non disponete di un URL Docker, visitate i file sorgente del pacchetto in un'esercitazione di ricetta per una dettagliata procedura per la creazione di un URL host Docker.
Le credenziali del Registro di sistema del Docker sono necessarie per caricare un file Recipe incluso l'URL host Docker, il nome utente e la password. Potete cercare queste informazioni eseguendo la seguente richiesta GET:
Formato API
GET /engines/dockerRegistry

Richiesta
curl -X GET https://platform.adobe.io/data/sensei/engines/dockerRegistry \
    -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}'

Risposta
Una risposta corretta restituisce un payload contenente i dettagli del Registro di sistema del Docker, inclusi l’URL ( host ), il nome utente ( username ) e la password ( password ) del Docker.
La password del Docker cambia ogni volta che {ACCESS_TOKEN} viene aggiornato.
{
    "host": "docker_host.azurecr.io",
    "username": "00000000-0000-0000-0000-000000000000",
    "password": "password"
}

Creare un motore utilizzando gli URL Docker

È possibile creare un motore eseguendo una richiesta POST fornendo i relativi metadati e un URL Docker che fa riferimento a un'immagine Docker in più moduli.
Formato API
POST /engines

Richiesta Python/R
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": "A name for this Engine",
        "description": "A description for this Engine",
        "type": "Python",
        "algorithm": "Classification",
        "artifacts": {
            "default": {
                "image": {
                    "location": "{DOCKER_URL}",
                    "name": "An additional name for the Docker image",
                    "executionType": "Python"
                }
            }
        }
    }' 

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 è basata l'immagine Docker e può essere "Python", "R" o "Tensorflow".
algorithm
Una stringa che specifica il tipo di algoritmo di machine learning. I tipi di algoritmo supportati includono "Classification", "Regression" o "Custom".
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 è basata l'immagine Docker e può essere "Python", "R" o "Tensorflow".
Richiesta PySpark/Scala
Quando si fa una richiesta per le ricette PySpark, il executionType ed type è "PySpark". Quando si fa una richiesta per ricette Scala, il executionType ed type è "Spark". Nell'esempio di ricetta Scala riportato di seguito viene utilizzato Spark:
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 è basata l'immagine Docker. Il valore può essere impostato su Spark o PySpark.
mlLibrary
Campo richiesto per la creazione di motori per le ricette PySpark e Scala. Questo campo deve essere impostato su databricks-spark .
artifacts.default.image.location
Posizione dell'immagine Docker. È supportato solo Azure ACR o Public (non autenticato) Dockerhub.
artifacts.default.image.executionType
Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui è basata l'immagine Docker. Può essere "Spark" o "PySpark".
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. Tutte le risposte del motore seguono questo formato:
{
    "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"
            }
        }
    }
}

Creare un motore di pipeline delle funzioni utilizzando gli URL Docker

Potete creare un motore di pipeline delle funzioni eseguendo una richiesta POST fornendo i relativi metadati e un URL Docker che fa riferimento a un'immagine Docker.
Formato API
POST /engines

Richiesta
curl -X POST \
 https://platform.adobe.io/data/sensei/engines \
    -H 'Authorization: Bearer ' \
    -H 'x-gw-ims-org-id: 20655D0F5B9875B20A495E23@AdobeOrg' \
    -H 'Content-Type: application/vnd.adobe.platform.sensei+json;profile=engine.v1.json' \
    -H 'x-api-key: acp_foundation_machineLearning' \
    -H 'Content-Type: text/plain' \
    -F '{
    "type": "PySpark",
    "algorithm":"fp",
    "name": "Feature_Pipeline_Engine",
    "description": "Feature_Pipeline_Engine",
    "mlLibrary": "databricks-spark",
    "artifacts": {
       "default": {
           "image": {
                "location": "v7d1cs2mimnlttw.azurecr.io/ml-featurepipeline-pyspark:0.2.1",
                "name": "datatransformation",
                "executionType": "PySpark",
                "packagingType": "docker"
            },
           "defaultMLInstanceConfigs": [
           ]
       }
   }
}'

Proprietà
Descrizione
type
Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui è basata l'immagine Docker. Il valore può essere impostato su Spark o PySpark.
algorithm
L'algoritmo utilizzato, imposta questo valore su fp (pipeline delle caratteristiche).
name
Il nome desiderato per il motore della pipeline delle feature. 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.
mlLibrary
Campo richiesto per la creazione di motori per le ricette PySpark e Scala. Questo campo deve essere impostato su databricks-spark .
artifacts.default.image.location
Posizione dell'immagine Docker. È supportato solo Azure ACR o Public (non autenticato) Dockerhub.
artifacts.default.image.executionType
Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui è basata l'immagine Docker. Può essere "Spark" o "PySpark".
artifacts.default.image.packagingType
Tipo di imballaggio del motore. Questo valore deve essere impostato su docker .
Risposta
Una risposta corretta restituisce un payload contenente i dettagli del motore di pipeline delle funzionalità appena creato, incluso il relativo identificatore univoco ( id ). La risposta di esempio seguente è per un motore di pipeline delle funzionalità PySpark.
{
    "id": "88236891-4309-4fd9-acd0-3de7827cecd1",
    "name": "Feature_Pipeline_Engine",
    "description": "Feature_Pipeline_Engine",
    "type": "PySpark",
    "algorithm": "fp",
    "mlLibrary": "databricks-spark",
    "created": "2020-04-24T20:46:58.382Z",
    "updated": "2020-04-24T20:46:58.382Z",
    "deprecated": false,
    "artifacts": {
        "default": {
            "image": {
                "location": "v7d1cs3mimnlttw.azurecr.io/ml-featurepipeline-pyspark:0.2.1",
                "name": "datatransformation",
                "executionType": "PySpark",
                "packagingType": "docker"
            }
        }
    }
}

Recupero di un elenco di motori

È possibile recuperare un elenco di motori eseguendo una singola richiesta GET. Per facilitare il filtraggio dei risultati, potete specificare i parametri di query nel percorso di richiesta. Per un elenco delle query disponibili, consultate la sezione appendice sui parametri delle query per il recupero delle risorse.
Formato API
GET /engines
GET /engines?parameter_1=value_1
GET /engines?parameter_1=value_1&parameter_2=value_2

Richiesta
curl -X GET \
    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}'

Risposta
Una risposta corretta restituisce un elenco di motori e relativi dettagli.
{
    "children": [
        {
            "id": "{ENGINE_ID}",
            "name": "A name for this Engine",
            "description": "A description for this Engine",
            "type": "PySpark",
            "algorithm": "Classification",
            "created": "2019-01-01T00:00:00.000Z",
            "createdBy": {
                "userId": "Jane_Doe@AdobeID"
            },
            "updated": "2019-01-01T00:00:00.000Z"
        },
        {
            "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"
        },
        {
            "id": "{ENGINE_ID}",
            "name": "Feature Pipeline Engine",
            "description": "A feature pipeline Engine",
            "type": "PySpark",
            "algorithm":"fp",
            "created": "2019-01-01T00:00:00.000Z",
            "createdBy": {
                "userId": "Jane_Doe@AdobeID"
            },
            "updated": "2019-01-01T00:00:00.000Z"
        }
    ],
    "_page": {
        "property": "deleted==false",
        "totalCount": 100,
        "count": 3
    }
}

Recuperare un motore specifico

Potete recuperare i dettagli di un Motore specifico eseguendo una richiesta GET che include l'ID del Motore desiderato nel percorso della richiesta.
Formato API
GET /engines/{ENGINE_ID}

Parametro
Descrizione
{ENGINE_ID}
ID di un motore esistente.
Richiesta
curl -X GET \
    https://platform.adobe.io/data/sensei/engines/{ENGINE_ID} \
    -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}'

Risposta
Una risposta corretta restituisce un payload contenente i dettagli del motore desiderato.
{
    "id": "{ENGINE_ID}",
    "name": "A name for this Engine",
    "description": "A description for this Engine",
    "type": "PySpark",
    "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": "wasbs://artifact-location.blob.core.windows.net/{ENGINE_ID}/default.egg",
                "name": "file.egg",
                "executionType": "PySpark",
                "packagingType": "egg"
            }
        }
    }
}

Aggiornamento di un motore

Potete modificare e aggiornare un motore esistente sovrascrivendone le proprietà tramite una richiesta PUT che include l'ID del motore di destinazione nel percorso della richiesta e fornendo un payload JSON contenente le proprietà aggiornate.
Per garantire il successo di questa richiesta PUT, si consiglia prima di eseguire una richiesta GET per recuperare il Motore per ID . Quindi, modificate e aggiornate l'oggetto JSON restituito e applicate l'intero oggetto JSON modificato come payload per la richiesta PUT.
La seguente chiamata API di esempio aggiornerà il nome e la descrizione di un motore, pur avendo inizialmente queste proprietà:
{
    "name": "A name for this Engine",
    "description": "A description for this Engine",
    "type": "Python",
    "algorithm": "Classification",
    "artifacts": {
        "default": {
            "image": {
                "executionType": "Python",
                "packagingType": "docker"
            }
        }
    }
}

Formato API
PUT /engines/{ENGINE_ID}

Parametro
Descrizione
{ENGINE_ID}
ID di un motore esistente.
Richiesta
curl -X PUT \
    https://platform.adobe.io/data/sensei/engines/{ENGINE_ID} \
    -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: application/vnd.adobe.platform.sensei+json;profile=engine.v1.json' \
    -d '{
        "name": "An updated name for this Engine",
        "description": "An updated description",
        "type": "Python",
        "algorithm": "Classification",
        "artifacts": {
            "default": {
                "image": {
                    "executionType": "Python",
                    "packagingType": "docker"
                }
            }
        }
    }'

Risposta
Una risposta corretta restituisce un payload contenente i dettagli aggiornati del motore.
{
    "id": "{ENGINE_ID}",
    "name": "An updated name for this Engine",
    "description": "An updated description",
    "type": "Python",
    "algorithm": "Classification",
    "created": "2019-01-01T00:00:00.000Z",
    "createdBy": {
        "displayName": "Jane Doe",
        "userId": "Jane_Doe@AdobeID"
    },
    "updated": "2019-01-02T00:00:00.000Z",
    "artifacts": {
        "default": {
            "image": {
                "executionType": "Python",
                "packagingType": "docker"
            }
        }
    }
}

Eliminare un motore

Potete eliminare un motore eseguendo una richiesta DELETE mentre specificate l'ID del motore di destinazione nel percorso della richiesta. L'eliminazione di un motore comporta l'eliminazione a cascata di tutte le istanze MLI che fanno riferimento a tale motore, compresi gli esperimenti e gli esperimenti eseguiti appartenenti a tali istanze MLI.
Formato API
DELETE /engines/{ENGINE_ID}

Parametro
Descrizione
{ENGINE_ID}
ID di un motore esistente.
Richiesta
curl -X DELETE \
    https://platform.adobe.io/data/sensei/engines/{ENGINE_ID} \
    -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}'

Risposta
{
    "title": "Success",
    "status": 200,
    "detail": "Engine deletion was successful"
}

Richieste obsolete

Gli artefatti binari non sono più supportati e sono impostati per essere rimossi in una data successiva. Le nuove ricette PySpark e Scala dovrebbero ora seguire gli esempi di immagini Creare un motore utilizzando gli URL Docker docker per creare un motore.

Creare un motore utilizzando artefatti binari - obsoleti

È possibile creare un Motore utilizzando artefatti locali .jar o .egg binari eseguendo una richiesta POST fornendo i metadati e il percorso dell'artifact nei moduli multiparte.
Formato API
POST /engines

Richiesta
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": "A name for this Engine",
        "description": "A description for this Engine",
        "algorithm": "Classification",
        "type": "PySpark",
    }' \
    -F 'defaultArtifact=@path/to/binary/artifact/file.egg'

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.
algorithm
Una stringa che specifica il tipo di algoritmo di machine learning. I tipi di algoritmo supportati includono "Classification", "Regression" o "Custom".
type
Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui l'artefatto binario è basato e può essere "PySpark" o "Spark".
Risposta
Una risposta corretta restituisce un payload contenente i dettagli del motore appena creato, incluso il relativo identificatore univoco ( id ).
{
    "id": "{ENGINE_ID}",
    "name": "A name for this Engine",
    "description": "A description for this Engine",
    "type": "PySpark",
    "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": "wasbs://artifact-location.blob.core.windows.net/Engine_ID/default.egg",
                "name": "file.egg",
                "executionType": "PySpark",
                "packagingType": "egg"
            }
        }
    }
}

Creare un motore di pipeline delle funzionalità utilizzando artefatti binari - obsoleti

Gli artefatti binari non sono più supportati e sono impostati per essere rimossi in una data successiva.
È possibile creare un motore di pipeline delle funzioni utilizzando artefatti locali .jar o .egg binari eseguendo una richiesta POST fornendo i relativi metadati e i percorsi dell'artifact in moduli multiparte. Un motore PySpark o Spark Engine può specificare risorse di calcolo, ad esempio il numero di core o la quantità di memoria. Per ulteriori informazioni, consulta la sezione appendice sulle configurazioni delle risorse PySpark e Spark.
Formato API
POST /engines

Richiesta
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": "Feature Pipeline Engine",
        "description": "A feature pipeline Engine",
        "algorithm":"fp",
        "type": "PySpark"
    }' \
    -F 'featurePipelineOverrideArtifact=@path/to/binary/artifact/feature_pipeline.egg' \
    -F 'defaultArtifact=@path/to/binary/artifact/feature_pipeline.egg'

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.
algorithm
Una stringa che specifica il tipo di algoritmo di machine learning. Impostate questo valore come "fp" per specificare che la creazione deve essere un motore pipeline di feature.
type
Il tipo di esecuzione del motore. Questo valore corrisponde alla lingua in cui sono generati gli artefatti binari e può essere "PySpark" o "Spark".
Risposta
Una risposta corretta restituisce un payload contenente i dettagli del motore appena creato, incluso il relativo identificatore univoco ( id ).
{
    "id": "{ENGINE_ID}",
    "name": "Feature Pipeline Engine",
    "description": "A feature pipeline Engine",
    "type": "PySpark",
    "algorithm": "fp",
    "created": "2019-01-01T00:00:00.000Z",
    "createdBy": {
        "userId": "Jane_Doe@AdobeID"
    },
    "updated": "2019-01-01T00:00:00.000Z",
    "artifacts": {
        "default": {
            "image": {
                "location": "wasbs://artifact-location.blob.core.windows.net/Engine_ID/default.egg",
                "name": "file.egg",
                "executionType": "PySpark",
                "packagingType": "egg"
            }
        }
    }
}