Huawei presenta SINQ: cuantización de código abierto para lograr modelos de lenguaje grandes más eficientes

12 min de lectura
Huawei presenta SINQ: cuantización de código abierto para lograr modelos de lenguaje grandes más eficientes

Por qué SINQ es importante para el uso cotidiano de los modelos de lenguaje grandes

Los modelos de lenguaje grandes necesitan mucha memoria. Por eso, ejecutar modelos avanzados suele requerir GPU de centros de datos de alta gama y costosos servidores en la nube. El Laboratorio de Sistemas de Computación de Huawei en Zúrich presentó SINQ, un nuevo método de cuantización que busca cambiar esa situación. El enfoque, llamado cuantización normalizada de Sinkhorn, apunta a reducir el uso de memoria con una pérdida mínima de calidad en los resultados. Se distribuye como código abierto con licencia Apache 2.0. El equipo describe SINQ como un método rápido, que no requiere calibración y es fácil de integrar en los flujos de trabajo existentes.

Contenido
  1. Por qué SINQ es importante para el uso cotidiano de los modelos de lenguaje grandes
  2. En qué se diferencia SINQ de métodos anteriores de cuantización
  3. Ahorro de memoria, velocidad y calidad en las pruebas
  4. Efectos en el hardware y los costos de la nube
  5. Qué pueden usar hoy los desarrolladores
  6. Aspectos técnicos destacados
  7. Escalado de doble eje
  8. Normalización de Sinkhorn-Knopp
  9. Diseño sin calibración
  10. Límites y aspectos prácticos
  11. Por qué importa más allá de una empresa
  12. Puntos clave

La cuantización reduce la cantidad de bits que se utilizan para representar los pesos de un modelo. Pasar de números de punto flotante de 16 u 8 bits a enteros de 4 bits puede reducir la memoria en más de la mitad. Lograr ese ahorro sin perder precisión es difícil, sobre todo por debajo de los 8 bits. La principal propuesta de SINQ es mantener una calidad alta con baja precisión, incluso con 4 bits y, en algunos casos, con 3 bits, y aplicarse más rápido que muchos métodos conocidos.

En los modelos y arquitecturas que probaron los autores, SINQ reduce el uso de memoria aproximadamente entre un 60 y un 70 %. Esa reducción permite ejecutar muchos modelos en una sola GPU de consumo, como una Nvidia GeForce RTX 4090 con 24 GB de memoria, en lugar de necesitar GPU empresariales como la A100 o la H100. En la nube, instancias más económicas pueden gestionar tareas de inferencia prolongadas, lo que puede traducirse en ahorros de miles de dólares con el tiempo. Para laboratorios, empresas emergentes y aficionados que ejecutan modelos localmente, disminuye la barrera para usar modelos capaces en una estación de trabajo.

Publicidad

En qué se diferencia SINQ de métodos anteriores de cuantización

La mayoría de los métodos de cuantización de modelos de lenguaje grandes que se usan actualmente solo cuantizan los pesos. Los pesos son los parámetros aprendidos de cada capa y representan la mayor parte del tamaño del modelo. También es posible cuantizar las activaciones, pero esto suele añadir complejidad y puede afectar el tiempo de ejecución. Muchos métodos de uso extendido requieren dedicar tiempo de cálculo a una etapa de preparación, llamada calibración, para buscar factores de escala que minimicen el error introducido por la cuantización. Esa calibración utiliza una muestra de datos y ejecuta el modelo en varias pasadas adicionales. Puede mejorar la calidad, pero lleva tiempo, exige seleccionar cuidadosamente las instrucciones de entrada y complica los flujos de trabajo.

SINQ sigue un camino distinto. Introduce dos ideas relacionadas que buscan mantener una distribución adecuada de los pesos antes de redondearlos para representarlos con baja precisión. Primero, el escalado de doble eje aplica vectores de escala separados a las filas y las columnas de una matriz de pesos. Esto ofrece un control más preciso que aplicar una sola escala por tensor o por canal. Distribuye el error de una forma que reduce el impacto de los valores atípicos y los desequilibrios locales.

En segundo lugar, SINQ emplea un procedimiento inspirado en la normalización de Sinkhorn-Knopp. El algoritmo alterna normalizaciones sencillas para equilibrar las estadísticas de filas y columnas. En SINQ, el método normaliza la desviación estándar de las filas y las columnas para que ninguna parte de la matriz de pesos tenga un peso excesivo. Este paso de equilibrio mejora la respuesta de los pesos a la cuantización y reduce el error general sin recurrir a costosos datos de calibración para cada capa.

Publicidad

Ahorro de memoria, velocidad y calidad en las pruebas

Los autores informan de un ahorro constante de memoria de entre el 60 y el 70 % frente a los pesos de precisión completa, con una precisión similar a la del modelo original en diversas arquitecturas. En la práctica, esto puede reducir de unos 60 GB a cerca de 20 GB la memoria necesaria para un modelo. En GPU de consumo, esa diferencia puede determinar si el modelo cabe en la memoria o si debe recurrir a la lenta memoria RAM del equipo anfitrión.

La velocidad de cuantización importa tanto en la investigación como en la producción. Según las pruebas publicadas, SINQ cuantiza modelos aproximadamente el doble de rápido que HQQ y más de 30 veces más rápido que AWQ. Para los equipos que prueban distintas versiones de modelos, esa diferencia puede convertir un preprocesamiento de varias horas en un paso más rápido que encaja en el ciclo de desarrollo.

La calidad se evalúa con métricas como la perplejidad y la tasa de cambio de tokens. La perplejidad mide qué tan bien predice texto un modelo de lenguaje. La tasa de cambio de tokens cuenta con qué frecuencia cambian los tokens más probables después de la cuantización. En distintas pruebas de referencia, SINQ reduce la perplejidad frente a otros métodos de referencia que no requieren calibración y disminuye la tasa de cambio de tokens, lo que apunta a resultados más estables. El método también funciona con esquemas de cuantización no uniformes y puede combinarse con calibración si un proyecto busca mejorar aún más la precisión.

Publicidad

Efectos en el hardware y los costos de la nube

El costo de la inferencia aumenta con la memoria necesaria. Un modelo que cabe en una sola GPU evita configuraciones costosas de paralelismo de modelos y la sobrecarga de la red. Las reducciones de SINQ permiten ejecutar muchos modelos medianos y grandes en una sola tarjeta de consumo con mucha memoria. Para quienes antes dependían de nodos A100 o H100, poder ejecutar los modelos en GPU más económicas puede reducir las facturas mensuales y liberar hardware de alta gama para el entrenamiento.

Los usuarios de la nube pueden elegir instancias de GPU más pequeñas o ejecutar más modelos al mismo tiempo en cada nodo. En tareas prolongadas, como asistentes de chat o servicios de generación aumentada por recuperación, usar GPU de menor costo puede ahorrar miles de dólares a lo largo de semanas o meses. También se vuelven viables los clústeres locales más pequeños para los equipos que prefieren mantener los datos dentro de sus instalaciones.

Hay beneficios adicionales en latencia y consumo de energía. Menos dispositivos, menos comunicaciones entre nodos y menos tráfico de memoria entre el equipo anfitrión y el dispositivo pueden reducir el tiempo de respuesta y el consumo eléctrico. El efecto acumulado es una infraestructura de servicio más eficiente y con menos componentes.

Publicidad

Qué pueden usar hoy los desarrolladores

SINQ está disponible como código abierto con licencia Apache 2.0. La publicación incluye el código de implementación, instrucciones para cuantizar modelos de repositorios populares y herramientas para guardar y volver a cargar los pesos cuantizados. El paquete ofrece funciones de evaluación para que los equipos midan la perplejidad y la tasa de cambio de tokens antes de implementar los modelos. También permite ajustar parámetros según el hardware y los objetivos de precisión.

Los autores afirman que planean publicar modelos ya cuantizados y que buscan integrar SINQ con el ecosistema Transformers de Hugging Face. Esto facilitaría su adopción al permitir que los desarrolladores carguen un punto de control cuantizado mediante interfaces de programación conocidas. Los equipos que gestionan sus propias infraestructuras de inferencia pueden empezar por cuantizar los pesos y luego conectar los resultados a núcleos de software compatibles con formatos de almacenamiento de 4 o 3 bits en el entorno de ejecución elegido.

Aspectos técnicos destacados

SINQ está diseñado como un paso que se puede incorporar directamente a un proceso de preparación de modelos. El objetivo es ajustar las matrices de pesos para que una representación de baja precisión conserve la estructura importante para la inferencia y, después, convertir esos pesos ajustados a formatos compactos de enteros.

Escalado de doble eje

El escalado tradicional por tensor o por canal aplica un factor en una sola dirección. El escalado de doble eje aplica un vector a las filas y otro a las columnas de cada matriz de pesos. Esta separación ayuda cuando algunas filas contienen valores atípicos o ciertas columnas presentan una varianza mayor. Al normalizar ambas direcciones, el método distribuye el error de cuantización de manera más uniforme por toda la matriz. El resultado es menos concentración del error en picos y una mejor conservación de las magnitudes relativas de los pesos.

Normalización de Sinkhorn-Knopp

Sinkhorn-Knopp es un procedimiento iterativo clásico que alterna normalizaciones sencillas para alcanzar un estado equilibrado. En SINQ, el objetivo no es obtener una matriz doblemente estocástica, sino equilibrar las desviaciones estándar de las filas y las columnas. El algoritmo reescala repetidamente las filas y las columnas para ajustar sus desviaciones estándar a valores objetivo. Una vez equilibrada la matriz de esta manera, la cuantización se aplica a una distribución de pesos con menos valores extremos, lo que reduce el error de redondeo. El procedimiento es rápido, añade poca sobrecarga en comparación con las largas etapas de calibración y evita la necesidad de un conjunto de datos para calibrar.

Diseño sin calibración

Las etapas de calibración requieren elegir un conjunto de instrucciones de entrada, ejecutar el modelo para recopilar estadísticas y luego calcular las escalas. Esto añade complejidad y puede sesgar los resultados si el conjunto de calibración no refleja el uso en producción. SINQ omite ese paso porque trabaja directamente con las estadísticas de los pesos. Para muchos equipos, prescindir de la calibración simplifica la automatización y facilita la repetición de los resultados. Si un proyecto aun así requiere calibración, el ajuste de SINQ puede combinarse con una búsqueda de calibración para alcanzar la máxima precisión.

Límites y aspectos prácticos

La mayoría de las mejoras informadas provienen de la cuantización exclusiva de los pesos. Las activaciones y la caché de claves y valores siguen consumiendo memoria durante la generación, sobre todo con instrucciones de entrada y resultados largos. Algunos entornos de ejecución ofrecen cuantización de activaciones y compresión de la caché de claves y valores, pero estas opciones tienen sus propias ventajas y desventajas. Los equipos deberían medir el uso de memoria y la latencia de principio a fin, no solo el tamaño del modelo en disco.

La compatibilidad del entorno de ejecución es importante. Para mejorar la velocidad durante la inferencia, los núcleos de software deben leer eficientemente los pesos empaquetados de 4 o 3 bits. Herramientas populares como llama.cpp, TensorRT LLM, vLLM y otras evolucionan rápidamente, pero no todas las combinaciones de precisión, núcleo de atención y arquitectura de GPU están igual de consolidadas. Antes de poner un servicio en producción, pruebe el rendimiento, la latencia y la estabilidad con la configuración exacta, incluidos el tamaño del lote y la longitud del contexto.

La precisión muy baja puede perjudicar algunas tareas. La generación de código, el uso de herramientas y los resultados estructurados pueden ser más sensibles que una conversación informal. Métricas como la perplejidad son útiles, pero las pruebas en producción también deberían incluir la precisión en las tareas, el estilo de las respuestas y las comprobaciones de seguridad. Si un caso de uso lleva el modelo al límite, la precisión mixta o el uso selectivo de mayor precisión en las capas sensibles pueden preservar la calidad y mantener gran parte del ahorro de memoria.

Por qué importa más allá de una empresa

La cuantización se ha convertido en un pilar de la implementación práctica de modelos de lenguaje grandes. Un método de código abierto que sea rápido, no requiera calibración y funcione bien con baja precisión beneficia a todo el ecosistema. Al reducir la memoria necesaria, facilita el acceso a modelos capaces para la educación, los proyectos cívicos y las pequeñas empresas. También reduce la presión sobre la escasez de GPU de alta gama y libera capacidad para el entrenamiento y la investigación.

La competencia en las herramientas de inferencia se está acelerando. Métodos como SINQ pueden combinarse con núcleos de atención eficientes, cachés paginadas de claves y valores y planificadores optimizados para generar más tokens por segundo y por dólar. El resultado no es solo un servicio más barato. También ofrece más opciones a los equipos que priorizan la privacidad, el procesamiento local y el control de su infraestructura.

Puntos clave

  • SINQ, de Huawei, es un método de cuantización de código abierto para los pesos de modelos de lenguaje grandes, publicado con licencia Apache 2.0
  • SINQ permite reducir la memoria entre un 60 y un 70 %, con buena calidad a 4 bits y, en algunos casos, a 3 bits
  • El método no requiere calibración y busca integrarse fácilmente en los flujos de trabajo existentes
  • SINQ utiliza escalado de doble eje y normalización al estilo de Sinkhorn-Knopp para equilibrar las matrices de pesos
  • En las pruebas publicadas, la cuantización es aproximadamente dos veces más rápida que HQQ y más de 30 veces más rápida que AWQ
  • Las métricas de calidad mejoran frente a los métodos de referencia sin calibración, con menor perplejidad y una tasa de cambio de tokens más baja
  • Los modelos que antes necesitaban más de 60 GB pueden ejecutarse con unos 20 GB, lo que permite implementarlos en una sola GPU de consumo, como la RTX 4090
  • Entre las actualizaciones previstas figuran la integración con Hugging Face Transformers y la publicación de modelos ya cuantizados
Compartir este artículo

También le puede interesar