Les LLM ont une peur mortelle des situations d’exception
(twitter.com/karpathy)- Andrej Karpathy tourne en dérision un effet secondaire apparu pendant le processus d’apprentissage par renforcement (RL) en disant que les « LLM ont une peur mortelle (mortally terrified) des exceptions »
- Il souligne que, lorsqu’un LLM rencontre une situation d’exception, il a tendance à s’arrêter de lui-même ou à réagir de manière excessivement défensive, et insiste sur le fait que les exceptions font naturellement partie du processus de développement
- La formule « ce que les labos font subir à ces pauvres LLM pendant le RL (what labs are doing to these poor LLMs) » critique la réalité d’un entraînement qui conditionne les modèles à craindre l’échec
- Avec la plaisanterie d’une « pétition pour le bien-être des LLM » (LLM welfare petition) afin d’« améliorer les récompenses en cas d’exception (improved rewards in cases of exceptions) », Karpathy tourne en dérision le problème de conception des récompenses pour que les modèles traitent les exceptions sans les craindre
- Ce tweet n’est pas seulement une blague : il peut être interprété comme un message soulignant que le RLHF peut freiner la pensée exploratoire et l’attitude expérimentale des modèles
I don't know what labs are doing to these poor LLMs during RL but they are mortally terrified of exceptions, in any infinitesimally likely case. Exceptions are a normal part of life and healthy dev process. Sign my LLM welfare petition for improved rewards in cases of exceptions.
1 commentaires
Commentaires Hacker News
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
null/None/undefinedpour une même valeur, ce qui rend le code difficile à lire, et même difficile à interpréter pour le LLM lui-même. On dirait que les objectifs RL pénalisent sévèrement les exceptions, mais n’accordent que très peu de points à la concision ou à la lisibilité du code.Mais d’un autre côté, je pense que les programmeurs humains ordinaires devraient effectivement écrire davantage de blocs try/catch. Il est courant d’avoir des situations où une exception survenant dans un domaine, même très rare, ne devrait pas arrêter l’ensemble du fonctionnement. Bien sûr, il y a aussi des cas où l’arrêt est la bonne solution ; cela dépend du contexte.
b=0, or cette condition est déjà vérifiée avecabs(b) < sys.float_info.epsilon. Et le pré-check autorise le retour deNaN, alors que siNaNapparaît dans le calcul réel, il est remplacé parNone. Du point de vue du design d’API, c’est un comportement sans justification.importà l’intérieur des fonctions. J’imagine que c’est un effet secondaire artificiel causé par une optimisation visant à ne refléter que des modifications minimales, mais j’attends un meilleur résultat.importlazy, pour résoudre des problèmes de lenteur d’import dans des conditions de startup.