Les 10 ans de XKCD 1425 (Tasks)
(simonwillison.net)- XKCD 1425 « Tasks » est une BD sur l’intuition propre au développement logiciel : une tâche peut sembler facile en apparence alors que sa difficulté réelle est tout autre. Elle a fêté son 10e anniversaire le 24 septembre 2024
- Dans la BD, « vérifier si une photo montre un oiseau » était à l’époque un problème de niveau doctorat, alors qu’aujourd’hui c’est une tâche facile à résoudre avec des vision LLM, CLIP, ResNet+ImageNet, etc.
- Certains exemples ont changé avec les progrès technologiques, mais il faut toujours une expérience approfondie pour juger quelles tâches sont faciles ou difficiles
- Les LLM ont des points faibles, comme les mathématiques ou la recherche de faits, ce qui rend encore plus difficile d’évaluer intuitivement à quelles tâches on peut les confier de façon fiable
- Comme le montre la limitation d’analyse d’images dans Claude Artifact, en programmation assistée par IA, il faut comprendre non seulement les capacités du modèle, mais aussi les contraintes de sécurité web comme les en-têtes CSP
La question que XKCD 1425 pose encore dix ans plus tard
- XKCD 1425 « Tasks » est une BD qui montre qu’en développement logiciel, il est difficile de juger sans expérience quelles tâches sont faciles et lesquelles sont difficiles
- L’exemple emblématique de la BD, « vérifier si une photo montre un oiseau », était autrefois un problème de niveau doctorat, mais peut aujourd’hui être résolu facilement grâce à diverses techniques de vision par ordinateur
- L’exemple lui-même a changé avec les progrès technologiques, mais la capacité à distinguer les problèmes faciles des problèmes difficiles demande toujours beaucoup d’expérience
Les nouvelles difficultés créées par les LLM et la programmation assistée par IA
- Il n’est pas intuitif de savoir quelles tâches les LLM peuvent résoudre de manière fiable
- Les LLM sont des systèmes informatiques, mais ils sont faibles en mathématiques
- Ils ne sont pas non plus capables d’effectuer de façon fiable une recherche factuelle
- Avec la diffusion des outils de programmation assistée par IA, de plus en plus de personnes commencent à créer leur propre logiciel sur mesure
- Les nouveaux programmeurs débutants assistés par IA doivent apprendre rapidement la différence entre les tâches faciles et les tâches difficiles
- Il existe par exemple un cas où Claude lui-même peut analyser des images, mais où il est impossible de créer un outil d’analyse d’images dans Claude Artifact
- Pour le comprendre, il faut savoir que les en-têtes CSP utilisés pour fournir Artifacts bloquent les appels du code généré vers des API LLM externes
1 commentaires
Avis sur Hacker News
Il est étonnant de voir à quel point les critères de ce qui est jugé impressionnant en IA/ML ont bougé
Il y a 10 ans, quand l’article sur les GAN est sorti, tout le monde était surexcité en disant que la qualité des images générées était incroyable : https://arxiv.org/abs/1406.2661
Les progrès accomplis depuis sont vraiment difficiles à croire
Par exemple, un enfant sait faire de l’arithmétique de base, et un ordinateur aussi ; donc, si l’enfant sait aussi parler, ils pensent que l’ordinateur devrait forcément savoir parler lui aussi
Mais les capacités d’un ordinateur sont le résultat d’un cheminement complètement différent. Fait intéressant, les LLM ont désormais un contour de capacités plus proche de l’humain, mais la manière dont ils parviennent au résultat reste totalement différente
Le pire exemple, c’était environ 180 000 recettes en texte généré par les utilisateurs qu’un client voulait normaliser. Il fallait en extraire les quantités, unités, ingrédients, étapes, etc., pour ajuster les portions, calculer les informations nutritionnelles, etc.
Il a fallu une montagne de regex pour le prétraitement et toute une armée de stagiaires avec une chaîne d’outils pour tout normaliser un par un ; et il a fallu encore bien plus de temps pour réparer le chaos créé par les stagiaires
Avec un LLM, ce travail aurait été bouclé presque immédiatement. Pour d’innombrables tâches où il fallait transformer un tas de déchets complet en données exploitables, un LLM aurait probablement simplement fait le travail
La douleur de cette époque a été un peu apaisée par le fait d’avoir vu venir cette tendance et d’avoir acheté du NVDA à ce moment-là
Avant, les nouveaux modèles de machine learning étaient discutés par des praticiens ayant le contexte nécessaire ; ils pouvaient donc comprendre pourquoi une amélioration apparemment modeste était remarquable, ainsi que les attentes raisonnables à avoir
Aujourd’hui, les nouveaux modèles de machine learning — ou plutôt d’« IA » — sont évalués par le grand public, qui ne connaît pas le contexte technique mais connaît l’exagération marketing. Même si on lui donne un excellent modèle de langage qui écrase les benchmarks linguistiques, les attentes sont tellement irréalistes qu’il est toujours déçu
Je suis encore surpris quand un modèle de langage réussit des choses relativement « simples » en grammaire ou en syntaxe, comme comprendre à quoi renvoie un pronom. Mais la plupart des gens n’ont jamais pensé au langage ou aux ordinateurs sous cet angle, et ne voient donc pas à quel point c’est difficile et impressionnant
Cette BD m’a toujours paru un peu étrange. Les humains ont passé des milliers d’années à résoudre des problèmes de navigation
Cette BD existe dans une courte période où une tâche venait enfin d’être « résolue » tandis qu’une autre ne faisait que commencer
Si l’on pense que l’entraînement de modèles consomme beaucoup d’énergie, il faut aussi penser au lancement de flottes de fusées pour maintenir des constellations de satellites
Au cours de ma carrière, il m’est arrivé plusieurs fois qu’une exigence improvisée sortie en réunion fasse varier l’estimation d’un projet de plusieurs mois
Par exemple, les localisateurs de magasins sur les sites web ou apps de détaillants calculent généralement seulement la distance à vol d’oiseau entre votre position actuelle et le magasin, puis affichent les magasins dans un certain rayon par ordre de distance
Cela pose problème dans des endroits à l’ouest de Puget Sound, comme Kingston près de Seattle. Le localisateur de Walgreens affiche 10 magasins lors d’une recherche près de Kingston, dont 9 se trouvent de l’autre côté de Puget Sound, côté Seattle. En voiture, il faut prendre un ferry d’environ 30 minutes qui coûte environ 20 dollars l’aller
Le seul magasin affiché à l’ouest est celui de Bainbridge Island, qui n’est pas vraiment un endroit où quelqu’un de Kingston irait. En réalité, le magasin de Silverdale est plus proche par la route, mais un peu plus loin à vol d’oiseau
Silverdale, trois magasins à Bremerton et un à Port Orchard sont beaucoup plus proches de Kingston en temps et en coût de déplacement que les magasins côté Seattle, mais ils n’apparaissent sur la carte qu’après avoir cliqué sur le bouton « load more »
La fonction de vérification du stock local est similaire : elle indique souvent qu’un article est « à proximité », alors qu’en réalité il n’est disponible que dans des magasins de l’autre côté de Puget Sound
À l’inverse, une tâche en apparence plus simple pouvait prendre des années parce qu’elle n’avait pas été résolue facilement et proposée sous forme d’API. Bien sûr, maintenant c’est possible
L’idée est que les non-développeurs ont du mal à savoir quelles tâches la technologie actuelle rend triviales et lesquelles elle ne sait pas résoudre. Avec le temps, la répartition entre ces deux catégories change, mais le fait que le grand public ne puisse pas facilement le savoir reste vrai
Tout ce que nous faisons aujourd’hui serait aussi extrêmement difficile à recréer à partir de zéro, mais en pratique nous n’avons pas besoin de le recréer à partir de zéro, donc ce n’est pas quelque chose de difficile à faire
On pourrait dire que « ça a mal vieilli », mais je pense que le vrai point — « il est difficile d’expliquer la différence entre ce qui est facile et ce qui est pratiquement impossible » — s’en trouve au contraire renforcé.
Presque ironiquement, les tâches difficiles et les tâches faciles ont échangé leurs places. Qui aurait pu le prévoir il y a dix ans ?
https://en.wikipedia.org/wiki/DeepFace
Si ma mémoire est bonne, quelques semaines ou mois plus tard, Yahoo/Flickr a publié un article sur ce problème, c’est-à-dire l’identification d’oiseaux, et à partir de là tout a semblé exploser du jour au lendemain. Je sais que ce n’est pas vraiment ce qui s’est passé, mais c’est ainsi que je l’ai ressenti.
Comprendre quelles tâches les LLM peuvent résoudre de manière fiable, et lesquelles non, reste très difficile et peu intuitif.
Il y a quelque temps, ma fille préparait une présentation et m’a demandé : « Papa, tu peux me trouver une image où le mot HELLO est formé avec des légumes ? »
Je me suis dit : « Bien sûr, c’est exactement un boulot pour ChatGPT », mais ChatGPT peut générer une image de chat en combinaison spatiale buvant un martini, tout en étant clairement incapable de faire une image où HELLO est écrit avec des légumes.
Finalement, je lui ai fait générer séparément une image de chaque lettre de l’alphabet en légumes, puis ma fille les a assemblées pour créer le mot à utiliser dans sa présentation.
C’est exactement la même raison pour laquelle il n’arrive pas à compter correctement les lettres de STRAWBERRY. Ce n’est pas parce qu’il ne connaît pas les concepts de fruits ou de légumes, ni parce qu’il ne comprend pas des concepts complexes comme les métaphores ou les mèmes.
Le modèle ne voit pas « hello » comme un mot composé de lettres individuelles, mais comme un seul token — avec gpt-4o, le token d’ID 24912. Il connaît le sens de ce token et ses relations avec d’autres tokens, mais il ignore fondamentalement les lettres qui composent ce mot, sauf s’il a été entraîné spécifiquement dessus ou s’il exploite une relation additionnelle fortuite présente dans les données d’entraînement.
Voici le résultat avec flux-pro sur Replicate, en entrant « vegetables spelling out the word "HELLO" » : https://ibb.co/1RVKmdk
https://ideogram.ai/assets/image/lossless/response/v_LgyXI1Q...
https://ideogram.ai/assets/image/lossless/response/V4RRDJZJS...
La carotte de la première image est assez drôle.
Bonus Hacker News : https://ideogram.ai/assets/image/lossless/response/SW0B7y4jR...
https://i.imgur.com/mvnusFd.jpeg
J’ai copié le prompt tel quel depuis le commentaire ci-dessus : https://chatgpt.com/share/66f530b0-3fb8-800a-8af9-8a3e48a31a...
Il suffit de détecter si la photo contient des couleurs d’oiseaux courantes et de lancer le produit. On corrigera plus tard, après avoir écrasé la concurrence.
J’ai suivi cette série de tutoriels pour acquérir le contexte et les bases du deep learning, et le premier cours consistait justement à créer le classificateur d’oiseaux de ce dessin.
C’était vraiment facile et amusant, et l’ensemble du parcours est excellent. Je le recommande vivement à toute personne ayant des bases en programmation et souhaitant une introduction solide au deep learning.
https://course.fast.ai/
Personne ne le souligne, mais les LLM ont progressé autant sur la première partie de la demande que sur la seconde.
ChatGPT écrit la fonction
is_point_in_national_parket indique même le shapefile pertinent en environ 30 secondes. C’est des centaines de fois plus rapide que les « quelques heures » mentionnées dans le dessin.Les LLM vision sont vraiment impressionnants.
J’ai eu un projet consistant à décrire et cataloguer plus de 20 000 images.
Avec une méthode traditionnelle réalisée par des humains, cela aurait pris des mois et coûté une somme énorme. Les descriptions devaient être d’une qualité lisible par des clients.
L’API vision d’OpenAI l’a fait pour quelques centimes par image, et le coût total a dû être inférieur à 200 dollars.
Je me demande si un jour la culture technique atteindra un seuil où ce genre de malentendu aura largement disparu.
Il y a dix ans, j’aurais dit oui, mais aujourd’hui, je pense que les progrès de l’UX/UI et l’« appisation » de tout ont coupé la personne moyenne des détails.
Du point de vue de chaque produit, c’est une bonne chose, mais globalement cela peut créer des attentes irréalistes. J’ai déjà entendu des jeunes demander « pourquoi x ne fait pas simplement y », une question que j’aurais autrefois imaginé entendre seulement chez des parents très peu technophiles.
Dans les années 80, les ordinateurs relevaient presque de la magie pour beaucoup de gens, mais la plupart n’avaient pas vraiment besoin d’interagir avec eux. Leurs attentes vis-à-vis des ordinateurs avaient à peu près autant d’effet que mes attentes concernant la vie extraterrestre.
Mais je crains que la pensée magique autour de la technologie n’ait des conséquences plus importantes, à titre individuel comme à l’échelle de la société.
@simonw, si jamais tu lis ceci, je me demandais si je pouvais te faire une petite demande.
Serait-ce trop demander que de streamer en direct des sessions de codage que tu peux partager publiquement ?
J’ai l’impression qu’il y aurait énormément à apprendre, surtout autour de l’écosystème actuel : Python, les données SQLite et JavaScript.