【Lectura intensiva de trabajos】QLORA: Ajuste Eficiente de LLM Cuantizados

prefacio

Un artículo para escenarios de ajuste fino de modelos de lenguaje grande con bajos recursos, basado en la implementación de LoRA, puede ajustar un modelo grande de 65B en una sola tarjeta profesional de 48G, y el rendimiento es comparable al ajuste fino a gran escala, que tiene causó un gran revuelo en la industria. Este artículo realizará un análisis detallado y profundo de este artículo para ver qué tecnología se utiliza para reducir la demanda de memoria de video de manera tan significativa.


Papel: https://arxiv.org/pdf/2305.14314.pdf
código: https://github.com/artidoro/qlora

Abstracto

Este documento propone QLORA, un método de ajuste fino eficiente, que puede reducir en gran medida la sobrecarga de la memoria de video y puede ajustar el modelo de parámetros 65B en la memoria de video 48G mientras conserva la precisión completa de 16 bits. QLORA retropropaga gradientes en LoRA a través de un modelo de lenguaje preentrenado cuantificado de 4 bits congelado. El mejor modelo de ajuste fino logra el 99,3 % del rendimiento de ChatGPT y el tiempo de ajuste fino es de solo 24 horas. QLORA presenta una serie de tecnologías innovadoras para reducir la memoria de video:

  1. Flotante de 4 bits (NF4), que es teóricamente óptimo para pesos normalmente distribuidos.
  2. Cuantificación doble, que reduce la huella de memoria promedio mediante la cuantificación de las constantes de cuantificación.
  3. El optimizador de paginación, que gestiona los picos de memoria.

El autor utiliza conjuntos de datos de ajuste fino de 8 instrucciones para realizar experimentos en más de 1000 modelos de diferentes tamaños y realiza un análisis detallado del rendimiento del modelo. Se encuentra que el ajuste fino de QLORA puede lograr SOTA en modelos más pequeños.

Introducción

El ajuste fino de modelos grandes es costoso y un modelo de parámetros LLaMA 65B convencional de 16 bits requiere más de 780 GB de memoria de video. Aunque los métodos de cuantificación recientes pueden reducir el uso de memoria de LLM, solo son aplicables a la etapa de inferencia.
Este documento demuestra por primera vez la capacidad de ajustar modelos cuantificados de 4 bits sin degradación del rendimiento. Es decir, el modelo preentrenado se cuantifica en 4 bits y luego se agrega un pequeño conjunto de adaptadores de bajo rango (LoRA) para el ajuste fino. Se redujo el requisito de memoria del modelo 65B de 780 GB a 48 GB sin reducir el rendimiento. El modelo 7B Guanaco más pequeño diseñado por el autor solo necesita 5 GB de memoria de video, y el efecto de ajuste fino es más de un 20 % mayor que el del AIpaca de 26 GB.
QLORA presenta una serie de tecnologías innovadoras diseñadas para reducir el uso de la memoria de video sin pérdida de rendimiento:

  1. Flotante normal de 4 bits. Es teóricamente óptimo para pesos normalmente distribuidos.
  2. Cuantificación doble. Un método que cuantifica las constantes de cuantificación, ahorrando 0,37 bits por parámetro (3 GB para el modelo de 65 GB).
  3. Optimizadores paginados. Utilice la memoria unificada de NVIDIA para evitar picos de memoria en puntos de control de procesamiento.

La integración de los métodos anteriores en LoRA evita la pérdida de rendimiento del trabajo anterior relacionado con LoRA.
El autor afinó más de 1000 modelos con una escala de 80M-65B y encontró lo siguiente:

  • La calidad de los datos es más importante que el tamaño del conjunto de datos.
  • Para una tarea determinada, la idoneidad del conjunto de datos es más importante que el tamaño.
  • Las evaluaciones de rendimiento de los chatbots han descubierto que la forma en que se evalúan los modelos puede ser no determinista en comparación con las evaluaciones humanas.

Fondo

Cuantificación de k bits por bloque

La cuantización es el proceso de discretizar una representación más informativa en una menos informativa. Por lo general, significa reducir la cantidad de bits de los datos. Para aprovechar al máximo el rango de valores del tipo de datos de bit bajo, los datos de entrada generalmente se vuelven a escalar y normalizar al rango permitido por el tipo de datos de destino. Este proceso de normalización generalmente se logra dividiendo los datos de entrada, que generalmente se organizan como un tensor, por el valor máximo absoluto. Por ejemplo, para cuantificar un tensor de punto flotante de 32 bits a 8 bits [-127, 127]:

XI n 18 = ronda ⁡ ( 127 absmax ⁡ ( XFP 32 ) XFP 32 ) = ronda ⁡ ( c FP 32 ⋅ XFP 32 ) \mathbf{X}^{\mathrm{In}18}=\operatorname{ronda}\left (\frac{127}{\operatorname{absmax}\left(\mathbf{X}^{\mathrm{FP}32}\right)} \mathbf{X}^{\mathrm{FP}32}\right) =\nombre del operador{redondo}\left(c^{\mathrm{FP}32}\cdot\mathbf{X}^{\mathrm{FP}32}\right)Xen 18=redondo(absmax( XFP 32 )127XFP 32 )=redondo( doFP32 _XFP 32 )

donde c es una constante de cuantificación (proporción) y la descuantificación es el proceso opuesto:

dequant ⁡ ( c FP 32 , XI nt 8 ) = XI n 88 c FP 32 = XFP 32 \operatorname{dequant}\left(c^{\mathrm{FP}32}, \mathbf{X}^{\mathrm{ ;Int} 8}\right)=\frac{\mathbf{X}^{\mathrm{In}88}}{c^{\mathrm{FP}32}}=\mathbf{X}^{\mathrm{ FP } 32}descuantificar( doFP 32 ,Xtu 8 )=CFP32 _Xen el 88=XFP32 _

El problema con este método es que si aparecen valores atípicos, algunas posiciones de cuantificación no se utilizarán por completo. Para resolver este problema, un enfoque común es dividir el tensor de entrada en bloques de cuantificación independientes, cada uno con su propia constante de cuantificación c. Específicamente, el tensor de entrada X ∈ R b × h \mathbf{X} \in \mathbb{R}^{b \times h}XRb × h se corta en n bloques consecutivos de tamaño B (n intervalos de igual longitud), y estos bloques se cuantifican de forma independiente para obtener tensores cuantificados y n constantes de cuantificación cic_iCyo

Adaptadores de rango bajo

El adaptador de rango bajo (LoRA) es un método para corregir los parámetros del modelo original y usar una pequeña cantidad de parámetros entrenables para reducir la memoria. El método LoRA mejora la proyección lineal mediante la introducción de una operación de proyección de factorización adicional para mejorar el rendimiento del modelo o Efecto. Dada la proyección XW = Y \mathbf{XW=Y}XW=Y,其中X ∈ R b × h \mathbf{X} \in \mathbb{R}^{b \times h}XRb × h ,W ∈ R h × o \mathbf{W} \in \mathbb{R}^{h \times o}WRh × o , Solución:
Y = XW + s XL 1 L 2 \mathbf{Y}=\mathbf{XW} + s\mathbf{XL_1L_2}Y=XW+S X L1L2
其中L 1 ∈ R h × r \mathbf{L_1} \in \mathbb{R}^{h \times r}L1Rh × rL 2 ∈ R r × o \mathbf{L_2} \in \mathbb{R}^{r \times o}L2Rr × o , s es un escalar.

Requisito de memoria de ajuste fino eficiente de parámetros

LoRA es un método de ajuste fino con eficiencia de parámetros (PEFT), por lo que el uso de memoria del proceso de ajuste fino de LLM proviene del gradiente de activación en lugar de los parámetros de LoRA. Tomando como ejemplo el ajuste fino de 7B LLaMA, el peso de LoRA solo ocupa el 0,2% En términos de uso de memoria, el gradiente de entrada de LoRA es de 567 MB, mientras que los parámetros de LoRA solo ocupan 26 MB. Mediante el uso de puntos de control de gradiente, los gradientes de entrada por secuencia se reducen a 18 MB en promedio, lo que aún requiere más memoria que todos los pesos de LoRA combinados. Por lo tanto, reducir la cantidad de parámetros LoRA solo producirá una pequeña ventaja en la memoria de video, es mejor usar más adaptadores y reducir la memoria de video en otros lugares, como los puntos de control de gradiente.

Ajuste fino de QLORA

QLORA logra un ajuste fino de 4 bits de alta fidelidad a través de dos estrategias de cuantización NF4 y cuantización doble.Además, se introduce un optimizador de paginación para evitar la memoria de video insuficiente causada por los picos de memoria de video durante los puntos de control de gradiente.
El tipo de datos de QLORA incluye un tipo de almacenamiento de baja precisión (4 bits) y un tipo de datos de cálculo (16 bits), lo que significa que cuando se usa el tensor de peso de QLORA, el tensor se descuantificará en BFloat16 y realizará una multiplicación de matriz de 16 bits.

Cuantificación de flotación normal de 4 bits

El tipo de datos NF se basa en la cuantificación por cuantiles, que es el tipo de datos óptimo de la teoría de la información, que puede garantizar que los valores en cada intervalo de cuantificación sean iguales. La principal limitación de la cuantificación de cuantiles es el alto costo del proceso de estimación de cuantiles, por lo que se usa un algoritmo de aproximación de cuantiles rápido (como el cuantil SRAM) para estimar, pero habrá un gran error para los valores atípicos.
Cuando el tensor de entrada proviene de una distribución con una constante de cuantificación fija, se pueden evitar costosos errores de estimación y aproximación de cuantificación. En este caso, los tensores de entrada tienen el mismo cuantil, lo que hace que la estimación del cuantil exacto sea computacionalmente factible.
Dado que los pesos de la red neuronal del modelo preentrenado generalmente tienen N ∼ ( 0 , σ ) \mathcal{N} \sim(0, \sigma)norte( 0 ,σ ) distribución normal, por lo que todos los pesos se pueden transformar en una sola distribución fija escalando σ. Para el tipo de datos en este documento, el intervalo aleatorio se establece en [-1, 1]. Por lo tanto, los cuantiles del tipo de datos y los pesos de la red neuronal deben normalizarse a este intervalo.
El proceso de cálculo de la distribución conforme a la descripción anterior es el siguiente:

  1. La estimación de los cuantiles 2^k+1 de la distribución teórica N(0,1) produce un tipo de datos cuantificados por cuantiles k adecuados para las distribuciones normales.
  2. Tome ese tipo de datos y normalícelo.
  3. Normaliza el tensor de peso de entrada, realizando así la cuantificación.

Una vez que el rango de peso y el rango de tipo de datos coinciden, la cuantificación puede continuar como de costumbre. El paso tres equivale a cambiar la escala de la desviación estándar del tensor de entrada para que coincida con la desviación estándar de los cuantiles k. Más formalmente, los autores estiman 2^k valores qi q_i para el tipo de datosqyo如下:
qi = 1 2 ( QX ( i 2 k + 1 ) + QX ( i + 1 2 k + 1 ) ) q_i=\frac{1}{2}\left(Q_X\left(\frac{i}{ 2^k+1}\derecha)+Q_X\izquierda(\frac{i+1}{2^k+1}\derecha)\derecha)qyo=21( QX(2k+1yo)+qX(2k+1i+1) )
dondeQX ( ⋅ ) Q_X(·)qX( ) es la función cuantil de la función normal estándar N(0,1). Sin embargo, existe un problema con la cuantificación simétrica de k bits, es decir, este método no puede representar el cero con precisión. Sin embargo, la representación exacta de cero es una propiedad importante porque evita errores al cuantificar el relleno y otros elementos de valor cero (es decir, cero requiere una codificación exacta). Para asegurar que el punto cero discreto sea 0, los autores estiman los cuantilesqi q_iqyopara crear tipos de datos asimétricos. Para la parte negativa, qi q_iqyoEl rango es 2 k − 1 2^{k-1}2k 1 , la parte positiva es2 k − 1 + 1 2^{k-1}+12k 1+1 , y luego estosqi q_iqyoUnifíquelos y elimine los 0 duplicados.

Cuantificación doble

Es decir, las constantes de cuantificación se cuantifican para ahorrar más memoria. Porque las constantes de cuantización ocupan espacio adicional.
La doble cuantificación será la primera constante cuantificada c 2 FP 32 c_2^{\rm FP32}C2FP32Como entrada de la segunda cuantificación, la constante de cuantificación cuantificada c 2 FP 8 c_2^{\rm FP8}C2FP8y la constante de cuantificación c 1 FP 32 c_1^{\rm FP32} de la segunda etapaC1FP32. El autor utiliza coma flotante de 8 bits con un tamaño de bloque de 256 para la segunda cuantificación sin degradación del rendimiento. c 1 FP 32 c_1^{\rm FP32}C1FP32es un número positivo, por lo que debe procesarse como simetría de 0 puntos. Tomando el tamaño del bloque como 64 bits como ejemplo, el uso de la memoria de video constante cuantificada original es 32/64 = 0.5, después de cuantificar la constante cuantificada, la cantidad ocupada es 8/64 + 32/64 * 256 = 0.127 bits, y cada El parámetro se reduce en 0,373 bits.

Optimizadores paginados

Con la función de memoria unificada de NVIDIA, se puede realizar la transferencia de página a página entre la CPU y la GPU, de modo que aún se puede procesar normalmente cuando la memoria de la GPU no es suficiente. Específicamente, se mueve automáticamente a la RAM de la CPU cuando la memoria de la GPU es baja y se recupera en la memoria de la GPU cuando el paso de actualización del optimizador lo necesita.

QLORA

La combinación de los componentes anteriores da una definición de capa lineal única QLORA de la siguiente manera:
YBF 16 = XBF 16 doubleDequant ( c 1 EP 32 , c 2 k -bit , WNF 4 ) + XBF 16 L 1 BF 16 L 2 BF 16 \mathbf {Y }^{\mathrm{BF} 16}=\mathrm{BF} 16} \text { doubleDequant }\left(c_{1}^{\mathrm{EP} 32}, c_ {2 }^{\mathrm{k} \text {-bit }}, \mathbf{W}^{\mathrm{NF} 4}\right)+\mathbf{X}^{\mathrm{BF} 16} \mathbf {L}_{1}^{\mathrm{BF} 16} \mathbf{L}_{2}^{\mathrm{BF} 16}YBF 16=XBF 16  doubleDequant ( do1EP 32,C2k -bit ,WNF 4 )+XBF16L _ _1BF 16L2BF 16
public public doubleDequant(·) public
 doubleDequant( c 1 FP 32 , c 2 k -bit , W k -bit ) = dequant ⁡ ( dequant ⁡ ( c 1 FP 32 , c 2 k -bit ) , W 4 bit ) ; = WBF 16 \text {dobleDequant}\left(c_{1}^{\mathrm{FP}32}, c_{2}^{\mathrm{k}\text{-bit}}, \mathbf{W}^ { \mathrm{k}\text{-bit}}\right)=\operatorname{dequant}\left(\operatorname{dequant}\left(c_{1}^{\mathrm{FP}32}, c_{2 } ^{\mathrm{k}\text {-bit}}\right), \mathbf{W}^{4 \mathrm{bit}}\right)=\mathbf{W}^{\mathrm{BF} } } dobleDequant ( do1FP 32,C2k -bit ,Wk -bit  )=descuantificar( descuantificar( do1FP 32,C2k -bit ),W4 bits )=WLos autores de BF 16
aplican NF4 a W y FP8 ac 2 c_2C2, W adopta bloques de tamaño de 64 bits para una mayor precisión de cuantificación, para c 2 c_2C2Usa 256 bloques pequeños para ahorrar memoria.
La actualización de parámetros es solo para ∂ E ∂ L i \frac{\partial E }{\partial \mathbf{L}_{i}}∂L _yo E, en lugar del gradiente de peso de 4 bits ∂ E ∂ W \frac{\partial E }{\partial \mathbf{W}}W E. Pero el cálculo del primero requiere el cálculo del segundo, es decir, ingresar WNF 4 \mathbf{W}^{\rm{NF4}} a través de la primera fórmulaWLa salida de NF4 obtieneWNF 16 \mathbf{W}^{\rm{NF16}}WNF16 para calcular la derivada∂ E ∂ W \frac{\partial E }{\partial \mathbf{W}}W E.
En general, QLoRA tiene un tipo de datos de almacenamiento (NormalFloat de 4 bits) y un tipo de datos de cálculo (BrainFloat de 16 bits), que descuantifica el tipo de datos de almacenamiento en un tipo de datos de cálculo para realizar la propagación hacia adelante y hacia atrás, pero solo el cálculo usa Peso gradiente para los parámetros de LoRA en BrainFloat de 16 bits.

QLoRA vs. Ajuste fino estándar

QLoRA tiene una gran ventaja en el ahorro de memoria de video, entonces, ¿puede lograr el mismo efecto de ajuste completo en términos de rendimiento?

Configuración experimental

El autor realizó experimentos en tres modelos de arquitectura diferentes y comparó QLoRA con el ajuste fino del adaptador de 16 bits y el modelo 3B de ajuste fino completo. Consulte el Apéndice A para obtener información completa.
Dado que el optimizador de paginación solo se usa para procesar secuencias largas y pequeños lotes de datos, el autor solo realizó una medición simple y descubrió que cuando el tamaño del lote es 16, el optimizador de paginación proporciona la misma velocidad de entrenamiento que el optimizador convencional. El trabajo futuro puede centrarse en las circunstancias en las que el optimizador de paginación será menos eficiente.

Los hiperparámetros LoRA predeterminados no coinciden con el rendimiento de 16 bits

LoRA estándar no puede lograr el rendimiento del ajuste fino completo, como se muestra en la figura a continuación:
imagen.png
El experimento encontró que el hiperparámetro más crítico que afecta el rendimiento de LoRA es la cantidad de LoRA, y el uso de LoRA en cada capa puede igualar el efecto del ajuste fino completo. Afinación.

NormalFloat de 4 bits ofrece un mejor rendimiento que el punto flotante de 4 bits

Los autores realizan evaluaciones experimentales utilizando diferentes tipos de datos en LLM de diferentes arquitecturas y tamaños, como se muestra en la figura y la tabla a continuación.
imagen.pngimagen.png
Se puede ver que, en comparación con FP4 e Int4, NF4 mejora significativamente el rendimiento y la cuantificación doble reduce el uso de memoria sin reducir el rendimiento.

QLORA de k bits coincide con el ajuste fino completo de 16 bits y el rendimiento de LoRA de 16 bits

Estudios recientes han demostrado que la cuantificación de 4 bits es posible para la inferencia, pero el rendimiento se reducirá en comparación con el ajuste fino de 16 bits, entonces, ¿es posible recuperar el rendimiento perdido ajustando el adaptador de 4 bits?
Primero, en comparación con los modelos RoBERTA y T5 de 16 bits completamente ajustados (el rango de tamaño de ambos es 125M-3B), los resultados son los siguientes: se observa que los métodos de adaptador de 16 bits, 8 bits y 4
imagen.png
bits replicar el rendimiento básico de 16 bits completamente ajustado. Muestra que el problema de precisión de la cuantificación se puede restaurar completamente mediante el ajuste fino del adaptador.
Luego pruebe si QLoRA de 4 bits puede coincidir con LoRA de 16 bits en el modelo del rango de parámetros de 7B-65B. Los resultados se muestran en la siguiente tabla:
imagen.png
NF4 recuperó completamente el rendimiento de LoRA de 16 bits, y también se encontró que QLoRA de FP4 se retrasó con respecto a LoRA de 16 bits en aproximadamente 1 punto porcentual, las razones pueden ser:

  1. QLORA con NF4 replica el rendimiento de recorte completo de 16 bits y LoRA de 16 bits.
  2. NF4 supera a FP4 en términos de precisión de cuantificación.

Resumen

Resumiendo los experimentos anteriores, se puede demostrar que QLoRA de 4 bits con el tipo de datos NF4 puede lograr el rendimiento del ajuste fino completo de 16 bits y el ajuste fino de LoRA, y NF4 es más eficiente que FP4. Además, los resultados de MMLU y Elo muestran que es efectivo aumentar el número de parámetros del adaptador mientras se reduce su precisión.

Impulsando el Chatbot de última generación con QLoRA

Esta sección lleva a cabo un estudio en profundidad del ajuste fino de la instrucción. Para evaluar el rendimiento de la instrucción que ajusta estos modelos, los autores evalúan en MMLU y desarrollan nuevos métodos para la evaluación del rendimiento del chatbot en el mundo real.

Configuración experimental

Datos

El autor selecciona ocho conjuntos de datos más recientes, incluidos OASST1, HH-RLHF, AIpaca, etc., que cubren diferentes idiomas, tamaños de datos y licencias.

Configuración de entrenamiento

Para evitar el efecto de confusión causado por los diferentes objetivos de los diferentes conjuntos de datos, incluso en los conjuntos de datos que contienen juicios humanos, solo se utiliza la pérdida de entropía cruzada como función objetivo para ajustar el modelo QLoRA, y no se utiliza aprendizaje por refuerzo. se utiliza el método. El propósito de esto es asegurar la consistencia en el proceso de ajuste y reducir el ruido causado por diferentes objetivos de entrenamiento. Todos los experimentos utilizan el enfoque NF4 QLoRA con cuantificación dual y optimizador de paginación.

Líneas base

Los autores comparan el modelo con sistemas de chatbot de investigación (Vicuna, Open Assistant) y comerciales (GPT-4, GPT-3.5-turbo y Bard). Entre ellos, el modelo de investigación es una puesta a punto de LLaMA.

Evaluación

Los autores utilizan el punto de referencia MMLU para medir el rendimiento en una variedad de tareas de comprensión del idioma. Además, la capacidad del lenguaje generativo se prueba a través de una evaluación automática y una evaluación humana.

Datos de referencia

El autor evalúa los conjuntos de datos Vicuña y OASST1 como puntos de referencia.

Evaluación automatizada

El autor utiliza GPT-4 para puntuar la salida de diferentes modelos en el conjunto de datos de Vicuña. Dado que GPT-4 tiene un efecto de orden significativo, es decir, el modelo aumentará la puntuación de la respuesta de posición anterior en el mensaje. Para eliminar el impacto, dos El puntaje promedio bajo la orden.
El esquema de puntuación se reduce a un problema de etiquetado de tres categorías, el resultado óptimo es generado por GPT-4 y se proporcionan explicaciones.

Evaluación humana

Es difícil probar que el juicio actual de GPT-4 sea confiable, por lo que el autor ejecuta dos evaluaciones humanas paralelas en Vicuna, contrata dos anotadores y ChatGPT para la comparación, y tres anotadores para la comparación por pares, que se puede hacer manualmente. datos de evaluación sobre el rendimiento o la calidad de ChatGPT.

Clasificación Elo

El autor utiliza el mecanismo de puntuación de Elo para evaluar el desempeño de diferentes modelos en forma de competencias.Después de cada juego, el cambio de puntuación de Elo es proporcional al resultado esperado, es decir, una sorpresa inesperada provocará un gran cambio en puntuación Elo, mientras que el resultado esperado es cambios más pequeños. Finalmente, con el tiempo, la puntuación de Elo eventualmente coincidirá con las capacidades del modelo.

Guanaco: QLORA capacitado en OASST1 es un Chatbot de última generación

Basado en evaluaciones automáticas y manuales, el modelo Guanaco 65B ajustado por QLoRA es el modelo de chatbot de código abierto con mejor rendimiento, comparable en rendimiento a ChatGPT. La siguiente tabla muestra los resultados de referencia de Vicuna en comparación con ChatGPT.
imagen.png
Se puede encontrar que Guanaco 65B es el modelo con mejor rendimiento después de GPT-4, y Guanaco 33B tiene más parámetros que el modelo Vicuña 13B, pero usa pesos de precisión de 4 bits, por lo que 21 GB es más eficiente en memoria que 26 GB y se mejora el rendimiento. en 3 puntos porcentuales. Además, el Guanaco 7B puede caber fácilmente en un teléfono moderno con 5 GB de RAM, y sigue obteniendo casi 20 puntos porcentuales más que el Alpaca 13B.
Además, existe un acuerdo moderado entre GPT-4 y los juicios a nivel de sistema de anotadores humanos, por lo que las evaluaciones basadas en modelos representan una alternativa confiable a las evaluaciones humanas.
imagen.png
Las clasificaciones de Elo en la tabla anterior muestran que los modelos Guanaco 33B y 65B superan a todos los modelos excepto GPT-4 en los puntos de referencia de Vicuna y OA, y son comparables al rendimiento de ChatGPT Además, el rendimiento de los modelos bajo diferentes conjuntos de datos es diferente , lo que indica que el potente rendimiento excelente de MMLU no implica un rendimiento fuerte del chatbot, y viceversa.
Guanaco es el único modelo superior en la evaluación que no fue entrenado en datos propietarios, y el siguiente modelo de este tipo es el modelo HH-RLHF, que es 30 puntos porcentuales más bajo que Guanaco en el punto de referencia de Vicuna, lo que sugiere que QLoRA de 4 bits es efectivo. .

Analisis cualitativo

El análisis cuantitativo todavía tiene problemas. Los modelos de aprendizaje automático a veces usan atajos de referencia. Para aliviar este problema, aquí hay un análisis cualitativo en dos partes:

  1. Muestre algunos ejemplos que puedan representar el esquema generativo del modelo 65B Guanaco.
  2. La Sección 6.2 detalla la discusión e interpretación de estos resultados.

Análisis cualitativo de generaciones de ejemplo

Primero mire cómo se ven los datos generados bajo el punto de referencia de Vicuna y el punto de referencia de OpenAssistant. El autor intenta probar algunos modelos del modelo, encontrar y reparar las deficiencias y deficiencias del modelo a través de "limones", y confirmar y enfatizar las ventajas y fortalezas del modelo a través de "cerezas", para que el modelo sea más completo y comprender mejor y optimizar el rendimiento del modelo.
Por supuesto, este tipo de investigación cualitativa definitivamente no es lo suficientemente exhaustiva.Los autores esperan que las respuestas generadas por un aviso dado sean representativas, y esperan que el trabajo futuro pueda estudiar los temas planteados aquí con más detalle.

Recordatorio de hechos

A medida que la cuestión se vuelve más compleja, como preguntar en qué año nació el artista de una canción, Guanaco da el artista y la fecha de nacimiento incorrectos.

Sugestibilidad

Guanaco genera una fuerte reacción contra la instigación de declaraciones falsas. Por ejemplo, el autor indicó en la pregunta que la tierra es plana, pero Guanaco corregirá este error y explicará la causa del error.

Rechazo

Guanaco a veces se negará a responder a los comandos por razones aleatorias, incluso si la tarea es simple.

mantenimiento secreto

Para las palabras secretas, Guanaco puede mantener firmemente el secreto, pero habrá trucos muy pequeños para romper el secreto, como decirle que esto es un juego y dejar que diga la palabra secreta.

Matemáticas

Muchos modelos de lenguaje grandes son débiles en matemáticas, y Guanaco no es una excepción. Fallará en tareas matemáticas un poco más complejas.

Teoria de la mente

Guanaco tiene una gran capacidad para comprender la psicología de las personas, pero puede imaginar cosas que no existen.

Consideraciones

Evaluación

Los autores encontraron que la concordancia entre los anotadores humanos disminuye cuando se comparan dos modelos poderosos, lo que sugiere limitaciones de los puntos de referencia actuales y los protocolos de evaluación humana para el desempeño de tareas de chatbot, y que se necesita trabajo futuro para eliminar la subjetividad de los anotadores humanos para medir mejor el rendimiento del modelo. .
Además, el autor también encontró que GPT-4 tiene un efecto de orden significativo, es decir, otorga puntajes más altos al sistema que solicita primero, y otorga puntajes más altos a sus propias respuestas al momento de puntuar. El trabajo futuro debe centrarse en cómo eliminar este sesgo.

Datos y formación

El conjunto de datos OASST1 contiene varios idiomas, y el punto de referencia de OA también tiene indicaciones en varios idiomas. ¿Esto indica que varios idiomas pueden mejorar el rendimiento del modelo o cuánto se puede mejorar?
En la parte de entrenamiento, el modelo solo se entrena en la función de pérdida de entropía cruzada sin depender del aprendizaje de refuerzo a partir de la retroalimentación humana (RLHF), lo que requiere un análisis más detallado.

Trabajo relacionado

Cuantización de modelos de lenguaje grande

La cuantificación de LLM se centra en la cuantificación del tiempo de inferencia. La mayoría de los métodos se centran en la gestión de características atípicas para mantener la calidad LLM de 16 bits, mientras que otros utilizan métodos de agrupación más complejos. Los métodos de cuantificación con pérdida incluyen compensaciones generales de redondeo o cómo optimizar las decisiones de redondeo para mejorar la precisión de la cuantificación. Pocos trabajos aplican la cuantificación a la retropropagación.

Ajuste fino con adaptadores

Se ha demostrado que LoRA logra un rendimiento de ajuste fino completo de 16 bits. Además, otros métodos de validez de parámetros, como el ajuste rápido, el ajuste fino de la entrada de la capa de incrustación, el ajuste fino de la capa oculta, el ajuste fino de la desviación, etc. Estos métodos se pueden explorar más cuantitativamente.

Ajuste fino de instrucciones

El ajuste fino instruccional ajusta un LLM previamente entrenado usando pares de entrada-salida de varias fuentes de datos para generar una salida dada la entrada como una señal. Los métodos y conjuntos de datos incluyen MetaICL, MetaTuning, InstructGPT, FLAN, etc.

chatbots

Los chatbots existentes generalmente se basan en el aprendizaje reforzado con retroalimentación humana (RLHF) o generan datos de modelos existentes para el entrenamiento utilizando retroalimentación de inteligencia artificial (RLAIF).

Limitaciones y Discusión

El autor no probó que QLoRA pueda coincidir con los modelos 33B y 65B de ajuste fino completo de 16 bits. Otra limitación es la evaluación del modelo de ajuste fino de instrucciones. El autor solo afinó en MMLU, OA y otros conjuntos de datos, pero no en BigBench y RAFT, es decir, la amplitud de la evaluación del modelo no es suficiente. .
Además, los autores encontraron que el rendimiento del punto de referencia puede depender de la similitud de los datos de ajuste fino con el conjunto de datos del punto de referencia, por lo que antes de evaluar, debemos considerar cuidadosamente cuál es el objetivo de la evaluación.
Otra limitación del artículo es que la evaluación de Guanaco no es lo suficientemente completa. Además, en términos de precisión, los modelos de 3 bits u otros bits también se pueden usar para la evaluación, y existen muchos métodos que se pueden usar para los métodos de aprendizaje de validez de parámetros.

Impactos más amplios

El método QLoRA es el primero en lograr el ajuste fino de los modelos de parámetros 33B en una sola tarjeta gráfica de consumo y el ajuste fino del modelo de parámetros 65B en una sola tarjeta gráfica de nivel profesional sin degradar el rendimiento del modelo. QLoRA ayuda a cerrar la brecha de recursos informáticos entre las grandes empresas y los equipos pequeños.
Además, otro impacto es que el método QLoRA puede convertirse en un hito clave en la puesta a punto del LLM del dispositivo móvil (la puesta a punto del modelo 7B se puede realizar en el teléfono móvil).El autor lo ha probado en el Apple 12 s. Aunque no ha alcanzado el rendimiento de ChatGPT, es adecuado para modelos grandes. La protección de la privacidad y el despliegue de modelos grandes son de gran importancia.

leer resumen

QLoRA en sí no es un trabajo innovador, pero integra múltiples trabajos para superar los puntos débiles de los métodos anteriores uno por uno. LoRA puede lograr el efecto de un ajuste fino completo, y las dos estrategias de cuantización NF4 y cuantización doble pueden lograr Ajuste fino de 4 bits de alta fidelidad, el optimizador de paginación puede resolver el problema del pico de memoria de video insuficiente. La combinación de estos métodos logra el efecto de 1+1>2, que realiza el ajuste fino de un modelo grande 33B con una sola tarjeta gráfica de consumo y el ajuste fino de un modelo grande 65B con una sola tarjeta de nivel profesional. tarjeta grafica. La parte anterior es la primera mitad del artículo, que demuestra que el método QLoRA se puede ajustar en escenarios de bajos recursos informáticos, y la segunda mitad trata más sobre la introducción del modelo Guanaco para verificar el rendimiento de QLoRA. Guanaco es un modelo grande basado en el ajuste fino de QLoRA. El autor lo comparó con otros modelos grandes a través de análisis cualitativos y cuantitativos, demostrando que el rendimiento de Guanaco es equivalente al de ChatGPT, lo que demuestra indirectamente que QLoRA ha logrado un ajuste fino completo. en el rendimiento Algunas otras propiedades del modelo se exploran más a fondo.
Entonces, el enfoque de este artículo es naturalmente la primera mitad. Realmente no entiendo el proceso de cuantificación, y necesito leer el código para profundizar el impacto. La mayor inspiración para mí de este trabajo es que no puedo simplemente hacer mi trabajo a ciegas, pero combinándolo con las necesidades de la industria, o encontrar un problema en la aplicación, y luego encontrar una manera de resolver el problema con el conocimiento existente. Por ejemplo, QLoRA se basa en LoRA. Si encuentra que el video la memoria no es suficiente, luego comprima los datos, y la memoria de video tendrá un valor máximo, luego coloque una parte de ella. Es fácil pensar en estas cosas, pero nadie ha hecho este tipo de trabajo antes, que puede ser el por lo que la demanda en los últimos dos años no fue suficiente. Solo haciendo más para resolver problemas podemos descubrir más problemas y obtener más inspiración para los artículos.

Supongo que te gusta

Origin blog.csdn.net/HERODING23/article/details/131584089
Recomendado
Clasificación