Quelles sont les compétences pour développer un produit en machine learning

Dans ma quête pour comprendre les défis de développement d’un produit de machine learning, j’ai demandé à 5 professionnels en intelligence artificielle de m’aider à identifier les compétences clés spécifiques à ce type de projet. Loin d’être une étude scientifique, ces témoignages donnent une bonne idée des talents qu’on devrait retrouver autour de la table.

Un grand merci pour leur généreuse contribution à cette réflexion:

Les qualités professionnelles pour un produit de machine learning

L’évolution la plus importante dans le domaine et le passage d’un métier lié au pur développement de modèle de machine learning, à un ensemble de métiers qui couvrent tout le cycle de développement de produits avec des composantes de machine learning.

  • Le mouton à 5 pattes
  • Les qualités à développer
  • Les défis ont changé

Le mouton à 5 pattes

Dans l’idéal, le responsable d’un produit avec du machine learning maîtrisera les trois composantes essentielles que sont les données, le modèle et le logiciel. Certaines compagnies s’orientent vers un scientifique de données fullstack pour développeur leur produit de machine learning.

Un profil fullstack devra explorer les données et réaliser l’approche scientifique pour le développement des modèles. Il devra être à l’aise à produire un cadre conceptuel pour le développement et le paramétrage de modèles.

Salma Naccache

La difficulté est de trouver autant de qualités dans une seule personne. C’est surtout un risque pour la pérennité du produit, dont la maintenance dépendrait entièrement de cette personne. Une équipe pluridisciplinaire est mieux adaptée pour couvrir les défis du cycle de vie du produit.

C’est idéal d’avoir dans l’équipe un mélange de profils qui connaissent les algorithmes de ML, les techniques opérationnelles et qui possèdent l’expertise du domaine d’activité de l’application.

Philippe Bouzaglou

Science de données

Les compétences en science des données sont évidemment un prérequis en machine learning.

Il faut se mettre le nez dans les données avant de se lancer et de développer du gros ML.

Philipe Beaudoin

Le scientifique de données explore les données pour en identifier les caractéristiques, les lacunes et recommander le type de modèles, les paramètres et les métriques de performance à suivre.

Salma Naccache

Développement logiciel

Pour développement un produit avec du machine learning, il faut des compétences en machine learning et évidemment en développement logiciel.

Ça prend de très bons ingénieurs en développement logiciel. On n’y échappe pas!

Jérôme Pasquero

Il y a de plus en plus de gens qui ont commencé dans le logiciel et qui se sont lancés dans le machine learning.

Ce sont des profils que j’aime beaucoup, car ils savent programmer et ils ont compris les subtilités du machine learning.

Jérôme Pasquero

La pluridisciplinarité des équipes de développement en ML rend le rôle du lead technique d’autant plus important pour assurer une bonne communication et une exploitation optimale des ressources matérielles et logicielles.

Le lead technique s’assure de l’interopérabilité des modèles qui sont produits par l’équipe ML et exploité par l’équipe d’ingénierie logicielle.

Salma Naccache

Ingénierie de données

Des compétences en ingénierie de données sont nécessaires pour bien gérer un système de machine learning.

L’ingénieur de données orchestre l’ingestion et l’exploitation efficace des données, qui sont ensuite exploitées par le scientifique de données et l’ingénieur ML.

Salma Naccache

Les trois missions principales de l’ingénieur de données sont de:

  • Connecter les sources de données ensemble jusqu’au système,
  • Mettre en place l’infrastructure permettant de faire un réapprentissage régulier,
  • Développer les outils diagnostiques pour garder un œil sur le système

Il faut s’assurer que le projet ne “pourisse” pas quelques mois après avoir été exécuté.

Philipe Beaudoin

ML Ops

Quand un DevOps rencontre du machine learning, il devient un ML Ops.

Le ML Ops s’assure que les modèles qui roulent en production soient accessibles et exploitables à tout moment et de manière fluide, tout en réduisant les temps et les capacités de calcul.

Salma Naccache

Gestion de produit ML

En plus de la gestion de projet et du développement logiciel, le gestionnaire de produit en machine learning doit être à l’aise avec la gestion de cycle de vie et le suivi de performance des modèles.

Le gestionnaire de produit doit comprendre le besoin des clients, être à l’aise à participer dans les discussions autour du développement de modèles ML pour prioriser les tâches, et délivrer des feuilles de route qui sont réalisables dans les temps alloués.

Salma Naccache

En machine learning, le gestionnaire de produit qui a une expertise dans le domaine d’activité de l’application (ex. imagerie médicale) aura plus de facilité à interpréter les résultats dans le contexte réel de l’application du logiciel.

Les qualités à développer

Conception de pipeline

Le machine learning consiste à construire des pipelines réutilisables qui permettent une expérimentation continue où toutes les étapes du processus doivent être claires et tous les résultats documentés. Contrairement au code qui peut être autodocumenté, si le pipeline ne fournit pas un historique clair de ce qui a été réalisé, beaucoup de temps peut être perdu à répéter les mêmes expériences inutilement.

Il faut investir beaucoup de temps dans l’ingénierie des processus et des pipelines plutôt que de tester des idées de façon ponctuelle.

Mrs X

Pragmatisme

Le ML est un vaste domaine avec des centaines d’articles explorant chaque petit aspect du modèle. Les équipes peuvent se perdre dans les détails et finir par passer un temps disproportionné sur des aspects qui ont peu d’impact sur leur objectif. L’objectif doit être clair pour tous et l’approche adoptée doit être la plus simple possible pour atteindre l’objectif.

Il ne faut pas utiliser des choses complexes lorsque les choses les plus simples suffisent… ce qui est le cas dans un nombre surprenant de cas.

Mrs X

Pilotage par les métriques

La réussite d’un projet de machine learning passe par une bonne communication des métriques clés avec les équipes – ingénierie et machine learning, et avec les exécutifs de la compagnie qui doivent comprendre l’impact du projet. Des tableaux de bord plus abstraits pour l’exécutif et plus détaillés pour la gestion de produit.

Il faut que toute la chaîne de management – gestion de produit jusqu’à l’exécutif, comprenne les spécificités d’un système à base de ML et des nouveaux risques que ça pose.

Philipe Beaudoin

Une grande partie de la réussite du projet dépend de l’existence de mesures et de pipelines d’évaluation clairs qui permettent de choisir une solution rationnelle et sans artifice.

Mrs X

On doit poser régulièrement des questions éthiques – comme sur les biais qu’on souhaite éviter, et s’assurer que nos tableaux de bord permettent de répondre à ces questions.

Philipe Beaudoin

Les défis ont changé

On trouve maintenant en libre accès sur GitHub des modèles fournis par de grands joueurs de l’industrie, comme OpenAI et Hugging Face. Ces ressources rendent finalement des profils en développement logiciel mieux équipés que quelqu’un qui a étudié l’architecture de modèle au doctorat.

Avant, C’était surtout une « game » pour arriver avec une meilleure architecture des modèles. Aujourd’hui, il est davantage question de savoir si on a les bonnes données, si on sait les intégrer dans en produit et l’entraîner correctement.

Jérôme Pasquero

Comment gérer un produit avec du machine learning

Suite à mon article sur les biais en machine learning et le développement responsable des produits en AI, j’ai interrogé cinq personnes qui vivent ces défis au quotidien. Data Scientist, Product Manager et responsable d’équipe, ils/elles ont en moyenne 10 ans d’expérience en intelligence artificielle dans des PME et très grandes compagnies.

Pour identifier l’origine du biais en ML, j’ai cherchais à comprendre avec mes interlocuteurs les défis propres au développement ce type de produit. Nos échanges étaient tellement riches – et ils auraient pu continuer encore longtemps, que j’ai découpé les principaux apprentissages en trois articles:

  1. Comment gérer un produit avec du machine learning
  2. Quelles sont les compétences pour développer un produit de machine learning
  3. Comment limiter les biais dans un produit de machine learning

Un grand merci pour leur généreuse contribution à cette réflexion:

Boom des développements en machine learning

Aidés par un afflux massif d’argent, les développements en machine learning ont explosé ces cinq dernières années. Tous produits confondus, les startups en intelligence artificielle ont récolté 144 milliards de dollars d’investissement entre 2017 et 2021.

On manque encore de recul, mais on sait déjà qu’il est difficile d’appliquer exactement à un produit de machine learning tout ce qu’on a appris depuis 30 ans pour le développement logiciel traditionnel. À l’aide de mes cinq experts, j’ai donc identifié quatre points importants pour aider à bien gérer les défis spécifiques d’un produit de machine learning

  • Gérer l’imprévisible
  • Tester en continu
  • Limiter la complexité
  • Faire face au hype
  • Gagner en maturité

Gérer l’imprévisible

Logiciel traditionnel vs logiciel de machine learning: la plus grande différence, c’est le côté imprévisible des résultats. Avec du machine learning, les données qui sont ajoutées en continu transforment le produit en véritable machine vivante qui n’évolue pas forcément dans le sens qu’on avait prévu.

On ne sait pas si un modèle va marcher et comment l’application va réagir.

Combien de temps et combien de données ça va prendre? Est-ce que ça va être biaisé? Est-ce que ça va être bien accueilli par les utilisateurs? Est-ce qu’ils vont y faire confiance? Est-ce qu’il y a risque de défaillance catastrophique?… Toutes ces choses-là sont beaucoup moins problématiques dans du développement software traditionnel, où on a une meilleure idée de ce que la technologie est capable de faire et combien de temps ça va prendre pour le développement.

Jérôme Pasquero

Instabilité des modèles de machine learning.

Si on souhaite effectuer des tests approfondis du modèle avant son déploiement, on risque d’avoir un problème avec les modèles qui s’adaptent continuellement à de nouvelles données, car le modèle continuera à évoluer et on ne disposerait pas d’une version figée que on pourrait tester.

Mrs X

Entraîner les modèles avec plus de données.

On essaie habituellement de montrer le plus de données entrantes possible à l’application pendant la phase d’entraînement, pour essayer de couvrir tous les cas qu’elle risque de rencontrer une fois déployée.

Philippe Bouzaglou

Attention aux cygnes noirs.

De nombreux modèles ML génèrent des résultats dans un espace ouvert (comme les modèles de langage ou les images génératives). Dans ces cas, il peut y avoir des événements extrêmement rares qui pourraient causer un gros problème. Par exemple, générer une image ou un texte pornographique dans une application destinée aux jeunes. Cela empêche l’utilisation de ML dans de nombreux cas ou oblige les développeurs à vraiment contraindre les modèles à des domaines sûrs.

Mrs X

Par rapport à un logiciel traditionnel, il faut tenir compte des risques plus élevés de l’utilisation du machine learning. Une fois dans les mains du public, il peut y avoir des abus ou détournement du produit, et des risques d’atteintes à l’image de la compagnie.


Tester en continu

Il faut reconnaître le manque de maturité du développement en machine learning, tant au niveau des outils, des processus, que des professionnels en intelligence artificielle. D’où l’importance d’apprendre de bonnes pratiques du développement de logiciels traditionnels pour mieux gérer le cycle de vie des produits en machine learning. Ça passe notamment par la mise en place de batteries de tests adaptés et en continu pour s’assurer que les nouvelles données n’engendrent pas de comportements non voulus.

Passer de la théorie de l’école à la pratique de l’industrie.

Les spécialistes en AI sortent tout juste de l’école avec des MS et PHD, qui manquent d’expérience de l’industrie. On doit gagner en maturité pour appliquer un peu plus des techniques de software development au développement de machine learning.

Jérôme Pasquero

Adapter les tests de logiciels traditionnels aux logiciels à base de machine learning.

En programmation traditionnelle on se donne des spécifications, des balises, et on teste notre logiciel en continu pour s’assurer qu’elles soient respectées. En programmation ML on fait ça très peu: on donne un objectif unique, on optimise le système et on utilise le résultat.

Philipe Beaudoin

Tester en continu pour réduire les bugs en continu.

Un logiciel moindrement complexe a une panoplie d’objectifs et de contraintes qui évoluent au fil du temps et de nos apprentissages (lire: des bugs qu’on rencontre ou des comportements imprévus du système). En programmation traditionnelle quand ça arrive on ajoute des tests, on fixe, et ça ne revient plus. En programmation ML on a un peu le bec à l’eau.

Philipe Beaudoin

Gérer le cycle de vie d’un logiciel tout en gérant le cycle de vie des modèles de machine learning.

Le défi est encore plus dur lorsque l’on développe des modèles qui sont spécifiques aux individus, en contraste avec les modèles qui capturent le comportement de groupe. Les modèles individuels dépendent de données granulaires collectées dans des contextes assez complexes, pour inférer des décisions ou des recommandations adaptées aux spécificités des individus. C’est encore plus complexe quand le produit doit s’adapter en temps réel.

Salma Naccache

Limiter la complexité

Complexité des modèles

Il est parfois facile de se dire qu’on va développer un « moonshot » qui va tout régler. Comme pour le développement de produits traditionnels, il est préférable de travailler un produit de ML en itération en associant plusieurs modèles simples, plutôt qu’un gros modèle complexe.

Demande à un data scientist combien de données il a besoin pour son modèle, et il sera incapable de te répondre dès le début du projet.

Éviter de vouloir tout régler avec un modèle très puissant.

On se rend compte qu’on n’a pas assez de données, ou que son modèle est trop compliqué. On essaie d’attaquer des cas de figure extrêmes qui augmentent les besoins en performance, en mémoire, en data pour l’entraînement. Au final, on te ramasse avec un monstre qui n’est plus gérable.

Jérôme Pasquero

Un modèle simple permet d’expliquer plus facilement les résultats.

Si le modèle est très complexe, ce qui est la norme en ML, nous ne pouvons pas retracer la raison pour laquelle une décision a été prise. Il sera difficile de travailler dans certaines applications où les utilisateurs ou la réglementation exigent des explications.

Mrs X

Complexité des équipes

Beaucoup de personnes sont impliquées dans le développement d’un produit de ML (data engineer, data scientist, ML ops, solution architect, backend/frontend developer…). La complexité des projets rend d’autant plus important le rôle de gestionnaire de produit (PM), qui est sensible aux différents enjeux de développement du produit et s’assure d’une bonne communication entre les équipes impliquées.

Communiquer clairement les besoins et les contraintes.

L’équipe ingénierie ML doit s’assurer de produire les modèles, les maintenir, et définir clairement le type, les contraintes et les différents scénarios pour aider l’équipe d’ingénierie logicielle à intégrer les résultats dans le produit final. L’équipe ingénierie ML doit être capable d’abstraire les différents enjeux, afin que l’équipe d’ingénierie logicielle, ainsi que l’équipe produit puissent évaluer quel aspect du produit doit être amélioré ou fixé par une équipe ou l’autre.

Salma Naccache

Faire face au hype

À la fin des années 2000, une compagnie devait absolument avoir une page Facebook. La question de savoir pourquoi et du ROI était souvent secondaire. L’intelligence artificielle vit aujourd’hui le même hype, où les équipes produit ont la pression pour incorporer à tout prix du machine learning.

En ML aussi, le mieux est l’ennemi du bien. Comme pour gestion de produit traditionnel, c’est parfois mieux de commencer à « faker » – de manière manuelle ou semi-automatique, apprendre des premiers usages et ensuite développer les fonctionnalités logicielles.

La première règle du machine learning, est de le faire sans machine learning.

On a la pression pour utiliser du ML, alors qu’on n’a pas encore besoin et qu’on peut simplement hard coder les règles. Le produit est assez efficace sans. Si on n’y arrive vraiment pas sans modèle, c’est là qu’on peut commencer à regarder comment utiliser le ML. Il faut absolument éviter de baser tout ton produit sur un modèle qu’on n’a pas encore développé.

Jérôme Pasquero

La réaction du public peut être imprévisible face à une bête que le monde ne comprend pas vraiment.

L’intelligence artificielle suscite beaucoup d’attention de la part du public. Cela crée à la fois un élan positif pour affirmer qu’il y a de l’IA dans les applications, mais, à l’inverse, beaucoup de craintes, que ce soit de la part des utilisateurs ou des entreprises, qui s’inquiètent d’un « backlash » exagéré dû au battage médiatique associé à l’IA.

Mrs X

Gagner en maturité

Pour finir sur une note optimiste, avec tous les efforts actuels, les pratiques de développement de produit avec du machine learning devraient rapidement gagner en maturité. Compétences, outils et processus de développement spécifiques aux produits en ML devraient à terme amener un standard de qualité similaire au développement de logiciels traditionnels. Dans le prochain article, on verra ensemble quelles sont les compétences clés pour mener à bien le développement d’un produit de machine learning.

En illustration de cette maturité croissante dans le développement de produits avec du machine learning, AskAïa se distingue comme un cas d’étude exemplaire. Utilisant l’IA pour simplifier le parcours d’immigration au Canada, AskAïa démontre comment l’innovation technologique, couplée à une compréhension approfondie des processus complexes, peut aboutir à des solutions efficaces et sécurisées. Ce succès illustre parfaitement la convergence entre l’avancée théorique et l’application pratique dans le domaine de l’intelligence artificielle.


Français / Anglais

  • machine learning (ML) = apprentissage machine
  • artificial intelligence (AI) = intelligence artificielle (IA)
  • data science = science des données
  • software development = développement logiciel
  • bug = bogue

Biais en machine learning et développement responsable des produits en AI

La lecture récente de « AI 2041 » – un livre d’anticipation et de vulgarisation de l’intelligence artificielle écris à quatre mains par Kai-Fu Lee et Chen Qiufan, m’a interpellé sur les biais dans le machine learning, l’éthique des gestionnaires de produits et les solutions pour un développement responsable du AI. 

Le potentiel immense du machine learning et de ses dérivés est excitant. Mais en tant que gars qui développe des produits, je me demande comment s’assurer que leur impact sur la société reste positif. 

Qualité des données et impact en machine learning

Mon ami Philippe Bouzaglou m’a fait découvrir le machine learning il y a 10 ans pour ma compagnie (Seevibes). Twitter était une mine d’or de données non structurée que l’on filtré et qualifié en temps réel grâce à l’expertise en NLP de Philippe. Nous avions développé un des modèles de lookalike les plus performants pour Twitter (grosse fierté).

Au-delà du tooling et de la disponibilité de modèles, la qualité des données était le principal défi pour réussir des projets de machine learning. Un défi qui s’est confirmé ensuite en collaborant à des applications de machine learning dans l’industrie de la musique (LANDR), du transport (Bus.com) et des télécommunications (Fizz).

Je me concentrais sur la qualité des données pour avoir un modèle performant, mais sans me poser la question de l’impact sur les humains qui allaient ensuite utiliser le produit.

Conséquences des biais en intelligence artificielle

On veut faire un « meilleur monde » avec la tech, mais la plupart du temps on ne sauve pas de vie. Personne n’a vu son coeur repartir grâce à un spreadsheet plus performant. Par contre, le biais dans le machine learning impacte la vie de millions de personnes. 

Le simple fait de prendre une photo en soirée avec des amis noirs, et l’on constate rapidement que les algorithmes dans notre smartphone à 1000$ ne sont pas adaptés à tout le monde. On retrouvait ce biais dès les débuts de la photographie en couleurs.

Les problèmes de détection de couleur de peau sont récurrents, autant pour la détection et le suivi de mouvement pour un simple distributeur de savon et une webcam d’ordinateur. Le sujet pourrait presque faire sourire s’il n’avait pas des conséquences plus graves.

Dans le premier chapitre de « AI 2041 », l’histoire de « The Golden Elephant » imagine un futur où l’algorithme d’une assurance punit une jeune fille pour avoir côtoyé une personne de classe sociale inférieure. 

Ce futur est déjà là, car les personnes appartenant aux classes socio-économiques inférieures aux États-Unis sont soumises à des outils de prise de décision plus automatisés que les personnes appartenant aux classes supérieures. 

On voit des disparités raciales dans les outils d’évaluation des risques au détriment de la communauté noire. Le machine learning peut aussi engendrer du sexisme avec des algorithmes qui associent les femmes au shopping et les hommes au tir, qui un impact avéré dans le recrutement de postes en technologies.

Comment faire de l’intelligence artificielle responsable

Heureusement, il existe de bonnes pratiques pour mitiger les biais conscient et inconscient des produits de AI que l’on développe.

Les auteurs de « AI, COVID-19, and Inequality » recommandent de chercher à comprendre comment des biais peuvent être introduits à chaque étape de développement:

  1. Dans la définition du problème
  2. Dans les données utilisées
  3. Dans le choix et la configuration des algorithmes
  4. Dans l’évaluation et l’interprétation des résultats

Brookings a publié un rapport très fourni sur « Détection et atténuation des biais algorithmiques : Meilleures pratiques et politiques pour réduire les préjudices aux consommateurs ». Il propose des modèles de questions pour aider à évaluer l’impact des biais d’un projet de machine learning: 

  • Que fera la décision automatisée?
  • Comment les biais potentiels seront-ils détectés?
  • Quelles sont les motivations de l’opérateur?
  • Comment les autres parties prenantes sont-elles impliquées?
  • La diversité a-t-elle été prise en compte dans la conception et l’exécution

L’Union européenne a également défini des « Lignes directrices éthiques pour une IA digne de confiance » autour de sept principes de gouvernance:

  1. Contrôle et suivi humain
  2. Robustesse technique et sécurité
  3. Protection de la vie privée et gouvernance des données
  4. Transparence
  5. Diversité, non-discrimination et équité
  6. Bien-être environnemental et sociétal
  7. Imputabilité

Pour un machine learning équitable

Si on continu à avoir quatre gars blancs dans une pièce pour définir et tester les produits de AI, c’est évident que les problèmes de biais vont perdurer. La diversité des profils, autant dans l’origine, la culture et le parcours, est l’assurance de ne pas répéter les mêmes erreurs. 

Pour atténuer l’impact des biais dans le machine learning, nous devons faire un compromis entre la précision et l’équité, et prendre en compte le coût pour la société. Construire un monde meilleur pour les humains, c’est s’autorisé à être moins parfait pour être plus juste.


Ressources et liens

Publications

Livres

Podcasts

Vidéos


Français / Anglais

  • machine learning = apprentissage machine
  • artificial intelligence (AI) = intelligence artificielle (IA)