2 puntos por GN⁺ 2024-04-08 | 1 comentarios | Compartir por WhatsApp
  • Los LLM tienen una precisión inestable en tareas complejas, y este estudio verifica si es posible mejorar el rendimiento solo con muestreo y votación, en lugar de agregar más estructura
  • Agent Forest es un método de ensamble simple que ejecuta la misma consulta varias veces, reúne las respuestas y luego elige la respuesta final por mayoría
  • En GSM8K, con un tamaño de ensamble de 15, Llama2-13B alcanzó una precisión similar a la de Llama2-70B, y Llama2-70B y GPT-3.5-Turbo también se acercaron a modelos equivalentes más potentes
  • Este método puede combinarse de forma independiente con enfoques basados en CoT o frameworks de colaboración multiagente, por lo que puede generar mejoras adicionales de rendimiento sobre técnicas existentes
  • La mejora es especialmente grande en tareas difíciles y en modelos más débiles, y deja margen para aumentar la relación costo-rendimiento sin diseñar prompts complejos

Precisión inestable de los LLM en tareas complejas

  • Los LLM muestran capacidades sólidas en varias aplicaciones, como generación, comprensión y razonamiento del lenguaje, pero en tareas complejas les cuesta producir respuestas precisas
  • Las investigaciones existentes para mejorar el rendimiento han usado principalmente métodos de ensamble y frameworks de colaboración entre múltiples agentes LLM
    • LLM-Debate organiza a varios agentes LLM para que debatan la respuesta final de problemas aritméticos, elevando el rendimiento de razonamiento frente a un solo agente
    • CoT-SC genera varias cadenas de pensamiento (thought chains) y elige la respuesta más autoconsistente, mejorando el rendimiento de razonamiento frente a CoT con una sola cadena de pensamiento
  • En resultados previos también se observó que el rendimiento aumenta cuando crece la cantidad de agentes o de cadenas de pensamiento, pero las propiedades de escalado de la cantidad de agentes LLM básicos en sí no se habían tratado lo suficiente como un tema de investigación separado

Cómo funciona Agent Forest

  • Agent Forest usa un procedimiento simple de muestreo y votación para observar el efecto de aumentar la cantidad de agentes LLM sobre el rendimiento
  • El funcionamiento se divide en dos pasos
    • Se ingresa repetidamente la consulta de la tarea en un solo LLM o en un framework de colaboración entre múltiples agentes LLM para generar varias salidas
    • Se aplica votación por mayoría a las salidas generadas para decidir el resultado final
  • El procedimiento está inspirado en CoT-SC, pero no depende de diseñar rutas CoT complejas
  • El nombre es un homenaje al clásico Random Forest

Resultados en GSM8K y varias tareas

  • Los experimentos se realizaron en varios datasets que incluyen distintos LLM de diferentes tamaños y tareas de razonamiento y generación
  • En general, a medida que aumenta el tamaño del ensamble, es decir, la cantidad de agentes, el rendimiento de los LLM puede mejorar
  • En los resultados de GSM8K de la Figure 1, la precisión de Llama2-13B, Llama2-70B y GPT-3.5-Turbo aumenta conforme crece el tamaño del ensamble
    • Con un tamaño de ensamble de 15, Llama2-13B alcanza una precisión comparable a la de Llama2-70B
    • Con tamaños de ensamble de 15 y 20, Llama2-70B y GPT-3.5-Turbo muestran una precisión comparable, respectivamente, a la de modelos equivalentes más potentes
    • Las barras de error de la figura representan el error estándar
  • Incluso los LLM pequeños pueden lograr un rendimiento comparable o superior al de LLM más grandes si se les aplica un ensamble simple

Mejora de rendimiento que puede montarse sobre técnicas existentes

  • Agent Forest es un enfoque que puede combinarse de forma independiente con métodos existentes y complejos para mejorar el rendimiento de los LLM
  • Puede añadirse como un plugin a métodos basados en CoT para generar mejoras adicionales de rendimiento
  • Incluso al compararlo con métodos complejos, Agent Forest por sí solo puede alcanzar un rendimiento comparable en la mayoría de los casos
  • Permite obtener resultados competitivos sin diseño manual adicional de prompts ni frameworks de colaboración complejos

Efectos según la dificultad y optimización

  • La mejora de rendimiento es mayor en tareas difíciles y en modelos más débiles
  • El impacto de la dificultad del problema sobre el efecto de Agent Forest se analiza en tres dimensiones
    • La dificultad intrínseca del problema
    • La longitud de los pasos de razonamiento
    • La probabilidad previa de la respuesta correcta
  • Mediante experimentos que ajustan cada dimensión, se identifican los atributos que influyen en el efecto de Agent Forest
  • Con base en los atributos identificados, se desarrollan además estrategias de optimización para que el efecto de “More Agents” aparezca con más claridad
  • El código público está disponible en https://github.com/MoreAgentsIsAllYouNeed/AgentForest

1 comentarios

 
GN⁺ 2024-04-08
Opiniones en Hacker News
  • Parece que hay gente que no leyó bien este paper.
    Este paper casi parece refutar la idea de las configuraciones multiagente como Chain-of-thought o LLM-Debate.
    La alternativa que propone el paper es hacerle la misma consulta varias veces al mismo LLM, sin compartir contexto entre las consultas, calcular la similitud entre las respuestas y elegir la respuesta más común.
    Si el LLM produce una mezcla de alucinaciones y respuestas correctas, tiene sentido: las respuestas correctas se parecerán entre sí y las alucinaciones quedarán dispersas de forma caótica.
    Pero este algoritmo simple funciona tan bien como otros algoritmos multiagente, y a veces mejor.
    Es decir, parece que las otras técnicas multiagente que usan prompts ingeniosos no están haciendo nada especial; la mayor parte de la mejora parece venir de ejecutar el LLM varias veces y pedirle que “elija la mejor respuesta”.

    • https://en.wikipedia.org/wiki/Lorenz_system
      Desde hace mucho, las simulaciones del clima ejecutan el modelo repetidamente cambiando un poco los parámetros de entrada, descartan los valores atípicos y promedian, y eso funciona bastante bien.
      Los LLM también suelen tener una semilla aleatoria, es decir, un valor de temperatura, así que si se da la misma entrada y se promedian las salidas se puede obtener una mejor estimación.
      Lorenz system también da una pista, quizá una explicación, de por qué el problema de las alucinaciones probablemente sea imposible de resolver.
      Si se adopta esta perspectiva, también queda claro rápidamente que los LLM son casi un callejón sin salida en el camino hacia una inteligencia artificial general.
      Una simulación no es una emulación, y la posibilidad de que un LLM adquiera inteligencia es parecida a la posibilidad de que un pronóstico del tiempo llegue a controlar el clima.
    • Por mi experiencia usando GitHub Copilot, las alucinaciones ocurren porque, cuando algún hecho verdadero tiene baja probabilidad, Copilot aun así entrega la respuesta más plausible.
      Normalmente, una librería específica se comporta de una forma muy anómala y no documentada, y si uno pide un ejemplo, aparece código de una función falsa, elegante y fácil de entender, que habría hecho innecesaria esa librería si realmente se hubiera comportado así desde el principio.
      No creo que ejecutar esa consulta varias veces vaya a ayudar.
    • Esto es una idea muy parecida a los modelos de ensamble, que se usan desde hace mucho en machine learning y han demostrado tener buen rendimiento.
      Si se promedian los resultados de varios predictores o se los hace votar para elegir la predicción más común, se puede reducir el ruido de las predicciones al tomar el denominador común entre varias predicciones.
    • Si se configura la temperatura en 0, el modelo elige el token con mayor probabilidad y la salida siempre es la misma.
      Pero ya sabemos que eso no garantiza la respuesta correcta; entonces, ¿cómo puede ser mejor ejecutarlo varias veces?
    • La parte de “si el LLM produce una mezcla de alucinaciones y respuestas correctas, las respuestas correctas se parecerán entre sí y las alucinaciones quedarán dispersas de forma caótica” esperaría que dé algo cercano al nivel de confianza que el modelo base tiene sobre una afirmación concreta.
      Eso en sí está bien, pero creo que las leyendas urbanas o culturales también quedarían muy arriba en el ranking.
      Aunque sea un error muy humano, sigue siendo un error.
      Para ir más allá de eso, creo que hay que construir un modelo del mundo, encontrar contradicciones y buscar nueva evidencia que resuelva esas contradicciones.
  • Por fin salió.
    Hace unos 16 meses vengo diciendo que no hay que concentrarse en hacer que un solo agente acierte todo, sino que hay que jerarquizar agentes, y me alegra que ahora haya un paper al que apuntar.
    También es interesante que los rendimientos decrecientes por tarea se aplanen rápidamente en un tamaño parecido al de las reuniones humanas ideales: https://www.researchgate.net/figure/18-Optimal-Meeting-Sizes...
    Me pregunto qué tan cerca coincidirían esos números si hubieran probado la cantidad de agentes con pasos más finos.
    También me gustaría ver cuánto más mejora el rendimiento cuando, más adelante, se ajuste finamente cada agente hacia objetivos un poco distintos.
    Creo que incluso usar valores de temperatura distintos para cada agente podría mejorar el rendimiento.
    Me da mucho gusto que la comunidad de investigación empiece a moverse en esta dirección.

    • Totalmente de acuerdo.
      También vale la pena ver los SLIM agents de LLMWare: https://github.com/llmware-ai/llmware/tree/main/examples/SLI...
      Se concentran casi exactamente en este tema, conectando varios LLM locales.
      Un buen tema relacionado es la necesidad de muestreo determinista según el uso del modelo.
      Puede que el término no sea del todo correcto, pero el equipo de LLMWare hizo un buen video en dos partes sobre esto: https://www.youtube.com/watch?v=7oMTGhSKuNY
      Creo que los LLM pequeños y especializados son el camino a seguir.
      Como aclaración, no tengo ninguna relación con ellos; simplemente me parece un proyecto realmente genial.
    • Creo que los humanos también funcionamos así.
      Como si dentro del cráneo hubiera unas 5 u 8 versiones de nosotros mismos dando vueltas, y una de ellas actuara más o menos como supervisora.
    • El año pasado estuve varios meses construyendo un sistema multiagente para resolución de problemas con https://github.com/agi-merge/waggle-dance.
    • “Cada uno ajustado finamente a objetivos ligeramente distintos” sería, por así decirlo, algo como una mezcla de expertos, ¿no?
    • Es interesante que los investigadores estudien lo que la gente está creando experimentalmente.
      crewAI es un ejemplo.
  • Parece estar relacionado con el episodio de Edward Chang en el reciente ACM ByteCast
    Es un episodio con Edward Chang, profesor adjunto de Ciencias de la Computación en Stanford University: https://learning.acm.org/bytecast/ep50-edward-y-chang
    Si no quieres escucharlo, también hay transcripción
    El enfoque que él usa, en lugar del formato común de preguntas/respuestas de los LLM actuales, consiste en hacer que varios LLM conversen entre sí sobre un tema de debate, mientras el humano cumple el rol de moderador
    Dice que, con los mismos recursos, la respuesta final a la que llegan varios LLM mediante la conversación mejora mucho tanto en precisión como en exactitud

    • Este paper parece decir que la parte del debate no hace falta
      Basta con hacer que los LLM resuelvan el problema de forma independiente y luego elegir la respuesta más popular
    • Hice algo similar en Haskell
      No hice benchmarks, pero me pareció bastante convincente
      Por ejemplo, definí a cada agente como un “experto” distinto por subcampo de las matemáticas: teórico de la demostración, experto en álgebra abstracta, etc.
      Sí ayudó, pero tenía una relación señal-ruido alta y muchos agentes repetían los mismos puntos
    • ¿Esto básicamente está describiendo algo como crewAI?
  • Hay algo que me ha frustrado en toda esta investigación sobre mezcla de expertos
    Incluso viendo una introducción a algoritmos aleatorizados o razonamiento probabilístico básico, si el parámetro de temperatura es mayor que 0, consultar a un LLM N veces y elegir el resultado por mayoría generalmente debería rendir mejor que preguntar una sola vez y quedarse con ese resultado
    Parece posible lograr mejoras adicionales especializando y mezclando distintos LLM, y en ese caso incluso se podría ejecutar con temperatura 0
    O, como propone este paper, también es posible dividir mejor la tarea en subtareas
    Pero, a mi parecer, nadie ha cuantificado realmente esas ganancias hipotéticas comparándolas con una repetición aleatoria simple
    En particular, con cierta estrategia de votación o forma de mezcla, e incluso con un modelo específico, un enfoque tipo MoE podría ser estrictamente peor que la repetición ingenua
    No soy investigador de LLM, más bien un ciudadano preocupado, así que quizá se me está escapando algo
    Aun así, me parece raro que los investigadores de LLM parezcan haber olvidado el primer capítulo de Motwani/Raghavan

    • Creo que hay una diferencia entre elegir el mejor token entre tokens seleccionados aleatoriamente y elegir la mejor cadena entre cadenas de tokens seleccionadas aleatoriamente
  • Viendo el gráfico por encima, la mayor parte de la ganancia viene con 10 agentes, luego aumenta un poco más con 20 y después aparecen rendimientos decrecientes
    Parece que no se resolverá simplemente agregando más agentes

  • Hay un repositorio público: https://anonymous.4open.science/r/more_agent_is_all_you_need...
    Los prompts usados en el benchmark están aquí: https://anonymous.4open.science/r/more_agent_is_all_you_need...
    Muy interesante
    También me gustaría ver un benchmark de agentes basados en LLM que usen un conjunto de herramientas, pero de este estilo

  • ¿No es este un método tremendamente caro e insostenible?
    Probablemente los modelos más recientes tendrán rendimientos decrecientes, así que coincido con la idea de que MoE es el camino
    Pero ¿no implica que el cómputo de un solo prompt de pronto aumente 7 a 15 veces?

    • GPT-4 es 20 veces más caro que GPT-3.5, pero si 10 ejecuciones de GPT-3.5 bastan para obtener una calidad de respuesta similar, y probablemente incluso sea más rápido, entonces igual conviene
    • “Todo lo que necesitas es una factura de OpenAI de seis cifras”
    • El uso de recursos no renovables y las emisiones también aumentan 7 a 15 veces
    • ¿Y cuál es el problema? No es como si a las GPU les faltara trabajo de cómputo
    • Exacto, basta mirar los precios de GPT-3.5 y GPT-4
  • Con solo leer algunos de los comentarios principales actuales, el modelo de negocio de las empresas que ofrecen servicios de LLM se siente extraño
    Es como un servicio de autos que necesita n llamadas para llevarte de A a B, o un detergente que hay que aplicar n veces para que la ropa “probablemente” quede limpia
    Si una empresa cobra por ofrecer “inteligencia artificial”, ¿no sería razonable pagar solo por las respuestas correctas?
    Si ofrecen un servicio de transporte, ¿no deberías pagar solo cuando te llevan hasta el destino?

    • Estoy de acuerdo
      Si falla con suficiente frecuencia, ¿no baja bastante el umbral a partir del cual un humano o la automatización tradicional de propósito general resultan mejores?
      Creo que esta burbuja va a estallar de esta forma
      No dudo de que los LLM sean herramientas revolucionarias, pero soy genuinamente escéptico salvo en aplicaciones muy específicas
      Quizá la lección sea que distribuir la responsabilidad entre agentes LLM tiene el mismo modelo de fallas que las organizaciones humanas existentes
    • Las empresas normalmente ofrecen un servicio o producto
      Si no entregan lo acordado, el cliente puede exigir una corrección
      Si un taxista toma una ruta innecesariamente complicada, cobra de más o no te lleva a tu destino, puedes reclamarle a la compañía de taxis
      Si la lavandería no quedó bien, pides que la hagan de nuevo
      Pero muchas actividades son inherentemente riesgosas o tienen resultados inciertos
      Siempre hay factores que nadie puede controlar
      Un abogado no puede prometer que ganará un juicio, pero debe representar el caso lo mejor que pueda
      Un médico no garantiza que volverás a estar sano
      Ningún taxista garantiza llegar a destino a tiempo, pero sí te lleva hasta el destino
      Atlassian no garantiza que cumplirás la fecha límite de un release por usar una instancia administrada de JIRA, pero sí hace lo posible por evitar la pérdida de datos
      Básicamente, una empresa que vende acceso a un chatbot tampoco va a garantizar que dará resultados correctos
      Quizá sí pueda ofrecer alguna garantía de disponibilidad
    • Como contraargumento, los pronósticos del National Weather Service no siempre son correctos, pero no le pagamos al NWS solo los días en que el pronóstico acierta
  • Por más que hagas un ensamble de agentes GPT-3.5, su exactitud sigue siendo menor que una sola llamada a GPT-4

    • Lo gracioso es que GPT-4 es, en la práctica, un montón de GPT-3.5
      Solo hay que configurarlos correctamente