Mejorando la memoria para la inferencia y ajuste fino de modelos de lenguaje grandes.

A帽adir a tus IAs favoritasQuitar de tus favoritasQuitar de favoritos 0
Puntuaci贸n+1

2024-05-07 11:31:24

Las t茅cnicas de optimizaci贸n de memoria como la cuantizaci贸n y el ajuste fino distribuido est谩n democratizando los grandes modelos de lenguaje, permitiendo su implementaci贸n en entornos con recursos limitados y facilitando su entrenamiento y ajuste fino.

En el mundo de los modelos de lenguaje de gran escala (LLM), el consumo de memoria es un desaf铆o crucial. Estos modelos gigantescos, con miles de millones de par谩metros, requieren una enorme cantidad de memoria para su inferencia y ajuste fino. Afortunadamente, las t茅cnicas de optimizaci贸n de memoria como la cuantizaci贸n y el entrenamiento distribuido est谩n permitiendo que estos LLM sean m谩s accesibles y escalables.

La cuantizaci贸n es una t茅cnica poderosa que reduce dr谩sticamente los requisitos de memoria al representar los par谩metros del modelo con una menor precisi贸n num茅rica. Por ejemplo, con la cuantizaci贸n de 8 bits, la memoria necesaria para el modelo OctoCode de 15 mil millones de par谩metros se reduce de 31 GB a solo 15 GB. 隆Y con la cuantizaci贸n de 4 bits, la huella de memoria se reduce a煤n m谩s a 9.5 GB! Esto permite ejecutar este modelo masivo en GPUs de consumo como la RTX 3090 con 24 GB de VRAM.

Sin embargo, es importante tener en cuenta que una cuantizaci贸n m谩s agresiva puede degradar la precisi贸n del modelo. Existe un equilibrio entre el ahorro de memoria y la precisi贸n que los usuarios deben evaluar seg煤n sus necesidades.

La cuantizaci贸n es una t茅cnica poderosa que puede permitir la implementaci贸n de LLM en entornos con recursos limitados como instancias en la nube, dispositivos perif茅ricos o incluso tel茅fonos m贸viles al reducir dr谩sticamente la huella de memoria.

Ajuste Fino Distribuido para Modelos Masivos

Mientras que la cuantizaci贸n es clave para la inferencia eficiente, el ajuste fino de LLM requiere t茅cnicas adicionales como el paralelismo de tensores y el paralelismo de modelos para gestionar los requisitos de memoria durante el entrenamiento.

Durante el ajuste fino, el consumo m谩ximo de memoria suele ser de 3 a 4 veces mayor que en la inferencia debido a los requisitos adicionales de memoria para gradientes, estados del optimizador y activaciones almacenadas.

  • Gradients
  • Estados del optimizador
  • Activaciones almacenadas del pase hacia adelante para la retropropagaci贸n

Una estimaci贸n conservadora es que el ajuste fino de un LLM con X mil millones de par谩metros requiere alrededor de 4 * (2X) = 8X GB de VRAM en precisi贸n bfloat16.

Por ejemplo, el ajuste fino del modelo LLaMA de 7B par谩metros requerir铆a aproximadamente 7 * 8 = 56GB de VRAM por GPU en precisi贸n bfloat16. Esto supera la capacidad de memoria de las GPUs actuales, lo que hace necesarias t茅cnicas de ajuste fino distribuido.

T茅cnicas de Ajuste Fino Distribuido

Se han propuesto varios m茅todos de ajuste fino distribuido para superar las limitaciones de memoria de la GPU:

  1. Paralelismo de Datos: Replica el modelo en m煤ltiples GPUs y distribuye los lotes de entrenamiento, reduciendo el tiempo de entrenamiento pero no el requisito de memoria m谩ximo.
  2. ZeRO Stage 3: Una forma avanzada de paralelismo de datos que divide los par谩metros, gradientes y estados del optimizador entre las GPUs, reduciendo la memoria en comparaci贸n con el paralelismo de datos cl谩sico.
  3. Paralelismo de Tensores: Divide los par谩metros del modelo en filas o columnas y los distribuye entre las GPUs, con cada GPU operando en un conjunto particionado de par谩metros, gradientes y estados del optimizador.
  4. Paralelismo de Pipelines: Divide las capas del modelo entre diferentes GPUs/trabajadores, con cada dispositivo ejecutando un subconjunto de las capas y pasando las activaciones entre ellos.

Estimar el uso de memoria para estos m茅todos distribuidos no es trivial, ya que la distribuci贸n de par谩metros, gradientes, activaciones y estados del optimizador var铆a entre t茅cnicas. Adem谩s, diferentes componentes como el cuerpo del transformador y la cabeza de modelado de lenguaje pueden mostrar diferentes comportamientos de asignaci贸n de memoria.

La Soluci贸n LLMem

Recientemente, los investigadores propusieron LLMem, una soluci贸n que estima con precisi贸n el consumo de memoria de la GPU al aplicar m茅todos de ajuste fino distribuido a LLMs en m煤ltiples GPUs.

LLMem considera factores como la recombinaci贸n de par谩metros antes de la computaci贸n, la recolecci贸n de salidas en el pase hacia atr谩s y las diferentes estrategias de asignaci贸n de memoria para el cuerpo del transformador y la cabeza de modelado de lenguaje.

Los resultados experimentales muestran que LLMem puede estimar el uso m谩ximo de memoria de la GPU para el ajuste fino de LLM en una sola GPU con tasas de error de hasta 1,6%, superando la tasa de error promedio de DNNMem, l铆der en el sector, del 42,6%. Al aplicar m茅todos de ajuste fino distribuido a LLMs con m谩s de mil millones de par谩metros en m煤ltiples GPUs, LLMem logra una impresionante tasa de error promedio del 3,0%

Deja una opini贸n

Deje una respuesta

馃 AI MAFIA
Logo