5 puntos por GN⁺ 2024-08-19 | 1 comentarios | Compartir por WhatsApp
  • Una cadena de Markov es un modelo estadístico simple para elegir la siguiente palabra, pero por las distorsiones que produce al no captar del todo el significado, puede generar salidas más graciosas que un LLM
  • El humor surge de una sorpresa ligera e inesperada, y el “snap” que rompe la expectativa después de establecer un patrón familiar hace más fuerte al chiste
  • Como los LLM buscan el siguiente token más plausible usando mucho contexto y cálculo de probabilidades, mientras mejor funcionan más se acercan a frases promedio y predecibles
  • En una comparación entre ChatGPT 3.5 y una cadena de Markov entrenada con la King James Bible y un libro de texto de ciencias de la computación, la cadena de Markov casi tiene sentido pero al final provoca un cambio absurdo de significado
  • Los LLM actuales no son una buena opción para la escritura creativa o la generación de chistes, y un modelo de lenguaje para esas tareas tendría que ser categóricamente distinto de los LLM actuales

Por qué la cadena de Markov parece más graciosa

  • Los ejemplos de cadenas de Markov entrenadas con un dataset de la King James Bible y libros de texto de ciencias de la computación mezclan el estilo bíblico con términos de programación y producen frases que “casi tienen sentido, pero se desmoronan al final”
  • A ChatGPT 3.5 se le pidió generar una salida similar, pero el resultado se acerca más a frases ordenadas y con un significado estable
  • Ambos ejemplos son casos seleccionados, pero la comparación elige buenos candidatos de los dos lados
  • Las frases de la cadena de Markov contienen significados extraños y, cuanto más se acercan al final, más provocan giros sin sentido

La cadena de Markov se parece a “un LLM muy tonto”

  • Cuando los LLM empezaron a explicarse de forma masiva, a veces se comparaban con “una cadena de Markov muy inteligente”, pero hoy también se puede ver a la cadena de Markov como “un LLM muy tonto”
  • ChatGPT es un LLM, es decir, un tipo de Large Language Model
    • Hay modelos muy grandes de más de 300GB, y también modelos de menos de 10GB
    • Aunque sean pequeños, normalmente no se les llama “small language model”, sino LLM pequeños
  • Una cadena de Markov también predice la siguiente palabra con base en el contexto actual, pero es un modelo estadístico simple que no considera semántica, dimensionalidad ni matemáticas vectoriales especializadas
  • La función de sugerencia de siguiente palabra en la parte superior del teclado del celular normalmente se construye con cadenas de Markov, porque cuesta poco ejecutarla y puede actualizarse fácilmente para adaptarse al estilo de mensajes del usuario
  • Si se necesita generar una frase con un objetivo específico, muchas veces un LLM lo hace mejor, pero la precisión no necesariamente se traduce en algo más gracioso

El humor es “una sorpresa ligera e inesperada”

  • El humor se resume como unserious surprise, es decir, una sorpresa no seria
  • Un buen chiste tiene un “snap” agradable y claro
    • “snap” se usa para evitar la carga semántica del término punchline
    • Cuanto menor es la sorpresa, menos risa da
  • La razón por la que el mismo chiste da menos risa al oírlo varias veces es que la sorpresa disminuye
  • La razón por la que el humor “aleatorio” puede sentirse poco gracioso es que, aunque las palabras sean impredecibles, la expectativa de que serán impredecibles ya es predecible
  • Si se reutiliza un patrón familiar y luego se rompe la expectativa, el snap se vuelve más fuerte
    • “banana, apple, orange, vehicular manslaughter” establece el patrón de una lista de frutas de una sola palabra y rompe la expectativa con una expresión criminal
  • Escribir chistes se parece, en general, a romper patrones

Mientras más clara sea la escena, más fuerte es el snap

  • Si se usa un lenguaje más original o más descriptivo, la escena se siente más real y el snap puede hacerse más fuerte
  • En vez de escribir simplemente “he was shot”, escribir “he was pierced by a 35mm” vuelve la escena más concreta
  • En lugar de “he fell”, una expresión como “his face met the ground” hace la escena más vívida
  • Empezar desde la mitad de una escena también puede ser efectivo
    • “a urinal cake? I’m not falling for that one again” hace imaginar qué pasó antes y aumenta la sensación de realidad de la escena
  • La buena escritura de chistes y la buena escritura en general comparten parte de su objetivo
    • Los clichés desperdician palabras porque dejan la escena en un estado no realizado

Las condiciones para que el humor funcione

  • Como lo que cuenta como “sorpresa ligera e inesperada” no es universal, el humor es subjetivo
  • El humor vulgar puede no dar risa si se toma demasiado en serio, o puede fallar por ser demasiado predecible
  • Un anti-joke solo puede dar risa cuando la estructura misma del chiste ya es predecible
  • El absurdismo funciona solo si hay disposición para aceptarlo
  • Se pueden romper normas culturales, pero esa ruptura debe entenderse como algo no serio
  • El autor, que es un estadounidense monolingüe en inglés, pudo incluso hacer un chiste exitoso usando “no” de una forma culturalmente inesperada en un entorno donde no se hablaba inglés

Los LLM están optimizados hacia la predictibilidad

  • Para predecir bien una oración hace falta mucho contexto, y los LLM aprovechan ese contexto
  • El funcionamiento básico de un LLM consiste en encontrar el siguiente token más probable mediante cálculos complejos
  • Si el corpus está compuesto por lenguaje razonable, entonces cuanto mejor sea el LLM, más predecibles serán sus salidas
  • Por esta característica, un LLM puede ser una mala opción para la escritura creativa
    • Un párrafo generado sin mucha ingeniería de prompts puede verse fácilmente como algo escrito por un LLM
    • El resultado se siente como la frase más promedio posible dentro del contexto
  • Pedirle a un LLM una “idea original” es casi una contradicción, porque no fue diseñado para hacer eso

Los LLM actuales no sirven para generar chistes

  • Para hacer chistes hay que torcer expresiones comunes de una manera inesperada para cambiar su significado
  • Un buen LLM está optimizado precisamente para evitar ese tipo de desvíos
  • El autor no está de acuerdo con la idea de que la comedia no pueda generarse algorítmicamente
    • La comedia puede analizarse y medirse
    • Con suficiente respaldo, quizá sería posible generar comedia bajo demanda
    • Que sea posible no significa que deba hacerse
  • Los LLM actuales no son la herramienta adecuada para esa tarea
  • Los LLM en etapas tempranas eran más graciosos, y con la generación de imágenes pasaba lo mismo
    • Hay ejemplos como las imágenes “trail cam” de Dall-e mini
    • A medida que los sistemas mejoraron, el humor desapareció

La tensión entre una mejor máquina de predicción y la expresión artística

  • Una máquina de predicción extremadamente buena puede no ayudar mucho a la expresión artística
  • Los LLM siguen teniendo muchos usos, pero no son la herramienta perfecta para el trabajo creativo
  • A veces los LLM dejan pasar conceptos interesantes que un niño podría producir con facilidad
  • Bajo este marco, sí podrían construirse otros tipos de modelos de lenguaje
    • Ese modelo tendría que ser categóricamente distinto de los LLM actuales
    • Tan distinto que quizá ya no se le llamaría LLM

La fuga de abstracción que se revela en la salida de los LLM

  • Este argumento no es un debate de “humanos espirituales contra máquinas”
  • Aunque los LLM sigan mejorando, muestran defectos recurrentes, y en su intento de parecer humanos se asemejan más a una fuga de abstracción donde su estructura interna queda expuesta
  • La razón por la que todos los mensajes de ChatGPT parecen ensayos de preparatoria es que reproducen la salida más promedio posible
  • La salida de un LLM puede parecer un estilo corporativo plano, sin personalidad y endurecido por una rigurosidad académica artificial
  • Las reseñas falsas de Amazon son fáciles de detectar si uno piensa “¿yo escribiría así?”
    • Resulta raro preguntarse si alguien realmente pondría una introducción y una conclusión a su experiencia usando toallitas para platos Oxiclean
    • Una frase agradeciendo al fabricante y reconociendo su compromiso con el servicio al cliente puede no sonar como una experiencia real de usuario
  • Los modelos para detectar texto generado por LLM quizá terminen teniendo que identificar personalidad, como un CAPTCHA para pantallas

Enlace de referencia

  • famous tumblr blog: fuente de los ejemplos de cadenas de Markov que mezclan la King James Bible con el estilo de programación, y que recientemente volvió a estar activo

1 comentarios

 
GN⁺ 2024-08-19
Opiniones en Hacker News
  • Hace unos años llegué a la misma conclusión mientras trabajaba en un proyecto paralelo.
    Antes de que aparecieran los LLM, hice un sitio para generar AWS Blog Posts falsos, https://totes-not-amazon.com/, entrené un generador de cadenas de Markov con todos los anuncios de AWS publicados hasta ese momento y luego copié el HTML/CSS del blog de AWS y lo pegué con Python+JS.
    Era bastante gracioso: incluso personas familiarizadas con el blog de AWS recién se daban cuenta después de leer varias frases de que era una sopa de palabras.
    Cuando GPT acababa de salir, intenté actualizarlo generando entradas de blog basadas en contenido de AWS con gpt-2-simple de Minimaxir, pero el resultado era demasiado verosímil y se volvía mucho menos divertido. Se leía como una entrada de blog real, solo que con los datos incorrectos.
    Al final, el humor de las primeras generaciones de Markov estaba en lo absurdo de darse cuenta, después de unas palabras o unas frases, de que todo carecía por completo de sentido; los LLM actuales son demasiado buenos para eso. A veces se equivocan, pero rara vez lo hacen de una forma hilarantemente incoherente.
    El contenido de cadenas de Markov se equivoca como “niños diciendo cosas disparatadas”, mientras que los LLM modernos se equivocan como “un tío que no sabe ni geografía básica”.

    • https://cemulate.github.io/the-mlab/#y3Bt-co-extensional+limit
      https://github.com/cemulate/the-mlab
      Esto es una parodia de nLab, una wiki colaborativa de teoría de categorías y teoría de categorías superiores. Quienes hayan visto nLab lo entenderán: para los principiantes, la jerga es casi indescifrable, y de ahí salió la idea de este proyecto.
      Este proyecto usa el paquete nearley-generator, que convierte gramáticas de Nearley en generadores de texto falso eficientes y controlables; el archivo de gramática está en /src/grammar/nlab.ne.
    • Llegué a la misma conclusión de una forma parecida. Antes hice cadenas de Markov con notas de parches de juegos y las envié a la comunidad; los parches falsos de Dota fueron especialmente populares porque los parches originales ya eran larguísimos.
      La mayoría eran disparates o exageraciones sin gracia (“este héroe ahora tiene 500 de armadura”), pero normalmente al menos 5 o 6 líneas eran muy graciosas, y a veces alguna hasta resultaba profética. Por ejemplo: “Fiend's Grip genera 1/2/3 ilusiones adicionales”.
      Pero los LLM arruinaron la situación. Los principales subreddits prohibieron todo el contenido de IA porque había demasiado contenido aburrido de Midjourney publicado por usuarios ingenuos y bots. Cuando desapareció el alcance, también desapareció el interés, así que dejé de hacer cadenas de Markov.
    • “Un tío que no sabe nada pero finge ser experto y da su opinión” me parece la mejor analogía para describir a los LLM. No saben nada, pero hablan de cualquier cosa con seguridad.
    • Me cuesta estar de acuerdo con que los LLM modernos se equivocan como “un tío que no sabe ni geografía básica”.
      Esta semana usé bastante chatbots LLM, y si ese tío no solo dijera falsedades con confianza, sino que además no tuviera capacidad de autoevaluación, ya lo habrían matado.
    • Ese sitio es muy gracioso. Y la analogía niño vs. tío encaja exactamente con mi experiencia, y al mismo tiempo muestra lo lejos que han llegado estos modelos de lenguaje.
  • Le di a Claude 3.5 Sonnet el prompt: “con base en el ensayo reciente y la discusión de Hacker News, escribe 10 chistes cortos graciosos en el estilo descrito por el autor del ensayo”.
    Claude respondió que haría chistes sobre por qué las cadenas de Markov son más graciosas que los LLM, buscando una “sorpresa no seria” y la ruptura de patrones esperados.
    Los ejemplos fueron del estilo: “Un LLM y una cadena de Markov entran a un bar. El LLM pide una bebida estadísticamente plausible y la cadena de Markov pide una pantalla de lámpara hecha de queso”, “¿Cuántos LLM se necesitan para cambiar un foco? Uno solo, pero primero explica durante 20 minutos el proceso óptimo para cambiar focos”, “¿Por qué una cadena de Markov no puede ser buena terapeuta? Porque sus consejos siempre son ‘y luego banana tus sentimientos hasta que se conviertan en sombrero’”.

    • “Un LLM, una cadena de Markov y GPT-4 entran a un bar. El bartender dice: ‘No aceptamos gente como ustedes’. GPT-4 se va, el LLM se queda a debatir ética y la cadena de Markov pide una bicicleta hecha de espagueti” está bastante bueno.
    • Las que están más o menos bien podrían ser más graciosas si se reemplazara el disparate aleatorio del núcleo por un giro más propio de una cadena de Markov: “la frase es correcta, pero entró por una asociación equivocada y rara”.
      No se trata simplemente de pegar cualquier cosa al azar. Una cadena de Markov tiene más probabilidades de generar una especie de significado, pero es el tipo equivocado de significado.
      Por ejemplo, queda más apropiado: “Un LLM, una cadena de Markov y GPT-4 entran a un bar. El bartender dice: ‘No aceptamos gente como ustedes’. GPT-4 se va, el LLM se queda a debatir ética y la cadena de Markov pide un golpe de Estado”.
    • “Un LLM y una cadena de Markov entran a un bar. El LLM pide una bebida estadísticamente plausible y la cadena de Markov pide una pantalla de lámpara hecha de queso” está bastante bien.
    • “¿Cuántos LLM se necesitan para cambiar un foco? Uno solo, pero primero explica durante 20 minutos el proceso óptimo para cambiar focos” no es gracioso, es dolorosamente exacto.
    • Claude 3.5 Sonnet es el primer LLM moderno que he usado que realmente es bueno haciendo chistes creativos. Todos los LLM de la familia GPT tienen demasiado RLHF encima y no logran salirse de forma rara.
  • En la universidad, unos amigos pasaron un generador de cadenas de Markov por la sección de “reportes policiales” del periódico de la escuela.
    El 10% superior de los resultados de un generador de 3 tokens está entre los textos generados por máquina más graciosos que he visto, y tenía un tipo de absurdo que los LLM modernos evitan al intentar mantener coherencia semántica de alto nivel.
    Que en ese entonces hubiera alguien exhibiéndose en la biblioteca probablemente también fue buen material de partida.
    El periódico era The Daily Utah Chronicle y, si mal no recuerdo, mis amigos también pasaron un generador de cadenas de Markov por la sección de anuncios personales y obtuvieron resultados bastante buenos.

    • Los LLM “intentan ser graciosos”, pero en realidad no son lo bastante inteligentes como para serlo, y sus errores también son aburridos.
      En cambio, una cadena de Markov, por conexiones parecidas a lapsus basados en homófonos, hace que cada frase se vaya arrastrando al azar y termine llegando por accidente al humor absurdo.
  • Si quieren evidencia empírica, /r/SubredditSimulator es una parodia de Reddit basada en Markov, y /r/SubSimulatorGPT2 es como su primo basado en LLM
    La versión de Markov recibió muchos más votos positivos y simplemente es más graciosa

    1. https://www.reddit.com/r/SubredditSimulator/top/?t=all
    2. https://www.reddit.com/r/SubSimulatorGPT2/top/?t=all
    • Yo diría que eso es solo porque el primero es mucho más antiguo y más conocido. Personalmente, siempre me gustó mucho más el segundo
  • Publiqué varias veces en Reddit cosas como “XYZ falso escrito por IA” a lo largo de los años, y el modelo que mejor respuesta obtuvo fue GPT-2
    Las cadenas de Markov no alcanzan para mantener el interés más allá de una o dos oraciones, y todo lo posterior a GPT-3 es demasiado prolijo y aburrido
    GPT-2 es el punto intermedio perfecto: en general acierta con la gramática y puede mantener ideas cohesivas, pero todavía no conoce suficientes detalles sobre muchos temas como para producir algo que tenga sentido en contexto

    • Intenté afinar un modelo GPT-2 con más de 15 años de logs de IRC para que me imitara
      Quería desplegar el bot en mi canal habitual de IRC y ver cuánto tardaba la gente en darse cuenta de que era un bot. Cuando alguien enviaba un mensaje, le pasaba al LLM los 10 mensajes más recientes, y si el resultado empezaba con cierto prefijo, enviaba ese mensaje al canal
      Por desgracia, GPT-2 no era lo bastante bueno y generaba cosas algo coherentes y pertinentes al tema, pero sin sentido
      Después de arreglar el sistema, pienso intentar afinar un modelo 7B
    • ¿Puedes compartir el mejor ejemplo que tuviste?
  • La evolución de los últimos años del blog AI Weirdness (https://www.aiweirdness.com/) respalda esta idea en cierta medida
    Aunque la autora también obtuvo muchos resultados graciosos con LLM, principalmente con modelos tempranos hasta GPT-3 y variantes más pequeñas de GPT-3
    Por ejemplo, los nombres de cereales generados por la versión Ada de GPT eran mucho más graciosos que los de la versión Da Vinci: https://www.aiweirdness.com/new-breakfast-cereals-from-ai/

  • ¿No bastaría con subir la temperatura?
    Las cadenas de Markov tienen una comprensión del lenguaje más rudimentaria. Si aumentas la temperatura de un LLM, es decir, su aleatoriedad, puedes llegar a una aproximación igual de rudimentaria
    Además, el autor usó ChatGPT-3.5. ChatGPT tiene RLHF para sonar lo más genérico posible, y 3.5 entiende el humor peor que 4
    La tesis de este artículo no me convence

    • Para quienes no conocen varias siglas de machine learning, RLHF significa aprendizaje por refuerzo a partir de retroalimentación humana (Reinforcement Learning from Human Feedback)
    • Ojalá hubiera una versión de ChatGPT fija para investigadores
  • Lamentablemente la cuenta ya no existe, pero hace unos 10 años, cuando estaba en la escuela, hice un bot de Twitter con Markov entrenado con estas dos fuentes
    Una eran todos los correos que Linus Torvalds había enviado a LKML durante el año anterior, y la otra eran las citas directas de Jesús en la Biblia King James
    Era realmente gracioso. Como los dos conjuntos de entrenamiento casi no se solapaban, tuve que agregar una heurística que ponderaba más las opciones del otro conjunto cuanto más tiempo quedaba la cadena “atrapada” en uno de los dos

  • Llevo unos 20 años operando un bot de cadenas de Markov para IRC
    En los últimos años también he estado ejecutando un LLM local. Todavía hay quienes prefieren el bot de cadenas de Markov, pero la mayoría invoca el LLM
    Aunque quizá sea porque elegí un modelo con muchas alucinaciones, pocos rechazos y gracioso, como un Mistral-7B afinado, en vez de un modelo tan inteligente, bloqueado y de baja temperatura como los LLM tipo servicio como ChatGPT
    Al ver el LLM y el bot de Markov lado a lado, siento con más fuerza cuánto del “humor” del bot de Markov es resultado de que las personas le atribuyen significado a salidas accidentales. Aun así, la capacidad de “aprendizaje” de Markov sigue siendo muy superior

    • Operar un bot de cadenas de Markov para IRC durante 20 años te convierte en un héroe
      Mis bots nunca duraron tanto. Una vez raspé los LiveJournal de los usuarios para generar texto aleatorio: https://hewgill.com/journal/entries/68-new-lj-toy.html
    • Me da curiosidad qué tipo de prompt usas para el LLM
      Tengo un bot de cadenas de Markov en un chat de Twitch y a veces produce momentos geniales. Durante un tiempo también probé con un LLM y puse el chat reciente en el prompt, pero casi nunca salió algo que se sintiera particularmente humorístico
      También probé prompt engineering indicando específicamente qué chiste debía hacer, pero el LLM siempre tendía a seguir el mismo formato
    • ¿Por qué haces eso? Me da curiosidad si es por diversión o si hay otra razón que se me escapa
  • En un servidor privado de Discord tenemos dos bots
    Uno es un bot básico de cadenas de Markov entrenado con todo el historial del chat, y el otro es un LLM propiamente dicho, entrenado solo con cierta cantidad de tokens del final. Ambos intervienen al azar en el chat de vez en cuando
    El bot de cadenas de Markov siempre es mucho más gracioso

    • Me da curiosidad qué ventana de contexto usaste. Por lo que entiendo, una ventana corta, como de 1 o 2 palabras, produce incoherencias, mientras que una larga tiende a repetir mensajes antiguos tal cual
      También me da curiosidad si para decidir intervenir usaste una probabilidad simple después de otros mensajes (por ejemplo, 25%) o si lo hiciste con un temporizador