Una encuesta de modelos de lenguaje a gran escala de LLM

Fuente: Escuela de Inteligencia Artificial y Escuela de Información, Universidad Renmin de China

dirección de github: RUCAIBox / LLMSurvey

论文:Una encuesta de modelos de lenguaje grande

Hora: 31 de marzo de 2023


1. Resumen

El lenguaje es esencialmente un sistema complejo e intrincado de expresión humana regido por reglas gramaticales. Desarrollar algoritmos de IA capaces de comprender y dominar el lenguaje es un gran desafío. Como enfoque principal, el modelado del lenguaje se ha estudiado ampliamente para la comprensión y la generación del lenguaje en las últimas dos décadas, evolucionando desde modelos de lenguaje estadísticos hasta modelos de lenguaje neuronal.

En los últimos años, la investigación sobre LLM ha sido promovida vigorosamente por la academia y la industria, y uno de los avances más sorprendentes es el lanzamiento de ChatGPT, que ha atraído la atención de la sociedad. El desarrollo técnico de LLM ha tenido un impacto importante en toda la comunidad de IA, lo que cambiará por completo la forma en que desarrollamos y usamos los algoritmos de IA.

En esta encuesta, revisamos el progreso reciente en LLM al presentar los antecedentes, los hallazgos principales y las técnicas principales. En particular, nos enfocamos en cuatro aspectos principales de LLM, a saber, entrenamiento previo , ajuste adaptativo , uso posterior y evaluación de capacidad . Además, resumimos los recursos disponibles para desarrollar LLM y discutimos los problemas restantes para direcciones futuras.


2. Introducción

Desde la historia de NLP, SLM, n-gram, rnn, lstm, PLM (Elmo, BERT, GPT, BART), hasta PaLM, Chat GPT, GPT4

Luego me concentré en presentar las excelentes capacidades y los efectos de rendimiento de ChatGPT y GPT4, y finalmente presenté mi propia dirección de github para recopilar recursos relacionados con LLM.

3. Recursos LLM

Recursos para LLM Desarrollar o replicar LLM no es una tarea fácil, dados los desafiantes problemas técnicos y los enormes requisitos de recursos computacionales. Un enfoque factible es aprender de los LLM existentes y reutilizar los recursos disponibles públicamente para el desarrollo incremental o la investigación experimental.

inserte la descripción de la imagen aquí

3.1 Algunos puntos de control disponibles
  • LLAMA 65B
  • NLLB 54.5B
  • mT5
  • PanGu-a (200B)
  • T0
  • GPT-NeoX-20B
  • Generación de código
  • UL2
  • Flan-T5
  • mT0
  • OPTAR
  • OPT-IML
  • FLORACIÓN
  • BLOOMZ
  • GPT-3

inserte la descripción de la imagen aquí

3.2 Cuerpo común

En esta sección, resumimos brevemente varios corpus ampliamente utilizados para la formación de LLM. Agrupamos estos corpus en seis grupos según su tipo de contenido: Books, CommonCrawl, Reddit Links, Wikipedia, Code, etc. libros _

  1. Libros: BookCorpus es un conjunto de datos comúnmente utilizado en modelos anteriores a pequeña escala (como GPT y GPT-2), que consta de más de 11 000 libros que cubren una amplia gama de temas y géneros (como ficción y biografía). corpus es Project Gutenberg, incluye más de 70,000 libros de literatura, incluyendo ficción, ensayos, poesía, drama, historia, ciencia, filosofía y otros géneros de dominio público. Actualmente es una de las mayores colecciones de libros de código abierto para la formación de MT-NLG y LLaMA.
  2. CommonCrawl es una de las bases de datos de rastreadores web de código abierto más grandes, que contiene un petabyte de estadísticas en 7 fuentes de datos comunes. Debido al enorme tamaño de todo el conjunto de datos, la investigación existente extrae principalmente un subconjunto de páginas web en un período específico. Sin embargo, debido a la prevalencia del ruido y la información de baja calidad en los datos de la red, se requiere un procesamiento previo de los datos antes de su uso. Según CommonCrawl, hay cuatro conjuntos de datos de filtro de uso común en el trabajo existente: C4, CC-Stories, CC-News y RealNews.
  3. Reddit es una plataforma de redes sociales que permite a los usuarios enviar enlaces y publicaciones de texto que otros pueden votar "votando a favor" o "votando a la baja". Las publicaciones con muchos votos generalmente se consideran útiles y se pueden usar para crear conjuntos de datos de alta calidad. WebText es un corpus muy conocido de enlaces muy elogiados de Reddit, pero no es público. Como alternativa, existe una alternativa de código abierto de fácil acceso llamada OpenWebText.
  4. Wikipedia. Wikipedia es una enciclopedia en línea que contiene una gran cantidad de artículos de alta calidad sobre diferentes temas. La mayoría de estos artículos están escritos en un estilo de escritura expositivo (con referencias de apoyo), que cubren una amplia gama de idiomas y campos.
  5. código. Para recopilar datos de código, los trabajos existentes principalmente extraen códigos con licencia de código abierto de Internet. Las dos fuentes principales son repositorios de código público bajo licencias de código abierto (como GitHub) y plataformas de preguntas y respuestas relacionadas con el código (como StackOverflow). Google lanzó públicamente el conjunto de datos de BigQuery, que incluye una gran cantidad de fragmentos de código con licencia de código abierto en varios lenguajes de programación, como un conjunto de datos de código representativo. CodeGen aprovecha BIGQUERY (un subconjunto del conjunto de datos de BigQuery) para entrenar la versión multilingüe de CodeGen (CodeGen-Multi).
  6. otro. Pile es un conjunto de datos de texto a gran escala, diverso y de código abierto que consta de más de 800 GB de datos de múltiples fuentes, incluidos libros, sitios web, códigos, artículos científicos y plataformas de redes sociales. Consta de 22 subconjuntos diferentes de alta calidad.
3.2 Desarrollar bibliotecas comunes para LLM

En esta sección, presentamos brevemente una variedad de bibliotecas disponibles para desarrollar LLM.

  • Transformers es una biblioteca Python de código abierto para construir modelos utilizando la arquitectura Transformer, desarrollada y mantenida por Hugging Face. Tiene una API simple y fácil de usar que facilita su uso8 y personaliza varios modelos previamente entrenados. Es una biblioteca poderosa con una comunidad grande y activa de usuarios y desarrolladores que actualizan y mejoran regularmente modelos y algoritmos.
  • DeepSpeed ​​​​es una biblioteca de optimización de aprendizaje profundo desarrollada por Microsoft (compatible con PyTorch), que se ha utilizado para entrenar muchos LLM, como MT-NLG y BLOOM. Brinda soporte para varias técnicas de optimización para el entrenamiento distribuido, como la optimización de la memoria (tecnología ZeRO, puntos de control de gradiente) y el paralelismo de canalización.
  • Megatron-LM es una biblioteca de aprendizaje profundo desarrollada por NVIDIA para entrenar modelos de lenguaje a gran escala. También proporciona ricas técnicas de optimización para el entrenamiento distribuido, incluido el paralelismo de modelos y datos, el entrenamiento de precisión mixta y FlashAttention. Estas técnicas de optimización pueden mejorar en gran medida la eficiencia y la velocidad del entrenamiento, lo que permite un entrenamiento distribuido eficiente en las GPU.
  • JAX es una biblioteca de Python desarrollada por Google para algoritmos de aprendizaje automático de alto rendimiento que permite a los usuarios realizar fácilmente cálculos en arreglos mediante aceleración de hardware (como GPU o TPU). Puede realizar cálculos eficientes en varios dispositivos y también admite varias funciones especiales, como la diferenciación automática y la compilación justo a tiempo.
  • Colossal-AI es una biblioteca de aprendizaje profundo desarrollada por HPC-AI Tech para entrenar modelos de IA a gran escala. Se implementa en base a PyTorch y admite ricas estrategias de entrenamiento en paralelo.
  • BMTrain es una librería eficiente desarrollada por OpenBMB para entrenar modelos con parámetros a gran escala de manera distribuida, enfatizando código simple, bajos recursos y alta disponibilidad. BMTrain ha incorporado varios LLM comunes (por ejemplo, Flan-T5 y GLM) en su Centro de modelos, donde los desarrolladores pueden usar estos modelos directamente.
  • FastMoE es una biblioteca de capacitación dedicada a los modelos MoE (es decir, mezcla de expertos). Está desarrollado en base a PyTorch y su diseño prioriza la eficiencia y la facilidad de uso. FastMoE simplifica el proceso de migración del modelo Transformer al modelo MoE, al tiempo que admite el paralelismo de datos y el paralelismo de modelos durante el entrenamiento.

4. Pre-entrenamiento LLM

El tamaño y la calidad del corpus de precapacitación son cruciales para que LLM logre capacidades sólidas. Además, para entrenar previamente a los LLM de manera efectiva, se requieren arquitecturas de modelos cuidadosamente diseñadas, métodos de aceleración y técnicas de optimización. Primero discutimos la recopilación y el procesamiento de datos en la Sección 4.1, luego presentamos arquitecturas de modelos de uso común en la Sección 4.2 y, finalmente, presentamos técnicas de capacitación para optimizar LLM de manera estable y eficiente en la Sección 4.3.

4.1 Preprocesamiento de datos

Después de recopilar una gran cantidad de datos de texto, es necesario preprocesar los datos para crear un corpus previo al entrenamiento, especialmente para eliminar el ruido, los datos redundantes, irrelevantes y potencialmente tóxicos, que pueden afectar en gran medida la capacidad y el rendimiento de LLM.

En esta sección, revisamos estrategias detalladas de preprocesamiento de datos para mejorar la calidad de los datos recopilados. El trabajo existente generalmente adopta dos enfoques:

(1) Basado en clasificador

Seleccione un clasificador basado en entrenamiento de texto de alta calidad y utilícelo para identificar y filtrar datos de baja calidad. Por lo general, estos métodos entrenan a un clasificador binario utilizando datos seleccionados (por ejemplo, páginas de Wikipedia) como ejemplos positivos y muestras de datos candidatos como ejemplos negativos, y predicen una puntuación que mide la calidad de cada ejemplo. Sin embargo, algunos estudios también han encontrado que los métodos basados ​​en clasificadores pueden eliminar inadvertidamente texto de alta calidad en dialectos, idiomas coloquiales y sociolingüísticos, lo que puede sesgar el corpus preentrenado y reducir la diversidad del corpus.

(2) Basado en heurística.

Se adopta un enfoque heurístico para eliminar el texto de baja calidad a través de un conjunto de reglas bien diseñadas, que se pueden resumir de la siguiente manera:

  • Filtrar según el idioma. Si el LLM se usa principalmente para tareas en ciertos idiomas, se puede filtrar el texto en otros idiomas.
  • Filtrado basado en métricas. Las métricas de evaluación del texto generado, como la perplejidad, se pueden utilizar para detectar y eliminar oraciones no naturales.
  • Filtrado basado en estadísticas. Las características estadísticas del corpus, como la distribución de la puntuación, la relación símbolo-palabra y la longitud de la oración, se pueden usar para medir la calidad del texto y filtrar datos de baja calidad.
  • Filtrado basado en palabras clave. En función de un conjunto específico de palabras clave, se pueden identificar y eliminar elementos ruidosos o inútiles en el texto, como etiquetas HTML, hipervínculos, repeticiones y palabras ofensivas.
  • Deduplicación de datos. El trabajo existente ha encontrado que los datos repetidos en el corpus reducen la diversidad de los modelos de lenguaje, lo que puede hacer que el proceso de entrenamiento se vuelva inestable, afectando así el rendimiento del modelo. Por lo tanto, es necesario deduplicar el corpus de preentrenamiento.
  • Revisión de Privacidad. La mayoría de los datos de texto previos a la capacitación se obtienen de recursos web, incluido el contenido generado por el usuario que involucra información confidencial o personal, lo que puede aumentar el riesgo de fuga de privacidad. Por lo tanto, es necesario eliminar la información de identificación personal (PII) del corpus previo al entrenamiento. Un enfoque sencillo y efectivo es emplear un enfoque basado en reglas, como el reconocimiento de palabras clave, para detectar y eliminar PII, como nombres, direcciones y números de teléfono.
4.2 Arquitectura previa a la formación

inserte la descripción de la imagen aquí

4.3 Entrenamiento modelo

Por favor agregue una descripción de la imagen

  • tamaño del lote

    Entrenamiento por lotes. Para el entrenamiento previo del modelo de lenguaje, los trabajos existentes generalmente establecen el tamaño del lote en un número grande (por ejemplo, 8196 ejemplos o 1,6 millones de tokens) para mejorar la estabilidad y el rendimiento del entrenamiento. Para LLM como GPT-3 y PaLM, introdujeron una nueva estrategia para aumentar dinámicamente el tamaño del lote durante el entrenamiento, alcanzando finalmente la escala de un millón. Específicamente, el tamaño del lote de GPT-3 aumenta gradualmente de 32 000 tokens a 3,2 millones de tokens. Los resultados empíricos muestran que la programación dinámica del tamaño del lote puede estabilizar efectivamente el proceso de capacitación de LLM.

  • tasa de aprendizaje

    Los LLM existentes generalmente emplean programas de tasa de aprendizaje similares y estrategias de calentamiento y decaimiento durante el pre-entrenamiento. Específicamente, se emplea un programa de calentamiento lineal para aumentar gradualmente la tasa de aprendizaje hasta un valor máximo que oscila entre aproximadamente 5 × 10-5 y 1 × 10-4 (p. ej., GPT-3 es 6 × 10-5). Luego, se emplea una estrategia de decaimiento de coseno en pasos posteriores para reducir gradualmente la tasa de aprendizaje a alrededor del 10% de su valor máximo hasta que la pérdida de entrenamiento converja.

  • optimizador

    El optimizador Adam y el optimizador AdamW se utilizan ampliamente para entrenar LLM (como GPT-3), que se basan en la estimación adaptativa de momentos de bajo orden para la optimización basada en gradientes de primer orden. Por lo general, sus hiperparámetros se establecen de la siguiente manera: β1 = 0,9, β2 = 0,95 y = 10−8. Al mismo tiempo, el optimizador Adafactor también se usa para entrenar LLM (como PaLM y T5), que es una variante del optimizador Adam diseñado para ahorrar memoria GPU durante el entrenamiento. Los ajustes de hiperparámetros para el optimizador de Adafactor son: β1 = 0,9 y β2 = 1,0 − k−0,8, donde k representa el número de pasos de entrenamiento

  • Estabilizando el Entrenamiento

    Durante el proceso de preentrenamiento de los LLM, a menudo se encuentra el problema de la inestabilidad del entrenamiento, lo que puede hacer que el modelo se bloquee. Para resolver este problema, se utilizan ampliamente el decaimiento de peso y el recorte de gradiente, y los estudios existentes generalmente establecen el umbral del recorte de gradiente en 1,0 y la tasa de decaimiento de peso en 0,1. Sin embargo, a medida que escala el LLM, también es más probable que ocurran picos de pérdida de entrenamiento, lo que lleva a un entrenamiento inestable. Para aliviar este problema, PaLM y OPT utilizan una estrategia simple de reiniciar el proceso de capacitación desde un punto de control anterior al pico y omitir datos que podrían causar problemas. Además, GLM encuentra que los gradientes anormales de las capas de incrustación a menudo causan picos y propone reducir los gradientes de la capa de incrustación para aliviarlo.

5. Ajuste adaptativo LLM

Después de la capacitación previa, LLM puede obtener una capacidad general para resolver varias tareas. Sin embargo, un creciente cuerpo de investigación muestra que las competencias del LLM se pueden adaptar aún más a objetivos específicos. En esta sección, presentamos dos enfoques principales para ajustar los LLM preentrenados, a saber, el ajuste de instrucciones y el ajuste de alineación .

5.1 sintonización de instrucciones

Ajuste fino de instrucciones, después del ajuste de instrucciones, LLM puede generalizar bien a otras tareas no vistas de acuerdo con la descripción de la tarea. En particular, se ha demostrado que la instrucción es un factor clave en la capacidad de generalización de las tareas de LLM. Al ajustar el modelo en el conjunto de datos etiquetado y eliminar la descripción de la tarea, se produce una caída drástica en el rendimiento del modelo. Para generar mejor instancias etiquetadas para el ajuste de instrucciones, se propone PromptSource, una plataforma de crowdsourcing, para crear, compartir y validar de manera eficiente descripciones de tareas en diferentes conjuntos de datos.

5.2 ajuste de alineación

RLHF

Para alinear los LLM con los valores humanos, se propone el aprendizaje reforzado a partir de la retroalimentación humana (RLHF) para ajustar los LLM utilizando los datos de retroalimentación humana recopilados, lo que ayuda a mejorar los criterios de alineación. RLHF emplea algoritmos de aprendizaje por refuerzo (RL) para adaptar los LLM a la retroalimentación humana mediante el aprendizaje de un modelo de recompensa. Este enfoque incorpora humanos en el circuito de capacitación para desarrollar LLM bien alineados.

sistema RLHF. El sistema RLHF consta principalmente de tres componentes clave: un LM preentrenado para alinear, un modelo de recompensa aprendido de la retroalimentación humana y un algoritmo RL.

inserte la descripción de la imagen aquí

6. Resumen

En esta encuesta, revisamos los avances recientes en los modelos de lenguaje extenso (LLM) e introducimos conceptos clave, hallazgos y técnicas para comprender y explotar los LLM. Nos enfocamos en modelos grandes (es decir, >10B de tamaño), mientras que excluimos modelos de lenguaje previamente entrenados (como BERT y GPT-2) que están bien cubiertos en la literatura existente.

Uno de los mayores misterios para comprender el funcionamiento subyacente de LLM es cómo se distribuye, organiza y utiliza la información a través de redes neuronales profundas muy grandes. Es importante descubrir los principios o elementos básicos que construyen la base de las competencias LLM. En particular, cuando la escala de parámetros de un modelo de lenguaje aumenta a un tamaño crítico (por ejemplo, 10B), algunas capacidades emergentes ocurren de manera inesperada, que a menudo incluyen aprendizaje situacional, seguimiento de instrucciones y razonamiento paso a paso. Estas capacidades emergentes son fascinantes pero también desconcertantes.

Supongo que te gusta

Origin blog.csdn.net/be_humble/article/details/130227945
Recomendado
Clasificación