Test Time Compute, la técnica que busca hacer más inteligentes a los modelos de lenguaje

Test Time Compute, la técnica que busca hacer más inteligentes a los modelos de lenguaje

En Agosto, Google DeepMind publicaba el paper "Scaling LLM Test-Time Compute Optimally can be More Effective than Scaling Model Parameters" en el que se planteaba un nuevo problema del que llevamos ya tiempo hablando en mi perfil: dejar atrás la necesidad de construir modelos cada vez más grandes (en cuanto a parámetros) para que sean más inteligentes.

La introducción de este paper empieza con una pregunta que me gusta mucho porque nos hace entender la cuestión del problema a resolver en este artículo: "Los humanos tienden a pensar durante más tiempo en problemas difíciles para mejorar sus decisiones de forma fiable. ¿Podemos inculcar una capacidad similar en los Grandes Modelos de Lenguaje de hoy en día?". Es decir, ¿podemos hacer que el tiempo de inferencia de un modelo de lenguaje sea mayor para que piense durante más tiempo en la respuesta que nos va a dar?

Hasta ahora, siempre que hemos querido mejorar el rendimiento de un modelo de lenguaje en tareas de razonamiento, acudimos a técnicas como:

  • Aumentar el tamaño del modelo y la capacidad de entrenamiento, con la expectativa de que una mayor capacidad y exposición a los datos mejorarían la capacidad de razonamiento.
  • Entrenamiento con datos específicos de la tarea.
  • Fine-tuning con métodos inspirados en Reinforcement Learning.
  • Autocrítica y revisión iterativa.
  • Uso de verificadores.

Todas estas técnicas se centran en mejorar el modelo durante la fase de entrenamiento pero, ninguna se centra en los cálculos aplicados en el tiempo de inferencia (test time). ¡Presentamos al Test Time Compute!

Test Time Compute

Test Time Compute se refiere a la utilización de cómputo adicional durante la fase de inferencia de un modelo de lenguaje, con el objetivo de mejorar la calidad de sus respuestas; es decir, se trata de permitir que el modelo piense durante más tiempo para llegar a una solución más precisa, especialmente cuando se enfrenta a problemas complejos.

Tradicionalmente, el enfoque principal para mejorar el rendimiento de los modelos de lenguaje ha sido aumentar su tamaño y capacidad de entrenamiento. Sin embargo, en Test Time Compute cambiamos el paradigma, ya que con esta técnica podemos aprovechar el cómputo disponible durante la inferencia para refinar las respuestas del modelo.

Esto es particularmente relevante en escenarios donde se requiere un alto grado de precisión, como en la resolución de problemas matemáticos, donde la capacidad de razonamiento del modelo es crucial.

Existen dos mecanismos principales para escalar el Test Time Compute:

  1. Refinamiento de la distribución de propuestas. Consiste en modificar la distribución de respuestas generadas por el modelo de lenguaje, condicionándolo a sus propios intentos previos de resolver el problema. Se puede lograr mediante técnicas de autocrítica y revisión iterativa, donde el modelo aprende a identificar y corregir sus errores a partir de las respuestas anteriores.
  2. Optimización de un verificador. Implica el uso de un modelo independiente para evaluar la calidad de las respuestas generadas por el modelo de lenguaje. Los verificadores pueden ser entrenados para evaluar la respuesta final o para analizar la corrección de cada paso en la solución de un problema, como en el caso de los modelos de recompensa de process (Process Reward Models, PRM).

Además, un aspecto interesante que se habla en el paper es la posibilidad de intercambiar cómputo entre la fase de pre-entrenamiento y la de inferencia. En lugar de aumentar el tamaño del modelo o el tiempo de entrenamiento, se podría destinar más cómputo a la fase de inferencia para refinar las respuestas del modelo. Sin embargo, existe el problema de que esta relación no es lineal ni siempre favorece al Test Time Compute (en problemas sencillos puede ser factible pero en problemas más complejos no).

Conclusiones

Aunque esta técnica resulta muy prometedora, hay que tener en cuenta los siguientes puntos:

  • La dificultad del problema es crucial. La eficacia de una técnica particular de Test Time Compute depende en gran medida de la dificultad del problema.
  • Escalado "compute-optimal". El artículo introduce el concepto de "estrategia de escalado óptima de cómputo en tiempo de inferencia", que consiste en adaptar la estrategia de Test Time Compute a la dificultad del problema para maximizar la eficiencia y el rendimiento.
  • Sin embargo, tenemos que tener en cuenta que estimar la dificultad de un problema puede requerir un cómputo adicional considerable.
  • Beneficios del escalado "compute-optimal". Se observa una mejora de 2 a 4 veces en la eficiencia del escalado del cómputo en tiempo de inferencia al aplicar esta estrategia.



Inicia sesión para ver o añadir un comentario.

Más artículos de Marta Fernández García

Otros usuarios han visto

Ver temas