La IA en el dispositivo y la ejecución de grandes modelos de lenguaje en dispositivos más pequeños han sido uno de los puntos clave de enfoque para los líderes de la industria de la IA en los últimos años. Esta área de investigación se encuentra entre las más críticas de la IA y tiene el potencial de influir profundamente y remodelar el papel de la IA, las computadoras y los dispositivos móviles en la vida cotidiana. Esta investigación opera entre bastidores, en gran medida invisible para los usuarios, pero refleja la evolución de las computadoras: desde máquinas que alguna vez ocuparon habitaciones enteras y eran accesibles sólo para gobiernos y grandes corporaciones hasta los teléfonos inteligentes que ahora están cómodamente escondidos en nuestros bolsillos.
Ahora, la mayoría de los grandes modelos de lenguaje se implementan en entornos de nube donde pueden aprovechar los inmensos recursos computacionales de los centros de datos. Estos centros de datos están equipados con hardware especializado, como GPU y TPU, o incluso chips de IA especializados, diseñados para manejar las cargas de trabajo intensivas que requieren los LLM. Pero esta dependencia de la nube trae consigo importantes desafíos:
Alto costo: Los servicios en la nube son caros. La ejecución de LLM a escala requiere acceso continuo a servidores de alta potencia, lo que puede aumentar los costos operativos. Para las empresas emergentes o los ingenieros individuales, estos costos pueden ser prohibitivos, lo que limita quién puede aprovechar de manera realista esta poderosa tecnología.
Preocupaciones sobre la privacidad de los datos: Cuando los usuarios interactúan con LLM basados en la nube, sus datos deben enviarse a servidores remotos para su procesamiento. Esto crea una vulnerabilidad potencial ya que la información confidencial, como conversaciones personales, historiales de búsqueda o detalles financieros, podría interceptarse o manejarse incorrectamente.
Impacto ambiental: La computación en la nube a esta escala consume enormes cantidades de energía. Los centros de datos requieren energía continua no solo para la computación sino también para enfriar y mantener la infraestructura, lo que genera una huella de carbono significativa. Con el impulso global hacia la sostenibilidad, es necesario abordar esta cuestión. Por ejemplo, un informe reciente de Google presentado un aumento del 48% en las emisiones de gases de efecto invernadero en los últimos cinco años, atribuyendo gran parte de este aumento a las crecientes demandas de la tecnología de inteligencia artificial.
Es por eso que este problema continúa captando la atención de los líderes de la industria, que están invirtiendo importantes recursos para abordar el problema, así como de centros de investigación más pequeños y comunidades de código abierto. La solución ideal sería permitir a los usuarios ejecutar estos potentes modelos directamente en sus dispositivos, evitando la necesidad de una conectividad constante a la nube. Hacerlo podría reducir costos, mejorar la privacidad y disminuir el impacto ambiental asociado con la IA. Pero es más fácil decirlo que hacerlo.
La mayoría de los dispositivos personales, especialmente los teléfonos inteligentes, carecen de la potencia computacional para ejecutar LLM a gran escala. Por ejemplo, un iPhone con 6 GB de RAM o un dispositivo Android con hasta 12 GB de RAM no pueden competir con las capacidades de los servidores en la nube. Incluso el LLM más pequeño de Meta, LLaMA-3.1 8B, requiere al menos 16 GB de RAM y, siendo realistas, se necesita más para un rendimiento decente sin sobrecargar el teléfono. A pesar de los avances en los procesadores móviles, la brecha energética sigue siendo significativa.
Es por eso que la industria se centra en optimizar estos modelos, haciéndolos más pequeños, más rápidos y más eficientes sin sacrificar demasiado el rendimiento.
Este artículo explora artículos de investigación recientes y métodos clave destinados a lograr este objetivo, destacando la situación actual del campo:
- meta MobileLLM: optimización de modelos de lenguaje de parámetros de miles de millones para casos de uso en dispositivos
- Huawei Método de descomposición de Kronecker para la compresión GPT
- “TQCompressor: mejora de los métodos de descomposición de tensores en redes neuronales mediante permutaciones”, un proyecto de código abierto reciente y un artículo de investigación que mejoró el método de descomposición de Kronecker, permitiendo que los modelos GPT se compriman 1,5 veces sin aumentar significativamente los requisitos de tiempo, un estudio en el que participé como coautor.
El enfoque de Meta para diseñar LLM para casos de uso en dispositivos
Este verano, los investigadores de Meta AI introdujeron una nueva forma de crear modelos de lenguaje eficientes específicamente para teléfonos inteligentes y otros dispositivos con recursos limitados y lanzaron un modelo llamado MobileLLM, creado con este enfoque.
En lugar de depender de modelos con miles de millones o incluso billones de parámetros, como GPT-4, el equipo de Meta se centró en optimizar modelos con menos de mil millones de parámetros.
Los autores descubrieron que escalar el modelo «en profundidad» funciona mejor que «en ancho» para modelos más pequeños con hasta mil millones de parámetros o alrededor de ellos, lo que los hace más adecuados para teléfonos inteligentes. En otras palabras, es más efectivo tener una mayor cantidad de capas más pequeñas que unas pocas grandes. Por ejemplo, su modelo de 125 millones de parámetros, MobileLLM, tiene 30 capas, mientras que modelos como GPT-2, BERT y la mayoría de los modelos con 100-200 millones de parámetros suelen tener alrededor de 12 capas. Los modelos con la misma cantidad de parámetros pero un mayor número de capas (a diferencia de parámetros más grandes por capa) demostraron una mayor precisión en varias tareas de evaluación comparativa, como Winogrande y Hellaswag.
Los gráficos de la investigación de Meta muestran que, bajo tamaños de modelo comparables, los modelos más profundos y más delgados generalmente superan a sus contrapartes más amplios y menos profundos en diversas tareas, como el razonamiento de sentido común, la respuesta a preguntas y la comprensión lectora.
Crédito de la imagen: MobileLLM: optimización de modelos de lenguaje de parámetros de miles de millones para casos de uso en dispositivos
El intercambio de capas es otra técnica utilizada en la investigación para reducir parámetros y mejorar la eficiencia. En lugar de duplicar capas dentro de la red neuronal, los pesos de una sola capa se reutilizan varias veces. Por ejemplo, después de calcular la salida de una capa, se puede retroalimentar a la entrada de esa misma capa. Este enfoque reduce efectivamente la cantidad de parámetros, ya que el método tradicional requeriría duplicar la capa varias veces. Al reutilizar capas, lograron importantes mejoras en la eficiencia sin comprometer el rendimiento.
Como se muestra en la tabla de la investigación, otros modelos con parámetros de 125M suelen tener entre 10 y 12 capas, mientras que MobileLLM tiene 30. MobileLLM supera a los demás en la mayoría de los puntos de referencia (con el líder del punto de referencia resaltado en negrita).
Crédito de la imagen: MobileLLM: optimización de modelos de lenguaje de parámetros de miles de millones para casos de uso en dispositivos
En su artículo, Meta presentó el modelo MobileLLM en dos versiones: 125 millones y 350 millones de parámetros. Hicieron público el código de formación para MobileLLM en GitHub. Posteriormente, Meta también publicó 600 millones, 1.000 millones y 1.500 millones de versiones del modelo.
Estos modelos mostraron mejoras impresionantes en tareas como el razonamiento de sentido común, la respuesta a preguntas y la comprensión lectora, superando a los métodos de última generación anteriores. Además, las versiones mejoradas de MobileLLM demostraron su efectividad en aplicaciones comunes en dispositivos como chat y llamadas API, lo que las hace particularmente adecuadas para las demandas de los entornos móviles.
El mensaje de Meta es claro: Si queremos que los modelos funcionen en dispositivos móviles, es necesario crearlos de forma diferente.
Pero esto no suele ser así. Tomemos como ejemplo los modelos más populares en el mundo de la IA, como LLaMA3Qwen2 o Gemma-2: no sólo tienen muchos más parámetros; también tienen menos capas pero mucho más grandes, lo que hace prácticamente muy difícil ejecutar estos modelos en dispositivos móviles.
Comprimir LLM existentes
La reciente investigación de Meta se aleja de la compresión de las redes neuronales existentes y presenta un nuevo enfoque para diseñar modelos específicamente para teléfonos inteligentes. Sin embargo, millones de ingenieros en todo el mundo que no construyen modelos desde cero (y seamos realistas, son la mayoría de ellos) todavía tienen que trabajar con esos modelos amplios y con muchos parámetros. La compresión no es sólo una opción; es una necesidad para ellos.
La cuestión es esta: si bien los hallazgos de Meta son innovadores, la realidad es que los modelos de código abierto no necesariamente se construyen con estos principios en mente. La mayoría de los modelos de vanguardia, incluido el LLaMA de Meta, todavía están diseñados para servidores grandes con GPU potentes. Estos modelos suelen tener menos capas pero mucho más anchas. Por ejemplo, LLaMA3 8B tiene casi 65 veces más parámetros que MobileLLM-125M, aunque ambos modelos tienen alrededor de 30 capas.
Entonces, ¿cuál es la alternativa? Podrías seguir creando nuevos modelos desde cero, adaptándolos para uso móvil. O bien, podría comprimir los existentes.
Al hacer que estos modelos grandes y anchos sean más eficientes para dispositivos móviles, los ingenieros suelen recurrir a un conjunto de técnicas de compresión probadas y verdaderas. Estos métodos son la cuantificación, la poda, la descomposición de matrices y la destilación del conocimiento.
Cuantización
Uno de los métodos más utilizados para la compresión de redes neuronales es la cuantificación, que se caracteriza por ser sencilla y preservar eficazmente el rendimiento.
Crédito de la imagen: Jan Marcel Kezmann en Medio
El concepto básico es que una red neuronal consta de números almacenados en matrices. Estos números se pueden almacenar en diferentes formatos, como números de punto flotante o enteros. Puedes reducir drásticamente el tamaño del modelo convirtiendo estos números de un formato más complejo, como float32, a uno más simple, como int8. Por ejemplo, un modelo que inicialmente ocupaba 100 MB podría comprimirse a sólo 25 MB mediante cuantificación.
Poda
Como se mencionó, una red neuronal consta de un conjunto de matrices llenas de números. La poda es el proceso de eliminar números «sin importancia», conocidos como «pesos», de estas matrices.
Al eliminar estos pesos sin importancia, el comportamiento del modelo se ve mínimamente afectado, pero los requisitos computacionales y de memoria se reducen significativamente.
Descomposición matricial
La descomposición matricial es otra técnica eficaz para comprimir redes neuronales. La idea es dividir (o “descomponer”) matrices grandes de la red en otras más pequeñas y simples. En lugar de almacenar una matriz completa, se puede descomponer en dos o varias matrices más pequeñas. Cuando se multiplican entre sí, estas matrices más pequeñas producen un resultado igual o muy cercano al original. Esto nos permite reemplazar una matriz grande por otras más pequeñas sin alterar el comportamiento del modelo. Sin embargo, este método no es perfecto: a veces, las matrices descompuestas no pueden replicar perfectamente el original, lo que genera un pequeño error de aproximación. Aún así, la compensación en términos de eficiencia a menudo vale la pena.
Destilación del conocimiento
Destilación del conocimiento, introducida por Hinton et al. en 2015, es un método simple pero efectivo para crear un modelo más pequeño y más eficiente (el “modelo de estudiante”) mediante la transferencia de conocimiento desde un modelo más grande y previamente capacitado (el “modelo de maestro”).
Utilizando la destilación del conocimiento, se puede entrenar un modelo de lenguaje más pequeño diseñado arbitrariamente para imitar el comportamiento de un modelo más grande. El proceso funciona alimentando a ambos modelos con los mismos datos, y el más pequeño aprende a producir resultados similares a los del modelo más grande. Básicamente, el modelo de estudiante se extrae del conocimiento del modelo de profesor, lo que le permite funcionar de manera similar pero con muchos menos parámetros.
Un ejemplo notable es DistilBERT (Sanh et al. 2019), que redujo con éxito los parámetros de BERT en un 40 % manteniendo el 97 % de su rendimiento y funcionando un 71 % más rápido.
La destilación se puede combinar fácilmente con la cuantificación, la poda y la descomposición matricial, donde el modelo del profesor es la versión original y el del estudiante es el comprimido. Estas combinaciones ayudan a refinar la precisión del modelo comprimido. Por ejemplo, podría comprimir GPT-2 mediante descomposición matricial y luego aplicar la destilación de conocimientos para entrenar el modelo comprimido para imitar el GPT-2 original.
Cómo comprimir modelos existentes para casos de uso de IA en el dispositivo
Hace unos años, Huawei también se centró en habilitar modelos de IA en el dispositivo y publicó investigaciones sobre la compresión de GPT-2. Los investigadores utilizaron un método de descomposición matricial para reducir el tamaño del popular modelo GPT-2 de código abierto para un uso más eficiente en el dispositivo.
Específicamente, utilizaron una técnica llamada descomposición de Kronecker, que es la base de su artículo titulado «Descomposición de Kronecker para compresión GPT». Como resultado, los parámetros del GPT-2 se redujeron de 125 millones a 81 millones.
Para recuperar el rendimiento del modelo después de la compresión, los autores emplearon destilación de conocimientos. La versión comprimida, denominada KnGPT-2, aprendió a imitar el comportamiento del GPT-2 original. Entrenaron este modelo destilado utilizando solo el 10% del conjunto de datos original utilizado para entrenar GPT-2. Al final, el tamaño del modelo disminuyó un 35%, con una pérdida de rendimiento relativamente pequeña.
Este año, mis colegas y yo publicamos una investigación sobre métodos de descomposición matricial, en la que comprimimos con éxito el modelo GPT-2 (con 125 millones de parámetros) a 81 millones de parámetros. Llamamos al modelo resultante TQCompressedGPT-2. Este estudio mejoró aún más el método de descomposición de Kronecker y, con este avance, logramos utilizar solo el 3,1 % del conjunto de datos original durante la fase de destilación del conocimiento. Significa que reducimos el tiempo de entrenamiento aproximadamente 33 veces en comparación con el uso del conjunto de datos completo y que los desarrolladores que buscan implementar modelos como LLaMA3 en teléfonos inteligentes necesitarán 33 veces menos tiempo para lograr una versión comprimida de LLaMA3 usando nuestro método.
La novedad de nuestro trabajo radica en algunas áreas clave:
- Antes de aplicar la compresión, introdujimos un nuevo método: la permutación de matrices de peso. Al reorganizar las filas y columnas de las matrices de capas antes de la descomposición, logramos una mayor precisión en el modelo comprimido.
- Aplicamos compresión de forma iterativa, reduciendo las capas del modelo una por una.
Hemos hecho que nuestro código de modelo y algoritmo sea de código abierto, lo que permite una mayor investigación y desarrollo.
Ambos estudios nos acercan al concepto que Meta introdujo con su enfoque de los LLM móviles. Demuestran métodos para transformar modelos amplios existentes en versiones más compactas y profundas utilizando técnicas de descomposición matricial y restaurando el rendimiento del modelo comprimido con destilación de conocimientos.
Los modelos de primer nivel como LLaMA, Mistral y Qwen, que superan significativamente los mil millones de parámetros, están diseñados para potentes servidores en la nube, no para teléfonos inteligentes. La investigación realizada por Huawei y nuestro equipo ofrece técnicas valiosas para adaptar estos modelos grandes para uso móvil, alineándose con la visión de Meta para el futuro de la IA en los dispositivos.
Comprimir modelos de IA es más que un desafío técnico: es un paso crucial para hacer que la tecnología avanzada sea accesible para miles de millones. A medida que los modelos se vuelven más complejos, la capacidad de ejecutarlos de manera eficiente en dispositivos cotidianos como los teléfonos inteligentes se vuelve esencial. No se trata sólo de ahorrar recursos; se trata de incorporar la IA a nuestra vida diaria de forma sostenible.
El progreso de la industria para abordar este desafío es significativo. Los avances de Huawei y TQ en la compresión de modelos de IA están impulsando a la IA hacia un futuro en el que pueda ejecutarse sin problemas en dispositivos más pequeños sin sacrificar el rendimiento. Estos son pasos críticos para adaptar de manera sostenible la IA a las limitaciones del mundo real y hacerla más accesible para todos, sentando una base sólida para futuras investigaciones en esta área vital del impacto de la IA en la humanidad.