Comprende los tamaños de los LLM

Maud Nalpas
Maud Nalpas

Si bien la “L” de los modelos grandes de lenguaje (LLM) sugiere una escala masiva, la realidad es más matizada. Algunos LLM contienen trillones de parámetros, mientras que otros funcionan de manera eficaz con muchos menos.

Observa algunos ejemplos del mundo real y las implicaciones prácticas de los diferentes tamaños de modelos.

Como desarrolladores web, tendemos a pensar en el tamaño de un recurso como su tamaño de descarga. En cambio, el tamaño documentado de un modelo hace referencia a su cantidad de parámetros. Por ejemplo, Gemma 2B significa Gemma con 2,000 millones de parámetros.

Los LLM pueden tener cientos de miles, millones, miles de millones o incluso trillones de parámetros.

Los LLM más grandes tienen más parámetros que sus contrapartes más pequeños, lo que les permite capturar relaciones de lenguaje más complejas y manejar instrucciones con matices. También suelen entrenarse con conjuntos de datos más grandes.

Es posible que hayas notado que ciertos tamaños de modelos, como 2,000 millones o 7,000 millones, son comunes. Por ejemplo, Gemma 2B, Gemma 7B o Mistral 7B. Las clases de tamaño del modelo son agrupaciones aproximadas. Por ejemplo, Gemma 2B tiene aproximadamente 2,000 millones de parámetros, pero no exactamente.

Las clases de tamaño de modelo ofrecen una forma práctica de medir el rendimiento de los LLM. Piensa en ellos como las clases de peso en el boxeo: los modelos dentro de la misma clase de tamaño son más comparables. Dos modelos 2B deberían ofrecer un rendimiento similar.

Dicho esto, un modelo más pequeño puede tener el mismo rendimiento que un modelo más grande para tareas específicas.

Captura de pantalla de las casillas de verificación de tamaño de modelo de HuggingFace.
Clases de tamaño de modelo en HuggingFace. Estas clases no son estándares de la industria, sino que surgieron de forma orgánica.

Si bien los tamaños de los modelos de los LLM más recientes y avanzados, como GPT-4 y Gemini Pro o Ultra, no siempre se divulgan, se cree que están en cientos de miles de millones o trillones de parámetros.

Los tamaños de los modelos pueden variar mucho. En esta ilustración, DistilBERT es un punto diminuto en comparación con el gigante Gemini Pro.

No todos los modelos indican la cantidad de parámetros en su nombre. Algunos modelos tienen un sufijo con su número de versión. Por ejemplo, Gemini 1.5 Pro hace referencia a la versión 1.5 del modelo (después de la versión 1).

¿LLM o no?

¿Cuándo un modelo es demasiado pequeño para ser un LLM? La definición de LLM puede ser un poco fluida dentro de la comunidad de IA y AA.

Algunos consideran que solo los modelos más grandes con miles de millones de parámetros son verdaderos LLM, mientras que los modelos más pequeños, como DistilBERT, se consideran modelos simples de NLP. Otros incluyen modelos más pequeños, pero igualmente potentes, en la definición de LLM, como DistilBERT.

LLM más pequeños para casos de uso integrados en el dispositivo

Los LLM más grandes requieren mucho espacio de almacenamiento y mucha potencia de procesamiento para la inferencia. Deben ejecutarse en servidores potentes dedicados con hardware específico (como TPU).

Como desarrolladores web, nos interesa saber si un modelo es lo suficientemente pequeño para descargarse y ejecutarse en el dispositivo de un usuario.

Pero esa es una pregunta difícil de responder. A partir de hoy, no hay una manera fácil de saber si “este modelo puede ejecutarse en la mayoría de los dispositivos de gama media” por los siguientes motivos:

  • Las capacidades de los dispositivos varían mucho en función de la memoria, las especificaciones de la GPU o la CPU, y mucho más. Un teléfono Android de gama baja y una laptop NVIDIA® RTX son muy diferentes. Es posible que tengas algunos datos sobre los dispositivos que tienen tus usuarios. Aún no tenemos una definición para un dispositivo de referencia que se usa para acceder a la Web.
  • Un modelo o el framework en el que se ejecuta puede estar optimizado para ejecutarse en cierto hardware.
  • No hay una forma programática de determinar si se puede descargar un LLM específico y ejecutarlo en un dispositivo específico. La capacidad de descarga de un dispositivo depende de la cantidad de VRAM que hay en la GPU, entre otros factores.

Sin embargo, tenemos algunos conocimientos empíricos: hoy en día, algunos modelos con unos pocos millones a algunos miles de millones de parámetros se pueden ejecutar en el navegador, en dispositivos de consumo.

Por ejemplo:

  • Gemma 2B con la API de inferencia de LLM de MediaPipe (incluso es adecuada para dispositivos solo con CPU). Pruébala.
  • DistilBERT con Transformers.js

Este es un campo incipiente. Puedes esperar que el panorama evolucione:

  • Con las innovaciones de WebAssembly y WebGPU, la compatibilidad con WebGPU se lanzará en más bibliotecas, bibliotecas nuevas y optimizaciones. Se espera que los dispositivos de los usuarios puedan ejecutar LLM de varios tamaños de manera más eficiente.
  • Se espera que los LLM más pequeños y de alto rendimiento se vuelvan cada vez más comunes a través de las técnicas de reducción emergentes.

Consideraciones para LLM más pequeños

Cuando trabajes con LLM más pequeños, siempre debes tener en cuenta el rendimiento y el tamaño de descarga.

Rendimiento

La capacidad de cualquier modelo depende en gran medida de tu caso de uso. Es posible que un LLM más pequeño ajustado a tu caso de uso tenga un mejor rendimiento que un LLM genérico más grande.

Sin embargo, dentro de la misma familia de modelos, los LLM más pequeños tienen menos capacidades que sus contrapartes más grandes. Para el mismo caso de uso, por lo general, deberás realizar más trabajo de ingeniería inmediato cuando uses un LLM más pequeño.

Captura de pantalla del panel de red de las herramientas para desarrolladores de Chrome.
La puntuación de Gemma 2B es inferior a la de Gemma 7B.
Fuente: Tabla de clasificación de LLM abierta de HuggingFace, abril de 2024

Tamaño de descarga

Más parámetros significan un tamaño de descarga mayor, lo que también influye en si un modelo, incluso si se considera pequeño, se puede descargar de forma razonable para casos de uso en el dispositivo.

Si bien existen técnicas para calcular el tamaño de descarga de un modelo en función de la cantidad de parámetros, esto puede ser complejo.

A principios de 2024, los tamaños de descarga de los modelos rara vez se documentan. Por lo tanto, para tus casos de uso en el dispositivo y en el navegador, te recomendamos que observes el tamaño de descarga de forma empírica, en el panel Red de las Herramientas para desarrolladores de Chrome o con otras herramientas para desarrolladores de navegadores.

Captura de pantalla del panel de red de las herramientas para desarrolladores de Chrome.
En el panel de red de las herramientas para desarrolladores de Chrome, se usan Gemma 2B y DistilBERT para la inferencia en el navegador y en el dispositivo en una aplicación web. Los tamaños de descarga son de 1.3 GB y 67 MB, respectivamente.

Gemma se usa con la API de inferencia de LLM de MediaPipe. DistilBERT se usa con Transformers.js.

Técnicas de reducción de modelos

Existen varias técnicas para reducir significativamente los requisitos de memoria de un modelo:

  • LoRA (adaptación de bajo rango): Técnica de ajuste fino en la que se congelan los pesos previamente entrenados. Obtén más información sobre LoRa.
  • Poda: Quita los pesos menos importantes del modelo para reducir su tamaño.
  • Cuantización: Reduce la precisión de los pesos de los números de punto flotante (como 32 bits) a representaciones de menos bits (como 8 bits).
  • Destilación del conocimiento: Entrena un modelo más pequeño para imitar el comportamiento de un modelo más grande y previamente entrenado.
  • Uso compartido de parámetros: Usa los mismos pesos para varias partes del modelo, lo que reduce la cantidad total de parámetros únicos.