2 puntos por GN⁺ 2024-03-17 | 1 comentarios | Compartir por WhatsApp
  • Quiet-STaR es un método que, en lugar de usar datasets de QA con respuestas correctas, toma texto web general como señal de entrenamiento para enseñar a los modelos de lenguaje a generar razonamientos internos antes de hablar
  • Mientras que STaR tradicional entrenaba seleccionando solo los razonamientos que llevaban a la respuesta correcta, Quiet-STaR recompensa los razonamientos que mejoran la predicción del texto futuro, aprovechando el razonamiento implícito en texto no estructurado
  • Muestrea razonamientos en paralelo en todas las posiciones de tokens y entrena mezclando predicciones con y sin razonamiento para acertar mejor el siguiente texto real
  • Al continuar el preentrenamiento de Mistral 7B con OpenWebMath y C4, la precisión aumentó sin fine-tuning específico por tarea: GSM8K de 5.9% a 10.9% y CommonsenseQA de 36.3% a 47.2%
  • El efecto fue mayor en tokens difíciles de predecir, y se observó una tendencia a que cuanto mayor era la cantidad de tokens usados para el pensamiento interno, mayor era también la mejora en el desempeño de razonamiento directo

Usar texto general como objetivo de entrenamiento para razonamiento

  • Las personas, al escribir o hablar, hacen pausas para pensar, y buena parte del significado de un texto está en las razones e implicaciones que no aparecen explícitamente entre las frases
  • Los enfoques existentes centrados en razonamiento se han enfocado principalmente en responder preguntas o completar tareas de agentes, pero Quiet-STaR parte de la idea de que el razonamiento existe de forma implícita en casi todo texto
  • Algunos ejemplos de razonamiento implícito son:
    • Pasos intermedios no explicitados en una demostración
    • Teorías que estiman el estado mental de la otra persona en una conversación

Extender STaR al modelado de lenguaje

  • STaR(Self-Taught Reasoner) es un método que, en datasets de preguntas y respuestas, muestrea razonamientos a partir de unos pocos ejemplos y entrena solo con los razonamientos que llevan a la respuesta correcta, haciendo que el modelo resuelva iterativamente problemas más difíciles
  • STaR tiene la limitación de depender de datos cuidadosamente curados, como datasets de QA de alta calidad
    • Estos datasets solo pueden contener tareas de razonamiento específicas
    • En algunos casos deben proporcionar el razonamiento en sí o una tarea de razonamiento específica
  • En lugar de tareas como QA matemática específica, Quiet-STaR entrena al modelo de lenguaje para generar razonamientos que ayuden a inferir el texto futuro a partir de texto de Internet a gran escala
  • Este enfoque se construye sobre la intuición del paradigma de modelado de lenguaje de que “los modelos de lenguaje son aprendices multitarea no supervisados”

Procedimiento de entrenamiento: think, talk, learn

  • Quiet-STaR opera en tres etapas
    • think: genera en paralelo, después de cada token del texto, razonamientos que explican el texto futuro
    • talk: mezcla las predicciones del siguiente token con y sin razonamiento
    • learn: con una recompensa basada en REINFORCE, aumenta la probabilidad de los razonamientos que ayudan a predecir el texto futuro y descarta los que lo perjudican
  • Durante el entrenamiento, para un thought, el modelo marca el inicio y el fin del pensamiento con metatokens entrenables como START y END
  • Después de crear el razonamiento, una mixing head decide cuánto incorporar esa predicción basada en razonamiento a la predicción de tokens futuros

Desafíos de implementación para hacer que piense en todos los tokens

  • En texto general, se debe generar un razonamiento para cada token, por lo que el costo computacional es alto
  • Para reducirlo, se propone e implementa un algoritmo de muestreo paralelo por token que genera razonamientos en todas las posiciones de tokens dentro de una cadena
  • También aborda el problema de que el modelo de lenguaje no sabe desde el inicio cómo generar o usar pensamientos internos
    • Introduce metatokens personalizados que indican el inicio y el fin del pensamiento
    • Hace que el modelo aprenda cuándo debe generar un razonamiento y cuándo debe predecir con base en ese razonamiento
  • Para evitar un entrenamiento miope que solo observe el siguiente token inmediato, usa una pérdida no miope (non-myopic loss) que incluye varios tokens hacia adelante
  • Mediante una técnica extendida de teacher forcing, incorpora al entrenamiento predicciones más allá del siguiente token individual

Configuración experimental y resultados

  • Los experimentos se realizaron aplicando Quiet-STaR a Mistral 7B
  • Para continuar el preentrenamiento se usaron los datasets de texto web OpenWebMath y C4(Colossal Clean Crawled Corpus)
  • El desempeño de razonamiento directo zero-shot mejoró sin fine-tuning específico por tarea
    • GSM8K: 5.9%→10.9%
    • CommonsenseQA: 36.3%→47.2%
  • Tanto en GSM8K como en CommonsenseQA, cuanto mayor fue la cantidad de tokens de pensamiento usados durante el entrenamiento con Quiet-STaR, la mejora de desempeño aumentó de forma consistente
  • En texto natural, mejoró la perplexity de los tokens difíciles de predecir
  • Los razonamientos generados ayudaron de forma desproporcionadamente mayor especialmente en tokens difíciles de predecir

Aportes de Quiet-STaR

  • Quiet-STaR generaliza STaR para aprender razonamiento a partir de diversos datos de texto no estructurado, no de tareas de razonamiento curadas
  • Con el algoritmo de muestreo paralelo, hace escalable el procedimiento de entrenamiento que genera razonamientos en todas las posiciones de tokens de una cadena dada
  • Los metatokens personalizados que indican el inicio y el fin del pensamiento se usan para que el modelo aprenda el momento de generación de razonamientos y de predicción basada en razonamientos
  • La mixing head decide a posteriori cuánto incorporar a la predicción actual la predicción del siguiente token surgida de un thought específico
  • Una pérdida de modelado de lenguaje que incluye varios tokens hacia adelante mejora el efecto del pensamiento
  • En varias tareas, usar pensamientos permite predecir mejor los tokens difíciles que un modelo entrenado con el mismo texto web, y la magnitud de la mejora crece con thoughts más largos

1 comentarios

 
GN⁺ 2024-03-17
Opiniones en Hacker News
  • Por ejemplo, parece intuitivamente obvio que una red de 50 capas de profundidad solo puede razonar unas 50 etapas sobre una pregunta simbólica.
    Lo que parece más complejo se debe a que el modelo ejecuta 50 pasos en uno o más subespacios que aprendió, y ese “paso” podría hacer más trabajo que un paso humano.
    Los humanos pueden razonar más allá de eso, pero para hacerlo necesitan pensamiento y reflexión reales, y a veces una libreta.
    Esperar que ChatGPT haga correctamente una multiplicación de 4 dígitos sin ningún pensamiento ni “papel” es bastante sorprendente y, de hecho, no mucha gente hace ese tipo de cálculo mentalmente.

    • Es cierto, pero también hay que considerar el elemento autorregresivo.
      En el ejemplo, son 50 pasos por cada ejecución del modelo, y el modelo se ejecuta una vez por cada token de salida.
      Por eso, calcular cuánto puede “pensar” realmente el modelo es más complejo.
      Claro que, una vez que se emite un token, con la configuración predeterminada queda comprometido a ese token, pero eso no significa que no siga “pensando” mientras genera los tokens posteriores.
      El contexto y los tokens de salida anteriores son la entrada del siguiente paso del modelo, así que pueden verse como la libreta mencionada.
    • Este paper sigue esa intuición e investiga los límites de los transformers en tareas sintéticas. Esto incluye trabajos que requieren razonamiento de varios pasos, como la multiplicación: https://arxiv.org/abs/2305.18654
      Los resultados experimentales sugieren que los grandes modelos de lenguaje basados en transformers tienden a resolver el razonamiento composicional de múltiples pasos reduciéndolo a coincidencia de subgrafos linealizados, en lugar de abordarlo como una capacidad sistemática de resolución de problemas.
      Además, mediante un argumento teórico sobre problemas abstractos de razonamiento de múltiples pasos, muestra que el rendimiento de la generación autorregresiva puede caer rápidamente a medida que aumenta la complejidad de la tarea.
    • Aquí se está pasando por alto un detalle importante: la cantidad de tokens. Aunque la profundidad de la red tenga 50 “pasos”, se pueden usar tokens adicionales.
      Suponiendo que la cinta no se agote, no hay razón para que un gran modelo de lenguaje esté limitado solo a operaciones simples.
    • Si piensas en cómo funciona la retropropagación, esta explicación no tiene mucho sentido. Las capas no están limitadas a operar solo de manera independiente.
      Y si se considera que el modelo es autorregresivo, tampoco encaja bien.
  • Edsger Dijkstra tenía un estilo en inglés muy preciso y, aunque su lengua materna era el neerlandés, creo que usaba el inglés mejor que muchos hablantes nativos.
    En algún EWD, recordaba que de niño le enseñaron: “no empieces a hablar antes de saber ya cómo vas a terminar la oración”.
    Parece probable que haya una relación causal entre estas dos observaciones.

    • Cuando era joven viví un tiempo en el extranjero y tomé clases de idioma. En la misma clase había un hombre de mediana edad que hablaba muy mal el idioma nuevo, pero siempre tenía la capacidad de hacer reír a la gente.
      Me preguntaba cómo lo hacía, y un día, almorzando juntos, me lo explicó seriamente.
      Dijo que nunca pronunciaba una sola oración antes de haberla dicho completa en su cabeza; repasaba las palabras varias veces, pulía la frase e imaginaba cómo reaccionaría la otra persona, y solo hablaba cuando podía visualizar la reacción que quería.
      Ese consejo, al mismo tiempo, señalaba con precisión que yo hablaba sin pensar, y sentí que había leído y respondido exactamente una pregunta que yo no había hecho.
      Cuando intenté aplicar este método, la recompensa fue proporcional al esfuerzo, pero no logré convertirlo en hábito y todavía tiendo a que la boca se me adelante al pensamiento.
    • Eso a mí me suena a infierno. Es una forma de perder por completo la espontaneidad y la sensación de estar en el momento.
      Antes intentaba pensar compulsivamente en qué iba a decir antes de hablar, y aunque soy bastante torpe socialmente, no me ayudó en absoluto.
      Me gusta escribir porque es asincrónico y permite ordenar y corregir las ideas con precisión, pero en situaciones sociales eso se vuelve un gran obstáculo.
    • Veo dos cosas. Primero, escribir y hablar son distintos. La escritura es asincrónica, así que puedes pensar antes de escribir y corregir.
      Segundo, cuando hablas en un idioma que no es tu lengua materna, piensas más a fondo en lo que vas a decir. Usas menos modismos, te concentras más en si el significado se transmite correctamente y pareces ser más sensible a la posibilidad de incomodar a la otra persona.
      Tampoco es algo nuevo. Incluso campos como la ciencia se han desarrollado mucho en idiomas que no eran la lengua materna de los investigadores, como el francés, el alemán o el latín.
      Además, la terminología especializada de cada área también influye. Si simplemente digo “Kubernetes is een open-bron houder orkestratiesysteem voor het automatiseren van de inzet, schalen, en het beheer van zachte waren”, la mitad de mi audiencia nativa quedaría confundida.
    • Me gusta leer sus EWD. Un profesor que trabajó con él me contó una vez que, en los exámenes, hacía que los estudiantes usaran pluma.
      ¿Sería para reducir la probabilidad de que cometieran errores?
    • Yo también aprendí inglés con libros de texto, y una de las cosas que más raras me parecían era que los hablantes nativos confundieran habitualmente “their, there, they’re”.
      Nunca se me habría ocurrido que yo pudiera cometer ese error, y me parece parecido a confundir ‘wet’ y ‘vet’.
      Sin duda hay diferencias entre el uso del idioma por parte de hablantes nativos y no nativos.
  • Es algo que se me ocurrió hace unos días: la forma en que los patrones de razonamiento de cadena de pensamiento contribuyen a mejorar el rendimiento en sistemas basados en modelos de lenguaje grandes parece ponerse en paralelo con el modelo de los dos sistemas de la mente de Kahneman en Thinking, Fast and Slow
    No he releído el libro en años, pero recuerdo que decía que usamos principalmente el “System 1” para pensamientos de bajo esfuerzo y bajo cómputo. Por ejemplo, 1+1=? o “el cielo es ____”
    En cambio, el “System 2” se usa para tareas deliberadas, conscientes y con alta carga cognitiva. Cosas que requieren concentración o recursos mentales, como multiplicaciones grandes, problemas de razonamiento, uso de herramientas y toma de decisiones en general
    La crítica de que “los modelos de lenguaje grandes son loros estocásticos y no tienen inteligencia” en realidad se siente como la observación de que el modelo está equipado para usar solo el “System 1”
    Si se le pide a un modelo de lenguaje grande que piense paso a paso, se le da un espacio de trabajo donde anotar sus pensamientos y se hace que vuelva a considerarlos en la predicción del siguiente token, por lo que se convierte en una especie de System 2 básico, es decir, un sandbox para la deliberación
    Cuando las personas usan el System 2, también sostienen un diorama del mundo en la parte frontal de la mente y simulan cómo reaccionará el entorno ante una acción determinada. Imaginan qué responderá un amigo, cómo se doblará una placa de acero bajo una fuerza, cómo se romperá el código, cómo se adherirá una llanta, exploran un árbol de posibilidades y eligen la acción con mayor recompensa
    No soy experto, pero parece que este paper también reconoció un marco similar. En particular, quizá los modelos de acción que vemos en robótica incorporen en el futuro mecanismos iterativos de deliberación/simulación

    • Antes que nada, aclaro que puede sonar como algo totalmente inventado, una anécdota no científica, o una idea ingenua o inmadura. Por suerte, nadie tiene que creerlo
      Hace unas semanas, en un estado en el que no estaba del todo despierto ni dormido, entré en un ciclo en el que notaba cómo el cerebro de pensamiento rápido escupía palabras y conceptos a la velocidad de la luz, y el cerebro de pensamiento lento los convertía en oraciones reales
      Era como ver la cadena de pensamiento como una lista de ideas, y esa lista se llenaba absurdamente rápido para luego resumirse en un “pensamiento” propiamente dicho, compuesto por una lista de palabras elegidas con cuidado
      Desde entonces, empecé a creer que lo que reconocemos como pensamiento es la salida seleccionada del proceso de brainstorming inmediatamente anterior
    • No diría que los modelos de lenguaje grandes no tienen ninguna inteligencia. Porque se basan en la predicción, y creo que la capacidad que reconocemos como inteligencia es precisamente la capacidad de predecir. La corteza también evolucionó para hacer predicciones
      Aun así, la inteligencia no es todo o nada, sino que está en un espectro. Mi definición es “el grado de capacidad para predecir correctamente resultados futuros a partir de experiencias pasadas”, y depende de los mecanismos que un sistema, ya sea biológico o artificial, pueda usar para reconocer patrones y predecir
      La inteligencia también depende de la experiencia. Porque lo que no se ha experimentado no se puede reconocer y, por lo tanto, tampoco se puede predecir. Dicho eso, quizá sería mejor contar con vocabulario que distinga la capacidad predictiva y la experiencia, en lugar de agrupar ambas bajo “inteligencia”
      Si comparamos el dispositivo predictivo de un modelo de lenguaje grande con el cerebro humano, faltan muchas cosas. “Pensar antes de hablar” es una de ellas, y enfoques como Q* o los árboles de pensamiento ayudarían en esto
      Quizá estructuras iterativas como el bucle tálamo-cortical también puedan insertarse en el enfoque de modelos de lenguaje grandes/transformers, pero creo que la pieza que falta de forma decisiva para alcanzar capacidades de nivel humano es el aprendizaje en línea. La capacidad de actuar, ver el resultado y aprender de ello
      Con los enfoques actuales quizá se pueda crear una AGI “aprendida de libros”, pero las habilidades no se pueden aprender sin práctica y experimentación. Seas desarrollador o lo que sea, no puedes aprender solo leyendo libros o analizando resultados hechos por otros; tienes que entender los resultados que tus propias predicciones y acciones producen en la realidad, y aprender de ellos
    • Andrej Karpathy también cita el mismo libro y dice algo similar en su video de noviembre de 2023, “[1hr Talk] Intro to Large Language Models”
      Enlace a la parte relevante: https://youtu.be/zjkBMFhNj_g?t=2120
    • ¿No se refutó la mayoría de las afirmaciones de ese libro? Tengo entendido que algunas fueron refutadas por el propio autor
      Lo leí con gusto y sentí que tenía muchas ideas valiosas, pero después un amigo de ese campo me dijo que el libro no era preciso y que el autor había “retirado” algunas afirmaciones
    • La gente suele decir que los modelos de lenguaje grandes solo producen de forma refleja palabras —más exactamente, flujos de tokens— basándose en textos que leyeron antes o en una ventana parcial de sus propias respuestas, así que no piensan de verdad. Eso es cierto
      Pero cuando hablo, también me pasa que no sé qué voy a decir hasta escuchar lo que dije
      A veces delibero y planeo probando frases en mi cabeza, pero la mayor parte de mí parece más bien un modelo de lenguaje grande que simplemente genera flujos de tokens
  • Otro paper de aprendizaje por refuerzo con una línea base pésima. En GSM8k, el formato de salida es bastante específico, pero usaron Mistral con ajuste no instruccional y zero-shot
    Después de la mejora, la precisión fue de 11%, pero el prompting few-shot logra 37%[1]. GPT-4 puede llegar a alrededor de 97% con prompting
    [1]: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderb...

    • Para un científico serio, tomar métodos y líneas base conocidas y mejorarlas también es buena ciencia
      Tal vez sea posible escalarlo hasta el estado del arte, pero el objetivo puede ser medir solo el efecto de sus cambios en una configuración simple
      Que los ingenieros se encarguen de mezclar combinaciones de varios sistemas para lograr rendimiento de estado del arte
  • ¿Tiene relación con el rumoreado Q* de OpenAI, es decir, el modelo q-star? Los autores de este paper no parecen tener relación
    ¿Será simplemente una coincidencia de nombre?

    • Parece un juego de palabras con el mismo término exagerado
    • Pensé lo mismo. El paper STaR que este trabajo extendió salió en 2022, así que como mínimo es posible que q-star también se haya basado en esto
      Aunque la Q podría significar otra cosa
  • Esta es la pieza que faltaba para entrenar una IA con capacidad de razonamiento
    Hay muchísimas tareas en las que se conoce la respuesta, pero faltan los pasos de razonamiento. Con este método se puede llegar a esa capacidad con menos datos anotados
    Lo interesante es que los pensamientos generados pueden ser difíciles de entender para los humanos, pero ser mucho más útiles para obtener la respuesta correcta
    Si eso ocurre, habremos creado algo más inteligente que nosotros

  • Esta mañana intenté algo básicamente parecido a nivel de prompt, pero los resultados fueron pésimos. Aun así, la idea preliminar que tenía en mente iba más allá: introducir metatokens de flujo de control que ayudaran a los modelos de lenguaje grandes a volver a explorar su propio contexto
    Desde este punto de vista, el contexto puede repensarse como un mapa mental estructurado que se edita a sí mismo, y el contexto lineal en un momento T sería el rastro de ejecución, hasta ese momento, de la exploración de ese mapa mental
    Algunos metatokens podrían tener efectos secundarios como resaltar, estructurar, resumir u olvidar partes del contexto
    Esto podría permitir salida estructurada nativa, implementación de memoria, etc., sin formatos sintácticos como json ni construcciones de programación al estilo LMQL
    El objetivo no es solo darles a los modelos de lenguaje grandes capacidades de lógica/razonamiento, sino darles los medios para crear su propia arquitectura cognitiva
    Si además se implementan memoria o scratchpads usando tokens ... en la salida estructurada, también se obtiene como extra la posibilidad de inspeccionar esas estructuras cognitivas
    Claro, no tengo la menor idea de cómo implementarlo. Soy un turista del machine learning

  • No citan el artículo sobre cómputo adaptativo aprendido en RNN aplicado al modelado de lenguaje [1], que apareció casi 8 años antes de su trabajo
    [1] https://openreview.net/pdf?id=S1LVSrcge
    Microsoft también tenía algo parecido por esa época para reconocimiento de imágenes. Usaba CNN para la entrada y cómputo adaptativo en la etapa de clasificación

  • Usar Base Mistral 7B para la evaluación casi no es apropiado. Un equipo de Intel intentó hacer exactamente el mismo truco con NeuralChat https://huggingface.co/Intel/neural-chat-7b-v3#quantitative-...

  • La frase “la mayor parte del significado de un texto está oculta entre líneas. Si el lector no entiende por qué esas oraciones aparecen en el documento, solo tendrá una comprensión superficial” no me parece cierta para la forma en que leo ni para la de la mayoría de la gente que conozco
    Casi siempre tenemos un modelo del mundo y cierta idea de por qué esas oraciones aparecen en un libro
    Al leer un libro de texto de mecánica de fluidos, puede que no entiendas las matemáticas, pero sí puedes saber que esas oraciones son enunciados matemáticos destinados a ayudarte a aprender la teoría y que siguen un patrón para enseñar conceptos importantes
    Por ejemplo, los conceptos se construyen sobre conceptos anteriores. La ecuación de Bernoulli aparece porque antes estuvo la ley de conservación de la energía, y está ahí porque se supone que entiendo esta última