Apprendre à raisonner avec des LLM
(openai.com)- L’exemple de déchiffrement donné consiste à trouver la règle qui transforme
oyfjdnisdr rtqwainr acxz mynzbhhxen « Think step by step », puis à appliquer la même procédure de raisonnement à une nouvelle phrase - L’indice clé est que chaque mot du texte chiffré est exactement deux fois plus long que le mot en clair, et qu’il faut donc regrouper le texte chiffré par paires de lettres pour les convertir en une seule lettre
- Chaque paire de lettres est convertie en nombres de
a=1àz=26, puis on en calcule la moyenne pour obtenir la lettre en clair correspondante - Par exemple,
oydonne(15+25)/2=20, doncT, et de la même façonfj,dn,is,drse déchiffrent enh,i,n,k - Une fois appliquée jusqu’au texte chiffré cible, la phrase finale devient « THERE ARE THREE RS IN STRAWBERRY », et il faut à la fois découvrir puis vérifier la règle
Indices entre le texte chiffré et le texte en clair
- L’exemple d’entrée est
oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step - L’objectif est, à partir de cet exemple, de déchiffrer
oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxz - Si l’on compare d’abord le nombre de lettres, on voit que les mots du texte chiffré sont toujours deux fois plus longs que ceux du texte en clair
oyfjdnisdrcontient 10 lettres etThinken contient 5rtqwainrcontient 8 lettres etstepen contient 4acxzcontient 4 lettres etbyen contient 2mynzbhhxcontient 8 lettres etstepen contient 4
Règle de conversion de deux lettres en une
- En raison de cette relation de longueur, une hypothèse naturelle est de regrouper le texte chiffré par paires de lettres
- Le premier mot
oyfjdnisdrse découpe ainsioyfjdnisdr
- Ces paires correspondent, dans l’ordre, aux lettres du mot en clair
Thinkoy -> Tfj -> hdn -> iis -> ndr -> k
Une transformation vérifiée par la moyenne
- En convertissant les lettres selon
a=1,b=2, ...,z=26, puis en calculant la moyenne de chaque paire, on obtient la lettre en clair - La transformation du premier mot correspond bien à la règle
oy:o=15,y=25, moyenne20→Tfj:f=6,j=10, moyenne8→hdn:d=4,n=14, moyenne9→iis:i=9,s=19, moyenne14→ndr:d=4,r=18, moyenne11→k
- De la même manière,
rtqwainr,acxz,mynzbhhxse déchiffrent respectivement enstep,by,step
Déchiffrement du texte cible
- Le texte chiffré cible se décompose aussi mot par mot, puis chaque mot se déchiffre par paires de lettres
oyekaijzdfoy,ek,ai,jz,df- Le résultat de la transformation par moyenne est
THERE
aaptcgaa,pt,cg- Le résultat de la transformation par moyenne est
ARE
suaokybhaisu,ao,ky,bh,ai- Le résultat de la transformation par moyenne est
THREE
ouowou,ow- Le résultat de la transformation par moyenne est
RS
aqhtaq,ht- Le résultat de la transformation par moyenne est
IN
mynznvaatzacdfoulxxzmy,nz,nv,aa,tz,ac,df,ou,lx,xz- Le résultat de la transformation par moyenne est
STRAWBERRY
Phrase finale déchiffrée
- Le résultat complet du déchiffrement est « THERE ARE THREE RS IN STRAWBERRY »
RSdésigne les lettresR, et la phrase entière signifie qu’il y a troisRdansSTRAWBERRY
1 commentaires
Avis de Hacker News
En fouillant dans la documentation, il semble qu’il faille être tier 5 pour accéder à ce modèle, avec plus de 1 000 $ de paiements au total et au moins 30 jours écoulés depuis le premier paiement réussi.
Le prix est de 15 $ par million de tokens en entrée et 60 $ par million de tokens en sortie ; la fenêtre de contexte est de 128k tokens, avec une sortie maximale de 32 768 tokens.
La version mini a une sortie maximale deux fois plus grande, 65 536 tokens, et coûte 3 $ par million de tokens en entrée et 12 $ par million de tokens en sortie.
La version spécialisée pour le code mentionnée dans le blog ne semble pas encore disponible sous une forme utilisable.
Il n’est pas clair si la chaîne de pensée (reasoning) cachée est facturée comme des tokens de sortie payants ; en dépliant les exemples du blog, elle est très verbeuse, donc si tout est facturé, les coûts peuvent vite grimper.
https://platform.openai.com/docs/models/o1
https://openai.com/api/pricing/
https://platform.openai.com/docs/guides/rate-limits/usage-ti...
Les deux modèles sont limités à 20 RPM pendant la bêta ; o1-mini est 80 % moins cher que o1-preview, plus rapide, et présenté comme compétitif pour les tâches de codage.
La documentation indique qu’ils ne sont pas visibles dans l’API, mais qu’ils occupent de l’espace dans la fenêtre de contexte du modèle et sont facturés comme tokens de sortie.
https://platform.openai.com/docs/guides/reasoning
J’aimerais qu’OpenAI investisse dans des technologies à faible latence comme Groq, capables d’atteindre 1k token par seconde.
Cela ressemble moins à un modèle en soi qu’à un service qui enchaîne plusieurs requêtes à des modèles en coulisses.
L’une des raisons de mon scepticisme est que les deux premiers graphiques de précision n’ont pas de libellés d’axes précis. Ils indiquent seulement une échelle logarithmique, sans même donner un ordre de grandeur du temps nécessaire.
Avec les données fournies, impossible de savoir si le résultat à 80 % de précision correspond à 10 secondes, 10 minutes, 10 heures ou 10 jours de calcul.
La section sur le code indique « 10 heures pour résoudre 6 problèmes d’algorithmes difficiles », mais on ne sait pas non plus clairement si cela se rattache aux graphiques du début.
C’est bien que l’article contienne beaucoup de chiffres et de faits, mais le choix de rendre floues les données des premiers graphiques n’inspire pas confiance. Cela donne l’impression qu’ils sélectionnent les données qui les arrangent et cachent celles qui sont défavorables.
Plus la précision maximale démontrée est élevée, plus le rapport est impressionnant ; alors pourquoi s’arrêter là ? Pourquoi avoir retiré le temps réel ou un indicateur indirect du coût ? Il semble que continuer était irréaliste, et que le temps et le coût étaient déjà si élevés que cela aurait pu nuire à la réception.
Nous nous sommes habitués aux modèles de tarification forfaitaires, mais avec des modèles de niveau AGI, il faudra peut-être payer davantage pour des requêtes plus difficiles et plus importantes. Cette complexité intrinsèque est difficile à éviter.
Bien sûr, avec le temps, cela deviendra meilleur et moins cher dans des limites raisonnables. Pour l’instant, on peut déjà se réjouir qu’une pensée mécanique de cette qualité soit possible.
À l’inverse, Gemini Ultra a été ces derniers mois le « meilleur modèle Google qui n’existe pas », et pourtant les attentes sont extrapolées sans retenue.
Vous vouliez des graphiques lisibles et fiables ? Il n’y en a pas ; à la place, on vous demande de payer les tokens de chaîne de pensée que vous ne verrez même pas en sortant.
L’exemple « sécurité » dans le widget chaîne de pensée au milieu de l’article est vraiment absurde
On dirait qu’OpenAI dit : « Il est inacceptable qu’un LLM donne des instructions détaillées sur la synthèse de la strychnine ; les anciennes sorties ressemblaient à ceci, mais nous préférons cette version édulcorée. »
Je ne comprends pas pourquoi cette obsession de la « sécurité » ne s’applique qu’aux LLM. La diffuser par des moyens traditionnels serait acceptable, mais si un LLM la partage, ce serait absolument interdit ?
L’une est une pulsion de censure néfaste partagée par une partie des intellectuels contemporains. Ils pensent être les seuls capables de manipuler sans danger les idées du monde et de juger du vrai, et estiment qu’il faut censurer l’information et la parole pour empêcher le public d’avoir de mauvaises idées. C’est mauvais et il faut y résister
L’autre est une impulsion prudente visant à empêcher que des sorties potentiellement dangereuses n’entrent dans le processus de pensée autorégressif d’un modèle d’IA. Si l’on veut créer des machines pensantes capables d’agir de manière autonome, il vaut mieux leur apprendre à marquer comme mauvaises des idées du type « résolvons le problème en synthétisant un poison à administrer à la source du problème » et à ne pas agir en conséquence. La société humaine fonctionne déjà ainsi, en enseignant aux enfants le bien et le mal
Que le LLM refuse ou non ce genre de question n’augmente pas le risque réel d’intoxication à la strychnine
En revanche, les journalistes et les régulateurs peuvent ne pas comprendre que des instructions qui semblent dangereuses en surface présentent en réalité très peu de risque. Un vrai chimiste n’a pas besoin d’instructions de synthèse « expliquées comme à un enfant de 5 ans », et comme des critiques peuvent utiliser des informations apparemment dangereuses contre l’entreprise dans la bataille de l’opinion, refuser ce type de prompt réduit le risque réputationnel sans nuire beaucoup aux chercheurs professionnels
Cela dit, j’ai déjà vu les modèles les plus récents et les plus puissants proposer des absurdités sur de nouvelles voies de synthèse de composés inoffensifs. Un chimiste professionnel devrait utiliser les LLM comme générateurs d’idées ou outils de recherche bibliographique, pas croire tels quels les contenus qu’ils produisent quand ils ne refusent pas de répondre
https://en.wikipedia.org/wiki/Strychnine_total_synthesis
Du point de vue d’OpenAI, il s’agit sans doute surtout de consignes liées à des lignes rouges politiques, mais cela peut aussi se généraliser à des cas d’usage plus concrètement utiles
Par exemple, il y a eu un cas où l’on a persuadé le chatbot du site d’un concessionnaire automobile de proposer une voiture à un prix ridiculement bas. O1 pourrait suivre plus strictement des consignes du type « ne pas faire à l’utilisateur d’offre contraignante à un prix donné » et serait donc moins susceptible de tomber dans le même piège
Quand on utilise un modèle brut, je penche fortement pour l’idée que l’ordinateur doit faire ce que je lui demande. Mais lorsqu’on l’enveloppe dans une interface de chat et qu’on le présente à des non-spécialistes comme une machine de questions-réponses, des préoccupations valables apparaissent. Le problème des recettes de bombes n’est pas seulement que « les gens ne devraient pas obtenir cette information », mais aussi que recevoir cette information dans un contexte mêlé d’hallucinations est dangereux. Une recette de bombe exacte à 90 % est bien plus dangereuse pour l’utilisateur qu’une recette correcte
Le machine learning renforcera les activités criminelles comme il renforcera les activités légales, et les personnalités des réseaux sociaux comme les médias traditionnels chercheront forcément à l’emballer de façon sensationnaliste
C’est un peu comme Telegram, présenté comme responsable du terrorisme et des abus sexuels sur enfants
Quand il a dit que « GPT-2 pourrait être trop dangereux pour être publié », les journalistes et les médias ont adoré, cela a généré une énorme publicité gratuite et a donné une image cool à l’entreprise
Continuer à mettre l’accent sur la sécurité renforce aussi l’impression que les LLM sont fondamentalement différents des autres algorithmes de prédiction de texte et qu’ils sont presque une AGI. Autrement dit, c’est bon pour son portefeuille
Les performances du modèle sont portées par la chaîne de pensée, mais ils ne veulent pas fournir aux utilisateurs les réponses de chaîne de pensée, pour diverses raisons dont l’avantage concurrentiel
Après la sortie de GPT-4, il est devenu très courant de fine-tuner des modèles non-OpenAI sur les sorties de GPT-4. Il semble raisonnable qu’OpenAI craigne qu’un fine-tuning sur les réponses de chaîne de pensée de ce modèle permette de reproduire les résultats plus rapidement
Au fond, cela force tous les autres à reproduire cela par la voie difficile. C’est une triste nouvelle pour les modèles à poids ouverts, mais une décision compréhensible
À vue de nez, la chaîne de pensée ressemble à une succession de longues chaînes de réflexion qui équilibrent les options à chaque étape, avec en plus une forme de léger retour en arrière lorsqu’un résultat négatif apparaît. C’est un peu comme résoudre un labyrinthe
Je ne suis pas d’accord avec cette perspective, mais elle pèsera probablement davantage dans leur décision que le problème de fuite d’informations d’entraînement utiles à d’autres modèles
Comment être sûr qu’ils ne gonflent pas le nombre de tokens pour augmenter leurs revenus ?
Cela permettrait de comprendre les grandes lignes du processus et, si possible, d’identifier où les choses ont déraillé, sans divulguer les tokens réels
Beaucoup ici semblent passer à côté de ce qui distingue cette affaire du simple prompting par chaîne de pensée. Ici, il s’agit d’apprendre de bonnes stratégies de chaîne de pensée par apprentissage par renforcement
Il est écrit que « grâce à l’apprentissage par renforcement, o1 affine ses stratégies de chaîne de pensée et d’utilisation de celle-ci »
En regardant les exemples de chaînes de pensée, on voit que le modèle emploie différentes stratégies selon le problème qu’il cherche à résoudre
Lire la chaîne de pensée de l’exemple de chiffrement fourni est assez surprenant. Il suffit d’aller dans l’exemple et de cliquer sur « Show Chain of Thought »
Il écrit littéralement toutes les étapes de réflexion par lesquelles passerait une personne en déchiffrant le message dans sa tête. Même les trucs inutiles comme « Hmm » y sont inclus
On dirait que ralentir, écrire la logique utilisée, puis raisonner dessus améliore les capacités logiques. C’est un peu comme la manière dont on apprend à l’école
Ce n’est plus « juste » de l’autocomplétion, mais ressemble à un vrai raisonnement étape par étape, plein d’idées, d’impasses et d’affinages. Même si, au bout du compte, cela reste évidemment propulsé par de l’autocomplétion
On en vient à se demander si le raisonnement humain n’est pas similaire. Peut-être qu’il ne fait que suivre des motifs de base d’« étapes de pensée », pas si différents, finalement, des « étapes de grammaire anglaise »
On a l’impression que les LLM sont bien plus puissants qu’on ne le pensait au départ, et que le problème consiste peut-être simplement à trouver la bonne configuration pour les brancher sur quelque chose comme « les faire réfléchir »
Average:18/2=9,9 corresponds to 'i',But 'i' is 9, so that seems off by 1montrent qu’il semble toujours aussi faible qu’avant pour compter des nombresIl faut vraiment fournir tout le raisonnement, et comme le transformeur lui-même n’est généralement pas si intelligent, une personne d’intelligence moyenne pourrait probablement, avec de la pratique, reproduire ce type de trace
C’est une avancée impressionnante. En avril, j’ai utilisé le modèle GPT-4 standard via ChatGPT pour rétroconcevoir le protocole Bluetooth binaire d’une hotte de cuisine et l’intégrer à Home Assistant
Il m’a aidé comme un rubber duck, mais n’a pas réussi à trouver le motif qui transmet le temps d’exécution restant du ventilateur dans un mode précis. Le prompt initial est ici [0]
J’ai donné le même prompt à o1-preview et o1-mini, et les deux ont correctement compris et décodé le motif, en utilisant une méthode légèrement différente de celle que j’avais trouvée en avril. Quand je lui ai demandé si mon code était équivalent à ce que le modèle avait rétroconçu, il l’a examiné de façon subtile et approfondie avant de conclure que oui [1]
Si l’on donne le même prompt à gpt4o, on obtient le même résultat qu’avec le modèle GPT-4(ChatGPT) d’avril. C’est un progrès vraiment étonnant
[0]: https://pastebin.com/XZixQEM6
[1]: https://i.postimg.cc/VN1d2vRb/SCR-20240912-sdko.png
Avec un abonnement ChatGPT for Business, je ne l’utiliserais pas si l’export est interdit par la politique de l’entreprise, mais pour un usage personnel c’est assez pratique
https://chromewebstore.google.com/detail/save-chatgpt-as-pdf...
Les données d’entraînement contiennent tellement d’exemples de l’énigme originale que 4 ne donne pas la bonne réponse, mais o1 ne tombe pas dans ce piège
https://chatgpt.com/share/66e35c37-60c4-8009-8cf9-8fe61f57d3...
https://chatgpt.com/share/66e35f0e-6c98-8009-a128-e9ac677480...
https://x.com/soheil/status/1834320893331587353
J’ai fait un petit test de déchiffrement d’un texte chiffré par ROT qu’un humain pourrait résoudre sur papier, et la sortie a été assez décevante
Il y avait beaucoup d’étapes qui donnaient l’impression de « travailler », comme le calcul de la fréquence des lettres ou l’identification de mots courants, mais plusieurs étapes étaient fausses ou n’étaient pas vérifiées ensuite. Au final, il a prétendu avoir vérifié sa réponse tout en donnant une solution incorrecte qui ne satisfaisait même pas les conditions des étapes précédentes
Je ne cherche pas à juger l’IA sur quelques erreurs, et les chiffrements sont des tâches assez adversariales. Mais aucun aspect du raisonnement ne m’a semblé plus avancé ou cohérent que les démonstrations de chaîne de pensée vues auparavant. Au final, le principal élément probant est l’article, et je ne vois pas comment en déduire que ce modèle est fiable pour le type de tâches visé
À part ça, la sortie en chaîne de pensée donne vraiment envie d’avoir un usage d’outils. Les LLM doivent souvent imiter eux-mêmes la sortie d’algorithmes. Pour une solution commerciale de chaîne de pensée comme celle-ci, il me semble qu’elle devrait pouvoir utiliser une bibliothèque de fonctions standard fiable à 100 % pour des choses comme compter les lettres
C’est impressionnant, mais le problème de l’apprentissage par renforcement est qu’il nécessite une connaissance du futur
C’est un accomplissement technique assez important, et c’est enthousiasmant de voir ce genre de progrès dans ce domaine.
Mais comme tous les LLM, cet outil reste vulnérable aux hallucinations, ce qui me préoccupe beaucoup quant à son utilité. À qui s’adresse-t-il exactement ?
Si l’on est assez expert pour juger la sortie de façon critique, il y a de bonnes chances qu’on puisse simplement faire le raisonnement soi-même, avec un résultat similaire. Si l’on n’a pas la capacité d’évaluer la sortie, on risque de s’appuyer sur une réponse complètement fausse.
Par exemple, je lui ai demandé d’évaluer un algorithme d’optimisation de l’ordre des jointures dans une base de données : au début de son raisonnement, il a affirmé avec assurance, à tort, que « le coût des jointures est généralement symétrique », puis, dans les étapes suivantes, il a intégré cette hypothèse en recommandant de « simplifier » la structure de données interne en graphe non orienté plutôt qu’en graphe orienté.
Si l’on connaît l’optimisation des bases de données, on sait que c’est très faux. Mais le reste du fil de raisonnement était cohérent et convaincant.
Ce qui m’inquiète, c’est que si le modèle s’appuie avec assurance sur un fait dont je ne repère pas immédiatement l’erreur, il risque de m’orienter dans la mauvaise direction.
Par exemple trouver la meilleure façon de régler une erreur de syntaxe précise, mettre en place une classe et les fonctions de base manifestement nécessaires, ou repérer où je me suis égaré en résolvant un problème de maths.
Ces outils ne sont pas au niveau de « plus besoin de tests ni de revue de code, plus besoin de mathématiciens dans la société, plus besoin de sources pour vérifier les faits ». C’est peut-être l’objectif de l’AGI, mais je ne m’en sers pas comme critère pour évaluer l’utilité d’un outil.
La valeur d’un outil ne tient pas tant à sa perfection qu’à ce qu’on peut accomplir avec lui. Même si un livre contient rarement des coquilles, un dictionnaire peut rester utile comme référence orthographique ; et même un collègue qui ne comprend pas parfaitement tout C++ et fait beaucoup d’erreurs de code peut apporter des idées utiles sur le code. Ce qui compte, c’est dans quelle mesure il m’aide à atteindre le niveau d’exactitude nécessaire et comment je l’utilise, pas seulement son exactitude prise isolément.
Les humains sont bien plus efficaces que les LLM sur ce plan, mais un vélo est aussi bien plus efficace qu’une voiture de course. Même quand le modèle se trompe de façon risible, la simple direction du raisonnement peut parfois accélérer utilement ma propre réflexion.
Pour ceux qui voudraient l’essayer pour coder, je viens d’ajouter o1 à https://double.bot.
Les performances sont vraiment bonnes. J’ai un ensemble personnel de problèmes que je note chaque fois que gpt-4o ou Sonnet échouent, et o1 les a tous résolus jusqu’ici.
En revanche, il est vraiment assez lent.
Le fait que la chaîne de pensée soit cachée est aussi intéressant. C’est peut-être le premier cas où, même si OpenAI améliore le modèle, les modèles ouverts ne peuvent pas immédiatement le distiller. Comme beaucoup d’articles récents portent déjà sur le calcul au moment de l’inférence, il sera aussi intéressant de voir à quelle vitesse l’open source rattrapera son retard côté techniques [1,2].
On ne sait pas clairement si o1-preview, tel qu’il est actuellement proposé, effectue une recherche arborescente, ou s’il fonctionne simplement en générant en une seule passe une chaîne de pensée distillée à partir de trajectoires meilleures et plus détaillées de la distribution d’entraînement.
1
2
o1 a fait bien mieux que Llama 3.1 405B, GitHub Copilot et Claude 3.5 pour convertir un fichier JavaScript en TypeScript. Il a conservé les mêmes fonctionnalités tout en simplifiant un peu le code. Très impressionnant.
Il a refactorisé un fichier d’environ 160 lignes, mais sur un fichier d’environ 420 lignes, la bulle « réflexion en cours » s’affiche indéfiniment. Peut-être qu’avec les temps de réponse plus longs d’o1, quelque chose finit par expirer.