noticias

Nvidia juega con la poda y la destilación: reducir a la mitad los parámetros de Llama 3.1 8B y conseguir un mejor rendimiento con el mismo tamaño

2024-08-16

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Informe del corazón de la máquina

Editores: Du Wei, Chen Chen, Zenan

El auge de los modelos pequeños.

El mes pasado, Meta lanzó la serie de modelos Llama 3.1, que incluye el modelo 405B más grande de Meta hasta la fecha, así como dos modelos más pequeños con 70 mil millones y 8 mil millones de parámetros respectivamente.

Se considera que Llama 3.1 marca el comienzo de una nueva era de código abierto. Sin embargo, aunque los modelos de nueva generación tienen un rendimiento potente, todavía requieren una gran cantidad de recursos informáticos cuando se implementan.

Por lo tanto, ha surgido otra tendencia en la industria, que es desarrollar modelos de lenguaje pequeño (SLM) que funcionen bastante bien en muchas tareas lingüísticas y que además sean muy económicos de implementar.

Recientemente, una investigación de NVIDIA ha demostrado que la poda de peso estructurada combinada con la destilación de conocimientos puede obtener gradualmente modelos de lenguaje más pequeños a partir de un modelo inicialmente más grande.



A Yann LeCun, ganador del Premio Turing y científico jefe de IA de Meta, también le gustó el estudio y lo volvió a publicar.

Después de la poda y la destilación, el equipo de investigación de NVIDIA refinó Llama 3.1 8B en Llama-3.1-Minitron 4B y lo convirtió en código abierto. Este es el primer trabajo de NVIDIA en la serie de código abierto Llama 3.1.

Llama-3.1-Minitron 4B supera a los modelos de código abierto de última generación de tamaño similar, incluidos Minitron 4B, Phi-2 2.7B, Gemma2 2.6B y Qwen2-1.5B.



El artículo relacionado con esta investigación se publicó el mes pasado.



  • Enlace del artículo: https://www.arxiv.org/pdf/2407.14679
  • Título del artículo: Modelos de lenguaje compactos mediante poda y destilación del conocimiento

poda y destilación

La poda hace que el modelo sea más pequeño y delgado, y se puede lograr eliminando capas (poda de profundidad) o eliminando neuronas y cabezas de atención e incrustando canales (poda de ancho). La poda suele ir acompañada de cierto grado de reentrenamiento para restablecer la precisión.

La destilación de modelos es una técnica para transferir conocimientos de un modelo grande y complejo (a menudo llamado modelo de profesor) a un modelo de estudiante más pequeño y simple. El objetivo es crear un modelo más eficiente que conserve gran parte del poder predictivo del modelo original más grande mientras se ejecuta más rápido y consume menos recursos.

Hay dos métodos de destilación principales: el ajuste de los ODS y la destilación del conocimiento clásico. Estos dos métodos de destilación son complementarios. Este artículo se centra en los métodos de destilación del conocimiento clásico.

NVIDIA construye modelos grandes combinando la poda con la destilación de conocimientos clásica. La siguiente figura muestra el proceso de poda y destilación de un solo modelo (arriba) y la cadena de poda y destilación del modelo (abajo). El proceso específico es el siguiente:

1. NVIDIA comienza con un modelo 15B, evalúa la importancia de cada componente (capas, neuronas, cabezas y canales de integración) y luego clasifica y poda el modelo hasta el tamaño objetivo: modelo 8B.

2. Luego utilice la destilación de modelos para un reentrenamiento ligero, con el modelo original como profesor y el modelo podado como estudiante.

3. Después del entrenamiento, use el modelo pequeño (8B) como punto de partida, podelo y destilelo en un modelo 4B más pequeño.



El proceso de poda y destilación del modelo 15B.

Una cosa a tener en cuenta es que antes de podar el modelo, es necesario comprender qué partes del modelo son importantes. NVIDIA propone una estrategia de evaluación de importancia pura basada en activación que calcula simultáneamente información en todas las dimensiones relevantes (profundidad, neurona, cabeza y canales de incrustación), utilizando un pequeño conjunto de datos de calibración de 1024 muestras, y solo se requiere propagación hacia adelante. Este enfoque es más simple y rentable que las estrategias que se basan en información de gradiente y requieren retropropagación.

Durante la poda, se alterna de forma iterativa entre poda y estimación de importancia para un eje determinado o una combinación de ejes. Los estudios empíricos muestran que utilizar una única estimación de importancia es suficiente y que las estimaciones iterativas no aportan beneficios adicionales.

Reciclaje mediante la destilación del conocimiento clásico.

La Figura 2 a continuación muestra el proceso de destilación, en el que el modelo de estudiante de N capas (el modelo podado) se destila del modelo de maestro de capas M (el modelo original no podado). El modelo de estudiante se aprende minimizando la combinación de pérdida de salida incorporada, pérdida logit y pérdida específica del codificador del transformador asignada al bloque de estudiante S y al bloque de maestro T.



Figura 2: Pérdida de formación de destilación.

Mejores prácticas de poda y destilación

Basado en una extensa investigación de ablación sobre poda y destilación de conocimiento en modelos de lenguaje compacto, NVIDIA resume sus resultados de aprendizaje en las siguientes mejores prácticas de compresión estructurada.

Una es cambiar el tamaño.

  • Para entrenar un conjunto de LLM, primero se entrena el más grande y luego se poda y destila iterativamente para obtener LLM más pequeños.
  • Si se utiliza una estrategia de entrenamiento de múltiples etapas para entrenar el modelo más grande, es mejor podar y volver a entrenar el modelo obtenido en la última etapa de entrenamiento.
  • Pode el modelo de origen disponible más cercano al tamaño de destino.

El segundo es la poda.

  • Priorice la poda de ancho sobre la poda de profundidad, lo que funciona bien para modelos con un tamaño de parámetro inferior a 15B.
  • Utilice la estimación de importancia de un solo disparo, ya que no hay ningún beneficio de la estimación de importancia iterativa.

El tercero es volver a capacitarse.

  • Vuelva a entrenar utilizando únicamente la pérdida por destilación en lugar de un entrenamiento regular.
  • Cuando la profundidad se reduce significativamente, utilice logit, estados intermedios y destilación por inclusión.
  • Cuando la profundidad no disminuye significativamente, se utiliza la destilación sólo logit.

Llama-3.1-Minitron: Poniendo en práctica las mejores prácticas

Meta lanzó recientemente la poderosa familia Llama 3.1 de modelos de código abierto, que compite con modelos de código cerrado en muchos puntos de referencia. Los parámetros de Llama 3.1 van desde un enorme 405B hasta 70B y 8B.

Con la experiencia de la destilación de Nemotron, NVIDIA se propuso destilar el modelo Llama 3.1 8B en un modelo 4B más pequeño y eficiente, tomando las siguientes medidas:

  • Perfeccionamiento docente
  • Poda solo en profundidad
  • Poda solo a lo ancho
  • Punto de referencia de precisión
  • Punto de referencia de rendimiento

Perfeccionamiento docente

Para corregir el sesgo de distribución del conjunto de datos original en el que se basó el entrenamiento del modelo, NVIDIA primero ajustó el modelo 8B no podado en su conjunto de datos (tokens 94B). Los experimentos muestran que si no se corrige el sesgo de distribución, el modelo docente proporciona una guía subóptima para el conjunto de datos al destilar.

Poda solo en profundidad

Para reducir de 8B a 4B, NVIDIA podó 16 capas (50%). Primero evalúan la importancia de cada capa o grupo de subcapas consecutivas eliminándolas del modelo y observan un aumento en la pérdida de LM o una disminución en la precisión en las tareas posteriores.

La Figura 5 a continuación muestra los valores de pérdida de LM en el conjunto de validación después de eliminar 1, 2, 8 o 16 capas. Por ejemplo, el gráfico rojo de la capa 16 indica que se produce una pérdida de LM si se eliminan las primeras 16 capas. La capa 17 significa que si se conserva la primera capa y se eliminan las capas 2 a 17, también se produce la pérdida de LM. Nvidia observa: Las capas inicial y final son las más importantes.



Figura 5: La importancia de la poda profunda de las capas intermedias.

Sin embargo, NVIDIA observa que esta pérdida de LM no está necesariamente relacionada directamente con el rendimiento posterior.

La Figura 6 a continuación muestra la precisión de Winogrande de cada modelo podado. Muestra que es mejor eliminar las capas 16 a 31, donde la capa 31 es la penúltima capa. La precisión de 5 disparos del modelo podado es significativamente mayor que la precisión aleatoria (. 0,5). Nvidia adoptó esta idea y eliminó las capas 16 a 31.



Figura 6: Precisión en la tarea de Winogrande cuando se eliminan 16 capas.

Poda solo a lo ancho

NVIDIA poda las dimensiones intermedias de incrustación (ocultas) y MLP a lo largo del eje de ancho para comprimir Llama 3.1 8B. Específicamente, utilizan la estrategia basada en activación descrita anteriormente para calcular puntuaciones de importancia para cada cabeza de atención, canal de incorporación y dimensión oculta de MLP.

Después de estimar la importancia, NVIDIA eligió

  • Pode la dimensión intermedia de MLP de 14336 a 9216.
  • Pode el tamaño oculto de 4096 a 3072.
  • Vuelva a prestar atención al número de cabeza y al número de capas.

Cabe mencionar que después de la poda de muestra única, la pérdida de LM en la poda de ancho es mayor que la de la poda en profundidad. Sin embargo, después de un breve período de recapacitación, la tendencia se invirtió.

Punto de referencia de precisión

NVIDIA destila el modelo usando los siguientes parámetros

  • Tasa de aprendizaje máxima = 1e-4
  • Tasa mínima de aprendizaje = 1e-5
  • Precalentamiento lineal de 40 pasos
  • esquema de desintegración del coseno
  • Tamaño de lote global = 1152

La Tabla 1 a continuación muestra la comparación de rendimiento de las variantes del modelo Llama-3.1-Minitron 4B (poda de ancho y poda de profundidad) con el modelo Llama 3.1 8B original y otros modelos de tamaño similar en puntos de referencia en múltiples dominios. En general, NVIDIA confirmó una vez más la eficacia de una estrategia de poda amplia en comparación con la poda profunda que sigue las mejores prácticas.



Tabla 1: Comparación de precisión del modelo base Minitron 4B con modelos base de tamaño similar.

Para verificar si el modelo destilado puede convertirse en un modelo de instrucción potente, NVIDIA utilizó NeMo-Aligner para ajustar el modelo Llama-3.1-Minitron 4B.

Utilizaron datos de entrenamiento de Nemotron-4 340B y realizaron evaluaciones en IFEval, MT-Bench, ChatRAG-Bench y Berkeley Function Calling Leaderboard (BFCL) para probar las capacidades de seguimiento de instrucciones, juegos de roles, RAG y llamadas de funciones. Finalmente, se confirmó que el modelo Llama-3.1-Minitron 4B puede convertirse en un modelo de instrucción confiable y su rendimiento es mejor que otros SLM básicos.



Tabla 2: Comparación de precisión de los modelos base Minitron 4B alineados y modelos alineados de tamaño similar.

Punto de referencia de rendimiento

NVIDIA optimizó los modelos Llama 3.1 8B y Llama-3.1-Minitron 4B utilizando NVIDIA TensorRT-LLM, un conjunto de herramientas de código abierto para optimizar la inferencia LLM.

Las siguientes dos figuras muestran las solicitudes de rendimiento por segundo con precisión FP8 y FP16 para diferentes modelos en diferentes casos de uso, expresadas como una combinación de longitud de secuencia de entrada/longitud de secuencia de salida (ISL/OSL) con un tamaño de lote de 32 para el modelo 8B y el modelo 4B El tamaño del lote es una combinación de longitud de secuencia de entrada/longitud de secuencia de salida (ISL/OSL) de 64, gracias a que los pesos más pequeños permiten un tamaño de lote mayor en una GPU NVIDIA H100 de 80 GB.

La variante Llama-3.1-Minitron-4B-Depth-Base es la más rápida, con un rendimiento promedio de aproximadamente 2,7 veces el de Llama 3.1 8B, mientras que la variante Llama-3.1-Minitron-4B-Width-Base tiene un rendimiento promedio de sobre Llama 3.1 1.8x 8B. La implementación en el FP8 también mejora el rendimiento de estos tres modelos aproximadamente 1,3 veces en comparación con el BF16.





Figura 8: Combinación: Llama 3.1 8B con BS=32, modelo Llama-3.1-Minitron 4B con BS=64.

en conclusión

La poda y el refinamiento del conocimiento clásico es un método muy rentable para obtener progresivamente LLM de tamaños más pequeños, logrando una mayor precisión que el entrenamiento desde cero en todos los dominios. Este es un enfoque más eficiente y eficiente en términos de datos que el ajuste fino de datos sintéticos o el entrenamiento previo desde cero.

Llama-3.1-Minitron 4B es el primer intento de NVIDIA de utilizar la serie Llama 3.1 de código abierto más avanzada. Para utilizar el ajuste fino de SDG para Llama-3.1 con NVIDIA NeMo, consulte la sección /sdg-law-title-generación en GitHub.

Para obtener más información, consulte los siguientes recursos:

  • https://arxiv.org/abs/2407.14679
  • https://github.com/NVlabs/Minitron
  • https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Width-Base
  • https://huggingface.co/nvidia/Llama-3.1-Minitron-4B-Depth-Base

https://developer.nvidia.com/blog/how-to-prune-and-distill-llama-3-1-8b-to-an-nvidia-llama-3-1-minitron-4b-model/