Resumen
Los avances recientes en el aprendizaje profundo (DL) se han logrado al ampliar el número de parámetros de los modelos y los volúmenes de datos. El Transformer es la arquitectura más utilizada en el procesamiento del lenguaje natural (NLP), destacando su mecanismo de atención, que permite enfocar dinámicamente el contexto relevante. Esto ha posibilitado escalar modelos en NLP con hasta 405 mil millones de parámetros, equivalentes a 810 gigabytes (GB) de memoria en punto flotante de 16 bits (FP16), lo cual requiere múltiples nodos de cómputo acelerado. Esta arquitectura fue transferida a la visión por computadora como Vision Transformer (ViT), donde aumentar el número de parámetros también incrementa el poder predictivo. Versiones modificadas, como DeiT, Swin Transformer y DeiT3, superan limitaciones del ViT original, pero aún demandan grandes recursos computacionales y energía, lo cual es preocupante considerando que para 2040 el consumo energético superará la capacidad de producción global. Para afrontar este desafío, investigamos métodos de compresión en las arquitecturas ViT que reduzcan su tamaño y consumo energético, manteniendo un rendimiento predictivo similar al modelo de referencia. Evaluamos el impacto de la cuantización posterior al entrenamiento (PTQ) en ViT, DeiT, Swin y DeiT3, demostrando que ViT y DeiT3 pierden poder predictivo tras la cuantización, mientras que DeiT y Swin mantienen su desempeño. Para profundizar en el proceso, analizamos la relación señal-ruido de cuantización (SQNR) a lo largo de las capas, identificando una correlación directa entre los valores SQNR y los errores de cuantización. Proponemos un método de PTQ de precisión mixta, sencillo pero efectivo, que permite comprimir los modelos hasta un 90%, acercándose al tamaño de modelos cuantizados completamente sin perder rendimiento. Además, desarrollamos un método innovador, Cuantización Híbrida (HQ), aprovechando la naturaleza lineal de las ViTs. Diseñamos un algoritmo automático que selecciona capas lineales para cuantización estática o dinámica según el valor SQNR, mejorando el rendimiento respecto a la cuantización estática en ViT, DeiT, Swin y DeiT3 en el conjunto de validación ImageNet1K. Analizamos la latencia de los modelos HQ en hardware específico: CPU Intel Xeon, CPU móvil Apple A15 y GPU NVIDIA A100, logrando aceleraciones promedio de hasta 1,15x, 1,28x y 1,68x frente a la cuantización dinámica en ViT. Finalmente, implementamos un mecanismo de atención de precisión mixta en el lenguaje Triton, combinando cálculos INT8 y FP16 para mejorar el rendimiento y la estabilidad numérica frente a FlashAttention de referencia. Mostramos que el uso de Triton iguala el rendimiento de kernels altamente optimizados para GPU. Además, extendemos la cuantización de PyTorch con nuestra estructura abierta QAttn, que incluye kernels personalizados para multiplicación de matrices cuantizadas y atención de precisión mixta. Nuestros resultados demuestran mejoras de hasta 7,34x en el rendimiento del modelo ViT comparado con el modelo de referencia. La estructura QAttn también se aplica a modelos avanzados como Segment Anything Model (SAM), donde logramos procesar 5 veces más imágenes por segundo sin pérdida de precisión en mIoU en el conjunto COCO2017. En conclusión, esta tesis aborda el problema de la cuantización en modelos ViT, proponiendo métodos innovadores y eficientes que reducen memoria y latencia. La estructura QAttn, implementada en Triton e integrada con PyTorch, sienta las bases para futuras investigaciones en compresión de modelos ViT y su implementación eficiente.