Modelos de lenguaje grandes, GPT-3: los modelos de lenguaje son aprendices de pocas posibilidades |  de Vyacheslav Efimov |  febrero de 2024

Escalar eficientemente GPT desde magnitudes grandes a titánicas dentro del marco de metaaprendizaje

GPT es una familia de modelos de lenguaje que recientemente ha ido ganando mucha popularidad. La atención de la comunidad de ciencia de datos fue rápidamente captada por el lanzamiento de GPT-3 en 2020. Después de la aparición de GPT-2, casi nadie podía suponer que casi en un año aparecería una versión titánica de GPT que contiene 175B de parámetros! Esto es dos órdenes de magnitud más que su predecesor.

La enorme capacidad de GPT-3 hizo posible su uso en diversos escenarios cotidianos: finalización de código, redacción de artículos, creación de contenidos, asistentes virtuales, etc. Si bien la calidad de estas tareas no siempre es perfecta, el progreso general logrado por GPT-3 3 es absolutamente asombroso!

En este artículo, analizaremos en detalle los detalles principales de GPT-3 y las ideas útiles inspiradas por los creadores de GPT-2. A lo largo de la exploración nos referiremos a documento oficial GPT-3. Vale la pena señalar que la mayoría de las configuraciones de GPT-3, incluida la recopilación de datos, la elección de la arquitectura y el proceso de entrenamiento previo, se derivan directamente de GPT-2. Es por eso que la mayor parte del tiempo nos centraremos en aspectos novedosos de GPT-3.

Nota. Para una mejor comprensión, este artículo asume que ya está familiarizado con las dos primeras versiones de GPT. De lo contrario, navegue hasta los artículos siguientes que lo explican detalladamente:

Los creadores de GPT-3 estaban muy interesados ​​en el enfoque de formación utilizado en GPT-2: en lugar de utilizar un sistema común preentrenamiento + ajuste fino En el marco, los autores recopilaron un conjunto de datos grande y diverso e incorporaron el objetivo de la tarea en el ingreso de texto. Esta metodología fue conveniente por varias razones:

  • Al eliminar la fase de ajuste, Ya no necesitamos varios conjuntos de datos etiquetados grandes para tareas posteriores individuales..
  • Para diferentes tareas, Se puede utilizar una única versión del modelo en lugar de muchas..
  • El modelo opera de una manera más similar a como lo hacen los humanos.. La mayoría de las veces, los humanos no necesitan ningún ejemplo de lenguaje o sólo unos pocos para comprender completamente una tarea determinada. Durante la inferencia, el modelo puede recibir esos ejemplos en forma de texto. Como resultado, este aspecto proporciona mejores perspectivas para desarrollar aplicaciones de IA que interactúen con los humanos.
  • El modelo se entrena solo una vez en un único conjunto de datos.. Al contrario de lo preentrenamiento + ajuste fino paradigma, el modelo tuvo que entrenarse en dos conjuntos de datos diferentes que podrían haber tenido distribuciones de datos completamente diferentes, lo que condujo a posibles problemas de generalización.

Formalmente, el marco descrito se llama metaaprendizaje. El documento proporciona una definición oficial:

“El metaaprendizaje en el contexto de los modelos de lenguaje significa que el modelo desarrolla un amplio conjunto de habilidades y capacidades de reconocimiento de patrones en el momento del entrenamiento, y luego usa esas habilidades en el momento de la inferencia para adaptarse rápidamente o reconocer la tarea deseada”

Para describir mejor el paradigma de aprendizaje, se introducen términos de bucle interno y externo. Básicamente, un bucle interior es el equivalente a un único pase hacia adelante durante el entrenamiento mientras un bucle exterior designa un conjunto de todos los bucles internos.

A lo largo del proceso de formación, un modelo puede recibir tareas similares en diferentes ejemplos de texto. Por ejemplo, el modelo puede ver los siguientes ejemplos en diferentes lotes:

  • Bueno es un sinónimo por excelente.
  • La computadora es una sinónimo para portátil.
  • La casa es una sinónimo para construir.

En este caso, estos ejemplos ayudan al modelo a comprender qué sinónimo es que puede resultar útil durante la inferencia cuando se pide encontrar sinónimos para una determinada palabra. Una combinación de ejemplos centrados en ayudar al modelo a capturar conocimientos lingüísticos similares dentro de una tarea particular se denomina “aprendizaje en contexto”.

Los ejemplos de entrenamiento pasados ​​al modelo se pueden clasificar en uno de muchos grupos de contexto abstracto. Dentro de cada uno de estos grupos, el modelo adquiere más conocimientos y habilidades en un determinado dominio. En el ejemplo del diagrama, el modelo aprende multiplicación, algoritmo de inversión de texto y palabras con significados opuestos. Las secuencias de texto del mismo grupo se pueden pasar en diferentes lotes. Imagen adoptada por el autor.

aprendizaje n-shot

Una consulta realizada para el modelo durante la inferencia puede contener además ejemplos de tareas. Resulta que la demostración de tareas juega un papel importante para ayudar al modelo a comprender mejor el objetivo de una consulta. Según la cantidad de ejemplos de tareas proporcionados (tiros), existen tres tipos de aprendizaje que se resumen en la siguiente tabla:

Definiciones de tipos de aprendizaje

En la mayoría de los casos (pero no siempre), la cantidad de ejemplos proporcionados se correlaciona positivamente con la capacidad del modelo para proporcionar una respuesta correcta. Los autores completaron una investigación en la que utilizaron modelos de diferentes tamaños en uno de tres entornos de n disparos. Los resultados muestran que Con el crecimiento de la capacidad, los modelos se vuelven más competentes en el aprendizaje en contexto. Esto se demuestra en el gráfico de líneas a continuación, donde la brecha de desempeño entre pocos-, uno- y tiro cero La configuración aumenta con el tamaño del modelo.

Gráfico que demuestra mayores brechas de rendimiento entre tres tipos de aprendizaje diferentes con el aumento del tamaño del modelo

El artículo describe con precisión la configuración de la arquitectura en GPT-3:

“Utilizamos el mismo modelo y arquitectura que GPT-2, incluida la inicialización modificada, la prenormalización y la tokenización reversible descritas allí, con la excepción de que utilizamos patrones de atención alternos densos y con bandas locales dispersas en las capas del transformador, similares hacia Transformador escaso”.

Inicialmente, los autores querían utilizar el conjunto de datos Common Crawl para entrenar GPT-3. Este conjunto de datos extremadamente grande captura un conjunto diverso de temas. La versión del conjunto de datos sin procesar tenía problemas con la calidad de los datos, razón por la cual inicialmente se filtró y deduplicó. Para que el conjunto de datos final sea aún más diverso, se concatenó con otros cuatro conjuntos de datos más pequeños que se muestran en el siguiente diagrama:

Composición del conjunto de datos de entrenamiento

El conjunto de datos utilizado para entrenar GPT-3 es dos magnitudes mayor que el utilizado para GPT-2.

  • Optimizador: Adam (β₁ = 0,9, β₂ = 0,999, ε = 1e-6).
  • El recorte de gradiente en 1.0 se utiliza para evitar el problema de la explosión de gradientes.
  • Se utiliza una combinación de caída del coseno y calentamiento lineal para ajustar la tasa de aprendizaje.
  • El tamaño del lote aumenta gradualmente de 32.000 a 3,2 millones de tokens durante el entrenamiento.
  • Como regularizador se utiliza una caída de peso de 0,1.
  • Para una mejor eficiencia de cálculo, la longitud de todas las secuencias se establece en 2048. Los diferentes documentos dentro de una única secuencia están separados por un token delimitador.

búsqueda de haz

GPT-3 es un modelo autorregresivo lo que significa que utiliza información sobre palabras predichas en el pasado como entrada para predecir la siguiente palabra en el futuro.

El enfoque codicioso es el método más ingenuo para construir secuencias de texto en modelos autorregresivos. Básicamente, en cada iteración, obliga al modelo a elegir la palabra más probable y utilizarla como entrada para la siguiente palabra. Sin embargo, resulta que elegir la palabra más probable en la iteración actual no es óptimo para la optimización de probabilidad logarítmica!

Función de pérdida de probabilidad logarítmica en GPT

Podría darse una situación en la que elegir una palabra actual con una probabilidad más baja podría conducir a probabilidades más altas del resto de las palabras predichas. Por el contrario, elegir una palabra local con la probabilidad más alta no garantiza que las siguientes palabras también correspondan a probabilidades altas. En el siguiente diagrama se muestra un ejemplo que muestra cuándo la estrategia codiciosa no funciona de manera óptima:

Un ejemplo donde la búsqueda codiciosa no es óptima. Aunque la palabra elegida “coche” tenía una probabilidad más alta en la primera iteración, el resto de las predicciones finalmente condujeron a una probabilidad total más baja, en comparación con la búsqueda óptima. Como consecuencia, la probabilidad logarítmica de la estrategia codiciosa es menor (peor) que la correspondiente a la búsqueda óptima.

Una posible solución consistiría en encontrar la secuencia más probable entre todas las opciones posibles. Sin embargo, este enfoque es extremadamente ineficiente ya que existen innumerables combinaciones de secuencias posibles.

búsqueda de haz Es un buen equilibrio entre la búsqueda codiciosa y la exploración de todas las combinaciones posibles. En cada iteración, elige los tokens más probables y mantiene un conjunto de las secuencias más probables actuales. Siempre que se forma una nueva secuencia más probable, reemplaza a la menos probable del conjunto. Al final del algoritmo, se devuelve la secuencia más probable del conjunto.

Ejemplo de búsqueda de haz. Se utiliza un conjunto de tamaño = 2 para mantener las secuencias más probables.

La búsqueda por haz no garantiza la mejor estrategia de búsqueda, pero en la práctica sus aproximaciones funcionan muy bien. Por ese motivo, se utiliza en GPT-3.

A pesar de las increíbles capacidades de GPT-3 para generar textos largos parecidos a los humanos, tiene varios inconvenientes:

  • Las decisiones tomadas por GPT-3 durante la generación de texto generalmente no son interpretables, lo que dificulta su análisis.
  • GPT-3 se puede utilizar de forma dañina que el modelo no siempre puede prevenir.
  • GPT-3 contiene sesgos en el conjunto de datos de entrenamiento, lo que lo hace vulnerable en algunos casos a aspectos de equidad, especialmente cuando se trata de dominios altamente sensibles como la igualdad de género, la religión o la raza.
  • En comparación con su predecesor anterior, GPT-2, GPT-3 requirió cientos de veces más energía (miles de petaflops/día) para ser entrenado, lo que no es ecológico. Al mismo tiempo, los desarrolladores de GPT-3 justifican este aspecto por el hecho de que su modelo es extremadamente eficiente durante la inferencia, por lo que el consumo medio sigue siendo bajo.

¡GPT-3 ganó una gran popularidad debido a sus inimaginables parámetros entrenables de 175B que han apostado fuertemente a todos los modelos anteriores en varios puntos de referencia superiores! En ese momento, los resultados de GPT-3 eran tan buenos que a veces era difícil distinguir si un texto había sido generado por un humano o por GPT-3.

A pesar de varias desventajas y limitaciones de GPT-3, ha abierto las puertas a los investigadores para nuevas exploraciones y posibles mejoras en el futuro.

Todas las imágenes, a menos que se indique lo contrario, son del autor.