Los modelos básicos (FM) y los modelos de lenguaje grande (LLM) se han ampliado rápidamente y, a menudo, duplicaron el recuento de parámetros en cuestión de meses, lo que generó mejoras significativas en la comprensión del lenguaje y las capacidades generativas. Este rápido crecimiento conlleva costos elevados: la inferencia ahora requiere una enorme capacidad de memoria, GPU de alto rendimiento y un consumo sustancial de energía. Esta tendencia es evidente en el espacio del código abierto. En 2023, TII-UAE lanzó el Falcon 180B, el modelo abierto más grande en ese momento. Meta superó eso en 2024 con Llama 3.1, un modelo denso 405B. A mediados de 2025, el modelo más grande disponible públicamente es DeepSeek (V3 – variante Instruct, R1 – variante Reasoning), una arquitectura mixta de expertos (MoE) con 671 mil millones de parámetros totales, de los cuales 37 mil millones están activos por token. Estos modelos ofrecen un rendimiento de última generación en una amplia gama de tareas, incluida la búsqueda multimodal, la generación de código, el resumen, la generación de ideas, el razonamiento lógico e incluso la resolución de problemas a nivel de doctorado. A pesar de su valor, implementar dichos modelos en aplicaciones del mundo real sigue siendo en gran medida poco práctico debido a su tamaño, costo y requisitos de infraestructura.
A menudo confiamos en la inteligencia de modelos grandes para aplicaciones de misión crítica, como asistentes de atención al cliente, investigaciones médicas o agentes empresariales, donde las alucinaciones pueden tener consecuencias graves. Sin embargo, implementar modelos con más de 100 mil millones de parámetros a escala es un desafío técnico: estos modelos requieren importantes recursos de GPU y ancho de banda de memoria, lo que dificulta acelerar o reducir las instancias rápidamente en respuesta a la demanda fluctuante de los usuarios. Como resultado, escalar a miles de usuarios rápidamente se vuelve prohibitivo en términos de costos, porque los requisitos de infraestructura de alto rendimiento hacen que el retorno de la inversión (ROI) sea difícil de justificar. La cuantización post-entrenamiento (PTQ) ofrece una alternativa práctica; Al convertir pesos y activaciones de 16 o 32 bits en enteros de 8 o 4 bits de menor precisión después del entrenamiento, PTQ puede reducir el tamaño del modelo entre 2 y 8 veces, reducir los requisitos de ancho de banda de memoria y acelerar las operaciones matriciales, todo sin necesidad de volver a entrenar, lo que lo hace adecuado para implementar modelos grandes de manera más eficiente. Por ejemplo, el modelo base DeepSeek-V3 requiere una instancia ml.p5e.48xlarge (con 1128 GB de memoria GPU H100) para la inferencia, mientras que su variante cuantificada (QuixiAI/DeepSeek-V3-0324-AWQ) puede ejecutarse en instancias más pequeñas como ml.p5.48xlarge (con 640 GB de memoria GPU H100) o incluso ml.p4de.24xlarge (con Memoria GPU A100 de 640 GB). Esta eficiencia se logra aplicando cuantificación de bits bajos a canales de peso menos influyentes, al mismo tiempo que se preservan o reescalan los canales que tienen el mayor impacto en las respuestas de activación y se mantienen las activaciones con total precisión, lo que reduce drásticamente el uso máximo de memoria.
Los modelos cuantificados son posibles gracias a las contribuciones de la comunidad de desarrolladores, incluidos proyectos como Unsloth AI y QuixiAI (anteriormente: Cognitive Computations), que invierten mucho tiempo y recursos en optimizar los LLM para una inferencia eficiente. Estos modelos cuantificados se pueden implementar sin problemas en Amazon SageMaker AI utilizando unas pocas líneas de código. Amazon SageMaker Inference proporciona un servicio totalmente administrado para alojar aprendizaje automático, aprendizaje profundo y modelos de visión o lenguaje grandes a escala de una manera rentable y lista para producción. En esta publicación, exploramos por qué es importante la cuantificación: cómo permite inferencias de menor costo, admite la implementación en hardware con recursos limitados y reduce el impacto financiero y ambiental de los LLM modernos, al tiempo que preserva la mayor parte de su rendimiento original. También profundizamos en los principios detrás de PTQ y demostramos cómo cuantificar el modelo de su elección e implementarlo en Amazon SageMaker.
Los pasos son:
Elija el modelo Elija la técnica WxAy (WxAy aquí implica pesos y activaciones, que se discutirán en profundidad más adelante en esta publicación) Elija el algoritmo (AWQ, GPTQ, SmoothQuant, etc.) Cuantizar Implementación e inferencia
Para ilustrar este flujo de trabajo y ayudar a visualizar el proceso, hemos incluido el siguiente diagrama de flujo.
Requisitos previos
Para ejecutar los cuadernos de ejemplo, necesita una cuenta de AWS con un rol de AWS Identity and Access Management (IAM) con permisos para administrar los recursos creados. Para obtener más información, consulte Crear una cuenta de AWS.
Si es la primera vez que trabaja con Amazon SageMaker Studio, primero debe crear un dominio de SageMaker.
De forma predeterminada, el modelo se ejecuta en una nube privada virtual (VPC) administrada por AWS compartida con acceso a Internet. Para mejorar la seguridad y controlar el acceso, debe configurar explícitamente una VPC privada con grupos de seguridad y políticas de IAM adecuados según sus requisitos.
Amazon SageMaker AI proporciona funciones de seguridad de nivel empresarial para ayudar a mantener sus datos y aplicaciones seguros y privados. No compartimos sus datos con proveedores de modelos, lo que le brinda control total sobre sus datos. Esto se aplica a todos los modelos, tanto propietarios como disponibles públicamente, incluido DeepSeek-R1 en SageMaker. Para obtener más información, consulte Configurar la seguridad en Amazon SageMaker AI.
Como práctica recomendada, siempre se recomienda implementar los puntos finales de su LLM dentro de su VPC y detrás de una subred privada sin puertas de enlace de Internet y preferiblemente sin salida. También se debe bloquear el ingreso desde Internet para minimizar los riesgos de seguridad.
En esta publicación, utilizamos LiteLLM Python SDK para estandarizar y abstraer el acceso a los puntos finales en tiempo real de Amazon SageMaker y la herramienta LLMPerf para evaluar el rendimiento de nuestros modelos cuantificados. Consulte Instalación en el repositorio de LLMPerf GitHub para obtener instrucciones de configuración.
Pesos y técnicas de activación (WₓAᵧ)
A medida que la escala de los LLM continúa creciendo, implementarlos de manera eficiente se vuelve menos una cuestión de rendimiento bruto y más de encontrar el equilibrio adecuado entre velocidad, costo y precisión. En escenarios del mundo real, la cuantificación comienza con tres consideraciones fundamentales:
El tamaño del modelo que necesita alojar El costo o el hardware de destino disponible para la inferencia El equilibrio aceptable entre precisión y velocidad de inferencia
Comprender cómo estos factores dan forma a las opciones de cuantificación es clave para que los LLM sean viables en entornos de producción. Exploraremos cómo las técnicas de cuantificación posteriores al entrenamiento, como AWQ y la cuantificación de transformadores generativos preentrenados (GPTQ), ayudan a sortear estas limitaciones y hacer que los modelos de última generación se puedan implementar a escala.
Pesos y activación: una inmersión profunda
En las redes neuronales, los pesos son los parámetros estáticos aprendidos guardados en el modelo (piense en ellos como los coeficientes fijos que dan forma a cómo se combinan las entradas), mientras que las activaciones son los valores dinámicos producidos en cada capa cuando ejecuta datos a través de la red, que representan la respuesta de cada neurona a sus entradas. La figura anterior ilustra pesos y activaciones en un flujo de modelo. Captamos sus respectivas precisiones con la abreviatura WₓAᵧ, donde Wₓ es el ancho de bits para pesos (por ejemplo, 4 u 8 bits) y Aᵧ es el ancho de bits para activaciones (por ejemplo, 8 bits o 16 bits). Por ejemplo, W4A16 significa que los pesos se almacenan como números enteros de 4 bits (a menudo con escalado por canal, simétrico o asimétrico) mientras que las activaciones permanecen en punto flotante de 16 bits. Esta notación le indica qué partes del modelo están comprimidas y en qué medida, lo que le ayuda a equilibrar el uso de la memoria, la velocidad de cálculo y la precisión.
W4A16 (o W4A16_simétrico)
W4A16 se refiere a una precisión de 4 bits para pesos y de 16 bits para activaciones, utilizando una cuantificación simétrica para pesos. La cuantización simétrica significa que el rango del cuantificador está centrado alrededor de cero (el mínimo y el máximo absolutos de la distribución de peso se establecen para que sean iguales en magnitud). El uso de pesos enteros de 4 bits produce una reducción de 8 veces en el peso de la memoria en comparación con FP32 (o 4 veces en comparación con FP16), lo cual es muy atractivo para la implementación. Sin embargo, con sólo 16 niveles de cuantificación (-8 a +7 para un entero con signo de 4 bits, en un esquema simétrico), el modelo es propenso a errores de cuantificación. Si la distribución de pesos no está perfectamente centrada en cero (por ejemplo, si los pesos tienen un ligero sesgo o algunos valores atípicos grandes), un cuantificador simétrico podría desperdiciar rango en un lado y no tener suficiente resolución donde se encuentra la mayor parte de los valores. Los estudios han descubierto que una cuantificación simétrica simple de 4 bits de los pesos LLM puede provocar una caída notable en la precisión y, en general, es inferior al uso de un esquema asimétrico con este ancho de bits bajo. El enfoque simétrico del W4A16 es principalmente una línea de base; sin técnicas adicionales (como el escalado de AWQ o la compensación de errores de GPTQ), la cuantificación de peso de 4 bits necesita un manejo cuidadoso para evitar una degradación grave.
W4A16_asimétrico
El uso de pesos de 4 bits con una cuantificación asimétrica mejora el caso simétrico al introducir un desplazamiento de punto cero. La cuantificación asimétrica asigna el peso mínimo al entero más bajo representable y el peso máximo al entero más alto, en lugar de forzar que el rango sea simétrico alrededor de cero. Esto permite que la pequeña báscula de 4 bits cubra de forma más eficaz el rango real de valores de peso. En la práctica, la cuantificación de peso de 4 bits con escalado asimétrico supera significativamente al enfoque simétrico en términos de precisión del modelo. Al utilizar mejor los 16 niveles del cuantificador (especialmente cuando la distribución de peso tiene una media distinta de cero o valores atípicos prominentes en un lado), el esquema asimétrico W4A16 puede reducir el error de cuantificación. Los métodos PTQ modernos para LLM de 4 bits casi siempre incorporan alguna forma de escalado asimétrico o por canal por este motivo. Por ejemplo, un enfoque es la cuantificación por grupos, donde cada grupo de ponderaciones (por ejemplo, cada canal de salida) obtiene su propio rango mínimo-máximo (efectivamente, una cuantificación asimétrica por grupo) que se ha identificado como un punto óptimo cuando se combina con ponderaciones de 4 bits. W4A16 con cuantificación asimétrica es la estrategia preferida para llevar los pesos a una precisión ultrabaja, porque produce una mejor perplejidad y retención de precisión que un mapeo simétrico de 4 bits.
W8A8
Esto denota la cuantificación completa tanto de los pesos como de las activaciones en números enteros de 8 bits. La cuantificación INT8 es una técnica PTQ bien entendida y ampliamente adoptada que generalmente genera una pérdida mínima de precisión en muchas redes, porque 256 niveles distintos (por rango de cuantificación) suelen ser suficientes para capturar la precisión necesaria. Para los LLM, la cuantificación de pesos a 8 bits es relativamente sencilla: las investigaciones han demostrado que reemplazar los pesos de 16 bits con INT8 a menudo causa un cambio insignificante en la perplejidad. Sin embargo, la cuantificación de activación a 8 bits es más desafiante para los transformadores debido a la presencia de valores atípicos: valores de activación ocasionales muy grandes en ciertas capas. Estos valores atípicos pueden obligar a un cuantificador a tener un rango extremadamente grande, haciendo que la mayoría de los valores utilicen solo una pequeña fracción de los niveles de 8 bits (lo que resulta en una pérdida de precisión). Para abordar esto, técnicas como SmoothQuant redistribuyen parte de la dificultad de cuantificación de activaciones a pesos, esencialmente reduciendo los canales de activación atípicos y aumentando los canales de peso correspondientes (una transformación matemáticamente equivalente) para que las activaciones tengan un rango más estrecho que se ajuste bien a 8 bits. Con tales calibraciones, los LLM se pueden cuantificar a W8A8 con muy poca caída en el rendimiento. El beneficio de W8A8 es que permite la inferencia de enteros de un extremo a otro (tanto los pesos como las activaciones son números enteros) que el hardware actual puede aprovechar para una multiplicación de matrices más rápida. Los modelos totalmente INT8 a menudo se ejecutan más rápido que los modelos de precisión mixta, porque pueden utilizar aritmética INT8 optimizada en todo momento.
W8A16
W8A16 utiliza cuantificación de 8 bits para pesos mientras mantiene las activaciones con una precisión de 16 bits (a menudo FP16). Puede verse como un escenario de cuantificación de sólo peso. Los ahorros de memoria al comprimir pesos a INT8 son significativos (una reducción de 2 veces en comparación con FP16 y 4 veces en comparación con FP32) y, como se señaló, los pesos INT8 generalmente no afectan la precisión en los LLM. Debido a que las activaciones mantienen una alta precisión, los resultados de cálculo del modelo son casi tan precisos como los originales; la principal fuente de error es el menor ruido de cuantificación en los pesos. Por lo tanto, la cuantización INT8 de solo peso es una opción muy segura que produce una reducción sustancial de la memoria sin casi ninguna pérdida de calidad del modelo.
Muchas implementaciones prácticas comienzan con INT8 PTQ de solo peso como base. Este enfoque es especialmente útil cuando desea reducir el tamaño del modelo para que quepa en un dispositivo dentro de un presupuesto de memoria determinado sin realizar una calibración compleja para las activaciones. En términos de velocidad, el uso de pesos INT8 reduce los requisitos de ancho de banda de la memoria (lo que beneficia los escenarios de inferencia vinculados a la memoria) y puede mejorar ligeramente el rendimiento; sin embargo, las activaciones siguen siendo de 16 bits y es posible que las unidades de cómputo no utilicen completamente las matemáticas de enteros para la acumulación. Si el hardware convierte los pesos INT8 a 16 bits sobre la marcha para multiplicarlos por las activaciones FP16, la ganancia de velocidad podría verse limitada por esa conversión. Para cargas de trabajo vinculadas a la memoria (comunes con LLM en tamaños de lotes pequeños), los pesos INT8 proporcionan una aceleración notable porque el cuello de botella a menudo es obtener pesos de la memoria. Para escenarios vinculados a la computación (como un rendimiento de lotes muy grande), la cuantificación de solo peso por sí sola produce menos beneficios; en esos casos, podría cuantificar las activaciones (pasando a W8A8) para utilizar completamente la rápida multiplicación de matrices INT8×INT8. En resumen, W8A16 es un esquema de cuantificación sencillo de implementar que reduce drásticamente el tamaño del modelo con un riesgo mínimo, mientras que W8A8 es el siguiente paso para maximizar la velocidad de inferencia a costa de un proceso de calibración más complicado.
Resumen
La siguiente tabla proporciona una descripción general de alto nivel del paradigma WₓAᵧ.
Técnica Formato de peso Formato de activación Propósito principal y caso de uso en el mundo real W4A16 Enteros simétricos de 4 bits con signo (por tensor, centrado en cero) FP16
Investigación de referencia y creación de prototipos.
Manera rápida de probar la precisión del peso ultrabajo; ayuda a evaluar si la cuantificación de 4 bits es factible antes de pasar a esquemas más optimizados.
W4A16 Enteros asimétricos de 4 bits con signo (mínimo y máximo por canal) FP16
Inferencia restringida por la memoria.
Ideal cuando se debe comprimir un modelo grande en una memoria de dispositivo muy reducida y al mismo tiempo tolerar una sobrecarga de calibración menor.
W8A8 Enteros de 8 bits con signo (por tensor o por canal) INT8 Implementación de alto rendimiento sensible a la latencia. Utiliza canalizaciones INT8 completas en GPU, CPU o NPU modernas para obtener la máxima velocidad en inferencia por lotes o en tiempo real. W8A16 Enteros con signo de 8 bits (por tensor) FP16
Fácil compresión solo con peso.
Reduce el tamaño del modelo a la mitad con una pérdida de precisión insignificante; Excelente primer paso en GPU o servidores cuando prioriza el ahorro de memoria sobre la velocidad máxima de procesamiento.
Aceleración de la inferencia mediante técnicas PTQ
Como se describió anteriormente, los LLM con un alto número de parámetros consumen muchos recursos en la inferencia. En las siguientes secciones, exploramos cómo PTQ reduce estos requisitos, permitiendo una inferencia más rentable y eficaz. Por ejemplo, un modelo de parámetros Llama 3 70B con precisión FP16 no cabe en una sola GPU A100 de 80 GB y requiere al menos dos GPU A100 de 80 GB para una inferencia razonable a escala, lo que hace que la implementación sea costosa y poco práctica para muchos casos de uso. Para abordar este desafío, PTQ convierte los pesos (y a veces las activaciones) de un modelo entrenado de flotantes de alta precisión (por ejemplo, 16 o 32 bits) a enteros de bits inferiores (por ejemplo, 8 o 4 bits) después del entrenamiento. Esta compresión puede reducir el tamaño del modelo entre 2 y 8 veces, lo que permite que el modelo quepa en la memoria y reduce las demandas de ancho de banda de la memoria, lo que a su vez puede acelerar la inferencia.
Fundamentalmente, PTQ no requiere capacitación adicional, a diferencia del entrenamiento consciente de la cuantificación (QAT), que incorpora la cuantificación en el proceso de ajuste. PTQ evita el costo prohibitivo de reentrenamiento asociado con los modelos de mil millones de parámetros. El desafío es cuantificar el modelo cuidadosamente para minimizar cualquier caída en la precisión o aumento de la perplejidad. Las técnicas modernas de PTQ se esfuerzan por conservar el rendimiento del modelo y al mismo tiempo mejorar drásticamente la eficiencia de la implementación.
Algoritmos de cuantificación post-entrenamiento
Cuantificar un modelo completo directamente con una precisión de 4 u 8 bits puede parecer sencillo, pero hacerlo de manera ingenua a menudo resulta en una degradación sustancial de la precisión, particularmente en configuraciones de bits más bajos. Para superar esto, se han desarrollado algoritmos PTQ especializados que comprimen de forma inteligente los parámetros del modelo preservando la fidelidad. En esta publicación, nos centramos en dos técnicas PTQ ampliamente adoptadas y bien investigadas, cada una de las cuales adopta un enfoque distinto para la compresión de alta precisión:
Cuantización de pesos con reconocimiento de activación (AWQ) Cuantización de transformadores generativos preentrenados (GPTQ)
Cuantización de pesos conscientes de la activación
AWQ es una técnica PTQ que apunta a la cuantificación de solo peso en anchos de bits muy bajos (generalmente 4 bits) mientras mantiene las activaciones con mayor precisión, como FP16. El concepto central es que no todos los pesos contribuyen por igual al resultado de un modelo; un pequeño subconjunto de pesos destacados influye desproporcionadamente en las predicciones. Al identificar y preservar aproximadamente el 1 % de estos canales de peso críticos (aquellos asociados con los valores de activación más grandes), AWQ puede cerrar drásticamente la brecha entre los modelos cuantificados de 4 bits y sus contrapartes originales FP16 en términos de perplejidad. A diferencia de los métodos tradicionales que clasifican la importancia basándose únicamente en la magnitud del peso, AWQ utiliza distribuciones de activación para encontrar qué pesos realmente importan. Los primeros resultados mostraron que dejar el 1% superior de canales con mayor precisión era suficiente para mantener el rendimiento, pero esto introduce ineficiencias de hardware debido a la ejecución de precisión mixta. Para solucionar esto, AWQ introduce una elegante solución de escalado por canal.
Durante la cuantificación, AWQ amplifica los pesos de los canales salientes de activación para reducir el error de cuantificación relativo e incorpora la escala inversa al modelo, por lo que no es necesario un cambio de escala explícito durante la inferencia. Este ajuste elimina la sobrecarga del cálculo de precisión mixta y al mismo tiempo mantiene la inferencia puramente de bits bajos. Es importante destacar que AWQ logra esto sin necesidad de volver a capacitarse: utiliza un pequeño conjunto de datos de calibración para estimar las estadísticas de activación y derivar analíticamente factores de escala. El método evita el sobreajuste de los datos de calibración, lo que garantiza una fuerte generalización entre tareas. En la práctica, AWQ ofrece un rendimiento cercano al FP16 incluso con una precisión de 4 bits, mostrando una degradación mucho menor que los métodos tradicionales posteriores al entrenamiento como RTN (redondeo al más cercano). Si bien todavía hay un aumento marginal en la perplejidad en comparación con los modelos de precisión total, la compensación es a menudo insignificante dada la reducción de 3 a 4 veces en la huella de memoria y el ancho de banda. Esta eficiencia permite la implementación de modelos muy grandes (hasta 70 mil millones de parámetros) en una única GPU de alta gama, como una A100 o H100. En resumen, AWQ demuestra que con un escalado cuidadoso y consciente de la activación, la precisión se puede enfocar donde más importa, logrando una cuantificación de bits bajos con un impacto mínimo en la calidad del modelo.
Cuantización de transformadores generativos preentrenados (GPTQ)
GPTQ es otro método PTQ que adopta un enfoque basado en compensación de errores para comprimir modelos de lenguaje grandes. GPTQ opera capa por capa, con el objetivo de preservar la salida de cada capa lo más cerca posible de la del modelo original de total precisión. Sigue una estrategia de cuantificación secuencial y codiciosa: en cada paso, se cuantifica una sola ponderación o un pequeño grupo de ponderaciones, mientras que las ponderaciones restantes no cuantificadas se ajustan para compensar el error introducido. Esto mantiene la salida de cada capa estrechamente alineada con el original. El proceso se basa en estadísticas aproximadas de segundo orden, específicamente una aproximación de la matriz de Hesse, que estima qué tan sensible es la producción a los cambios en cada peso. Este procedimiento de optimización a veces se denomina cuantificación cerebral óptima, donde GPTQ cuantifica cuidadosamente los pesos en un orden que minimiza el error de salida acumulativo.
A pesar de su sofisticación, GPTQ sigue siendo un método de PTQ de un solo uso: no requiere reentrenamiento ni ajustes iterativos. Utiliza un pequeño conjunto de datos de calibración para ejecutar pases hacia adelante, recopilar estadísticas de activación y estimar hessianos, pero evita cualquier actualización de peso más allá de la lógica de compensación codiciosa. El resultado es una técnica de compresión impresionantemente eficiente: GPTQ puede cuantificar modelos a 3 o 4 bits por peso con una pérdida de precisión mínima, incluso para modelos masivos. Por ejemplo, el método demostró la compresión de un modelo GPT de 175 mil millones de parámetros a 3 a 4 bits en menos de 4 horas de GPU, con un aumento insignificante de la perplejidad, lo que permitió la inferencia de una sola GPU por primera vez a esta escala. Si bien GPTQ ofrece una alta precisión, su dependencia de los datos de calibración ha llevado a algunos investigadores a notar leves efectos de sobreajuste, especialmente para entradas fuera de distribución. Aún así, GPTQ se ha convertido en una base de referencia en la cuantificación de LLM debido a su fuerte equilibrio entre fidelidad y eficiencia, ayudado por optimizaciones matemáticas como las rápidas actualizaciones de Hesse basadas en Cholesky que lo hacen práctico incluso para modelos con decenas o cientos de miles de millones de parámetros.
Uso de Amazon SageMaker AI para optimización de inferencias y cuantificación de modelos
En esta sección, cubrimos cómo implementar la cuantificación utilizando Amazon SageMaker AI. Analizamos una base de código que puede utilizar para cuantificar rápidamente un modelo utilizando el método GPTQ o AWQ en trabajos de entrenamiento de SageMaker respaldados por una o más instancias de GPU. El código utiliza el paquete vllm-project/llm-compressor de código abierto para cuantificar pesos LLM densos desde FP32 a INT4.
Todo el código para este proceso está disponible en el repositorio de GitHub de amazon-sagemaker-generativeai. El proyecto llm-compressor proporciona una biblioteca optimizada para la optimización de modelos. Admite múltiples algoritmos (GPTQ, AWQ y SmoothQuant) para convertir modelos de precisión total o media a formatos de menor precisión. La cuantificación se lleva a cabo en tres pasos, que se describen en las siguientes secciones. La implementación completa está disponible en post_training_sagemaker_quantizer.py, con argumentos proporcionados para una ejecución sencilla.
Paso 1: cargar el modelo utilizando transformadores HuggingFace
Cargue los pesos del modelo sin conectarlos a un acelerador. La biblioteca llm-compressor detecta automáticamente el hardware disponible y descarga pesos al acelerador según sea necesario. Debido a que realiza la cuantificación capa por capa, no es necesario que todo el modelo quepa en la memoria del acelerador a la vez.
Paso 2: seleccione y cargue el conjunto de datos de calibración
Durante el PTQ se utiliza un conjunto de datos de calibración para estimar rangos de activación y distribuciones estadísticas en un LLM previamente entrenado sin reentrenamiento. Herramientas como llm-compressor utilizan este conjunto de datos pequeño y representativo para realizar pases hacia adelante y recopilar estadísticas como valores o percentiles mínimos y máximos. Estas estadísticas guían la cuantificación de pesos y activaciones para reducir la precisión y al mismo tiempo preservar la exactitud del modelo. Puede utilizar cualquier conjunto de datos tokenizados que refleje la distribución de entrada esperada del modelo para la calibración.
Paso 3: ejecute PTQ en el modelo candidato
El método oneshot en llm-compressor realiza un PTQ de una sola pasada (sin reentrenamiento iterativo) utilizando una receta específica, aplicando tanto la cuantificación de peso como la activación (y opcionalmente la escasez) en una sola pasada.
num_calibration_samples define cuántas secuencias de entrada (por ejemplo, 512) se utilizan para simular el comportamiento del modelo, recopilando las estadísticas de activación necesarias para calibrar rangos de cuantificación. max_seq_length establece la longitud máxima del token (por ejemplo, 2048) para esas muestras de calibración, de modo que las activaciones reflejen el contexto de secuencia en el peor de los casos, lo que garantiza que la cuantificación siga siendo precisa en todas las longitudes de entrada.
Juntos, estos hiperparámetros controlan la representatividad y cobertura de la calibración, lo que afecta directamente la fidelidad de la cuantificación.
Las clases modificadoras (GPTQModifier, AWQModifier) aceptan un parámetro de esquema que define el ancho de bits tanto para los pesos como para las activaciones. A través de este parámetro, puede especificar formatos como W8A8 (ponderaciones y activaciones de 8 bits) o W4A16 (ponderaciones de 4 bits con activaciones de 16 bits), lo que le brinda un control detallado sobre las compensaciones de precisión en las capas del modelo.
Patrón de arquitectura para cuantificación en Amazon SageMaker AI
Todo el flujo de trabajo, que se muestra en la siguiente figura, se implementa en el script post_training_sagemaker_quantizer.py y se puede ejecutar como un trabajo de entrenamiento de SageMaker en una instancia con soporte de GPU NVIDIA (como ml.g5.2xlarge) para una cuantificación acelerada.
Este proceso no implica entrenar ni ajustar el modelo. El trabajo de entrenamiento se utiliza únicamente para ejecutar PTQ con aceleración de GPU.
Después de cuantificar un modelo, se guardará en Amazon Simple Storage Service (Amazon S3) directamente como resultado del trabajo de capacitación de SageMaker. Descomprimiremos el modelo y lo alojaremos como un punto final de SageMaker en tiempo real mediante un contenedor de inferencia de modelos grandes (LMI) de IA de Amazon SageMaker, con tecnología de vLLM. Para encontrar las imágenes más recientes, consulte la Política de compatibilidad del marco de aprendizaje profundo de AWS para contenedores LMI (consulte la sección SageMaker).
Ahora tiene un punto final de SageMaker en tiempo real que atiende su modelo cuantificado y está listo para la inferencia. Puede consultarlo utilizando SageMaker Python SDK o litellm, según sus necesidades de integración.
Rendimiento del modelo
Usaremos una instancia ml.g5.2xlarge para los modelos Llama-3.1-8B y Qwen-2.5-VL-7B y una instancia ml.p4d.24xlarge para el modelo Llama-3.1-70B y un contenedor LMI v15 con backend vLLM como marco de servicio.
El siguiente es un fragmento de código de la configuración de implementación:
El objetivo principal de esta evaluación de rendimiento es mostrar el rendimiento relativo de las versiones del modelo en diferentes hardware. Las combinaciones no están completamente optimizadas y no deben considerarse como un rendimiento máximo del modelo en un tipo de instancia. Asegúrese siempre de realizar pruebas utilizando sus datos, tráfico y longitud de secuencia de E/S. El siguiente es un script de referencia de rendimiento:
Métricas de rendimiento
Para comprender el impacto de las técnicas de optimización de PTQ, nos centramos en cinco métricas clave de rendimiento de inferencia, cada una de las cuales ofrece una perspectiva diferente sobre la eficiencia del sistema y la experiencia del usuario:
Utilización de la memoria de la GPU: indica la proporción de la memoria total de la GPU utilizada activamente durante la inferencia. Una mayor utilización de la memoria sugiere que se cargan más datos de modelo o de entrada en la memoria de la GPU, lo que puede mejorar el rendimiento, pero el uso excesivo puede provocar cuellos de botella en la memoria o errores de falta de memoria. Latencia de un extremo a otro: mide el tiempo total transcurrido desde el envío de la entrada hasta la salida final. Esto es fundamental para aplicaciones donde la capacidad de respuesta es clave, como sistemas en tiempo real o interfaces orientadas al usuario. Tiempo hasta el primer token (TTFT): captura el retraso entre el envío de entrada y la generación del primer token. Un TTFT más bajo es especialmente importante para cargas de trabajo interactivas o de streaming, donde la capacidad de respuesta percibida importa más que la latencia total. Latencia entre tokens (ITL): realiza un seguimiento del tiempo promedio entre salidas de tokens sucesivas. Un ITL más bajo da como resultado respuestas más fluidas y que parecen más rápidas, particularmente en la generación de textos largos. Rendimiento: mide la cantidad de tokens generados por segundo en todas las solicitudes simultáneas. Un mayor rendimiento indica una mejor eficiencia y escalabilidad del sistema, lo que permite un procesamiento más rápido de grandes cargas de trabajo o más sesiones de usuario simultáneas.
En conjunto, estas métricas brindan una visión holística del comportamiento de inferencia, equilibrando la eficiencia bruta con la usabilidad en el mundo real. En las siguientes secciones de esta publicación, evaluamos tres modelos candidatos, cada uno de los cuales varía en tamaño y arquitectura, para validar las métricas de rendimiento de inferencia después de la cuantificación utilizando algoritmos AWQ y GPTQ en diferentes estrategias WₓAᵧ. Los modelos seleccionados incluyen:
Llama-3.1-8B-Instruct: un modelo de transformador denso solo decodificador de 8 mil millones de parámetros optimizado para seguir instrucciones. Publicado por Meta, pertenece a la familia LLaMA (Large Language Model Meta AI) y es muy adecuado para tareas de procesamiento del lenguaje natural (NLP) de propósito general. Llama-3.3-70B-Instruct: un modelo de 70 mil millones de parámetros también de la serie LLaMA de Meta, esta variante más grande ofrece capacidades de razonamiento y base factual significativamente mejoradas, lo que lo hace ideal para casos de uso empresarial de alto rendimiento. Qwen2.5-VL-7B-Instruct: Un modelo de lenguaje-visión de 7 mil millones de parámetros desarrollado por el Instituto de Computación Inteligente de Alibaba. Admite entradas de texto e imágenes y combina una columna vertebral de texto basada en transformador con un codificador visual, lo que lo hace adecuado para aplicaciones multimodales.
Tenga en cuenta que cada modelo se probó en un tipo de instancia diferente: Llama-3.1-8B en ml.g5.2xlarge, Llama-3.3-70B en ml.p4dn.24xlarge y Qwen2.5-VL-7B en ml.g6e.4xlarge.
Utilización de la memoria de la GPU
La utilización de la memoria de la GPU refleja cuánta memoria del dispositivo se consume durante la ejecución del modelo e impacta directamente la capacidad de implementación, el tamaño del lote y la selección de hardware. Un menor uso de memoria permite ejecutar modelos más grandes en GPU más pequeñas o atender más solicitudes simultáneas en el mismo hardware. La cuantificación mejora la eficiencia informática y reduce significativamente la huella de memoria de los LLM. Al convertir pesos de alta precisión (por ejemplo, FP16 o FP32) en formatos de bits más bajos, como INT8 o FP8, las estrategias AWQ y GPTQ permiten que los modelos consuman sustancialmente menos memoria de GPU durante la inferencia. Esto es fundamental para implementar modelos grandes en hardware con memoria limitada o aumentar el tamaño de los lotes para lograr un mayor rendimiento. En la siguiente tabla y gráfico, enumeramos y visualizamos la utilización de la memoria de la GPU (en GB) en los modelos bajo múltiples configuraciones de cuantificación. La reducción porcentual se compara con el tamaño del modelo base (no cuantificado), destacando los ahorros de memoria logrados con cada estrategia WₓAᵧ, que oscila entre ~30% y 70% menos de utilización de memoria de GPU después de PTQ.
Nombre del modelo Raw (GB) AWQ GPTQ W4A16_ASYM W4A16 W4A16 W8A8 W4A16_ASYM W8A16 (GB en memoria y % de disminución desde raw) Llama-3.1-8B-Instruct (SLM) 17,9 7,9 GB – 56,02 % 7,8 GB – 56,13 % 7,8 GB – 56,13 % 11,3 GB – 37,05% 7,9 GB – 56,02% 11,3 GB – 37,05% Llama-3.3-70B-Instruct (LLM) 142,9 41,7 GB – 70,82% 41,4 GB – 71,03% 41,4 GB – 71,03 % 74,7 GB – 47,76% 41,7 GB – 70,82% 74,7 GB – 47,76% Qwen2.5-VL-7B-Instruct (VLM) 18,5 9,1 GB – 50,94% 9,0 GB – 51,26% 9,0 GB – 51,26% 12,0 GB – 34,98% 9,1 GB – 50,94 % 12,0 GB – 34,98 %
La siguiente figura ilustra la huella de memoria de la GPU (en GB) del modelo en su forma sin procesar (no cuantificada) en comparación con sus variantes cuantificadas. La cuantificación da como resultado una reducción de entre un 30% y un 70% en el consumo de memoria de la GPU, lo que reduce significativamente el uso de memoria general.
Latencia de extremo a extremo
La latencia de un extremo a otro mide el tiempo total transcurrido desde el momento en que se recibe un mensaje hasta la entrega del token de salida final. Es una métrica crítica para evaluar la capacidad de respuesta percibida por el usuario y el rendimiento general del sistema, especialmente en aplicaciones interactivas o en tiempo real.
En la siguiente tabla, informamos la latencia de un extremo a otro en segundos en distintos niveles de simultaneidad (C=1 a C=128) para tres modelos de distintos tamaños y modalidades (Llama-3.1-8B, Llama-3.3-70B y Qwen2.5-VL-7B) bajo diferentes estrategias de cuantificación.
Nombre del modelo C=1 C=8 C=16 C=32 C=64 C=128 Llama-3.1-8B 8.65 10.68 12.19 14.76 28.31 56.67 Llama-3.1-8B-AWQ-W4A16_ASYM 3.33 4.67 5.41 8.1 18.29 35.83 Llama-3.1-8B-AWQ-W4A16 3.34 4.67 5.37 8.02 18.05 35.32 Llama-3.1-8B-GPTQ-W4A16 3.53 4.65 5.35 8 18.07 35.35 Llama-3.1-8B-GPTQ-W4A16_ASYM 3.36 4.69 5.41 8.09 18.28 35.69 Llama-3.1-8B-GPTQ-W8A8 5.47 6.65 7.37 10.17 19.73 38.83 Llama-3.1-8B-GPTQ-W8A16 5.03 6.36 7.15 10.88 20.83 40.76 Llama-3.3-70B 4.56 5.59 6.22 7.26 13.94 27.67 Llama-3.3-70B-AWQ-W4A16_ASYM 3,95 4,13 4,44 5,44 10,79 20,85 Llama-3.3-70B-AWQ-W4A16 3,76 3,47 4,05 4,83 9,84 19,23 Llama-3.3-70B-GPTQ-W4A16 3,51 3,43 4,09 5,72 10,69 21,59 Llama-3.3-70B-GPTQ-W4A16_ASYM 3,6 4,12 4,51 5,71 11,36 21,8 Llama-3.3-70B-GPTQ-W8A8 3,85 4,31 4,88 5,61 10,95 21.29 Llama-3.3-70B-GPTQ-W8A16 4.31 4.48 4.61 5.8 11.11 21.86 Qwen2.5-VL-7B-Instruct (VLM) 5.28 5.89 6.12 7.56 8.77 13.17 Qwen2.5-VL-7B-AWQ-W4A16_ASYM 2,14 2,56 2,77 3,39 5,13 9,22 Qwen2.5-VL-7B-AWQ-W4A16 2,12 2,56 2,71 3,48 4,9 8,94 Qwen2.5-VL-7B-GPTQ-W4A16 2,13 2,54 2,75 3,59 5,11 9,66 Qwen2.5-VL-7B-GPTQ-W4A16_ASYM 2,14 2,56 2,83 3,52 5,09 9,51 Qwen2.5-VL-7B-GPTQ-W8A8 3,62 4,02 4,19 4,75 5,91 9,71 Qwen2.5-VL-7B-GPTQ-W8A16 3,38 3,85 4,04 4,7 6,12 10,93
Los siguientes gráficos muestran la latencia de un extremo a otro para diferentes niveles de simultaneidad para diferentes modelos.
La figura anterior presenta la latencia de extremo a extremo del modelo Llama 3-8B en su forma sin procesar (no cuantificada) y sus variantes cuantificadas en niveles de concurrencia que van del 1 al 128 en la misma instancia.
La figura anterior presenta la latencia de extremo a extremo del modelo Qwen 2.7-7B en su forma sin procesar (no cuantificada) y sus variantes cuantificadas en niveles de concurrencia que van del 1 al 128 en la misma instancia.
La figura anterior presenta la latencia de extremo a extremo del modelo Llama 3-70B en su forma sin procesar (no cuantificada) y sus variantes cuantificadas en niveles de concurrencia que van del 1 al 128 en la misma instancia.
Tiempo hasta el primer token
TTFT mide el retraso entre el envío rápido y la generación del primer token. Esta métrica juega un papel crucial en la configuración de la capacidad de respuesta percibida, especialmente en aplicaciones interactivas, de transmisión o basadas en chat donde el tiempo de retroalimentación inicial es crítico. En la siguiente tabla, comparamos TTFT en segundos para tres modelos de diferentes tamaños y modalidades (Llama-3.1-8B, Llama-3.3-70B y Qwen2.5-VL-7B) bajo diferentes estrategias de cuantificación. A medida que aumenta la concurrencia (de C=1 a C=128), los resultados resaltan cómo las técnicas de cuantificación como AWQ y GPTQ ayudan a mantener una latencia de inicio baja, lo que garantiza una experiencia más fluida y rápida incluso con una carga elevada.
Nombre del modelo C=1 C=8 C=16 C=32 C=64 C=128 Llama-3.1-8B 0,27 1,44 6,51 11,37 24,96 53,38 Llama-3.1-8B-AWQ-W4A16_ASYM 0,17 0,62 3 6,21 16,17 33,74 Llama-3.1-8B-AWQ-W4A16 0.18 0.62 2.99 6.15 15.96 33.26 Llama-3.1-8B-GPTQ-W4A16 0.37 0.63 2.94 6.14 15.97 33.29 Llama-3.1-8B-GPTQ-W4A16_ASYM 0.19 0.63 3 6.21 16.16 33.6 Llama-3.1-8B-GPTQ-W8A8 0.17 0.86 4.09 7.86 17.44 36.57 Llama-3.1-8B-GPTQ-W8A16 0,21 0,9 3,97 8,42 18,44 38,39 Llama-3.3-70B 0,16 0,19 0,19 0,21 6,87 20,52 Llama-3.3-70B-AWQ-W4A16_ASYM 0,17 0,18 0,16 0,21 5,34 15,46 Llama-3.3-70B-AWQ-W4A16 0,15 0,17 0,16 0,2 4,88 14,28 Llama-3.3-70B-GPTQ-W4A16 0,15 0,17 0,15 0,2 5,28 16,01 Llama-3.3-70B-GPTQ-W4A16_ASYM 0.16 0.17 0.17 0.2 5.61 16.17 Llama-3.3-70B-GPTQ-W8A8 0.14 0.15 0.15 0.18 5.37 15.8 Llama-3.3-70B-GPTQ-W8A16 0.1 0.17 0.15 0.19 5.47 16.22 Qwen2.5-VL-7B-Instruct (VLM) 0.042 0.056 0.058 0.081 0.074 0.122 Qwen2.5-VL-7B-AWQ-W4A16_ASYM 0,03 0,046 0,038 0,042 0,053 0,08 Qwen2.5-VL-7B-AWQ-W4A16 0,037 0,046 0,037 0,043 0,052 0,08 Qwen2.5-VL-7B-GPTQ-W4A16 0,037 0,047 0,036 0,043 0,053 0,08 Qwen2.5-VL-7B-GPTQ-W4A16_ASYM 0,038 0,048 0,038 0,042 0,053 0,082 Qwen2.5-VL-7B-GPTQ-W8A8 0,035 0,041 0,042 0,046 0,055 0,081 Qwen2.5-VL-7B-GPTQ-W8A16 0,042 0,048 0,046 0,052 0,062 0,093
Latencia entre tokens
ITL mide el retraso de tiempo promedio entre la generación de tokens sucesivos. Afecta directamente la fluidez y la velocidad de las salidas transmitidas, lo que es especialmente importante en aplicaciones que implican generación de texto de formato largo o síntesis de voz, donde los retrasos entre palabras u oraciones pueden degradar la experiencia del usuario. En la siguiente tabla, analizamos ITL en segundos en tres modelos de diferentes tamaños y modalidades (Llama-3.1-8B, Llama-3.3-70B y Qwen2.5-VL-7B) bajo diferentes esquemas de cuantificación. A medida que aumenta la concurrencia, los resultados ilustran cómo las estrategias de cuantificación como AWQ y GPTQ ayudan a mantener una latencia baja por token, lo que garantiza la generación de fluido incluso bajo cargas paralelas elevadas.
Nombre del modelo C=1 C=8 C=16 C=32 C=64 C=128 Llama-3.1-8B 0.035 0.041 0.047 0.057 0.111 0.223 Llama-3.1-8B-AWQ-W4A16_ASYM 0.013 0.018 0.021 0.031 0.072 0.141 Llama-3.1-8B-AWQ-W4A16 0.013 0.018 0.02 0.031 0.071 0.139 Llama-3.1-8B-GPTQ-W4A16 0.014 0.018 0.02 0.031 0.071 0.139 Llama-3.1-8B-GPTQ-W4A16_ASYM 0.013 0.018 0.021 0.031 0.072 0.14 Llama-3.1-8B-GPTQ-W8A8 0.02 0.026 0.028 0.039 0.077 0.153 Llama-3.1-8B-GPTQ-W8A16 0.02 0.024 0.027 0.042 0.081 0.16 Llama-3.3-70B 0.019 0.024 0.025 0.03 0.065 0.12 Llama-3.3-70B-AWQ-W4A16_ASYM 0.018 0.021 0.021 0.029 0.076 0.163 Llama-3.3-70B-AWQ-W4A16 0.017 0.021 0.022 0.029 0.081 0.201 Llama-3.3-70B-GPTQ-W4A16 0.014 0.018 0.019 0.028 0.068 0.152 Llama-3.3-70B-GPTQ-W4A16_ASYM 0.017 0.02 0.021 0.028 0.067 0.159 Llama-3.3-70B-GPTQ-W8A8 0.016 0.02 0,022 0,026 0,058 0,131 Llama-3.3-70B-GPTQ-W8A16 0,017 0,02 0,021 0,025 0,056 0,122 Qwen2.5-VL-7B-Instruct (VLM) 0,021 0,023 0,023 0,029 0,034 0,051 Qwen2.5-VL-7B-AWQ-W4A16_ASYM 0,008 0,01 0,01 0,013 0,02 0,038 Qwen2.5-VL-7B-AWQ-W4A16 0,008 0,01 0,01 0,014 0,02 0,038 Qwen2.5-VL-7B-GPTQ-W4A16 0,008 0,01 0,01 0,013 0,02 0,038 Qwen2.5-VL-7B-GPTQ-W4A16_ASYM 0,008 0,01 0,011 0,014 0,02 0,038 Qwen2.5-VL-7B-GPTQ-W8A8 0,014 0,015 0,016 0,018 0,023 0,039 Qwen2.5-VL-7B-GPTQ-W8A16 0,013 0,015 0,015 0,018 0,024 0,044
Rendimiento
El rendimiento mide la cantidad de tokens generados por segundo y es un indicador clave de la eficiencia con la que un modelo puede escalar bajo carga. Un mayor rendimiento permite directamente un procesamiento por lotes más rápido y admite más sesiones de usuarios simultáneas. En la siguiente tabla, presentamos resultados de rendimiento para Llama-3.1-8B, Llama-3.3-70B y Qwen2.5-VL-7B en distintos niveles de concurrencia y estrategias de cuantificación. Los modelos cuantificados mantienen (y en muchos casos mejoran) el rendimiento, gracias a la reducción del ancho de banda de la memoria y los requisitos informáticos. El ahorro sustancial de memoria gracias a la cuantificación permite implementar varios trabajadores de modelos en una sola GPU, particularmente en instancias con mucha memoria. Esta configuración de múltiples trabajadores amplifica aún más el rendimiento total del sistema en niveles de concurrencia más altos, lo que hace que la cuantificación sea una estrategia altamente efectiva para maximizar la utilización en entornos de producción.
Nombre del modelo C=1 C=8 C=16 C=32 C=64 C=128 Llama-3.1-8B 33.09 27.41 24.37 20.05 10.71 5.53 Llama-3.1-8B-AWQ-W4A16_ASYM 85.03 62.14 55.25 37.27 16,44 9,06 Llama-3.1-8B-AWQ-W4A16 83,21 61,86 55,31 37,69 16,59 9,19 Llama-3.1-8B-GPTQ-W4A16 80,77 62,19 55,93 37,53 16,48 9,12 Llama-3.1-8B-GPTQ-W4A16_ASYM 81.85 61.75 54.74 37.32 16.4 9.13 Llama-3.1-8B-GPTQ-W8A8 50.62 43.84 40.41 29.04 15.31 8.26 Llama-3.1-8B-GPTQ-W8A16 55.24 46.47 41.79 27.21 14.6 7.94 Llama-3.3-70B 57.93 47.89 44.73 38 20.05 10.95 Llama-3.3-70B-AWQ-W4A16_ASYM 60,24 53,54 51,79 39,3 20,47 11,52 Llama-3.3-70B-AWQ-W4A16 64 53,79 52,4 39,4 20,79 11,5 Llama-3.3-70B-GPTQ-W4A16 78,07 61,68 58,18 41,07 21,21 11,77 Llama-3.3-70B-GPTQ-W4A16_ASYM 66,34 56,47 54,3 40,64 21,37 11,76 Llama-3.3-70B-GPTQ-W8A8 66,79 55,67 51,73 44,63 23,7 12,85 Llama-3.3-70B-GPTQ-W8A16 67,11 57,11 55,06 45,26 24,18 13,08 Qwen2.5-VL-7B-Instruct (VLM) 56,75 51,44 49,61 40,08 34,21 23,03 Qwen2.5-VL-7B-AWQ-W4A16_ASYM 140,89 117,47 107,49 86,33 58,56 30,25 Qwen2.5-VL-7B-AWQ-W4A16 137,77 116,96 106,67 83,06 57,52 29,46 Qwen2.5-VL-7B-GPTQ-W4A16 138,46 117,14 107,25 85,38 58,19 30,19 Qwen2.5-VL-7B-GPTQ-W4A16_ASYM 139,38 117,32 104,22 82,19 58 29,64 Qwen2.5-VL-7B-GPTQ-W8A8 82,81 75,32 72,19 63,11 50,44 29,53 Qwen2.5-VL-7B-GPTQ-W8A16 88,69 78,88 74,55 64,83 48,92 26,55
Conclusión
Las técnicas de cuantificación posterior al entrenamiento (PTQ) como AWQ y GPTQ han demostrado ser soluciones efectivas para implementar modelos básicos en entornos de producción. Nuestras pruebas exhaustivas en diferentes tamaños de modelos y arquitecturas demuestran que PTQ reduce significativamente la utilización de la memoria de la GPU. Los beneficios son evidentes en todas las métricas clave, con modelos cuantificados que muestran un mejor rendimiento y una latencia reducida en el tiempo de inferencia, incluidos escenarios de alta concurrencia. Estas mejoras se traducen en costos de infraestructura reducidos, una experiencia de usuario mejorada a través de tiempos de respuesta más rápidos y la flexibilidad de implementar modelos más grandes en hardware con recursos limitados. A medida que los modelos de lenguaje continúan creciendo en escala y complejidad, PTQ ofrece un enfoque confiable para equilibrar los requisitos de rendimiento con las limitaciones de infraestructura, proporcionando un camino claro hacia una implementación de IA eficiente y rentable.
En esta publicación, demostramos cómo optimizar la cuantificación de LLM utilizando Amazon SageMaker AI y el módulo llm-compressor. El proceso de convertir un modelo de precisión total a su variante cuantificada requiere solo unos pocos pasos simples, lo que lo hace accesible y escalable para implementaciones de producción. Al utilizar la infraestructura administrada de Amazon SageMaker AI, las organizaciones pueden implementar y servir sin problemas modelos cuantificados para inferencia en tiempo real, simplificando el recorrido desde el desarrollo hasta la producción. Para explorar más a fondo estas técnicas de cuantificación, consulte nuestro repositorio de GitHub.
Un agradecimiento especial a todos los que contribuyeron a este artículo: Giuseppe Zappia, Dan Ferguson, Frank McQuillan y Kareem Syed-Mohammed.
Sobre los autores
Pranav Murthy es científico senior de datos de IA generativa en AWS y se especializa en ayudar a las organizaciones a innovar con IA generativa, aprendizaje profundo y aprendizaje automático en Amazon SageMaker AI. Durante los últimos 10 años, ha desarrollado y ampliado modelos avanzados de visión por computadora (CV) y procesamiento de lenguaje natural (NLP) para abordar problemas de alto impacto, desde la optimización de las cadenas de suministro globales hasta permitir el análisis de video en tiempo real y la búsqueda multilingüe. Cuando no está creando soluciones de IA, Pranav disfruta jugando juegos estratégicos como el ajedrez, viajando para descubrir nuevas culturas y asesorando a aspirantes a profesionales de la IA. Puedes encontrar a Pranav en LinkedIn
Dmitry Soldatkin es arquitecto senior de soluciones de IA/ML en Amazon Web Services (AWS), y ayuda a los clientes a diseñar y crear soluciones de IA/ML. El trabajo de Dmitry cubre una amplia gama de casos de uso de ML, con un interés principal en la IA generativa, el aprendizaje profundo y la ampliación del ML en toda la empresa. Ha ayudado a empresas de muchos sectores, incluidos seguros, servicios financieros, servicios públicos y telecomunicaciones. Puedes conectarte con Dmitry en LinkedIn.