[Notas de papel] Baichuan 2: modelos de lenguaje abiertos a gran escala

[Notas de papel] Baichuan 2: modelos de lenguaje abiertos a gran escala

grueso

grueso

Enlace original: [Notas de papel] Baichuan 2: modelos de lenguaje abiertos a gran escala-Zhihu

ingeniero senior de shell

Tabla de contenido

cerca

Abstracto

Introducción

Pre-entrenamiento

datos

fuente de datos

Limpieza de datos

Infraestructura:

Tokenizador:

Código de localización:

Funciones de activación y normalización.

optimizador

normacabeza

Pérdida máxima-z

Leyes de escala

Infraestructura

Etapa de alineación de alineación

1 Supervisión y puesta a punto

2 Modelo de recompensa:

3 PP:

4 Detalles del entrenamiento:

Evaluación y resumen

Abstracto

Los modelos de lenguaje grande (LLM) demuestran un rendimiento excelente en tareas de lenguaje natural, lo que reduce la necesidad de una ingeniería de funciones exhaustiva . Pero los LLM más eficaces se centran en el inglés o son de código cerrado . Este informe técnico presenta Baichuan 2, una familia de modelos multilingües a gran escala que contienen entre 7 mil millones y 13 mil millones de parámetros, entrenados desde cero en base a 2,6 billones de tokens. Baichuan 2 cumple o supera el rendimiento de otros modelos similares de código abierto en puntos de referencia públicos como MMLU, CMMLU, GSM8K y HumanEval , y funciona bien en campos verticales como la medicina y el derecho. Publicamos todos los puntos de control del modelo previamente entrenado para ayudar a la comunidad de investigación a comprender mejor el proceso de entrenamiento de Baichuan 2.

Introducción

Se destaca la importancia y el progreso de los modelos lingüísticos a gran escala, especialmente los desafíos y oportunidades en el procesamiento multilingüe y de código abierto. Baichuan 2, un nuevo modelo multilingüe, tiene como objetivo abordar estos desafíos y proporcionar un recurso valioso a la comunidad.

  1. Progreso en modelos de lenguajes grandes : en los últimos años, el campo de los modelos de lenguajes grandes (LLM) ha logrado avances significativos. El tamaño de los modelos ha crecido de millones de parámetros (como ELMo y GPT-1) a miles de millones o incluso billones de parámetros (como GPT-3, PaLM y Switch Transformers). Este aumento de escala aumenta significativamente la capacidad de los modelos de lenguaje para realizar una variedad de tareas de lenguaje natural con fluidez y de manera más humana. En particular, ChatGPT de OpenAI demuestra la capacidad de estos modelos para generar texto similar al humano en una variedad de dominios.
  2. Modelos de código abierto frente a cerrados : a pesar de los interesantes avances y aplicaciones de los LLM, la mayoría de los LLM líderes ( como GPT-4, PaLM-2 y Claude) siguen siendo de código cerrado. Esto limita el acceso de los desarrolladores e investigadores a los parámetros completos del modelo, lo que dificulta que la comunidad profundice o ajuste estos sistemas. Por el contrario, los LLM de código totalmente abierto (como LLaMA, OPT, Bloom, MPT y Falcon ) brindan a los investigadores la oportunidad de acceder libremente a los modelos, acelerando así la investigación y el progreso en este campo.
  3. Falta de modelos chinos : La mayoría de los modelos lingüísticos a gran escala de código abierto se centran principalmente en el inglés. Por ejemplo, la principal fuente de datos de LLaMA es Common Crawl, que contiene el 67% de los datos previos al entrenamiento de LLaMA, pero se filtra para que solo contenga contenido en inglés. Otros LLM de código abierto, como MPT y Falcon, también se centran principalmente en inglés y tienen capacidades limitadas en otros idiomas.
  4. Introducción a Baichuan 2 : este informe técnico presenta Baichuan 2, una familia de modelos de lenguaje multilingüe a gran escala. Hay dos modelos separados de Baichuan 2: Baichuan 2-7B (7 mil millones de parámetros) y Baichuan 2-13B (13 mil millones de parámetros). Ambos modelos fueron entrenados con 2,6 billones de tokens. Baichuan 2 logra mejoras significativas en varios puntos de referencia y también funciona bien en los ámbitos médico y legal.
  5. Código abierto : para promover la colaboración en la investigación y la mejora continua, los autores también publican puntos de control de Baichuan 2 en varias etapas de entrenamiento, desde 200 mil millones de tokens hasta los 2,6 billones de tokens completos. La publicación de estos resultados intermedios tiene como objetivo proporcionar a la comunidad una comprensión más profunda del entrenamiento de Baichuan 2.

Pre-entrenamiento

datos

Se ajustó la importancia de las fuentes y los métodos de procesamiento de datos utilizados durante el entrenamiento previo del modelo Baichuan 2. La exhaustividad y la alta calidad de los datos son clave para entrenar modelos de lenguaje grandes.

fuente de datos

En el proceso de adquisición de datos, el objetivo es perseguir la exhaustividad y representatividad de los datos . Los datos provienen de una variedad de fuentes, incluidas páginas web comunes de Internet, libros, artículos de investigación, bibliotecas de códigos, etc., para construir un extenso sistema de conocimiento mundial.

Limpieza de datos

  • Frecuencia de datos : se centra en la frecuencia y calidad de los datos. La frecuencia de los datos se basa en la agrupación y la deduplicación . Para ello, se construyó un sistema de agrupación y deduplicación a gran escala. Este sistema puede agrupar y deduplicar billones de datos en cuestión de horas.
  • Basado en grupos : según el grupo, los documentos individuales se pueden etiquetar como de alta, media o baja frecuencia. Esto ayuda a optimizar la calidad y diversidad de los datos. Estructura del modelo

Infraestructura :

La arquitectura del modelo Baichuan 2 se basa en el popular Transformer. Sin embargo, los autores le hicieron varias modificaciones.

Tokenizador :

  • Los tokenizadores deben equilibrar dos factores clave: alta compresión para permitir una inferencia eficiente y un vocabulario de tamaño adecuado para garantizar un entrenamiento adecuado de la incrustación de cada palabra .
  • Para equilibrar la eficiencia computacional y el rendimiento del modelo, el tamaño del vocabulario de Baichuan 2 se amplía de 64.000 en Baichuan 1 a 125.696.
  • El tamaño del vocabulario y la relación de compresión de texto del tokenizador de Baichuan 2 en comparación con otros modelos se enumeran en una tabla. Entre ellos, cuanto menor sea la tasa de compresión del texto, mejor.
  • Baichuan 2 utiliza codificación de par de bytes (BPE) (Shibata et al., 1999 ) en SentencePiece (Kudo y Richar dson, 2018 ) para la segmentación de palabras. Específicamente, no aplica ninguna normalización al texto de entrada y no agrega prefijos ficticios como Baichuan 1 . Divide los números en dígitos individuales para codificar mejor los datos numéricos. Para manejar datos de código que contienen espacios adicionales, agrega tokens de solo espacio en el tokenizador. La cobertura de caracteres se establece en 0,9999, y los caracteres raros recurren a bytes UTF-8.

Comparación de tokens

Código de ubicación  :

Baichuan 2 utiliza incrustación posicional rotativa (RoPE) en su versión 7B y ALiBi (propuesto por Press et al. en 2021) en su versión 13B. ALiBi es una tecnología de codificación posicional más nueva que ha demostrado un rendimiento de extrapolación mejorado.

  • Elección de modelos de código abierto : la mayoría de los modelos de código abierto utilizan RoPE como incrustación posicional. Las implementaciones de atención optimizadas, como Flash Attention, son actualmente más adecuadas para RoPE porque se basa en la multiplicación, evitando la necesidad de pasar atención_máscara a la operación de atención.
  • Experimentos preliminares : en los experimentos preliminares, la elección de la posición de las incrustaciones no afectó significativamente el rendimiento del modelo.

Para facilitar una mayor investigación sobre la atención basada en sesgos y multiplicación, los autores aplicaron RoPE en Baichuan 2-7B y ALiBi en Baichuan 2-13B, que es consistente con Baichuan 1.

Funciones de activación y normalización.

  • Función de activación : Baichuan 2 utiliza SwiGLU (Shazeer, 2020) como función de activación . SwiGLU es una variante de GLU (Dauphin et al., 2017) que muestra mejores resultados a través de un mecanismo de activación por interruptor. A diferencia de la capa de avance del Transformer tradicional, que tiene solo dos matrices, SwiGLU contiene tres matrices de parámetros. Por lo tanto, el modelo reduce el tamaño de la capa oculta de 4x a 8/3x y realiza los ajustes adecuados.
  • Capa de atención : Baichuan 2 adopta atención con memoria eficiente implementada por xFormers2 (Rabe y Staats, 2021). Al aprovechar las capacidades optimizadas de atención y sesgo de xFormers, el modelo puede integrar de manera efectiva la codificación posicional basada en sesgos de ALiBi al tiempo que reduce la sobrecarga de memoria. Esto aporta beneficios de rendimiento y eficiencia al entrenamiento a gran escala de Baichuan 2.
  • Normalización :
    • Baichuan 2 aplica normalización de capa en la entrada del bloque Transformer, que es más resistente al calentamiento.
    • Además, el modelo se implementa utilizando RMSNorm, que solo calcula la varianza de las características de entrada para mejorar la eficiencia.

optimizador

  • Hiperparámetros:
    • El optimizador AdamW se utilizó durante el entrenamiento , con β1 establecido en 0,9 y β2 establecido en 0,95.
    • Se utiliza una caída de peso de 0,1 y la norma de gradiente se recorta a 0,5.
    • La tasa de aprendizaje del modelo primero se calienta hasta la tasa de aprendizaje máxima a través de 2000 pasos de escala lineal , y luego se aplica una caída del coseno a la tasa de aprendizaje mínima.
    • Todo el modelo se entrena utilizando precisión mixta BFloat16. BFloat16 tiene un mejor rango dinámico que Float16, pero su baja precisión puede causar problemas en algunas configuraciones. Por lo tanto, para determinadas operaciones sensibles a los valores (como la incrustación posicional), se utiliza una precisión total.

parámetros de entrenamiento

normacabeza

Para estabilizar el entrenamiento y mejorar el rendimiento del modelo, las incorporaciones de salida están normalizadas.

Conocimiento:

1. Las incrustaciones de salida son propensas a la inestabilidad. Durante el proceso de capacitación, la norma de incrustaciones de tokens poco comunes se vuelve más pequeña, lo que interfiere con la capacitación.

2. Para la tarea de recuperación de KNN, encontramos que la información semántica está codificada principalmente por la similitud coseno de las incrustaciones en lugar de la distancia L2. Los clasificadores lineales actuales calculan logits mediante el producto escalar, que es una mezcla de distancia L2 y similitud de coseno. NormHead reduce la interferencia de la distancia L2 al calcular logits. Los experimentos de ablación agregados en el apéndice verifican que el entrenamiento se vuelve muy inestable cuando se retira NormHead.

Comparación con y sin entrenamiento NormalHead

Pérdida máxima-z

Conocimiento:

Durante el proceso de entrenamiento usando deepspeed, habrá logits obvios que se volverán muy grandes. Con respecto a esta situación, el autor buscó el problema de deepspeed y descubrió que alguien mencionó un ERROR similar. Entonces, además de este tipo de error que ocurre durante el preentrenamiento, ¿es posible que la velocidad profunda también experimente una deriva logit más grande durante SFT?
Debido a la existencia de una penalización por repetición, los logits grandes causarán problemas durante la inferencia. Los logits muy grandes pueden cambiar significativamente la probabilidad después de softmax, lo que hace que el modelo sea sensible a la selección de hiperparámetros de penalización por repetición.
Basado en la inspiración de NormSoftmax, el equipo de Baichuan proporciona una pérdida auxiliar Max-z para resolver esta situación .
Lmáx-z =2e−4*z2

Leyes de escala

Se enfatiza la importancia de las leyes de escala para predecir el desempeño de modelos grandes y cómo guían el entrenamiento de estos modelos para lograr los resultados deseados.

  • Las leyes de escala describen cómo el error de un modelo disminuye en función del tamaño del conjunto de entrenamiento, del tamaño del modelo o ambos. Estas leyes se vuelven cada vez más importantes a medida que el entrenamiento de modelos de aprendizaje profundo se vuelve cada vez más intensivo en términos computacionales.
  • Antes de entrenar su modelo grande (con miles de millones de parámetros), los autores primero entrenaron un modelo más pequeño para establecer las leyes de escala para entrenar modelos más grandes. Utilizando el mismo conjunto de datos de Baichuan 2 e hiperparámetros consistentes, se entrenaron modelos de 10 millones a 3 mil millones de parámetros, hasta 1 billón de tokens.
  • La ley de escala se formula utilizando la fórmula proporcionada por Henighan et al. (2020), que describe la relación entre los fracasos del entrenamiento y la pérdida de objetivos. La fórmula consta de pérdida irreducible y pérdida reducible, donde la pérdida reducible se formula como un término de escala de ley potencial.
  • La ley de escala ajustada puede predecir con precisión la pérdida final del modelo Baichuan 2. Específicamente, la ley de escala predijo con precisión las pérdidas finales de los modelos Baichuan 2-7B y Baichuan 2-13B.

Según los datos proporcionados, cuanto mayor sea el modelo, menor será la pérdida. Lo que parece extraño es que estos tres modelos converjan a 600B al mismo tiempo.

Infraestructura

Deepspeed se ha modificado para optimizar el entrenamiento. Sáltelo aquí.

Etapa de alineación de alineación

El proceso de alineación de Baichuan 2 consta principalmente de dos componentes principales: ajuste fino supervisado (SFT) y aprendizaje reforzado basado en retroalimentación humana (RLHF).

1 Supervisión y puesta a punto

En la fase de ajuste supervisado, utilizamos anotadores humanos para anotar las señales recopiladas de diversas fuentes de datos. Cada consejo está etiquetado como útil o inofensivo según principios clave similares a los de Claude (2023). Para verificar la calidad de los datos, utilizamos validación cruzada: anotadores autorizados verifican la calidad de lotes de muestras anotadas por un grupo de trabajo de crowdsourcing específico, filtrando los datos de baja calidad. En la etapa SFT se utilizaron un total de 100.000 datos de SFT.

2 Modelo de recompensa :

Diseñamos un sistema de clasificación de tres niveles para todos los consejos, incluidas 6 categorías primarias, 30 categorías secundarias y más de 200 categorías terciarias. Desde la perspectiva del usuario, queremos que el sistema de clasificación cubra de forma integral todo tipo de necesidades del usuario. Desde la perspectiva del entrenamiento del modelo de recompensa, las señales en cada categoría deben tener suficiente diversidad para garantizar que el modelo de recompensa pueda generalizarse bien.

detalle:

Tasa de precisión del modelo RM en datos de pares con diferentes brechas

Conocimiento:

Los datos de RM utilizan modelos Baichuan 2 de diferentes tamaños y modelos de etapa (SFT, PPO) para generar respuestas y mejorar la diversidad de respuestas. En el entrenamiento de RM sólo se utilizaron  las respuestas generadas por la familia de modelos Baichuan 2 . Las respuestas de otros conjuntos de datos de código abierto y modelos propietarios no mejoraron la precisión del modelo recompensado. Esto también enfatiza la coherencia interna de la serie de modelos Baichuan desde otra perspectiva. Aquí se explica que los datos de preferencia deben generarse a partir del propio modelo SFT o PPO, asegurando que el entrenamiento del modelo RM provenga de datos con la misma distribución de PPO. Ilustra la importancia de los datos distribuidos idénticamente para la precisión del modelo.

3 PP :

Después de obtener el modelo de recompensa, entrenamos nuestro modelo de lenguaje usando el PPO (algoritmo PPO), utilizamos cuatro modelos: modelo de actor (responsable de generar respuestas), modelo de referencia (usado para calcular la penalización de KL con parámetros fijos), modelo de recompensa ( porque la respuesta completa proporciona una recompensa general) y un modelo crítico (diseñado para aprender el valor de cada token).

4 Detalles del entrenamiento :

Durante el proceso de entrenamiento de RLHF, el modelo crítico se calentó primero con 20 pasos de entrenamiento por adelantado. Posteriormente, los modelos de crítico y actor se actualizan mediante el algoritmo estándar PPO. Para todos los modelos, utilizamos un recorte de gradiente de 0,5, una tasa de aprendizaje constante de 5e-6 y un umbral de recorte de PPO ϵ = 0,1. Establecimos 350 iteraciones para todos los modelos de chat, lo que dio como resultado Baichuan 2-7B-Chat y Baichuan 2-13B-Chat.

Proceso de iteración de PPO

Evaluación y resumen

Parece que cuando Baichuan 2 se entrena con la misma cantidad de tokens que Baichuan 1, las puntuaciones de ceval y cmmlu en realidad no son muy diferentes, lo que indica que la principal mejora de Baichuan 2 se debe a los datos, y tiene sentido trabajar duro para lograr milagros!

Publicado el 11/09/2023 16:57・IP está ubicado en Beijing

Supongo que te gusta

Origin blog.csdn.net/sinat_37574187/article/details/133101991
Recomendado
Clasificación