Comment l'IA de Duolingo apprend ce que vous devez apprendre
L'IA qui alimente l'application d'apprentissage des langues aujourd'hui pourrait perturber l'éducation de demain
C'est l'heure du déjeuner quand votre le téléphone vous envoie un ping avec un hibou vert qui vous rappelle joyeusement de "Keep Duo Happy!" C'est un coup de pouce de Duolingo, l'application d'apprentissage des langues populaire, dont les algorithmes savent que vous êtes le plus susceptible de faire vos 5 minutes de pratique d'espagnol à cette heure de la journée. L'application choisit ses mots de notification en fonction de ce qui a fonctionné pour vous dans le passé et des spécificités de vos réalisations récentes, ajoutant une touche de nouveauté accrocheuse. Lorsque vous ouvrez l'application, la leçon en file d'attente est calibrée pour votre niveau de compétence et comprend une révision de certains mots et concepts que vous avez ratés lors de votre dernière session.
Duolingo, avec son approche ludique et sa distribution de personnages de dessins animés brillants, présente une interface utilisateur simple pour guider les apprenants à travers un programme menant à la maîtrise de la langue, voire à la fluidité. Mais dans les coulisses, des systèmes sophistiqués d'intelligence artificielle (IA) sont à l'œuvre. Un système en particulier, appelé Birdbrain, améliore en permanence l'expérience de l'apprenant avec des algorithmes basés sur des décennies de recherche en psychologie de l'éducation, combinés aux avancées récentes de l'apprentissage automatique. Mais du point de vue de l'apprenant, on a simplement l'impression que le hibou vert s'améliore de plus en plus dans la personnalisation des leçons.
Nous avons tous les trois été intimement impliqués dans la création et l'amélioration de Birdbrain, dont Duolingo a récemment lancé sa deuxième version. Nous considérons notre travail chez Duolingo comme faisant avancer la mission globale de l'entreprise de "développer la meilleure éducation au monde et de la rendre universellement disponible". Les systèmes d'IA que nous continuons à affiner sont nécessaires pour étendre l'expérience d'apprentissage au-delà des plus de 50 millions d'apprenants actifs qui effectuent actuellement environ 1 milliard d'exercices par jour sur la plateforme.
Bien que Duolingo soit connu comme une application d'apprentissage des langues, les ambitions de l'entreprise vont plus loin. Nous avons récemment lancé des applications couvrant l'alphabétisation des enfants et les mathématiques de troisième année, et ces extensions ne sont que le début. Nous espérons que tous ceux qui veulent de l'aide pour leurs apprentissages académiques pourront un jour se tourner vers le sympathique hibou vert dans leur poche qui leur crie : "Prêt pour votre leçon quotidienne ?"
En 1984, le psychologue scolaire Benjamin Bloom a identifié ce qu'on a appelé le problème 2-sigma de Bloom. Bloom a constaté que les étudiants moyens qui ont été encadrés individuellement ont obtenu deux écarts-types de mieux qu'ils n'auraient dans une salle de classe. C'est suffisant pour faire passer les résultats des tests d'une personne du 50e centile au 98e.
Lorsque Duolingo a été lancé en 2012 par Luis von Ahn et Severin Hacker dans le cadre d'un projet de recherche de l'Université Carnegie Mellon, l'objectif était de créer un tuteur de langue en ligne facile à utiliser qui pourrait se rapprocher de cet effet de suralimentation. Les fondateurs n'essayaient pas de remplacer les grands professeurs. Mais en tant qu'immigrants eux-mêmes (du Guatemala et de Suisse, respectivement), ils ont reconnu que tout le monde n'a pas accès à de bons professeurs. Au cours des années qui ont suivi, l'équipe grandissante de Duolingo a continué à réfléchir à la manière d'automatiser trois attributs clés des bons tuteurs : ils connaissent bien le matériel, ils gardent les étudiants engagés et ils suivent ce que chaque étudiant sait actuellement, afin qu'ils puissent présenter du matériel qui n'est ni trop facile ni trop difficile.
Duolingo utilise l'apprentissage automatique et d'autres technologies de pointe pour imiter ces trois qualités d'un bon tuteur. Tout d'abord, pour garantir notre expertise, nous utilisons des outils de traitement du langage naturel pour aider nos développeurs de contenu à auditer et à améliorer nos quelque 100 cours dans plus de 40 langues différentes. Ces outils analysent le vocabulaire et le contenu grammatical des leçons et aident à créer une gamme de traductions possibles (afin que l'application accepte les réponses des apprenants lorsqu'il existe plusieurs façons correctes de dire quelque chose). Deuxièmement, pour garder les apprenants engagés, nous avons gamifié l'expérience avec des points et des niveaux, utilisé la technologie de synthèse vocale pour créer des voix personnalisées pour chacun des personnages qui peuplent le monde Duolingo et affiné nos systèmes de notification. Quant à entrer dans la tête des apprenants et à leur donner la bonne leçon, c'est là que Birdbrain entre en jeu.
Birdbrain est crucial car l'engagement de l'apprenant et la difficulté de la leçon sont liés. Lorsque les élèves reçoivent du matériel trop difficile, ils sont souvent frustrés et abandonnent. Le matériel qui semble facile peut les garder engagés, mais cela ne les met pas autant au défi. Duolingo utilise l'IA pour garder ses apprenants dans la zone où ils restent engagés mais apprennent toujours à la limite de leurs capacités.
L'un de nous (Settles) a rejoint l'entreprise six mois seulement après sa création, a aidé à établir diverses fonctions de recherche, puis a dirigé les efforts d'IA et d'apprentissage automatique de Duolingo jusqu'à l'année dernière. Au début, peu d'organisations faisaient de l'apprentissage interactif en ligne à grande échelle. L'analogue le plus proche de ce que Duolingo essayait de faire était des programmes qui adoptaient une approche "d'apprentissage de la maîtrise", notamment pour le tutorat en mathématiques. Ces programmes proposaient des problèmes autour d'un concept similaire (souvent appelé «composante de connaissances») jusqu'à ce que l'apprenant démontre une maîtrise suffisante avant de passer à l'unité, à la section ou au concept suivant. Mais cette approche n'était pas nécessairement la mieux adaptée au langage, où un seul exercice peut impliquer de nombreux concepts différents qui interagissent de manière complexe (tels que le vocabulaire, les temps et le genre grammatical), et où il existe différentes façons dont un apprenant peut répondre (comme traduire une phrase, transcrire un extrait audio et remplir les mots manquants).
Les premiers travaux d'apprentissage automatique de Duolingo ont abordé des problèmes assez simples, comme la fréquence de retour à un mot ou à un concept de vocabulaire particulier (qui s'appuyait sur la recherche pédagogique sur la répétition espacée). Nous avons également analysé les erreurs des apprenants pour identifier les points faibles du programme, puis réorganisé l'ordre dans lequel nous avons présenté le matériel.
Duolingo a ensuite doublé ses efforts pour créer des systèmes personnalisés. Vers 2017, l'entreprise a commencé à investir davantage dans l'apprentissage automatique, et c'est à ce moment-là que les coauteurs Brust et Bicknell ont rejoint l'équipe. En 2020, nous avons lancé la première version de Birdbrain.
Avant Birdbrain, Duolingo avait fait quelques tentatives non liées à l'IA pour maintenir l'engagement des apprenants au bon niveau, notamment en estimant la difficulté des exercices en fonction d'heuristiques telles que le nombre de mots ou de caractères dans une phrase. Mais l'entreprise a souvent constaté qu'elle était confrontée à des compromis entre la quantité d'apprentissage réel des personnes et leur niveau d'engagement. L'objectif avec Birdbrain était de trouver le bon équilibre.
La question avec laquelle nous avons commencé était la suivante : pour tout apprenant et pour tout exercice donné, pouvons-nous prédire la probabilité que l'apprenant réussisse cet exercice ? Pour faire cette prédiction, Birdbrain doit estimer à la fois la difficulté de l'exercice et la compétence actuelle de l'apprenant. Chaque fois qu'un apprenant termine un exercice, le système met à jour les deux estimations. Et Duolingo utilise les prédictions résultantes dans son algorithme de générateur de session pour sélectionner dynamiquement de nouveaux exercices pour la prochaine leçon.
Eddie Guy
Lorsque nous avons créé la première version de Birdbrain, nous savions qu'elle devait être simple et évolutive, car nous l'appliquerions à des centaines de millions d'exercices. Il devait être rapide et nécessiter peu de calculs. Nous avons décidé d'utiliser une saveur de régression logistique inspirée de la théorie de la réponse aux items de la littérature psychométrique. Cette approche modélise la probabilité qu'une personne donne une réponse correcte en fonction de deux variables, qui peuvent être interprétées comme la difficulté de l'exercice et la capacité de l'apprenant. Nous estimons la difficulté de chaque exercice en résumant la difficulté de ses éléments constitutifs comme le type d'exercice, ses mots de vocabulaire, etc.
Le deuxième ingrédient de la version originale de Birdbrain était la possibilité d'effectuer des mises à jour simples sur le plan informatique sur ces paramètres de difficulté et de capacité. Nous mettons cela en œuvre en effectuant une étape de descente de gradient stochastique sur les paramètres pertinents chaque fois qu'un apprenant termine un exercice. Cela s'avère être une généralisation du système de classement Elo, qui est utilisé pour classer les joueurs aux échecs et à d'autres jeux. Aux échecs, lorsqu'un joueur gagne une partie, son estimation de capacité augmente et celle de son adversaire diminue. Dans Duolingo, lorsqu'un apprenant se trompe dans un exercice, ce système diminue l'estimation de ses capacités et augmente l'estimation de la difficulté de l'exercice. Tout comme aux échecs, l'ampleur de ces changements dépend de l'appariement : si un joueur d'échecs novice gagne contre un joueur expert, le score Elo de l'expert sera considérablement réduit et le score de son adversaire sera considérablement augmenté. De même, ici, si un apprenant débutant réussit correctement un exercice difficile, les paramètres de capacité et de difficulté peuvent changer considérablement, mais si le modèle s'attend déjà à ce que l'apprenant soit correct, aucun paramètre ne change beaucoup.
Pour tester les performances de Birdbrain, nous l'avons d'abord exécuté en "mode fantôme", ce qui signifie qu'il a fait des prédictions qui ont simplement été enregistrées pour analyse et non encore utilisées par le générateur de session pour personnaliser les leçons. Au fil du temps, au fur et à mesure que les apprenants terminaient les exercices et obtenaient de bonnes ou de mauvaises réponses, nous avons vu si les prédictions de Birdbrain sur leur réussite correspondaient à la réalité. Si ce n'était pas le cas, nous avons apporté des améliorations.
Faire face à environ un milliard d'exercices chaque jour a nécessité beaucoup d'ingénierie inventive.
Une fois satisfaits des performances de Birdbrain, nous avons commencé à exécuter des tests contrôlés : nous avons activé la personnalisation basée sur Birdbrain pour une fraction des apprenants (le groupe expérimental) et comparé leurs résultats d'apprentissage avec ceux qui utilisaient encore l'ancien système heuristique (le groupe témoin). Nous voulions voir comment Birdbrain affecterait l'engagement des apprenants, mesuré par le temps passé sur les tâches dans l'application, ainsi que l'apprentissage, mesuré par la rapidité avec laquelle les apprenants avançaient vers un matériel plus difficile. Nous nous demandions si nous verrions des compromis, comme nous l'avions si souvent fait auparavant lorsque nous essayions d'apporter des améliorations en utilisant des techniques de développement de produits ou d'ingénierie logicielle plus conventionnelles. Pour notre plus grand plaisir, Birdbrain a constamment augmenté les mesures d'engagement et d'apprentissage.
Dès le début, nous avons été mis au défi par l'ampleur des données que nous devions traiter. Faire face à environ un milliard d'exercices chaque jour a nécessité beaucoup d'ingénierie inventive.
L'un des premiers problèmes de la première version de Birdbrain était d'adapter le modèle à la mémoire. Pendant la formation nocturne, nous avions besoin d'accéder à plusieurs variables par apprenant, y compris leur estimation de capacité actuelle. Parce que de nouveaux apprenants s'inscrivaient chaque jour et parce que nous ne voulions pas jeter des estimations pour les apprenants inactifs au cas où ils reviendraient, la quantité de mémoire augmentait chaque nuit. Au bout de quelques mois, cette situation est devenue insoutenable : nous ne pouvions pas mettre toutes les variables en mémoire. Nous devions mettre à jour les paramètres chaque nuit sans tout mettre en mémoire d'un coup.
Notre solution consistait à changer la façon dont nous stockions à la fois les données de cours de chaque jour et le modèle. À l'origine, nous stockions tous les paramètres d'un modèle de parcours donné dans un seul fichier, chargeions ce fichier en mémoire et traitions séquentiellement les données de la journée pour mettre à jour les paramètres du parcours. Notre nouvelle stratégie consistait à décomposer le modèle : une pièce représentait tous les paramètres de difficulté d'exercice (qui ne devenaient pas très importants), tandis que plusieurs morceaux représentaient les estimations de la capacité d'apprentissage. Nous avons également regroupé les données d'apprentissage de la journée dans des fichiers séparés en fonction des apprenants impliqués et, surtout, avons utilisé la même fonction de segmentation pour les apprenants à la fois pour le modèle de cours et les données des apprenants. Cela nous a permis de charger uniquement les paramètres de cours pertinents pour un groupe donné d'apprenants pendant que nous traitions les données correspondantes sur ces apprenants.
L'une des faiblesses de cette première version de Birdbrain était que l'application attendait qu'un apprenant ait terminé une leçon avant de signaler à nos serveurs les exercices que l'utilisateur avait réussis et les erreurs qu'il avait commises. Le problème avec cette approche est qu'environ 20 % des cours commencés sur Duolingo ne sont pas terminés, peut-être parce que la personne a raccroché son téléphone ou est passée à une autre application. A chaque fois que cela arrivait, Birdbrain perdait les données pertinentes, qui étaient des données potentiellement très intéressantes ! Nous étions à peu près sûrs que les gens n'abandonnaient pas au hasard - dans de nombreux cas, ils abandonnaient probablement une fois qu'ils avaient touché du matériel qui était particulièrement difficile ou intimidant pour eux. Ainsi, lorsque nous sommes passés à la version 2 de Birdbrain, nous avons également commencé à diffuser des données tout au long de la leçon en morceaux. Cela nous a donné des informations essentielles sur les concepts ou les types d'exercices qui posaient problème.
Un autre problème avec le premier Birdbrain était qu'il ne mettait à jour ses modèles qu'une fois toutes les 24 heures (pendant un point bas dans l'utilisation mondiale des applications, qui était la nuit au siège de Duolingo, à Pittsburgh). Avec Birdbrain V2, nous voulions traiter tous les exercices en temps réel. Le changement était souhaitable parce que l'apprentissage s'opère à la fois à court et à long terme ; si vous étudiez un certain concept maintenant, vous vous en souviendrez probablement dans 5 minutes, et avec un peu de chance, vous en retiendrez également une partie la semaine prochaine. Pour personnaliser l'expérience, nous devions mettre à jour très rapidement notre modèle pour chaque apprenant. Ainsi, quelques minutes après qu'un apprenant ait terminé un exercice, Birdbrain V2 mettra à jour son "modèle mental" de son état de connaissances.
En plus de se produire en temps quasi réel, ces mises à jour ont également fonctionné différemment car Birdbrain V2 a une architecture différente et représente différemment l'état des connaissances d'un apprenant. Auparavant, cette propriété était simplement représentée par un nombre scalaire, car nous devions garder la première version de Birdbrain aussi simple que possible. Avec Birdbrain V2, nous avons obtenu l'adhésion de l'entreprise pour utiliser davantage de ressources informatiques, ce qui signifie que nous avons pu créer un modèle beaucoup plus riche de ce que chaque apprenant sait. En particulier, Birdbrain V2 s'appuie sur un modèle de réseau neuronal récurrent (en particulier, un modèle de mémoire longue à court terme, ou LSTM), qui apprend à compresser l'historique des interactions d'un apprenant avec les exercices Duolingo en un ensemble de 40 nombres ou dans le jargon des mathématiciens, un vecteur à 40 dimensions. Chaque fois qu'un apprenant termine un autre exercice, Birdbrain mettra à jour ce vecteur en fonction de son état antérieur, de l'exercice que l'apprenant a terminé et s'il l'a bien fait. C'est ce vecteur, plutôt qu'une valeur unique, qui représente désormais la capacité d'un apprenant, que le modèle utilise pour faire des prédictions sur la façon dont il se comportera lors d'exercices futurs.
La richesse de cette représentation permet au système de saisir, par exemple, qu'un apprenant donné excelle avec les exercices au passé mais a du mal avec le futur. V2 peut commencer à discerner la trajectoire d'apprentissage de chaque personne, qui peut varier considérablement de la trajectoire typique, permettant une plus grande personnalisation dans les leçons que Duolingo prépare pour cette personne.
Une fois que nous nous sommes assurés que Birdbrain V2 était précis et stable, nous avons effectué des tests contrôlés comparant son expérience d'apprentissage personnalisée à celle du Birdbrain original. Nous voulions être sûrs d'avoir non seulement un meilleur modèle d'apprentissage automatique, mais aussi que notre logiciel offrait une meilleure expérience utilisateur. Heureusement, ces tests ont montré que Birdbrain V2 entraînait systématiquement une augmentation des mesures d'engagement et d'apprentissage. En mai 2022, nous avons désactivé la première version de Birdbrain et sommes entièrement passés au nouveau système amélioré.
Une grande partie de ce que nous faisons avec Birdbrain et les technologies connexes s'applique en dehors de l'apprentissage des langues. En principe, le cœur du modèle est très général et peut également être appliqué aux nouvelles applications de mathématiques et d'alphabétisation de notre entreprise, ou à tout ce que Duolingo proposera ensuite.
Birdbrain nous a donné un bon départ pour optimiser l'apprentissage et rendre le programme plus adaptatif et efficace. Jusqu'où nous pouvons aller avec la personnalisation est une question ouverte. Nous aimerions créer des systèmes adaptatifs qui répondent aux apprenants en fonction non seulement de ce qu'ils savent, mais également des approches pédagogiques qui leur conviennent le mieux. À quels types d'exercices un apprenant fait-il vraiment attention ? Quels exercices semblent faire cliquer les concepts pour eux ?
C'est le genre de questions avec lesquelles les grands enseignants pourraient se débattre lorsqu'ils considèrent divers élèves en difficulté dans leurs classes. Nous ne pensons pas qu'il soit possible de remplacer un excellent enseignant par une application, mais nous espérons pouvoir mieux imiter certaines de ses qualités et atteindre davantage d'apprenants potentiels dans le monde grâce à la technologie.
C'est l'heure du déjeuner quand votre