Configuration de projet d'application ML

Après avoir créé l'infrastructure de l'exemple d'application d'apprentissage automatique, vous pouvez utiliser l'exemple de projet d'application d'apprentissage automatique comme modèle pour commencer à créer, à déployer et à utiliser vos propres applications d'apprentissage automatique.

Ce projet inclut les meilleures pratiques de développement et fournit l'interface de ligne de commande mlapp, un outil qui simplifie le développement d'applications ML. Pour créer une application d'apprentissage automatique, vous devez utiliser l'interface de ligne de commande mlapp, Terraform, le kit SDK OCI ou l'interface de ligne de commande OCI. Vous ne pouvez pas créer d'application d'apprentissage automatique dans la console, mais vous pouvez y visualiser les applications d'apprentissage automatique et leurs détails.

En démarrant votre projet avec l'exemple de projet d'application ML, vous pouvez faire progresser l'implémentation de votre application ML vers la production. Le projet s'appuie sur l'expérience acquise en aidant les entreprises à déployer avec succès leurs applications en production.

L'exemple de projet d'application ML est disponible ici : sample-project.

Clonez ce projet pour l'utiliser comme base de l'implémentation de votre application d'apprentissage automatique.

Le projet inclut de la documentation dans les fichiers README.md, où vous pouvez trouver des informations détaillées sur le projet et ses composants.

Structure du projet

Le projet se compose de deux parties principales :

  • Le dossier Infrastructure automatise la création des ressources dont dépend l'exemple d'application ML.
  • Le dossier Application ML contient l'exemple d'application ML, notamment sa configuration, son implémentation et l'interface de ligne de commande mlapp.

Configuration des ressources prérequises

Avant de commencer à créer et à déployer l'application d'apprentissage automatique, vous devez créer les ressources nécessaires dont dépend l'exemple d'application d'apprentissage automatique (par exemple, journaux, groupes de journaux, projet Data Science et sous-réseau). Ce processus peut être automatisé en procédant comme suit :

  1. Préparez le dossier d'environnement.
    Vous pouvez utiliser le dossier d'environnement dev par défaut (environments/dev) ou l'utiliser comme modèle pour créer l'environnement personnalisé. Pour créer l'environnement personnalisé :
    1. Faites une copie du dossier de l'environnement de développement (environments/dev).
    2. Renommez le dossier copié pour qu'il corresponde au nom de l'environnement.
  2. Configurez l'environnement.
    1. Accédez au dossier d'environnement (par exemple, environments/dev).
    2. Modifiez le fichier input_variables.tfvars pour configurer les paramètres d'environnement.
  3. Exécutez Terraform pour créer des ressources.
    1. Initialisez Terraform dans le dossier d'environnement :
      terraform init
    2. Appliquez la configuration pour créer les ressources :
      terraform apply -var- file input_variables.tfvars
    3. Si nécessaire, détruisez les ressources créées :
      terraform destroy -var- file input_variables.tfvars
    Remarque

    Ne réutilisez pas les ressources dans différents environnements, car vous risquez de rompre l'isolement de l'environnement. Par exemple, le partage d'une ressource entre les environnements de développement et d'assurance qualité peut entraîner des problèmes de développement qui peuvent rendre l'environnement d'assurance qualité inutilisable, ce qui retarde le déploiement en production.

Configurer l'environnement d'application ML

  1. Préparez le dossier d'environnement.
    Vous pouvez utiliser le dossier d'environnement dev par défaut (environments/dev) ou l'utiliser comme modèle pour créer l'environnement personnalisé. Pour créer l'environnement personnalisé :
    1. Faites une copie du dossier de l'environnement de développement (environments/dev).
    2. Renommez le dossier copié pour qu'il corresponde au nom de l'environnement.
  2. Configurez l'environnement.
    Dans le dossier de configuration de l'environnement :
    1. Modifiez le fichier env-config.yaml.
    2. Modifiez le fichier testdata-instance.json (l'espace de noms Object Storage, après le signe arobase ('@') doit être mis à jour pour correspondre à la location).
  3. Définir des références de ressource.
    1. Modifiez le fichier arguments.yaml dans le dossier de configuration d'environnement pour définir les références aux ressources dont dépend l'application.
    2. Dans le dossier infrastructure/environments/<your environment>, exécutez la commande suivante :
      terraform output
    3. Copiez la sortie (à l'exception de la dernière ligne) et collez-la dans arguments.yaml, en remplaçant = par :.

Configuration et initialisation de la CLI mlapp

  1. Configurez le projet d'application ML.
    1. Accédez au dossier de l'application.
    2. Modifiez le fichier application-def.yaml pour définir le nom et la description de l'application d'apprentissage automatique et de son implémentation.
    3. Créez default_env pour définir l'environnement comme environnement par défaut (cela supprime la nécessité de l'indiquer sur la ligne de commande lors de l'utilisation de l'interface de ligne de commande mlapp). Vous pouvez copier ml-application/default_env.example vers ml-application/default_env et y stocker le nom de l'environnement.
  2. Initialisez l'environnement.
    Dans le dossier ml-application, exécutez :
    source ./mlapp init

    Cette commande ajoute le script mlapp à la variable PATH, ce qui vous permet d'exécuter l'interface de ligne de commande avec mlapp au lieu de ./mlapp.

Création et déploiement de l'application

Avec tout ce qui est configuré, vous pouvez maintenant commencer à créer et à déployer l'application.

Remarque

Pour en savoir plus sur les commandes de l'interface de ligne de commande mlapp, exécutez les commandes suivantes :
mlapp -h
  1. Créez l'application.
    mlapp build
  2. Déployez l'application.
    mlapp deploy
  3. Instanciez l'application.
    mlapp instantiate
  4. déclencher une exécution du pipeline de formation.
    mlapp trigger
  5. Testez le service prédictif.
    mlapp predict
Après avoir exécuté une commande d'interface de ligne de commande mlapp, vérifiez les résultats en accédant aux applications d'apprentissage automatique sous la console OCI / Analytics & AI / Machine Learning.

Utiliser des balises définies et de forme libre

L'exemple d'application montre comment utiliser des balises définies et à format libre pour garantir l'isolement des locataires et permettre le suivi des ressources d'exécution, en particulier des modèles.

Les balises définies sont utilisées pour associer des identificateurs propres au locataire à des ressources telles que des déploiements de modèle, des buckets de stockage et des modèles.
Ajouter une balise définie à un bucket
resource "oci_objectstorage_bucket" "data_storage_bucket" {
  compartment_id = var.app_impl.compartment_id
  namespace      = data.oci_objectstorage_namespace.this.namespace
  name           = "ml-app-fetal-risk-bucket-${var.app_instance.id}"
  access_type    = "NoPublicAccess"
 
  # To allow Instance (tenant) isolation
  defined_tags   = {"MlApplications.MlApplicationInstanceId" = var.app_instance.id}
}
Pour les ressources d'exécution créées dynamiquement à partir de code (comme les modèles), ajoutez une balise définie et une balise à format libre. La balise à format libre lie la ressource à l'instance, ce qui permet la suppression automatique lorsque l'instance est enlevée.
Ajouter des balises définies et à format libre à un modèle
model_id = xgb_model.save(display_name='fetal_health_model',
                          # needed for tenant isolation
                          defined_tags={"MlApplications": {"MlApplicationInstanceId": instance_id}},
                          # needed for ML App to be able to track created model
                          freeform_tags={"MlApplicationInstance": instance_id})