Show Menu
SUJETS×

Importer une recette (API) assemblée

Ce didacticiel utilise l'API d'apprentissage automatique Sensei pour créer un moteur , également appelé Recette dans l'interface utilisateur.
Avant de commencer, il est important de noter qu’Adobe Experience Platform Data Science Workspace utilise des termes différents pour faire référence à des éléments similaires dans l’API et l’interface utilisateur. Les termes API sont utilisés dans ce didacticiel et le tableau suivant décrit les termes corrélés :
Terme de l’interface utilisateur
Terme de l’API
Recette
Modèle
Formation et évaluation
Service
Un moteur contient des algorithmes d’apprentissage automatique et une logique permettant de résoudre des problèmes spécifiques. Le diagramme ci-dessous présente une visualisation présentant le processus des API dans Data Science Workspace. Ce tutoriel se concentre sur la création d'un moteur, le cerveau d'un modèle d'apprentissage automatique.

Prise en main

Ce didacticiel nécessite un fichier de recette empaqueté sous la forme d'un artefact binaire ou d'une URL de Docker. Suivez les fichiers source du package dans un didacticiel Recette pour créer un fichier de recette empaqueté ou pour fournir le vôtre.
  • Artefact binaire (obsolète) : L'artefact binaire (ex. JAR, EGG) utilisé pour créer un moteur.
  • {DOCKER_URL} : Adresse URL d'une image Docker d'un service intelligent.
Ce didacticiel nécessite que vous ayez suivi le didacticiel Authentification et accès aux API des plateformes d’expérience Authentication to Adobe Experience Platform (Authentification vers la plate-forme Adobe) pour pouvoir invoquer les API de plateforme. Le didacticiel d’authentification fournit les valeurs de chacun des en-têtes requis dans tous les appels d’API de plateforme d’expérience, comme indiqué ci-dessous :
  • {ACCESS_TOKEN} : Votre valeur de jeton porteur spécifique fournie après l’authentification.
  • {IMS_ORG} : Vos informations d’identification d’organisation IMS se trouvent dans votre intégration unique à Adobe Experience Platform.
  • {API_KEY} : Votre valeur de clé d’API spécifique se trouve dans votre intégration unique d’Adobe Experience Platform.

Création d’un moteur

Selon le formulaire du fichier de recette emballé à inclure dans la demande d'API, un moteur est créé de l'une des deux manières suivantes :

Création d’un moteur avec une URL de dossier

Pour créer un moteur avec un fichier de recette empaqueté stocké dans un conteneur Docker, vous devez fournir l'URL Docker au fichier de recette empaqueté.
Si vous utilisez Python ou R, utilisez la requête ci-dessous. Si vous utilisez PySpark ou Scala, utilisez l’exemple de demande PySpark/Scala situé sous l’exemple Python/R.
Format d’API
POST /engines

Demande de 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"
                }
            }
        }
    }' 

Propriété
Description
engine.name
Nom souhaité pour le moteur. La Recette correspondant à ce moteur héritera de cette valeur à afficher dans l'interface utilisateur de l'espace de travail des sciences de données en tant que nom de la Recette.
engine.description
Description facultative du moteur. La Recette correspondant à ce moteur héritera de cette valeur à afficher dans l'interface utilisateur de l'espace de travail des sciences de données comme description de la Recette. Ne supprimez pas cette propriété, laissez cette valeur être une chaîne vide si vous choisissez de ne pas fournir de description.
engine.type
Type d'exécution du moteur. Cette valeur correspond à la langue dans laquelle l'image Docker est développée. Lorsqu'une URL de Docker est fournie pour créer un moteur, type est soit Python , R , PySpark , Spark (Scala), soit Tensorflow .
artifacts.default.image.location
Tu {DOCKER_URL} vas ici. Une URL Docker complète possède la structure suivante : your_docker_host.azurecr.io/docker_image_file:version
artifacts.default.image.name
Nom supplémentaire du fichier image Docker. Ne supprimez pas cette propriété, laissez cette valeur être une chaîne vide si vous choisissez de ne pas fournir un nom de fichier image Docker supplémentaire.
artifacts.default.image.executionType
Type d'exécution de ce moteur. Cette valeur correspond à la langue dans laquelle l'image Docker est développée. Lorsqu'une URL de Docker est fournie pour créer un moteur, executionType est soit Python , R , PySpark , Spark (Scala), soit Tensorflow .
Request 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"
            }
        }
    }
}'

Propriété
Description
name
Nom souhaité pour le moteur. La Recette correspondant à ce moteur héritera de cette valeur à afficher dans l'interface utilisateur comme nom de la Recette.
description
Description facultative du moteur. La Recette correspondant à ce moteur héritera de cette valeur à afficher dans l'interface utilisateur comme description de la Recette. Cette propriété est obligatoire. Si vous ne souhaitez pas fournir de description, définissez sa valeur sur une chaîne vide.
type
Type d'exécution du moteur. Cette valeur correspond à la langue dans laquelle l'image Docker est construite sur "PySpark".
mlLibrary
Champ obligatoire lors de la création de moteurs pour les recettes PySpark et Scala.
artifacts.default.image.location
Emplacement de l'image Docker à laquelle est liée une URL Docker.
artifacts.default.image.executionType
Type d'exécution du moteur. Cette valeur correspond à la langue dans laquelle l'image du Docker est construite sur "Spark".
Request 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"
            }
        }
    }
}'

Propriété
Description
name
Nom souhaité pour le moteur. La Recette correspondant à ce moteur héritera de cette valeur à afficher dans l'interface utilisateur comme nom de la Recette.
description
Description facultative du moteur. La Recette correspondant à ce moteur héritera de cette valeur à afficher dans l'interface utilisateur comme description de la Recette. Cette propriété est obligatoire. Si vous ne souhaitez pas fournir de description, définissez sa valeur sur une chaîne vide.
type
Type d'exécution du moteur. Cette valeur correspond à la langue dans laquelle l'image du Docker est construite sur "Spark".
mlLibrary
Champ obligatoire lors de la création de moteurs pour les recettes PySpark et Scala.
artifacts.default.image.location
Emplacement de l'image Docker à laquelle est liée une URL Docker.
artifacts.default.image.executionType
Type d'exécution du moteur. Cette valeur correspond à la langue dans laquelle l'image du Docker est construite sur "Spark".
Réponse
Une réponse réussie renvoie une charge utile contenant les détails du nouveau moteur, y compris son identifiant unique ( id ). L'exemple de réponse suivant est pour un moteur Python. Les executionType clés et type les clés changent en fonction de la POST fournie.
{
    "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"
            }
        }
    }
}

Une réponse réussie affiche une charge JSON contenant des informations sur le nouveau moteur créé. La id clé représente l'identifiant unique du moteur et est requise dans le didacticiel suivant pour créer une instance MLInstance. Assurez-vous que l'identifiant du moteur est enregistré avant de passer aux étapes suivantes.

Étapes suivantes

Vous avez créé un moteur à l'aide de l'API et un identifiant de moteur unique a été obtenu dans le corps de la réponse. Vous pouvez utiliser cet identifiant de moteur dans le didacticiel suivant lorsque vous apprendrez à créer, former et évaluer un modèle à l'aide de l'API .

Création d’un moteur avec un artefact binaire (obsolète)

Les artefacts binaires sont utilisés dans les anciennes recettes PySpark et Spark. Data Science Workspace prend désormais en charge les URL Docker pour toutes les recettes. Avec cette mise à jour, tous les moteurs sont désormais créés à l'aide d'une URL Docker. Consultez la section URL du Docker de ce document. Les artefacts binaires sont définis pour être supprimés dans une version ultérieure.
Pour créer un moteur à l'aide d'un artefact .jar .egg binaire ou assemblé localement, vous devez indiquer le chemin d'accès absolu au fichier d'artefact binaire dans votre système de fichiers local. Pensez à naviguer jusqu'au répertoire contenant l'artefact binaire dans un environnement Terminal, puis exécutez la commande pwd Unix pour obtenir le chemin d'accès absolu.
L’appel suivant crée un moteur avec un artefact binaire :
Format d’API
POST /engines

Requête
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'

Propriété
Description
engine.name
Nom souhaité pour le moteur. La Recette correspondant à ce moteur héritera de cette valeur à afficher dans l'interface utilisateur de l'espace de travail des sciences de données en tant que nom de la Recette.
engine.description
Description facultative du moteur. La Recette correspondant à ce moteur héritera de cette valeur à afficher dans l'interface utilisateur de l'espace de travail des sciences de données comme description de la Recette. Ne supprimez pas cette propriété, laissez cette valeur être une chaîne vide si vous choisissez de ne pas fournir de description.
engine.type
Type d'exécution du moteur. Cette valeur correspond à la langue dans laquelle l'artefact binaire a été développé. Lorsque vous téléchargez un artefact binaire pour créer un moteur, type est soit Spark soit PySpark .
defaultArtifact
Chemin d’accès absolu au fichier d’artefact binaire utilisé pour créer le moteur. Veillez à inclure @ avant le chemin d’accès au fichier.
Réponse
{
    "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"
            }
        }
    }
}

Une réponse réussie affiche une charge JSON contenant des informations sur le nouveau moteur créé. La id clé représente l'identifiant unique du moteur et est requise dans le didacticiel suivant pour créer une instance MLInstance. Assurez-vous que l'identifiant du moteur est enregistré avant de passer aux étapes Étapes suivantes suivantes.