Ce didacticiel utilise Sensei Machine Learning API pour créer un moteur, également appelé Recette dans l’interface utilisateur.
Avant de commencer, il est important de noter que 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 de l’API sont utilisés dans ce tutoriel et le tableau suivant décrit les termes corrélés :
Terme de l’interface utilisateur | Terme de l’API |
---|---|
Recette | Moteur |
Modèle | MLInstance |
Formation et évaluation | Expérience |
Service | MLService |
Un moteur contient des algorithmes d’apprentissage automatique et une logique pour résoudre des problèmes spécifiques. Le diagramme ci-dessous fournit une visualisation présentant le flux de travail de l'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.
Ce didacticiel nécessite un fichier de recette empaqueté sous la forme d'une URL Docker. Suivez le tutoriel Former une recette empaquetée à partir de fichiers source pour savoir comment créer un fichier de recette empaquetée ou fournir votre fichier.
{DOCKER_URL}
: adresse URL vers une image Docker d’un service intelligent.Pour suivre ce tutoriel, vous devez avoir terminé le tutoriel Authentification à Adobe Experience afin d’effectuer avec succès des appels vers les API Platform. Platform Le tutoriel d’authentification fournit les valeurs de chacun des en-têtes requis dans tous les appels d’API Experience Platform, 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, qui se trouvent dans votre intégration unique d’Adobe Experience Platform.{API_KEY}
: valeur de clé API spécifique, qui se trouve dans votre intégration unique d’Adobe Experience Platform.Vous pouvez créer des moteurs en adressant une requête de POST au point de terminaison /engine. Le moteur créé est configuré en fonction du formulaire du fichier de recette empaqueté qui doit être inclus dans la demande d'API.
Pour créer un moteur avec un fichier de recette empaquetée stocké dans un conteneur Docker, vous devez fournir l’URL Docker au fichier de recette empaquetée.
Si vous utilisez Python ou R, utilisez la requête ci-dessous. Si vous utilisez PySpark ou Scala, utilisez l’exemple de requête 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 Data Science Workspace 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 Data Science Workspace comme description de la Recette. Ne supprimez pas cette propriété, laissez une chaîne vide pour cette valeur 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 a été développée. Lorsqu'une URL Docker est fournie pour créer un moteur, type est soit Python , R , PySpark , Spark (Scala), soit Tensorflow . |
artifacts.default.image.location |
Votre {DOCKER_URL} va 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 une chaîne vide pour cette valeur si vous choisissez de ne pas fournir de 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 a été développée. Lorsqu'une URL 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 afin d’être affichée dans l’interface utilisateur en tant que nom de la recette. |
description |
Description facultative du moteur. La recette correspondant à ce moteur héritera de cette valeur afin d’être affichée dans l’interface utilisateur en tant que description de la recette. Cette propriété est obligatoire. Si vous ne souhaitez pas fournir de description, définissez sa valeur comme étant 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 afin d’être affichée dans l’interface utilisateur en tant que nom de la recette. |
description |
Description facultative du moteur. La recette correspondant à ce moteur héritera de cette valeur afin d’être affichée dans l’interface utilisateur en tant que description de la recette. Cette propriété est obligatoire. Si vous ne souhaitez pas fournir de description, définissez sa valeur comme étant 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 un payload 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 clés executionType
et type
changent en fonction du POST fourni.
{
"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 un payload JSON contenant des informations sur le moteur créé. La clé id
représente l’identifiant de moteur unique et est requise dans le tutoriel suivant pour créer une instance MLInstance. Vérifiez que l’identifiant du moteur est enregistré avant de passer aux étapes suivantes.
Vous avez créé un moteur à l’aide de l’API et avez obtenu un identifiant de moteur unique dans le corps de la réponse. Vous pouvez utiliser cet identifiant de moteur dans le tutoriel suivant où vous apprendrez à créer, former et évaluer un modèle à l’aide de l’API.