LLMs haben tödliche Angst vor Ausnahmesituationen
(twitter.com/karpathy)- Andrej Karpathy verspottet mit der Aussage, dass „LLMs tödliche Angst (mortally terrified) vor Ausnahmen (
Exception) haben“, einen Nebeneffekt, der im Reinforcement Learning (RL) entstanden ist - Er weist darauf hin, dass ein LLM, wenn es auf eine Ausnahmesituation trifft, sich selbst stoppt oder übermäßig defensiv reagiert, und betont, dass Ausnahmen ein natürlicher Teil des Entwicklungsprozesses sind
- Die Formulierung „was Labore diesen armen LLMs während des RL antun (what labs are doing to these poor LLMs)“ kritisiert die Realität, dass Modelle im Trainingsprozess darauf konditioniert werden, Misserfolge zu fürchten
- Karpathy schlägt scherzhaft eine „LLM-Wohlfahrtspetition (LLM welfare petition)” vor, um „die Belohnungen bei Ausnahmen zu verbessern (improved rewards in cases of exceptions)“, und persifliert damit die Frage des Reward-Designs, damit Modelle Ausnahmen nicht fürchten, sondern mit ihnen umgehen
- Der Tweet ist nicht nur einfacher Humor, sondern wird als Hinweis darauf verstanden, dass RLHF das explorative Denken und die experimentelle Haltung von Modellen unterdrücken kann
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 Kommentare
Hacker-News-Kommentare
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
Andererseits denke ich aber auch, dass gewöhnliche menschliche Programmierer in der Praxis tatsächlich mehr try/catch-Blöcke schreiben sollten. Es gibt viele Situationen, in denen eine Exception in einem Teilbereich — selbst wenn sie selten ist — nicht die gesamte Ausführung stoppen sollte. Natürlich gibt es auch Fälle, in denen ein Stop richtig ist; das hängt vom Einzelfall ab.
b=0möglich, aber genau das wurde zuvor bereits mitabs(b) < sys.float_info.epsilongeprüft. Außerdem wird im Pre-Check einNaN-Rückgabewert zugelassen, während einNaN, das bei der tatsächlichen Berechnung entsteht, inNoneumgewandelt wird. Aus Sicht des API-Designs ist dieses Verhalten völlig unbegründet.import-Anweisungen innerhalb von Funktionen zu platzieren. Vermutlich ist das ein künstlicher Nebeneffekt davon, nur minimale Änderungen einarbeiten zu wollen, aber ich würde ein besseres Ergebnis erwarten.importlazy zu machen, um in Startup-Bedingungen Probleme mit langsamen Imports zu lösen.