Los LLM le temen fatalmente a las excepciones
(twitter.com/karpathy)- Andrej Karpathy satiriza un efecto secundario surgido durante el proceso de aprendizaje por refuerzo (RL) al decir que “los LLM le temen fatalmente (mortally terrified) a las excepciones (Exception)”
- Señala que, cuando un LLM se encuentra con una situación excepcional, tiende a detenerse por sí mismo o a reaccionar de forma excesivamente defensiva, y enfatiza que las excepciones son una parte natural del proceso de desarrollo
- La expresión “qué les están haciendo los labs a estos pobres LLM durante RL (what labs are doing to these poor LLMs)” critica la realidad de un entrenamiento que condiciona a los modelos a temer al fracaso
- Karpathy propone en broma una “petición por el bienestar de los LLM (LLM welfare petition)” para “mejorar las recompensas en casos de excepciones (improved rewards in cases of exceptions)”,
satirizando así el problema del diseño de recompensas para que los modelos manejen las excepciones sin temerles - Este tuit no es solo humor, sino que se interpreta como un mensaje que señala que RLHF puede inhibir el pensamiento exploratorio y la actitud experimental de los modelos
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 comentarios
Comentarios en Hacker News
https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
null/None/undefinedpara el mismo valor; eso hace que el código sea difícil de leer, e incluso difícil de interpretar para el propio LLM. Parece que el objetivo de RL penaliza mucho las excepciones, pero no da muchos puntos por la concisión o la legibilidad del códigoPero por otro lado, también creo que los programadores humanos comunes de verdad deberían escribir más bloques
try/catch; hay muchas situaciones donde una excepción en un área, por rara que sea, no debería detener toda la operación. Claro, también hay casos donde sí debe detenerla; depende del contextodivision by zerosolo puede ocurrir cuandob=0, pero eso ya se revisó conabs(b) < sys.float_info.epsilon; además, en el pre-check se permite devolverNaN, pero si durante la operación real saleNaN, entonces lo cambia aNone. Desde el diseño del API, es un comportamiento sin fundamentoimportdentro de la función. Supongo que es un efecto artificial surgido de optimizar para aplicar cambios mínimos, pero esperaría algo mejorimport, con el objetivo de resolver problemas de imports lentos en condiciones de startup