Faisabilité

Pendant la phase d'idéation et de planification, vous examinez les éléments d'une solution de ML. Lors de la définition d'un problème, vous le formulez en tant que solution de ML. Le cours Introduction to Machine Learning Problem Frameming couvre ces étapes en détail. Au cours de la tâche de planification, vous estimez la faisabilité d'une solution, planifiez ses approches et définissez des métriques de réussite.

Même si le ML peut être une solution théoriquement bonne, vous devez tout de même estimer sa faisabilité réelle. Par exemple, une solution peut techniquement fonctionner, mais être difficile ou impossible à mettre en œuvre. Les facteurs suivants influencent la faisabilité d'un projet:

  • Disponibilité des données
  • Difficulté du problème
  • Qualité de la prédiction
  • Exigences techniques
  • Coût

Disponibilité des données

La qualité des modèles de ML dépend des données sur lesquelles ils sont entraînés. Elles ont besoin de grandes quantités de données de haute qualité pour faire des prédictions de haute qualité. Répondre aux questions suivantes peut vous aider à déterminer si vous disposez des données nécessaires pour entraîner un modèle:

  • Quantité : Pouvez-vous obtenir suffisamment de données de haute qualité pour entraîner un modèle ? Les exemples étiquetés sont-ils rares, difficiles à obtenir ou trop chers ? Par exemple, il n'est pas facile d'obtenir des images médicales étiquetées ou des traductions de langues rares. Pour effectuer des prédictions correctes, les modèles de classification nécessitent de nombreux exemples pour chaque étiquette. Si l'ensemble de données d'entraînement contient des exemples limités pour certaines étiquettes, le modèle ne peut pas effectuer de prédictions correctes.

  • Disponibilité de la fonctionnalité au moment de la diffusion. Toutes les caractéristiques utilisées pour l'entraînement seront-elles disponibles au moment de l'inférence ? Les équipes ont passé un temps considérable à entraîner des modèles, pour se rendre compte que certaines fonctionnalités n'étaient disponibles que quelques jours après que le modèle les avait requises.

    Par exemple, supposons qu'un modèle prédit si un client va cliquer sur une URL et que l'une des caractéristiques utilisées pour l'entraînement est user_age. Toutefois, lorsque le modèle effectue une prédiction, user_age n'est pas disponible, peut-être parce que l'utilisateur n'a pas encore créé de compte.

  • Réglementations. Quelles sont les réglementations et exigences légales pour l'acquisition et l'utilisation des données ? Par exemple, certaines exigences définissent des limites pour le stockage et l'utilisation de certains types de données.

IA générative

Les modèles d'IA générative pré-entraînés nécessitent souvent des ensembles de données organisés pour exceller dans les tâches propres à un domaine. Vous aurez peut-être besoin d'ensembles de données pour les cas d'utilisation suivants:

  • Extraction des requêtes, réglage efficace des paramètres et réglage. Selon le cas d'utilisation, vous aurez peut-être besoin de 10 à 10 000 exemples de haute qualité pour affiner davantage les résultats d'un modèle. Par exemple, si un modèle doit être affiné pour exceller dans une tâche particulière, comme répondre à des questions médicales, vous aurez besoin d'un ensemble de données de haute qualité représentatif des types de questions qui lui seront posées, ainsi que des types de réponses auxquels il devrait répondre.

    Le tableau suivant fournit des estimations du nombre d'exemples nécessaires pour affiner les résultats d'un modèle d'IA générative pour une technique donnée:

  • Technique Nombre d'exemples requis
    Requête zero-shot 0
    Requête few-shot ~10 s-100 s
    Réglage avec efficacité des paramètres1 ~100 – 10 000 s
    Affinage ~1 000-10 000 s (ou plus)
    1 Adaptation de rang faible (LoRA) et réglage des invites.
  • Des informations à jour. Une fois pré-entraînés, les modèles d'IA générative disposent d'une base de connaissances fixe. Si le contenu du domaine du modèle change souvent, vous devez adopter une stratégie pour maintenir le modèle à jour, par exemple :

Difficulté du problème

La difficulté d’un problème peut être difficile à estimer. Ce qui semble être une approche plausible au départ peut s'avérer en réalité une question de recherche ouverte. Ce qui semble pratique et faisable peut s'avérer irréaliste ou irréalisable. Répondre aux questions suivantes peut vous aider à évaluer la difficulté d’un problème:

  • Un problème similaire a-t-il déjà été résolu ? Par exemple, des équipes de votre organisation ont-elles utilisé des données similaires (ou identiques) pour créer des modèles ? Des personnes ou des équipes externes à votre organisation ont-elles résolu des problèmes similaires, par exemple, sur Kaggle ou TensorFlow Hub ? Si c'est le cas, vous pourrez probablement utiliser une partie de leur modèle pour créer le vôtre.

  • La nature du problème est-elle difficile ? Connaître les références humaines de la tâche peut éclairer le niveau de difficulté du problème. Exemple :

    • L'humain peut classer le type d'animal dans une image avec une précision d'environ 95 %.
    • Les humains peuvent classer des chiffres écrits à la main avec une précision d'environ 99 %.

    Les données précédentes suggèrent qu'il est plus difficile de créer un modèle pour classifier les animaux que de créer un modèle pour classifier des chiffres manuscrits.

  • Y a-t-il des acteurs potentiellement malveillants ? Les utilisateurs vont-ils tenter activement d'exploiter votre modèle ? Si tel est le cas, vous serez constamment amené à mettre à jour le modèle avant qu'il ne puisse être utilisé de manière abusive. Par exemple, les filtres antispam ne peuvent pas détecter de nouveaux types de spam lorsqu'un utilisateur exploite le modèle pour créer des e-mails qui semblent légitimes.

IA générative

Les modèles d'IA générative présentent des failles potentielles qui peuvent accroître la difficulté d'un problème:

  • Source d'entrée : D'où viendra l'entrée ? Les invites antagonistes peuvent-elles divulguer des données d'entraînement, du contenu de préambule, du contenu de base de données ou des informations sur des outils ?
  • Utilisation de la sortie. Comment les résultats seront-ils utilisés ? Le modèle va-t-il générer du contenu brut ou y aura-t-il des étapes intermédiaires pour tester et vérifier qu'il est approprié ? Par exemple, la fourniture d'une sortie brute aux plug-ins peut entraîner un certain nombre de problèmes de sécurité.
  • Réglages L'ajustement avec un ensemble de données corrompu peut avoir un impact négatif sur les pondérations du modèle. Cette corruption entraîne la génération de contenu incorrect, toxique ou biaisé par le modèle. Comme indiqué précédemment, l'affinage nécessite un ensemble de données dont la qualité des exemples a été vérifiée.

Qualité de la prédiction

Vous devez examiner attentivement l'impact des prédictions d'un modèle sur vos utilisateurs et déterminer la qualité de prédiction nécessaire au modèle.

La qualité de prédiction requise dépend du type de prédiction. Par exemple, la qualité de prédiction requise pour un système de recommandation ne sera pas la même pour un modèle qui signale les cas de non-respect des règles. Recommander la mauvaise vidéo peut créer une mauvaise expérience utilisateur. Toutefois, signaler à tort une vidéo comme ne respectant pas les règles d'une plate-forme peut entraîner des frais d'assistance ou, pire, des frais juridiques.

Votre modèle devra-t-il offrir une qualité de prédiction très élevée, car les prédictions incorrectes sont extrêmement coûteuses ? En règle générale, plus la qualité de prédiction requise est élevée, plus le problème est complexe. Malheureusement, les projets génèrent souvent des rendements décroissants lorsque vous essayez d’améliorer la qualité. Par exemple, faire passer la précision d'un modèle de 99,9% à 99,99% peut signifier une multiplication par 10 du coût du projet (voire plus).

Plus la qualité des prédictions augmente, plus les coûts du projet augmentent.

Figure 2 : Un projet de ML nécessite généralement de plus en plus de ressources à mesure que la qualité de prédiction requise augmente.

IA générative

Tenez compte des points suivants lorsque vous analysez les résultats de l'IA générative:

  • Précision factuelle : Bien que les modèles d'IA générative puissent produire des contenus fluides et cohérents, il n'est pas garanti qu'ils soient factuels. Les fausses déclarations issues de modèles d'IA générative sont appelées confabulations. Par exemple, les modèles d'IA générative peuvent fausser et produire des résumés incorrects de texte, des réponses erronées à des questions de mathématiques ou de fausses déclarations sur le monde. De nombreux cas d'utilisation nécessitent toujours la vérification manuelle des résultats de l'IA générative avant de pouvoir être utilisés en production (par exemple, le code généré par un LLM).

    Comme pour le ML traditionnel, plus les exigences de précision factuelle sont élevées, plus les coûts de développement et de maintenance sont élevés.

  • Qualité de sortie : Quelles sont les conséquences juridiques et financières (ou conséquences éthiques) des mauvaises sorties, telles que des contenus biaisés, plagiés ou toxiques ?

Exigences techniques

Les modèles sont soumis à un certain nombre d'exigences techniques qui influent sur leur faisabilité. Voici les principales exigences techniques à respecter pour déterminer la faisabilité de votre projet:

  • Latence. Quelles sont les exigences de latence ? À quelle vitesse les prédictions doivent-elles être diffusées ?
  • Requêtes par seconde (RPS) : Quelles sont les exigences concernant les RPS ?
  • Utilisation de la RAM. Quelles sont les exigences en termes de RAM pour l'entraînement et l'inférence ?
  • Plate-forme. Où le modèle sera-t-il exécuté: en ligne (requêtes envoyées au serveur RPC), WebML (dans un navigateur Web), ODML (sur un téléphone ou une tablette) ou hors connexion (prédictions enregistrées dans une table) ?
  • Interprétabilité. Les prédictions devront-elles être interprétables ? Par exemple, votre produit devra-t-il répondre à des questions telles que "Pourquoi un contenu spécifique a-t-il été marqué comme spam ?" ou "Pourquoi une vidéo a-t-elle été identifiée comme ne respectant pas le règlement de la plate-forme ?"

  • Fréquence de réentraînement. Lorsque les données sous-jacentes de votre modèle changent rapidement, un réentraînement régulier ou fréquent peut être nécessaire. Cependant, un réentraînement fréquent peut entraîner des coûts importants qui l'emportent sur les avantages d'une mise à jour des prédictions du modèle.

Dans la plupart des cas, vous devrez probablement faire des compromis sur la qualité d'un modèle pour respecter ses caractéristiques techniques. Dans ce cas, vous devez déterminer si vous pouvez toujours produire un modèle suffisamment performant pour passer en production.

IA générative

Tenez compte des exigences techniques suivantes lorsque vous travaillez avec l'IA générative:

  • Plate-forme. De nombreux modèles pré-entraînés sont disponibles dans différentes tailles, ce qui leur permet de fonctionner sur diverses plates-formes avec différentes ressources de calcul. Par exemple, les modèles pré-entraînés peuvent aller de l'échelle d'un centre de données à l'ajustement sur un téléphone. Lorsque vous choisissez la taille de votre modèle, vous devez tenir compte des contraintes de latence, de confidentialité et de qualité de votre produit ou service. Ces contraintes peuvent souvent entrer en conflit. Par exemple, des contraintes de confidentialité peuvent exiger que les inférences s'exécutent sur l'appareil d'un utilisateur. Cependant, la qualité de la sortie peut être médiocre, car l'appareil ne dispose pas des ressources de calcul nécessaires pour produire de bons résultats.
  • Latence. La taille d'entrée et de sortie du modèle affecte la latence. En particulier, la taille de la sortie affecte la latence plus que la taille de l'entrée. Bien que les modèles puissent charger leurs entrées en parallèle, ils ne peuvent générer des sorties que de manière séquentielle. En d'autres termes, la latence peut être identique pour l'ingestion d'une entrée de 500 ou 10 mots, tandis que la génération d'un résumé de 500 mots prend beaucoup plus de temps que la génération d'un résumé de 10 mots.
  • Utilisation des outils et des API. Le modèle devra-t-il utiliser des outils et des API, comme effectuer une recherche sur Internet, utiliser une calculatrice ou accéder à un client de messagerie pour effectuer une tâche ? En règle générale, plus il y a d'outils nécessaires pour accomplir une tâche, plus il y a de risques de propagation des erreurs et d'augmentation des failles du modèle.

Coût

Les coûts liés à la mise en œuvre du ML vont-ils en valoir la peine ? La plupart des projets de ML ne seront pas approuvés si la solution de ML est plus coûteuse à mettre en œuvre et à gérer que l'argent qu'elle génère (ou économise). Les projets de ML entraînent à la fois des coûts humains et des coûts machine.

  • Coûts humains. Combien de personnes seront nécessaires pour que le projet passe de la démonstration de faisabilité à la production ? Les dépenses augmentent généralement à mesure que les projets de ML évoluent. Par exemple, les projets de ML nécessitent plus de personnes pour déployer et gérer un système prêt pour la production que pour créer un prototype. Essayez d'estimer le nombre et les types de rôles dont le projet aura besoin à chaque phase.

  • Coûts des machines. L'entraînement, le déploiement et la maintenance de modèles nécessitent beaucoup de calcul et de mémoire. Par exemple, vous pouvez avoir besoin d'un quota de TPU pour l'entraînement des modèles et la diffusion de prédictions, ainsi que de l'infrastructure nécessaire à votre pipeline de données. Vous devrez peut-être payer pour étiqueter des données ou payer des frais de licence de données. Avant d'entraîner un modèle, envisagez d'estimer le coût de la machine pour créer et gérer des caractéristiques de ML sur le long terme.

  • Coût d'inférence. Le modèle devra-t-il effectuer des centaines ou des milliers d'inférences dont le coût est supérieur au chiffre d'affaires généré ?

À noter

Les problèmes liés à l'un des sujets précédents peuvent compliquer la mise en œuvre d'une solution de ML. Toutefois, des délais serrés peuvent amplifier les difficultés. Essayez de planifier et de budgétiser suffisamment de temps en fonction de la difficulté perçue du problème, puis essayez de réserver encore plus de temps de traitement que pour un projet autre que le ML.