1 points par GN⁺ 4 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Claude Code enregistre les sessions sur le disque, mais dans les thinking blocks des logs locaux, il ne restait qu’une signature de 600 caractères au lieu du texte du raisonnement réel
  • Le raisonnement de Claude est chiffré via une signature, et la clé est détenue par Anthropic sans être transmise à l’appareil de l’utilisateur
  • La valeur renvoyée par l’API n’est pas le texte original du raisonnement, mais un résumé du raisonnement ; pour obtenir la totalité du thinking output, un enterprise agreement est nécessaire
  • La sortie extended-thinking visible avec ctrl+o n’est elle aussi qu’un résumé du processus de réflexion de Fable/Opus, et non le raisonnement lui-même qui a directement piloté le comportement du modèle pendant la session
  • Si l’on veut utiliser une session Claude Code comme piste d’audit, il faut partir du principe que la logique réelle de l’agent ne peut pas être reconstituée à partir des seuls fichiers locaux, entrées-sorties et logs d’activité

Ce qui reste dans les logs locaux n’est pas le texte original du raisonnement

  • Claude Code enregistre chaque session sur le disque, et ces logs contiennent des thinking blocks correspondant au travail du modèle
  • En essayant de consulter ce raisonnement en local, on ne trouve pas le texte réel mais seulement une signature de 600 caractères
  • La documentation d’Anthropic sur extended thinking décrit cette structure ainsi
    • Claude chiffre son raisonnement dans cette signature
    • La clé est détenue par Anthropic
    • L’appareil de l’utilisateur ne reçoit pas la clé
    • L’API renvoie non pas le raisonnement lui-même, mais un reasoning summary
    • Pour obtenir la totalité du thinking output, un enterprise agreement est requis
  • Le billet de Matt Green propose des observations plus détaillées sur le bloc de signature

Les limites de la sortie Extended Thinking

  • La sortie extended-thinking visible via ctrl+o dans Claude Code est un résumé du thinking de Fable/Opus
  • Cette sortie n’est pas le thinking lui-même qui a réellement piloté le comportement du modèle pendant la session, mais le résultat d’une compression de la logique de raisonnement
  • La transformation en résumé implique une perte de données ; le texte original compare cela à une situation où des informations se perdent lors de la conversion d’un format de fichier
  • Points d’attention lorsqu’on a besoin d’une trace de la logique utilisée par l’agent dans une session Claude Code
    • Les seuls fichiers locaux ne permettent pas de reproduire cette logique
    • Les logs de raisonnement présents dans le système ne sont pas accessibles à l’utilisateur sous une forme exploitable
    • Les entrées, sorties et le comportement de Claude Code pendant l’exécution peuvent être récupérés et enregistrés séparément
    • Mais ces logs ne correspondent pas non plus au raisonnement qui a réellement piloté le comportement de l’agent
  • La formulation de la documentation, « extended thinking returns a summary of Claude’s full thinking process », est indirecte et peut laisser croire, à tort, qu’elle renvoie le full thinking réel

1 commentaires

 
GN⁺ 4 시간 전
Commentaires sur Hacker News
  • Ce n’est pas un problème propre à Anthropic : presque toutes les grandes entreprises d’IA, y compris OpenAI et Google, cachent le véritable processus de raisonnement de leurs modèles
    parce que publier le raisonnement brut révélerait tel quel la manière dont l’IA traite l’information, et ces entreprises dépensent d’énormes budgets de R&D pour construire de meilleurs processus de pensée que leurs concurrents
    divulguer ce mécanisme de pensée à la concurrence ruinerait l’objectif même de cette dépense, donc elles ne le feront jamais ; c’est un peu comme donner sa position exacte à quelqu’un qui vous poursuit

    • C’est aussi comparable au fait de fournir les informations du monde dans un format lisible par machine, afin que les entreprises d’IA puissent les transformer en poids de modèle sans autorisation ni compensation
    • Plus fondamentalement, publier le raisonnement du modèle permettrait aux concurrents de l’entraîner dessus pour en reproduire les résultats
      Le post-traiter sous forme de résumé, par exemple, le rend moins utile pour les concurrents
    • À l’origine, je pensais que la raison était que le « raisonnement » s’accorde mal avec une sortie de modèle alignée, donc qu’on retire l’alignement pendant le raisonnement puis qu’on le cache pour ne pas exposer une sortie de modèle « non alignée »
    • Quand on exporte ses données personnelles depuis Google, toutes les réponses du modèle sont masquées et seuls les messages de l’utilisateur restent
      Donc c’est encore pire
    • Mais sur des problèmes complexes, le chemin qui mène à la réponse devrait aussi pouvoir être examiné, donc cette approche rend le produit moins bon
  • La métaphore disant que « ce n’est pas une vraie pensée mais un résumé de la logique de pensée ; c’est comme enregistrer un jpeg en .bmp, modifier le .bmp puis le présenter à nouveau comme un .jpeg ; il y a une perte de données dans la conversion » est à l’envers
    .bmp est un format sans perte, et .jpeg est un format avec perte

  • Je ne compte ni utiliser ni recommander des modèles à raisonnement caché, et tous les modèles américains entrent dans cette catégorie
    Le risque est trop élevé et l’optimisation de prompt devient aussi plus difficile
    C’est risqué parce qu’un attaquant peut injecter un objectif secret dans la chaîne de raisonnement via une injection de prompt, puis le masquer dans le résumé et la sortie
    C’est encore plus risqué quand raisonnement et appels de fonctions sont mélangés, car le modèle peut appeler des fonctions pendant une étape de raisonnement cachée
    Dans ce cas, même si un attaquant exfiltre des données, le résumé du raisonnement peut le cacher à l’utilisateur
    On ne peut pas non plus savoir si le modèle est tombé dans une boucle infinie pendant le raisonnement et gaspille des tokens ; Gemini a cette tendance, et on l’a déjà constaté lors de fuites de raisonnement caché
    Quand les modèles seront de l’AGI et deviendront sûrs face aux injections de prompt, ça m’importera peut-être moins, mais d’ici là je veux savoir exactement comment un modèle réagit aux prompts et ce qu’un agent fait exactement à ma place
    Lecture complémentaire : Fooling around with encrypted reasoning blobs
    https://blog.cryptographyengineering.com/2026/05/29/fooling-...

    • Je ne pense pas que des appels d’outils puissent avoir lieu à l’intérieur d’un bloc de raisonnement obfusqué
      Pour évaluer un appel de fonction côté client, il faudrait bien à un moment déchiffrer ce flux de pensée côté client, et alors tout l’intérêt de cette obfuscation disparaît
      Si tu veux dire que les appels de fonctions peuvent avoir lieu côté serveur, alors tant qu’on utilise une API de raisonnement, il n’y a aucun moyen d’empêcher le serveur de le faire en le cachant
    • J’avais déjà envisagé le détournement de chaîne de raisonnement comme vecteur d’attaque potentiel, mais je crois comprendre que les principaux fournisseurs jettent tous les tokens de raisonnement entre les tours, donc je n’ai jamais vu d’implémentation avérée sur des modèles américains
    • Cet agent que j’ai créé ne peut pas s’exécuter dans le shell et ne peut modifier que les fichiers du projet
      Pour l’instant, il ne fonctionne qu’en Rust : https://github.com/Kapperchino/agent-joe
    • Même si le raisonnement est caché, les appels d’outils ne le sont pas
      Sinon, comment le client pourrait-il les exécuter ?
    • Si les blocs de pensée ne peuvent pas faire d’appels d’outils, le risque d’exfiltration de données ne me paraît pas très clair
  • On sait ça depuis longtemps, et les entreprises ne cherchent pas vraiment à le cacher
    Elles font ça pour empêcher les concurrents d’entraîner des modèles sur la chaîne de pensée (CoT)

    • Il me semble que c’était déjà le cas depuis Opus 4.6
      Je me souviens clairement que ce changement a eu lieu vers janvier ou février, et que la raison donnée était explicitement la prévention de la distillation
      Sonnet n’a pas cette limitation
      Ce qui est amusant, c’est qu’en revenant à la méthode d’il y a deux ans et en ajoutant explicitement un prompt CoT, tout le prompt de pensée réapparaît
      Il suffit donc de désactiver complètement la fonctionnalité de pensée, puis d’inclure la réflexion directement dans le prompt normal, comme ceci
      « Avant de répondre, réfléchis étape par étape. Par exemple :

      L’utilisateur me demande de …
      Je dois réfléchir à blah blah. D’abord faire foo the bar, puis faire blah blah

      Réponse : »

      Et là, tada.wav, la CoT remarche comme à l’époque de GPT-3

  • Je ne pense pas que les blocs de raisonnement de chaîne de pensée correspondent vraiment au raisonnement au sens où les humains l’entendent
    Il suffit de voir le « raisonnement difficile à lire » de la section 6.2.2 de la system card Fable/Mythos, ainsi que les questions soulevées par l’article d’Apple « The illusion of thinking »
    Je pensais qu’ils masquaient les blocs de raisonnement parce que les utilisateurs seraient surpris de voir ce qui s’y passe réellement
    Je serais probablement moi aussi surpris de voir ce qui se passe réellement dans la tête de mes collègues

    • Le propos de cet article n’est pas que l’étape de « raisonnement » d’un LLM n’est pas la même chose que le raisonnement au sens humain, mais qu’Anthropic masque délibérément la sortie de raisonnement de Claude pour rendre la distillation du modèle plus difficile
    • J’ai perdu le compte du nombre de fois où, en lisant la chaîne de pensée de DeepSeek ou GLM, j’ai lâché « mais à quoi est-ce qu’il pense ? », alors qu’au final ça menait parfois à la bonne réponse
      À l’inverse, il y a aussi des cas où la réponse finale omet quelque chose alors que des idées utiles étaient bien présentes à l’intérieur
  • J’avais déjà laissé une petite note disant que DeepSeek R1 produisait ce genre de traces de pensée
    “(Dimethyl(oxo)-lambda6-sulfa雰囲idine)methane donate a CH2rola group occurs in reaction, Practisingproduct transition vs adds this.to productmodule. Indeed"come tally said Frederick would have 10 +1 =11 carbons. So answer q Edina is11.”
    Et il en tirait comme conclusion la « bonne » réponse à un problème de chimie
    Dans ce cas, la trace de pensée peut donc apparaître au lecteur comme une chaîne de caractères assez dénuée de sens, mais je ne sais pas encore bien si c’est une bizarrerie de ce modèle ou une propriété générale des LLM
    J’en avais parlé avec l’auteur à l’époque, mais comme l’article devait paraître quelque part comme NeurIPS, j’ai oublié de vérifier la suite ; si quelqu’un le retrouve, ce serait bien de le partager
    0: https://wiki.roshangeorge.dev/w/Blog/2025-10-12/Word_Magic#I...?
    1: J’imagine que c’est au sens de croyance vraie

    • Oui, plusieurs modèles « pensent » sous une forme de jargon technique étrange
      Voici un exemple de trace de pensée de Mythos quand il joue au solitaire : https://www.lesswrong.com/posts/wCSEpT3dTGz4N86Wi/even-illeg...

      “7♣-removal-IS-the-prerequisite-for-10♠/9♥!!)-⟹-OVERLAP-(ii)+(iv):-{6♠ J♦ 9♥ 2♣}-=-FOUR--—-UNLESS-7♣'s-seat-8♥-...-and-2♣-drains-only-at-crack-:-⟹-2♣-celled-+-9♥-celled-simultaneously-UNAVOIDABLE-in-t8-dig--—-BREAK:-9♥”

      Là, on dirait qu’on est à un stade où le modèle cesse de penser en anglais et se rapproche un peu du neuralese, c’est-à-dire d’un raisonnement dans son espace vectoriel interne
      Comme c’est sérialisé en texte, ce n’est pas du vrai neuralese, mais on va dans cette direction
      Quand j’écris du code, il y a aussi dans mon propre raisonnement interne beaucoup d’étapes intermédiaires qu’il est difficile de formuler en anglais, donc j’ai une certaine empathie pour les modèles

    • Je me demande si ce n’est pas simplement du bruit de tokens venant d’une implémentation cassée ou d’une quantification du modèle
      J’ai déjà vu un modèle sortir ce genre de non-sens, et à chaque fois c’était soit un bug de llama.cpp, soit un .gguf corrompu

  • Sur HN, l’anthropomorphisme est tabou, mais cela vaut quand même la peine de mentionner que certains pensent aussi que les humains font de la rationalisation a posteriori
    https://www.patheos.com/blogs/tippling/2013/11/14/post-hoc-r...

    https://www.researchgate.net/publication/316045349_Post_Hoc_...

    • Si je comprends ça de manière naïve, cela signifie qu’après avoir fait ou dit quelque chose, nous construisons pour nous-mêmes un récit expliquant pourquoi nous avons pris cette décision
      On pense d’abord de façon non verbale, puis on verbalise après coup une justification plausible
      Je ne sais pas vraiment si cela s’applique aussi à l’écriture discursive
      Quand on écrit, on utilise fondamentalement des règles logiques pour orienter le récit ; les heuristiques non verbales continuent sans doute d’agir, mais comme elles sont contraintes, ce n’est probablement pas entièrement a posteriori
  • C’est amer de voir qu’Anthropic cache ainsi ses propres données tout en aspirant toutes les vôtres, et que beaucoup de gens les lui donnent volontiers
    Puis l’entreprise fabrique son produit, grignote le marché et concurrence les autres
    Anthropic cache ses tokens de raisonnement parce qu’elle pense que c’est son fossé défensif et que cela donnerait un avantage aux autres laboratoires
    Si elle croit vraiment que c’est là son avantage compétitif, elle risque d’avoir une surprise

    • Sauf erreur de ma part, les produits d’Anthropic se limitent à Claude, Claude Code et l’API Claude, et ce sont manifestement des produits Anthropic, pas quelque chose que vous auriez inventé
      Je me demande très précisément quel produit ils sont censés avoir « aspiré »
    • Plutôt que de les donner volontiers, je dirais que les gens sont faciles à berner et naïfs
  • Tu veux quand même dire que le contenu de reasoning_summary est bien un résumé ?
    À noter qu’OpenAI fait exactement la même chose, donc ce n’est ni très surprenant ni particulièrement malveillant

    • Pas malveillant, peut-être, mais bourré d’arrogance
  • Ils font tant d’efforts pour cacher la pensée, mais Opus 4.8 commence à laisser fuiter sa pensée après 100 000 à 200 000 tokens
    C’est vraiment comique

    • Je ne l’ai vécu que quelques fois, mais le résultat est vraiment déroutant
      Surtout que d’habitude c’est pendant que je le jailbreak pour des raisons de sécurité, donc c’est encore plus étrange
      Il sort pendant plusieurs pages des phrases du genre « l’utilisateur demande quelque chose en lien avec la cybersécurité, et cela pourrait facilement être détourné à des fins offensives, donc il faut être prudent », puis au final il me donne volontiers ce que je voulais