Définir une problématique liée au ML

Après avoir vérifié que votre problème est mieux résolu à l'aide d'une approche de ML prédictif ou d'IA générative, vous êtes prêt à le formuler en termes de ML. Pour formuler un problème en termes de ML, vous devez effectuer les tâches suivantes :

  • Définissez le résultat idéal et l'objectif du modèle.
  • Identifiez la sortie du modèle.
  • Définissez des métriques de réussite.

Définir le résultat idéal et l'objectif du modèle

Indépendamment du modèle de ML, quel est le résultat idéal ? En d'autres termes, quelle est la tâche exacte que vous souhaitez que votre produit ou fonctionnalité exécute ? Il s'agit de la même instruction que celle que vous avez définie précédemment dans la section Énoncez l'objectif.

Associez l'objectif du modèle au résultat idéal en définissant explicitement ce que vous attendez du modèle. Le tableau suivant indique les résultats idéaux et l'objectif du modèle pour des applications hypothétiques :

Application Résultat idéal Objectif du modèle
Application Météo Calcule les précipitations par incréments de six heures pour une région géographique. Prévoir les quantités de précipitations sur six heures pour des régions géographiques spécifiques.
Application de mode Générez différents modèles de t-shirts. Générer trois variantes d'un modèle de chemise à partir de texte et d'une image, où le texte indique le style et la couleur, et l'image le type de chemise (t-shirt, chemise à boutons, polo).
Application vidéo recommander des vidéos utiles ; Prédire si un utilisateur va cliquer sur une vidéo
Application de messagerie Détecter le spam. Prédire si un e-mail est du spam ou non.
Application financière résumer des informations financières provenant de plusieurs sources d'actualités ; Génère des résumés de 50 mots sur les principales tendances financières des sept derniers jours.
Cartes Calculez la durée du trajet. Prédire le temps de trajet entre deux points
Application bancaire Identifier les transactions frauduleuses Prédire si une transaction a été effectuée par le titulaire de la carte.
Application de restauration Identifier le type de cuisine d'un restaurant à partir de son menu Prédire le type de restaurant.
Application d'e-commerce Générez des réponses du service client concernant les produits de l'entreprise. Générez des réponses à l'aide de l'analyse des sentiments et de la base de connaissances de l'organisation.

Identifier le résultat dont vous avez besoin

Le choix du type de modèle dépend du contexte et des contraintes spécifiques de votre problème. La sortie du modèle doit accomplir la tâche définie dans le résultat idéal. La première question à laquelle vous devez répondre est donc la suivante : "De quel type de résultat ai-je besoin pour résoudre mon problème ?"

Si vous devez classer quelque chose ou faire une prédiction numérique, vous utiliserez probablement le ML prédictif. Si vous devez générer du contenu ou produire des résultats liés à la compréhension du langage naturel, vous utiliserez probablement l'IA générative.

Les tableaux suivants listent les sorties de l'IA générative et du ML prédictif :

Tableau 1. ML prédictif
Système de ML Exemple de résultat :
Classification Binaire Classe un e-mail dans la catégorie spam ou non-spam.
Multiclass à étiquette unique Classifie un animal dans une image.
Multiclass multi-label Classer tous les animaux d'une image.
Numérique Régression unidimensionnelle Prédisez le nombre de vues qu'une vidéo enregistrera.
Régression multidimensionnelle Prédisez la tension artérielle, la fréquence cardiaque et le taux de cholestérol d'une personne.
Tableau 2. IA générative
Type de modèle Exemple de résultat :
Texte
Résumer un article

répondre aux avis clients ;

Traduire des documents de l'anglais vers le mandarin.

Rédige des descriptions de produits.

analyser des documents juridiques ;
Image
Produire des images marketing

Appliquer des effets visuels aux photos

Générez des variantes de conception de produits.
Audio
Générer un dialogue avec un accent spécifique

Génère une courte composition musicale dans un genre spécifique, comme le jazz.
Vidéo
Générez des vidéos d'apparence réaliste.

analyser des séquences vidéo et appliquer des effets visuels ;
Multimodal Produire plusieurs types de résultats, comme une vidéo avec des sous-titres.

Classification

Un modèle de classification prédit la catégorie à laquelle appartiennent les données d'entrée (par exemple, si une entrée doit être classée comme A, B ou C).

Un modèle de classification effectue des prédictions.

Figure 1. Modèle de classification effectuant des prédictions.

En fonction de la prédiction du modèle, votre application peut prendre une décision. Par exemple, si la prédiction est la catégorie A, effectuez l'action X ; si la prédiction est la catégorie B, effectuez l'action Y ; si la prédiction est la catégorie C, effectuez l'action Z. Dans certains cas, la prédiction est la sortie de l'application.

Le code produit utilise la sortie du modèle pour prendre une décision.

Figure 2. La sortie d'un modèle de classification est utilisée dans le code produit pour prendre une décision.

Régression

Un modèle de régression prédit une valeur numérique.

Un modèle de régression effectue une prédiction.

Figure 3. Modèle de régression effectuant une prédiction numérique.

En fonction de la prédiction du modèle, votre application peut prendre une décision. Par exemple, si la prédiction se situe dans la plage A, effectuez l'action X ; si elle se situe dans la plage B, effectuez l'action Y ; si elle se situe dans la plage C, effectuez l'action Z. Dans certains cas, la prédiction est la sortie de l'application.

Le code produit utilise la sortie du modèle pour prendre une décision.

Figure 4. Sortie d'un modèle de régression utilisée dans le code produit pour prendre une décision.

Imaginez le scénario suivant :

Vous souhaitez mettre en cache des vidéos en fonction de leur popularité prévue. Autrement dit, si votre modèle prédit qu'une vidéo sera populaire, vous devez la proposer rapidement aux utilisateurs. Pour ce faire, vous utiliserez le cache le plus efficace et le plus coûteux. Pour les autres vidéos, vous utiliserez un autre cache. Vos critères de mise en cache sont les suivants :

  • Si une vidéo est censée générer 50 vues ou plus, vous utiliserez le cache coûteux.
  • Si une vidéo est censée générer entre 30 et 50 vues, vous utiliserez le cache bon marché.
  • Si la vidéo est censée générer moins de 30 vues, vous ne la mettez pas en cache.

Vous pensez qu'un modèle de régression est la bonne approche, car vous allez prédire une valeur numérique (le nombre de vues). Toutefois, lors de l'entraînement du modèle de régression, vous vous rendez compte qu'il produit la même perte pour une prédiction de 28 et 32 vues pour les vidéos qui en comptent 30. En d'autres termes, même si le comportement de votre application sera très différent si la prédiction est de 28 contre 32, le modèle considère que les deux prédictions sont aussi bonnes l'une que l'autre.

Un modèle en cours d'entraînement et sa perte évaluée.

Figure 5. Entraînement d'un modèle de régression.

Les modèles de régression ne connaissent pas les seuils définis pour les produits. Par conséquent, si le comportement de votre application change de manière significative en raison de petites différences dans les prédictions d'un modèle de régression, vous devriez envisager d'implémenter un modèle de classification à la place.

Dans ce scénario, un modèle de classification produirait le bon comportement, car il générerait une perte plus élevée pour une prédiction de 28 que pour une prédiction de 32. Dans un sens, les modèles de classification produisent des seuils par défaut.

Ce scénario met en évidence deux points importants :

  • Prédire la décision : Dans la mesure du possible, prédisez la décision que prendra votre application. Dans l'exemple vidéo, un modèle de classification prédirait la décision si les catégories dans lesquelles il classait les vidéos étaient "pas de cache", "cache bon marché" et "cache coûteux". Si vous masquez le comportement de votre application au modèle, cela peut entraîner un comportement incorrect de votre application.

  • Comprenez les contraintes du problème. Si votre application effectue différentes actions en fonction de différents seuils, déterminez si ces seuils sont fixes ou dynamiques.

    • Seuils dynamiques : si les seuils sont dynamiques, utilisez un modèle de régression et définissez les limites des seuils dans le code de votre application. Cela vous permet de mettre à jour facilement les seuils tout en permettant au modèle de faire des prédictions raisonnables.
    • Seuils fixes : si les seuils sont fixes, utilisez un modèle de classification et libellez vos ensembles de données en fonction des limites de seuil.

    En général, la plupart des provisionnements de cache sont dynamiques et les seuils changent au fil du temps. Comme il s'agit d'un problème de mise en cache, un modèle de régression est le meilleur choix. Toutefois, pour de nombreux problèmes, les seuils seront fixes, ce qui fera d'un modèle de classification la meilleure solution.

Prenons un autre exemple. Si vous créez une application météo dont l'objectif idéal est d'indiquer aux utilisateurs la quantité de pluie prévue dans les six prochaines heures, vous pouvez utiliser un modèle de régression qui prédit le libellé precipitation_amount..

Résultat idéal Libellé idéal
Indique aux utilisateurs la quantité de pluie prévue dans leur région au cours des six prochaines heures. precipitation_amount

Dans l'exemple de l'application météo, le libellé s'adresse directement au résultat idéal. Toutefois, dans certains cas, il n'existe pas de relation un-à-un évidente entre le résultat idéal et l'étiquette. Par exemple, dans l'application vidéo, l'objectif idéal est de recommander des vidéos utiles. Toutefois, l'ensemble de données ne contient pas de libellé appelé useful_to_user..

Résultat idéal Libellé idéal
Recommander des vidéos utiles ?

Vous devez donc trouver un libellé de substitution.

Libellés de substitution

Les libellés de substitution remplacent les libellés qui ne figurent pas dans l'ensemble de données. Les libellés de substitution sont nécessaires lorsque vous ne pouvez pas mesurer directement ce que vous souhaitez prédire. Dans l'application vidéo, nous ne pouvons pas mesurer directement si un utilisateur trouvera une vidéo utile ou non. Il serait idéal que l'ensemble de données comporte une fonctionnalité useful et que les utilisateurs marquent toutes les vidéos qu'ils ont trouvées utiles. Toutefois, comme ce n'est pas le cas, nous aurons besoin d'un libellé proxy qui se substitue à l'utilité.

Un libellé proxy pour l'utilité peut indiquer si l'utilisateur partagera la vidéo ou l'aimera.

Résultat idéal Libellé du proxy
Recommander des vidéos utiles shared OR liked

Soyez prudent avec les libellés de substitution, car ils ne mesurent pas directement ce que vous souhaitez prédire. Par exemple, le tableau suivant décrit les problèmes liés aux libellés de substitution potentiels pour Recommander des vidéos utiles :

Libellé du proxy Problème
Prédisez si l'utilisateur cliquera sur le bouton "J'aime". La plupart des utilisateurs ne cliquent jamais sur "J'aime".
Prédire si une vidéo sera populaire Non personnalisée Certains utilisateurs n'apprécient pas les vidéos populaires.
Prédisez si l'utilisateur partagera la vidéo. Certains utilisateurs ne partagent pas de vidéos. Parfois, les utilisateurs partagent des vidéos parce qu'ils ne les aiment pas.
Prédire si l'utilisateur va cliquer sur le bouton de lecture. Maximise les pièges à clics.
Prédisez la durée de visionnage de la vidéo. Privilégie les vidéos longues par rapport aux vidéos courtes.
Prédisez le nombre de fois où l'utilisateur regardera à nouveau la vidéo. Privilégie les vidéos "regardables plusieurs fois" par rapport aux genres de vidéos qui ne le sont pas.

Aucun libellé de substitution ne peut remplacer parfaitement le résultat idéal. Tous les éléments peuvent présenter des problèmes. Choisissez celui qui pose le moins de problèmes pour votre cas d'utilisation.

Testez vos connaissances

Une entreprise souhaite utiliser le ML dans son application de santé et de bien-être pour aider les utilisateurs à se sentir mieux. Pensez-vous qu'il devra utiliser des libellés de proxy pour atteindre ses objectifs ?
Oui, l'entreprise devra trouver des libellés de substitution. Il est impossible de mesurer directement des catégories comme le bonheur et le bien-être. À la place, ils doivent être approximés par rapport à une autre caractéristique, comme les heures passées à faire de l'exercice par semaine ou le temps passé à des loisirs ou avec des amis.
Non, l'entreprise n'aura pas besoin d'utiliser de libellés de proxy. Le bonheur et le bien-être peuvent être mesurés directement.

Génération

Dans la plupart des cas, vous n'entraînerez pas votre propre modèle génératif, car cela nécessite d'énormes quantités de données d'entraînement et de ressources de calcul. Au lieu de cela, vous personnaliserez un modèle génératif pré-entraîné. Pour qu'un modèle génératif produise le résultat souhaité, vous devrez peut-être utiliser une ou plusieurs des techniques suivantes :

  • Distillation. Pour créer une version plus petite d'un modèle plus grand, vous générez un ensemble de données synthétiques étiquetées à partir du modèle plus grand, que vous utilisez pour entraîner le modèle plus petit. Les modèles génératifs sont généralement gigantesques et consomment des ressources considérables (comme la mémoire et l'électricité). La distillation permet au modèle plus petit et moins gourmand en ressources d'approximer les performances du modèle plus grand.

  • Affinage ou optimisation du réglage des paramètres Pour améliorer les performances d'un modèle sur une tâche spécifique, vous devez l'entraîner davantage sur un ensemble de données contenant des exemples du type de résultat que vous souhaitez produire.

  • Prompt engineering : Pour que le modèle effectue une tâche spécifique ou génère des résultats dans un format spécifique, vous devez lui indiquer la tâche à effectuer ou expliquer comment vous souhaitez que les résultats soient mis en forme. En d'autres termes, la requête peut inclure des instructions en langage naturel sur la façon d'effectuer la tâche ou des exemples illustratifs avec les résultats souhaités.

    Par exemple, si vous souhaitez obtenir des résumés courts d'articles, vous pouvez saisir la requête suivante :

    Produce 100-word summaries for each article.
    

    Si vous souhaitez que le modèle génère du texte pour un niveau de lecture spécifique, vous pouvez saisir ce qui suit :

    All the output should be at a reading level for a 12-year-old.
    

    Si vous souhaitez que le modèle fournisse sa sortie dans un format spécifique, vous pouvez expliquer comment la sortie doit être mise en forme (par exemple, "mettez les résultats dans un tableau"). Vous pouvez également lui montrer la tâche à effectuer en lui donnant des exemples. Par exemple, vous pouvez saisir :

    Translate words from English to Spanish.
    
    English: Car
    Spanish: Auto
    
    English: Airplane
    Spanish: Avión
    
    English: Home
    Spanish:______
    

La distillation et le réglage fin mettent à jour les paramètres du modèle. L'ingénierie des requêtes ne met pas à jour les paramètres du modèle. L'ingénierie des requêtes aide plutôt le modèle à apprendre comment produire le résultat souhaité à partir du contexte de la requête.

Dans certains cas, vous aurez également besoin d'un ensemble de données de test pour évaluer la sortie d'un modèle génératif par rapport à des valeurs connues. Par exemple, vous pourrez vérifier que les résumés du modèle sont similaires à ceux générés par des humains ou que les humains les jugent de bonne qualité.

L'IA générative peut également être utilisée pour implémenter une solution de ML prédictif, comme la classification ou la régression. Par exemple, grâce à leur connaissance approfondie du langage naturel, les grands modèles de langage (LLM) peuvent souvent effectuer des tâches de classification de texte mieux que le ML prédictif entraîné pour la tâche spécifique.

Définir les métriques de réussite

Définissez les métriques que vous utiliserez pour déterminer si l'implémentation du ML est réussie ou non. Les métriques de réussite définissent ce qui vous intéresse, comme l'engagement ou l'aide apportée aux utilisateurs pour qu'ils effectuent les actions appropriées, comme regarder des vidéos qui leur seront utiles. Les métriques de réussite sont différentes des métriques d'évaluation du modèle, comme la justesse, la précision, le rappel ou l'AUC.

Par exemple, les métriques de réussite et d'échec de l'application météo peuvent être définies comme suit :

Opération réussie Les utilisateurs ouvrent la fonctionnalité "Va-t-il pleuvoir ?" 50 % plus souvent qu'avant.
Échec Les utilisateurs n'ouvrent pas plus souvent la fonctionnalité "Va-t-il pleuvoir ?" qu'avant.

Les métriques de l'application vidéo peuvent être définies comme suit :

Opération réussie Les utilisateurs passent en moyenne 20 % de temps en plus sur le site.
Échec Les utilisateurs ne passent pas plus de temps sur le site qu'avant.

Nous vous recommandons de définir des métriques de réussite ambitieuses. Cependant, des ambitions trop élevées peuvent entraîner des écarts entre succès et échec. Par exemple, si les utilisateurs passent en moyenne 10 % de temps en plus sur le site qu'avant, cela n'est ni un succès ni un échec. L'écart indéfini n'est pas important.

L'important est la capacité de votre modèle à se rapprocher de la définition du succès, voire à la dépasser. Par exemple, lorsque vous analysez les performances du modèle, posez-vous la question suivante : l'amélioration du modèle vous permet-elle de vous rapprocher des critères de réussite que vous avez définis ? Par exemple, un modèle peut présenter d'excellentes métriques d'évaluation, mais ne pas vous rapprocher de vos critères de réussite. Cela indique que même avec un modèle parfait, vous ne répondriez pas aux critères de réussite que vous avez définis. En revanche, un modèle peut avoir de mauvaises métriques d'évaluation, mais vous rapprocher de vos critères de réussite, ce qui indique que l'amélioration du modèle vous rapprocherait du succès.

Voici quelques dimensions à prendre en compte pour déterminer si le modèle mérite d'être amélioré :

  • Pas assez bien, mais continuer Le modèle ne doit pas être utilisé dans un environnement de production, mais il pourra être considérablement amélioré au fil du temps.

  • Assez bien, continuer Le modèle pourrait être utilisé dans un environnement de production et pourrait être amélioré.

  • Assez bien, mais ne peut pas être amélioré. Le modèle se trouve dans un environnement de production, mais il est probablement aussi performant que possible.

  • Ce n'est pas suffisant et ça ne le sera jamais. Le modèle ne doit pas être utilisé dans un environnement de production, et aucun entraînement ne permettra probablement de l'y préparer.

Lorsque vous décidez d'améliorer le modèle, réévaluez si l'augmentation des ressources, comme le temps d'ingénierie et les coûts de calcul, justifie l'amélioration prévue du modèle.

Après avoir défini les métriques de réussite et d'échec, vous devez déterminer la fréquence à laquelle vous les mesurerez. Par exemple, vous pouvez mesurer vos métriques de réussite six jours, six semaines ou six mois après l'implémentation du système.

Lorsque vous analysez les métriques d'échec, essayez de déterminer pourquoi le système a échoué. Par exemple, le modèle peut prédire les vidéos sur lesquelles les utilisateurs cliqueront, mais il peut commencer à recommander des titres accrocheurs qui entraînent une baisse de l'engagement des utilisateurs. Dans l'exemple de l'application météo, le modèle peut prédire avec précision quand il pleuvra, mais pour une région géographique trop vaste.

Testez vos connaissances

Une entreprise de mode souhaite vendre plus de vêtements. Quelqu'un suggère d'utiliser le ML pour déterminer quels vêtements l'entreprise doit fabriquer. Ils pensent pouvoir entraîner un modèle pour déterminer quels types de vêtements sont à la mode. Une fois le modèle entraîné, ils souhaitent l'appliquer à leur catalogue pour décider quels vêtements fabriquer.

Comment doit-il formuler son problème en termes de ML ?

Résultat idéal : déterminer les produits à fabriquer.

Objectif du modèle : prédire quels vêtements sont à la mode.

Sortie du modèle : classification binaire, in_fashion, not_in_fashion

Critères de réussite : vendre au moins 70 % des vêtements fabriqués.

Résultat idéal : déterminer la quantité de tissu et de fournitures à commander.

Objectif du modèle : prédire la quantité de chaque article à fabriquer.

Sortie du modèle : classification binaire, make, do_not_make

Critères de réussite : vendre au moins 70 % des vêtements fabriqués.

L'objectif idéal n'est pas de déterminer la quantité de tissu et de fournitures à commander. Il s'agit de déterminer si un article doit être fabriqué. Ainsi, l'objectif du modèle ne correspond pas à l'objectif souhaité.