Identifier un problème lié 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 à formuler votre problème en termes de ML. Vous formulez un problème en termes de ML en effectuant les tâches suivantes:

  • Définissez le résultat idéal et l'objectif du modèle.
  • Identifier 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

Quel est le résultat idéal, indépendamment du modèle de ML ? En d'autres termes, quelle est la tâche exacte que vous souhaitez que votre produit ou fonctionnalité effectue ? Il s'agit de la même déclaration que vous avez définie précédemment dans la section Indiquer l'objectif.

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

Pour applications Résultat idéal Objectif du modèle
Application Météo Calculez les précipitations par incréments de six heures pour une région géographique. Prédisez les précipitations sur six heures pour des régions géographiques spécifiques.
Application de mode Générer une variété de modèles de chemises. Générez trois types de chemises à partir du texte et d'une image, où le texte indique le style et la couleur, et l'image le type de chemise (t-shirt, bouton, polo).
Application vidéo recommander des vidéos utiles ; Prédisez si un utilisateur cliquera sur une vidéo.
Application de messagerie Détecter le spam Prédisez si un e-mail est un spam ou non.
Application financière Résumer des informations financières provenant de plusieurs sources d'actualités Générez des résumés de 50 mots des principales tendances financières au cours des sept derniers jours.
Cartes Calculer le temps de trajet Prédisez la durée du trajet entre deux points.
Application bancaire Identifier les transactions frauduleuses Prédisez si une transaction a été effectuée par le titulaire de la carte.
Application de restauration Identifiez les types de cuisine en fonction du menu d'un restaurant. Prédisez le type de restaurant.
Application d'e-commerce Générer 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. Ainsi, la première question à répondre est « De quel type de sortie ai-je besoin pour résoudre mon problème ? »

Si vous devez classer un élément ou effectuer une prédiction numérique, vous utiliserez probablement le ML prédictif. Si vous devez générer du nouveau contenu ou produire une sortie liée à la compréhension du langage naturel, vous utiliserez probablement l'IA générative.

Les tableaux suivants répertorient les sorties prédictives de ML et d'IA générative:

Tableau 1. ML prédictif
Système de ML Exemple de résultat :
Classification Binaire Classification d'un e-mail comme spam ou non-spam
Étiquette unique et multiclasse Classer un animal dans une image
Étiquettes multiples et multiclasses Classer tous les animaux dans une image.
Numérique Régression unidimensionnelle Prédisez le nombre de vues d'une vidéo.
Régression multidimensionnelle Prédisez la tension artérielle, la fréquence cardiaque et les taux de cholestérol d'un individu.
Tableau 2. IA générative
Type de modèle Exemple de résultat :
Texte
Résumez un article.

Répondez aux avis laissés par les clients.

Traduisez des documents de l'anglais vers le mandarin.

Rédigez les descriptions de vos produits.

analyser des documents juridiques ;
Image
Produire des images marketing.

Appliquez des effets visuels à vos photos.

Générer des variantes de conception du produit.
Audio
Générer des dialogues avec un accent spécifique

Générez une courte composition musicale dans un genre spécifique, comme le jazz.
Vidéo
Générez des vidéos réalistes.

Analysez des séquences vidéo et appliquez des effets visuels.
Multimodal Produisez plusieurs types de contenus, comme une vidéo avec des sous-titres.

Classification

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

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

Figure 1. Modèle de classification permettant d'effectuer 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 de catégorie A, exécutez X. Si la prédiction est de catégorie B, faites : Y. Si la prédiction est de catégorie C, effectuez Z. Dans certains cas, la prédiction correspond à la sortie de l'application.

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

Figure 2 : Résultat d'un modèle de classification utilisé dans le code du 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 est comprise dans la plage A, exécuter X ; si la prédiction est comprise dans la plage B, indiquer Y. Si la prédiction est comprise dans la plage C, exécuter 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 : Résultat d'un modèle de régression utilisé dans le code du produit pour prendre une décision.

Imaginez le scénario suivant :

Vous souhaitez mettre en cache des vidéos en fonction de leur popularité estimée. En d'autres termes, si votre modèle prédit qu'une vidéo sera populaire, vous devez la diffuser rapidement auprès des 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:

  • S'il est prévu qu'une vidéo enregistre 50 vues ou plus, vous utiliserez le cache coûteux.
  • S'il est prévu qu'une vidéo enregistre entre 30 et 50 vues, vous utiliserez le cache bon marché.
  • S'il est prévu que la vidéo enregistre moins de 30 vues, elle ne sera pas mise 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 génère la même perte pour une prédiction de 28 et 32 pour les vidéos comptant 30 vues. En d'autres termes, même si votre application aura un comportement très différent si la prédiction est de 28 contre 32, le modèle considère que les deux prédictions sont tout aussi bonnes.

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

Figure 5 : Entraîner un modèle de régression

Les modèles de régression ne tiennent pas compte des seuils définis par le produit. Par conséquent, si le comportement de votre application change de manière significative en raison de légères différences dans les prédictions d'un modèle de régression, nous vous recommandons d'implémenter un modèle de classification à la place.

Dans ce scénario, un modèle de classification produirait le comportement approprié, car un modèle de classification générerait une perte plus élevée pour une prédiction de 28 plutôt que de 32. En quelque sorte, les modèles de classification produisent des seuils par défaut.

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

  • Prédisez la décision. Si possible, prévoyez la décision que votre application prendra. Dans l'exemple de vidéo, un modèle de classification prédit la décision si les vidéos qu'il classe ont dans les catégories "Pas de cache", "Cache bon marché" et "Cache coûteux". Si vous masquez le comportement de votre application dans le modèle, celle-ci risque de produire un comportement incorrect.

  • Identifiez 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 de seuils dans le code de votre application. Cela vous permet de mettre facilement à jour les seuils tout en permettant au modèle d'effectuer 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 seuils fixés.

    En général, le provisionnement du cache est dynamique, et les seuils changent au fil du temps. Par conséquent, comme il s'agit spécifiquement d'un problème de mise en cache, un modèle de régression est le meilleur choix. Cependant, pour de nombreux problèmes, les seuils sont fixes, ce qui fait d'un modèle de classification la meilleure solution.

Examinons un autre exemple. Si vous créez une application météo dont le résultat idéal est d'indiquer aux utilisateurs combien il va pleuvoir au cours des six prochaines heures, vous pouvez utiliser un modèle de régression qui prédit l'étiquette precipitation_amount..

Résultat idéal Libellé idéal
Indiquez aux utilisateurs combien il va pleuvoir dans leur région au cours des six prochaines heures. precipitation_amount

Dans l'exemple de l'application météo, l'étiquette indique directement le résultat idéal. Toutefois, dans certains cas, aucune relation de type un à un n'est apparente entre le résultat idéal et l'étiquette. Par exemple, dans l'application vidéo, l'idéal est de recommander des vidéos utiles. Cependant, l'ensemble de données ne comporte pas d'étiquette appelée useful_to_user..

Résultat idéal Libellé idéal
Recommandez des vidéos utiles. ?

Par conséquent, vous devez trouver un libellé de proxy.

Libellés de proxy

Les étiquettes de proxy remplacent les étiquettes qui ne figurent pas dans l'ensemble de données. Les libellés de proxy 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. L'idéal serait que l'ensemble de données comprenne une fonctionnalité useful et que les utilisateurs ont marqué toutes les vidéos qu'ils ont trouvées utiles. Toutefois, comme l'ensemble de données ne l'est pas, nous aurons besoin d'un libellé de proxy qui se substitue à l'utilité.

Une étiquette de proxy pour l'utilité peut indiquer si l'utilisateur partagera ou aimera la vidéo.

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

Soyez prudent avec les étiquettes de proxy, car elles ne mesurent pas directement ce que vous souhaitez prédire. Par exemple, le tableau suivant met en évidence les problèmes liés aux libellés de proxy potentiels pour la section 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édisez si une vidéo sera populaire. Non personnalisé. Certains utilisateurs peuvent ne pas aimer les vidéos populaires.
Prédisez si l'utilisateur partagera la vidéo. Certains utilisateurs ne partagent pas de vidéos. Il arrive que les utilisateurs partagent des vidéos parce qu'ils ne les aiment pas.
Prédisez si l'utilisateur va cliquer sur le bouton de lecture. Maximiser les clics.
Prédire le temps qu'ils passent à regarder 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. Favorise les vidéos susceptibles d'être lues à plusieurs reprises par rapport aux genres de vidéos qui ne peuvent pas être visionnés de nouveau.

Aucune étiquette de substitution ne peut être une alternative parfaite à votre résultat idéal. Toutes auront des problèmes potentiels. Choisissez celle qui présente 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 ses employés à se sentir mieux. Pensez-vous qu'il devra utiliser des étiquettes de proxy pour atteindre ses objectifs ?
Oui, l'entreprise a besoin de trouver des étiquettes de proxy. Des catégories telles que le bonheur et le bien-être ne peuvent pas être mesurées directement. Ils doivent être évalués par rapport à une autre caractéristique, comme le nombre d'heures passées à faire de l'exercice par semaine, ou le temps consacré à des passe-temps ou à des amis.
Non, l'entreprise n'a pas besoin d'utiliser d'étiquettes 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. À la place, vous allez personnaliser un modèle génératif pré-entraîné. Pour qu'un modèle génératif produise la sortie souhaitée, vous devrez peut-être utiliser une ou plusieurs des techniques suivantes:

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

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

  • Extraction des requêtes : Pour que le modèle exécute une tâche spécifique ou génère une sortie dans un format spécifique, vous indiquez au modèle la tâche à effectuer ou vous expliquez comment vous souhaitez que la sortie soit formatée. En d'autres termes, l'invite peut inclure des instructions en langage naturel expliquant comment effectuer la tâche ou des exemples illustratifs avec les résultats souhaités.

    Par exemple, si vous souhaitez de courts résumés d'articles, vous pouvez saisir les informations suivantes:

    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 les éléments suivants:

    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, "mettre en forme les résultats dans un tableau") ou vous pouvez démontrer la tâche en lui fournissant des exemples. Par exemple, vous pouvez saisir ce qui suit:

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

La distillation et l'ajustement mettent à jour les paramètres du modèle. L'ingénierie des invites ne met pas à jour les paramètres du modèle. En revanche, l'ingénierie des requêtes aide le modèle à apprendre à produire la sortie souhaitée à 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 pour vérifier que les résumés du modèle sont semblables à ceux générés manuellement ou que les résumés du modèle sont considérés comme bons.

L'IA générative peut également être utilisée pour mettre en œuvre une solution de ML prédictive, telle que la classification ou la régression. Par exemple, en raison de leur connaissance approfondie du langage naturel, les grands modèles de langage (LLM) peuvent souvent effectuer des tâches de classification de texte plus efficaces que le ML prédictif entraîné pour une tâche spécifique.

Définir les métriques de réussite

Définissez les métriques que vous utiliserez pour déterminer si la mise en œuvre du ML a réussi ou non. Les métriques de réussite définissent ce qui vous intéresse, comme l'engagement ou le fait d'aider les utilisateurs à effectuer les actions appropriées, comme regarder des vidéos qu'ils trouvent utiles. Les métriques de réussite diffèrent des métriques d'évaluation du modèle, telles que la précision, la précision, le rappel ou 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 ouvriront la fonctionnalité "Va-t-il pleuvoir ?" 50 % plus souvent qu'auparavant.
Échec Les utilisateurs n'ouvriront pas la fonctionnalité "Va-t-il pleuvoir ?" plus souvent qu'auparavant.

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

Opération réussie En moyenne, les utilisateurs passent 20 % de temps en plus sur le site.
Échec En moyenne, les utilisateurs ne passent pas plus de temps sur votre site qu'auparavant.

Nous vous recommandons de définir des indicateurs de réussite ambitieux. Cependant, de grandes ambitions peuvent causer des écarts entre le succès et l’échec. Par exemple, un utilisateur qui passe en moyenne 10 % de temps en plus sur le site n'est ni une réussite, ni un échec. L'écart non défini n'est pas ce qui est important.

Ce qui est important, c'est la capacité de votre modèle à se rapprocher, ou à dépasser, la définition du succès. Par exemple, lorsque vous analysez les performances du modèle, posez-vous la question suivante: est-ce que l'amélioration du modèle vous rapproche des critères de réussite que vous avez définis ? Par exemple, un modèle peut avoir d'excellentes métriques d'évaluation, mais ne pas vous rapprocher de vos critères de réussite, ce qui 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, indiquant que l'amélioration du modèle vous rapprocherait de la réussite.

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

  • Ce n'est pas suffisant, mais vous pouvez continuer. Ce modèle ne doit pas être utilisé dans un environnement de production, mais il peut être considérablement amélioré au fil du temps.

  • Satisfaisante et continuer. Ce modèle peut être utilisé dans un environnement de production et peut être amélioré.

  • Suffisant, mais impossible de l'améliorer. Le modèle est dans un environnement de production, mais il est probablement aussi performant que possible.

  • Pas assez performante, et ne le sera jamais. Le modèle ne doit pas être utilisé dans un environnement de production et il est peu probable qu'il soit entraîné dans un environnement de production.

Lorsque vous décidez d'améliorer le modèle, réévaluez si l'augmentation des ressources, telle que 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 à quelle fréquence vous allez les mesurer. Par exemple, vous pouvez mesurer vos métriques de réussite six jours, six semaines ou six mois après la mise en œuvre du système.

Lorsque vous analysez les métriques de défaillance, essayez de déterminer la raison de la défaillance du système. Par exemple, le modèle peut prédire sur quelles vidéos les utilisateurs cliqueront, mais il peut commencer à recommander des titres de pièges à clics qui font chuter l'engagement des utilisateurs. Dans l'exemple d'application météo, le modèle peut prédire avec précision quand il pleuvra, mais pour une zone géographique trop étendue.

Testez vos connaissances

Une entreprise de mode souhaite vendre plus de vêtements. Une personne suggère d'utiliser le ML pour déterminer les vêtements que l'entreprise doit fabriquer. Il pense pouvoir entraîner un modèle pour déterminer quel type de vêtements est à la mode. Après avoir entraîné le modèle, elle souhaite l'appliquer à son catalogue pour décider quels vêtements confectionner.

Comment doit-il définir son problème en termes de ML ?

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

Objectif du modèle: Prédire quels articles vestimentaires sont à la mode.

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

Métriques de réussite: vendez au moins 70 % des vêtements fabriqués.

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

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

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

Métriques de réussite: vendez au moins 70 % des vêtements fabriqués.

Le résultat idéal n'est pas de déterminer la quantité de tissu et de fournitures à commander. Elle permet de déterminer si un article doit être fabriqué. Ainsi, l'objectif du modèle ne cible pas le bon objectif.