-
Expérience de Linus Lee dans le développement de l’IA
- Linus Lee travaille chez Notion comme lead AI engineer.
- Avant Notion, il a beaucoup travaillé sur la recherche en NLP, machine learning et HCI, tout en menant activement des activités de prototypage et d’écriture.
- Chez Notion, il a développé les fonctionnalités Q&A, Autofill et AI Writing, et a également mené des recherches sur les modèles d’espace latent.
-
Vue d’ensemble du développement de l’IA chez Notion
- Depuis ses années d’université, Linus Lee développe divers services web et outils de productivité.
- En 2022, il a commencé à lire et à étudier de manière indépendante des articles de recherche liés à l’IA.
- En octobre 2022, il a rejoint le projet bêta de l’AI Writer de Notion.
- Lorsqu’il a rejoint Notion, l’équipe IA comptait quatre personnes, contre environ 20 aujourd’hui.
- Les principaux projets auxquels Linus Lee a participé sont AI Writer, Autofill et Q&A, lancés respectivement en février, mai et novembre 2023.
- À l’avenir, Notion AI prévoit d’améliorer encore l’utilisabilité grâce aux technologies d’agents.
-
Présentation des bureaux de Notion et de l’équipe IA
- Notion possède des bureaux à San Francisco et à New York, et celui de San Francisco sert notamment pour les déjeuners et les événements.
- Le bureau de New York est l’endroit où Linus Lee vit et travaille, avec un environnement de travail au design épuré.
- Le développement des fonctionnalités d’IA chez Notion a commencé en 2013, et le CEO ainsi que le CTO participent directement au développement produit.
- Une photo d’une réunion de l’équipe IA à l’automne 2022 montre le manager, le CEO Ivan, le CTO Simon, ainsi que des product managers et des designers en pleine session de Q&A.
- Dans le développement de produits IA, la qualité et l’évaluation sont des éléments essentiels, avec des techniques d’évaluation couvrant tout le spectre entre benchmarks de recherche et usage réel en production.
- Notion vérifie les performances entre benchmarks et données réelles, et évalue précisément les modèles au moyen de tests programmatiques.
- Les critères d’évaluation incluent la présence de mots spécifiques, l’autorité, l’inclusion de mots-clés et la précision des performances linguistiques.
-
Développement des produits IA chez Notion
- L’évaluation humaine est un élément important du développement des produits IA de Notion.
- Sur les jeux de données de test, des humains vérifient les données, puis le produit est testé via des tests programmatiques.
- Après le développement du produit, une surveillance continue basée sur les retours utilisateurs est nécessaire.
- L’IA doit offrir des fonctionnalités à plusieurs niveaux, capables notamment de collecter efficacement les cas d’échec utilisateur et de répondre aux questions.
- La clé pour développer un produit IA de haute qualité réside dans l’itération et la qualité des données. Il est donc important d’adapter les données du monde réel au modèle.
- Chez Notion, ingénieurs, chercheurs, designers et product managers développent ensemble les fonctionnalités en discutant des itérations nécessaires.
- En utilisant des modèles comme GPT-4, ils améliorent en continu les modèles d’itération afin d’élever la qualité des résultats.
-
Processus de développement des fonctionnalités d’IA chez Notion
- Les ingénieurs IA de Notion développent les modèles en collectant des informations et en structurant les données. Ils doivent donc analyser les données de manière rigoureuse et les aligner sur les besoins des utilisateurs.
- Ils étudient des manières d’organiser les informations issues des notes de réunion, pages web et autres contenus des utilisateurs de Notion, puis construisent des jeux de données, car cela influence les performances du modèle.
- Grâce à la recherche, ils identifient des use cases comme Q&A pour tester les modèles, afin de fournir des réponses efficaces aux questions des utilisateurs.
- Ils développent des systèmes prototypes à l’aide de GPT-4 et de modèles cloud, puis les testent en interne pour identifier les problèmes initiaux.
- Ils analysent les cas d’échec collectés pendant l’usage interne, puis améliorent les jeux de données et les modèles en conséquence. Des tests répétés et des retours continus permettent ainsi d’augmenter la précision des modèles.
-
Procédure de développement et d’évaluation des modèles d’IA chez Notion
- Le processus d’itération sur les modèles comprend la révision des prompts, l’ajustement fin des modèles, ainsi que l’ajout d’une seconde étape dans le pipeline des language models.
- Lorsqu’ils estiment qu’un problème a été résolu au stade du développement, ils redéploient, collectent davantage de cas d’échec et poursuivent le cycle itératif.
- Ce processus est répété jusqu’à ce que la qualité des entrées et des sorties soit jugée satisfaisante dans l’environnement interne.
- À un certain moment, le produit est ouvert à un petit nombre d’utilisateurs via un programme bêta, et les retours utilisateurs ainsi que les données de logs collectées automatiquement sont surveillés.
- Au début de la construction du dataset, diverses méthodes sont utilisées pour vérifier qu’il reflète bien les cas d’usage réels.
-
Premières étapes du développement des fonctionnalités d’IA
- Un prototype est créé puis testé avec l’équipe IA en interne.
- Cela permet de collecter divers inputs et exemples via l’usage interne.
- Le jeu d’inputs initial n’a pas besoin de représenter parfaitement tous les cas réels.
- Après les tests internes, le produit est déployé auprès d’un public plus large afin d’obtenir progressivement des données plus réalistes.
- Il est également possible de construire le dataset initial à partir de cas d’échec anticipés.
- Lors du développement des fonctionnalités de prise en charge des langues, les jeux de données QA existants sont traduits en langues étrangères et réutilisés.
-
Collecte de données et évaluation via les tests internes et externes
- Le dataset initial n’a pas besoin d’être parfaitement réaliste. Les tests servent justement à collecter de meilleures données.
- Le prototype est testé auprès d’utilisateurs internes ou d’un petit groupe d’utilisateurs externes, et des exemples de sorties incorrectes sont collectés de différentes manières.
- L’évaluation est effectuée de manière programmatique à partir de mots-clés ou de la structure des sorties, et des logs sont conservés pour toutes les inférences IA. Il est ainsi possible d’identifier et d’analyser les sorties défaillantes.
- Les entretiens utilisateurs permettent de comprendre les cas d’usage réels et de découvrir des usages inattendus.
- Par exemple, lors des tests internes de la fonctionnalité Autofill, l’équipe a constaté que de nombreux employés l’utilisaient pour la traduction, ce qui a conduit au développement d’une version davantage optimisée pour cet usage.
-
Méthodes de feedback et d’évaluation des produits IA
- Les boutons de feedback positif et négatif sont peu utiles aux utilisateurs et donc peu utilisés.
- De plus, à l’échelle des utilisateurs de Notion, ces boutons ne suffisent pas à eux seuls pour collecter assez de données.
- Toutefois, ils peuvent parfois aider à capter des cas exceptionnels qui n’auraient pas été découverts par d’autres use cases.
- En interne, des tests adversariaux sont utilisés pour évaluer les performances du modèle face à des entrées inattendues.
- Les tests adversariaux sont utiles pour comprendre les limites de performance du modèle et identifier les points où des problèmes apparaissent.
- Les données d’usage réel servent à surveiller en continu les points forts et les faiblesses du modèle.
-
Éléments clés du développement de produits IA
- L’évaluation et les logs sont les éléments les plus importants.
- Il est nécessaire de construire des logs complets, exhaustifs et intégralement rejouables.
- À partir d’exemples de mauvaises sorties observées en usage réel ou lors des tests internes, il devient possible de reconstruire le pipeline et de le déboguer.
- Chaque exemple est rejoué dans l’environnement de développement pour être testé avec de nouveaux prompts ou modèles, afin de trouver une solution.
- Une fois le problème résolu, l’exemple est ajouté au dataset de test afin d’éviter que le même problème ne réapparaisse.
-
Enseignements clés sur le développement de l’IA
- Il faut utiliser le produit tôt et le tester souvent afin d’affiner la compréhension de la tâche.
- Dans l’IA, l’élément différenciant n’est pas la performance brute du modèle, mais la compréhension de la tâche.
- Lorsqu’une équipe IA construit des applications destinées aux utilisateurs finaux, elle doit comprendre en profondeur la difficulté de la tâche et les limites du modèle.
- Il est important de décomposer la tâche en éléments fins, puis d’identifier les points où le modèle échoue souvent et ceux où il s’en sort naturellement bien.
- Utiliser fréquemment le produit et analyser ses sorties est la meilleure manière de comprendre les causes des erreurs du modèle et la difficulté réelle de la tâche.
-
Points d’attention dans le développement de produits IA
- Les spécifications produit doivent préciser non seulement l’interface et les fonctionnalités, mais aussi les critères d’évaluation et ce qui constitue une bonne sortie.
- Les critères d’évaluation servent de point central de communication entre responsables produit, ingénieurs et chercheurs.
- L’expérience en machine learning traditionnel peut aussi s’appliquer aux LLM et aux modèles d’IA générative, en apportant plus d’enseignements qu’on ne pourrait le penser.
- Toutefois, alors que le machine learning traditionnel traite de très grands datasets en analysant des clusters ou de larges sous-ensembles, le travail sur les language models implique plus souvent l’examen de cas d’échec individuels et de logs unitaires.
- Il faut donc des outils et des workflows différents pour travailler avec des language models.
-
Importance et approche de l’évaluation des modèles d’IA
- En matière d’évaluation, la source de vérité, ce sont les utilisateurs et ce qu’ils font réellement.
- Par conséquent, les matériaux d’évaluation doivent refléter les cas d’usage réels à partir de données d’usage internes et externes.
- L’un des grands défis de l’évaluation consiste à couvrir suffisamment tout l’espace d’entrées pour lequel on souhaite que le système fonctionne correctement.
- Construire un pipeline d’évaluation automatique peut faire gagner beaucoup de temps plus tard, lorsqu’il faudra traiter davantage de données, mais au début il est important que les membres de l’équipe examinent eux-mêmes les sorties et les comprennent.
- Cela aide à identifier les causes d’échec du modèle ainsi que ses tendances sur certaines tâches.
-
Comment constituer une équipe IA
- Il existe deux grandes approches. La première consiste à transformer une équipe de machine learning existante en équipe IA.
- Dans ce cas, l’équipe peut se concentrer sur les données, la validation et les benchmarks. Il est alors important d’évaluer en fonction des besoins utilisateurs et des attentes du monde réel.
- La seconde approche consiste à faire apprendre à une équipe d’ingénierie existante l’usage d’API de language models comme l’API d’OpenAI. C’est la méthode choisie par Notion. L’équipe IA initiale était donc majoritairement composée d’ingénieurs web.
- L’avantage de ce type d’équipe est sa forte compréhension des utilisateurs et sa capacité à mener des expérimentations de test. En revanche, elle a dû apprendre l’importance d’une évaluation rigoureuse et de datasets de haute qualité.
- De bonnes pratiques d’hygiène des données et des workflows solides sont également importantes pour la maintenance des datasets. Il est donc essentiel de disposer de points de données de haute qualité.
Aucun commentaire pour le moment.