La recherche en IA te passionne ?
Les papers et avancées qui comptent, expliqués simplement, chaque soir. Gratuit.
Inclus dès l'inscription : notre sélection des meilleurs guides & comparatifs IA.
Choisis ton rythme
Gratuit · Pas de spam · Désabonnement en 1 clic
Le défi initial : des notes dispersées
Trois semaines après s'être plongé dans l'apprentissage du machine learning, un obstacle inattendu a été rencontré. Ce n'était pas la complexité des modèles ou des mathématiques qui posait problème, mais la gestion des notes. L'auteur avait pris soin de rédiger ses réflexions dans ses propres mots, en créant des analogies qui lui parlaient et en notant des questions à approfondir plus tard. Cependant, la structure de ses notes laissait à désirer.
Les notes étaient disséminées dans plusieurs applications et formats. Certaines se trouvaient dans Notion, d'autres dans Google Docs, et quelques-unes dans des fichiers texte épars. Cette absence de cohérence obligeait à passer les vingt premières minutes de chaque session d'étude à reconstituer le contexte. Qu'avait-on déjà compris ? Où en était-on resté ? Quelle explication avait été la plus éclairante ? Il y avait l'impression de devoir réapprendre sa propre pensée avant de pouvoir progresser.
Dans un moment de frustration, une approche qui semblait évidente a été tentée. Une conversation avec une IA a été ouverte, les notes y ont été collées, et une demande d'aide pour étudier a été faite. Contre toute attente, cela a fonctionné mieux que prévu. Les réponses de l'IA étaient alignées avec la façon de penser de l'auteur, et il y avait enfin l'impression d'avoir un outil qui s'adaptait à lui, plutôt que l'inverse.
Pour la première fois, l'apprentissage semblait fluide et continu, plutôt que fragmenté.
L'apparition des premiers problèmes
Au début, le système semblait fonctionner sans accroc. L'IA utilisait les notes pour expliquer les concepts de manière compréhensible, faisant gagner du temps. Tout semblait en ordre.
Puis, des incohérences ont commencé à apparaître. Parfois, l'IA utilisait un exemple qui n'était pas reconnu. D'autres fois, elle omettait des détails qui étaient certains d'avoir été notés. Ces erreurs n'étaient pas flagrantes, mais elles étaient suffisamment décalées pour être remarquées si l'on y prêtait attention.
Il a d'abord été pensé que c'était de sa faute. Peut-être que les notes n'avaient pas été formulées clairement. Peut-être avait-on oublié ce qui avait été écrit.
Puis, une réponse de l'IA a fait tiquer. Une explication d'un concept basé sur les notes a été demandée, un concept qui était déjà bien compris. L'IA a donné une réponse claire et structurée, mais elle a cité une formule qui, selon elle, provenait des notes.
Une pause a été faite, car il était su que cette formule n'était pas dans les notes. Une vérification a été effectuée, et elle n'était pas cachée quelque part où elle aurait été oubliée. Elle n'existait tout simplement pas.
C'est à ce moment-là que le problème est devenu impossible à ignorer. La réponse n'était pas manifestement fausse, elle semblait même correcte. Si l'attention n'avait pas été portée, cette réponse aurait probablement été acceptée sans la remettre en question.
Ce type d'erreur est insidieux. Ce n'est pas quelque chose que l'on peut détecter immédiatement, mais cela peut altérer silencieusement la compréhension sans que l'on s'en rende compte.
Revoir l'organisation des notes
Avant de corriger l'IA, il était essentiel de revoir les notes. Jusqu'à ce moment-là, le problème avait été perçu comme externe. L'IA était incohérente, donc il avait été supposé que le problème venait de ses réponses. Mais en examinant la configuration, il est devenu évident qu'une base fiable n'était pas fournie à l'IA.
Les notes manquaient de structure cohérente. Certaines étaient rédigées en paragraphes, d'autres en listes à puces. Certaines contenaient des analogies, d'autres non. Même lorsque deux notes traitaient de sujets similaires, elles étaient formatées de manière complètement différente. Il était logique qu'il y ait du mal à naviguer dans ses propres notes. S'attendre à ce qu'un système d'IA les interprète de manière cohérente était encore plus irréaliste.
Il a été décidé de tout transférer vers Markdown. Non pas parce que c'est un outil puissant, mais parce qu'il impose la simplicité. Texte brut, formatage léger, et juste assez de structure pour rendre les choses prévisibles.
Chaque note suivait désormais le même schéma : un concept en haut, une courte explication, une analogie personnelle, et une section pour les points encore flous. Ce n'était pas parfait, mais c'était cohérent. Et cette cohérence était plus précieuse que tout le reste.
Ce qui a surpris, c'est à quel point cela a amélioré les choses, même avant de réintégrer l'IA. Les notes sont devenues plus faciles à parcourir, à revisiter, et à développer. Il n'y avait plus de temps perdu à réinterpréter ses propres écrits.
Des métadonnées ont également été ajoutées en haut de chaque fichier, comme le sujet et le niveau de difficulté. Cela n'a pas changé la façon d'utiliser directement les notes, mais cela les a rendues plus faciles à organiser une fois qu'elles ont été considérées comme une collection plutôt que comme des fragments isolés.
En rétrospective, cela a été le premier véritable changement. Le système n'a pas commencé avec l'IA. Il a commencé par rendre l'entrée suffisamment structurée pour être utilisable.
Au-delà de l'interface de chat
Jusqu'à ce point, l'IA était encore utilisée via une interface de chat. Cela fonctionnait pour des interactions rapides, mais les limitations sont vite devenues évidentes. Chaque fois qu'une question était posée, il fallait à nouveau coller les notes ou compter sur le contexte restant dans la conversation.
Cela ne ressemblait pas à un système. C'était comme recommencer à chaque fois.
Un système plus cohérent était souhaité, où les notes faisaient déjà partie de la configuration, plutôt que quelque chose à réintroduire à chaque session. C'est ce qui a poussé à dépasser le chat et à utiliser l'API.
En termes simples, cela signifiait écrire un petit script qui envoie les notes et les questions directement au modèle et reçoit des réponses en retour. Pas de fenêtre de chat, pas de copier-coller manuel, juste une demande structurée et une réponse structurée.
Le changement en soi n'était pas aussi compliqué qu'il y paraît, mais cela a modifié la façon de penser l'interaction. Au lieu de considérer l'IA comme un interlocuteur, elle est devenue un composant autour duquel il était possible de construire.
Il y avait quelques éléments pratiques à prendre en compte rapidement. La clé de l'API se comporte comme un mot de passe, donc elle doit être manipulée avec précaution. Et puisque l'utilisation est facturée par demande, il est facile de sous-estimer la rapidité avec laquelle les coûts peuvent s'accumuler si l'on ne fait pas attention.
Une fois tout configuré, l'approche la plus simple possible a été adoptée. Toutes les notes ont été chargées, envoyées avec chaque question, et le modèle a été laissé répondre.
Pendant un certain temps, le système a fonctionné exactement comme attendu.
Puis cela a recommencé à se détériorer.
Les limites du système
À mesure que les notes s'accumulaient, le système a recommencé à montrer des signes d'incohérence.
La même question était posée et des réponses légèrement différentes étaient reçues. Parfois, des détails qui étaient connus pour être dans les notes n'apparaissaient tout simplement pas. Ce n'était pas évident au début, mais le schéma est devenu difficile à ignorer. Plus de notes étaient ajoutées, moins les réponses semblaient fiables.
C'est alors que le concept de la fenêtre de contexte a été découvert.
Le modèle ne peut traiter qu'une quantité limitée de texte à la fois. Tout ce qui est envoyé—les notes, la question, et même des parties de la conversation précédente—doit tenir dans cette limite. Si ce n'est pas le cas, une partie est tout simplement ignorée.
Il n'y a pas d'avertissement lorsque cela se produit. Le modèle ne dit pas qu'il a manqué quelque chose. Il répond simplement en fonction de la portion qu'il a pu lire.
Une fois que cela a été compris, l'incohérence a pris sens. Le modèle n'ignorait pas les notes. Il ne pouvait tout simplement pas les voir toutes.
La limite elle-même est mesurée en tokens, pas en mots. Les tokens sont des morceaux de texte plus petits, et ils s'accumulent plus rapidement que l'on ne le pense, surtout avec du matériel technique. Quelques pages de notes peuvent rapidement se transformer en milliers de tokens.
Ce qui signifie que l'envoi de toutes les notes avec chaque question n'était pas seulement inefficace. Cela allait finalement échouer, peu importe quoi.
Cette réalisation a changé le problème. Il ne s'agissait plus de rendre l'IA "meilleure". Il s'agissait de travailler dans une contrainte qui n'avait pas été comprise auparavant.
La vraie question est devenue : comment s'assurer que le modèle voit les bonnes informations sans essayer de lui montrer tout ?
Une approche plus ciblée
Une fois que la compréhension a été acquise que le modèle ne pouvait pas tout voir à la fois, le problème est devenu plus clair. Il n'était pas nécessaire qu'il lise toutes les notes à chaque fois. Il fallait juste qu'il lise les bonnes parties.
Jusqu'à ce moment-là, l'approche avait été simple : envoyer tout et laisser le modèle s'en débrouiller. Cela fonctionnait lorsque les notes étaient petites, mais cela a échoué dès qu'elles ont dépassé ce que le système pouvait gérer.
L'approche a donc été inversée.
Au lieu d'envoyer toutes les notes, une recherche a été effectuée d'abord. Lorsque la question était posée, le système cherchait les sections les plus pertinentes, les extrayait et n'envoyait que ce contexte plus petit et ciblé au modèle.
Ce petit changement a fait une différence notable.
Les réponses sont devenues plus cohérentes, et plus important encore, elles ont commencé à ressembler aux notes à nouveau. Les explications reflétaient la manière dont elles avaient été écrites, y compris les analogies qui avaient eu du sens lors de leur apprentissage initial.
Cette approche est souvent appelée génération augmentée par récupération, mais l'idée elle-même est simple. On récupère d'abord l'information pertinente, puis on génère une réponse basée sur celle-ci.
Ce qui a frappé, c'est que la méthode ne rendait pas le modèle plus intelligent. Elle le rendait juste plus ancré. Au lieu de s'appuyer sur ce qu'il "savait", il était désormais ancré dans ce qui avait été réellement écrit.
Cette distinction importait plus que prévu.
Le moment de la révélation
Même après avoir corrigé la récupération, il y avait encore quelque chose qui ne semblait pas tout à fait juste.
En général, les réponses étaient ancrées dans les notes. Elles reflétaient les explications, les analogies et la manière dont la compréhension avait été construite. Mais de temps en temps, quelque chose glissait qui n'appartenait pas.
Une réponse a rendu cela évident.
Une demande a été faite au système d'expliquer la rétropropagation en utilisant les notes. Cela a bien commencé, en parcourant l'idée d'une manière qui correspondait à la façon dont elle avait été écrite. Puis, à mi-chemin, une formule mathématique détaillée a été introduite.
Il y a eu un arrêt immédiat. Il était su que...


