Connect with us

EfficientViT: Vision Transformer de Memoria Eficiente para Visión por Computadora de Alta Resolución

Inteligencia artificial

EfficientViT: Vision Transformer de Memoria Eficiente para Visión por Computadora de Alta Resolución

mm

Debido a su alta capacidad de modelo, los modelos de Vision Transformer han disfrutado de un gran éxito en tiempos recientes. A pesar de su rendimiento, los modelos de vision transformer tienen un defecto importante: su notable capacidad de cálculo conlleva altos costos de cálculo, y es la razón por la que los vision transformers no son la primera opción para aplicaciones en tiempo real. Para abordar este problema, un grupo de desarrolladores lanzó EfficientViT, una familia de vision transformers de alta velocidad. 

Al trabajar en EfficientViT, los desarrolladores observaron que la velocidad de los modelos de transformer actuales a menudo está limitada por operaciones de memoria ineficientes, especialmente funciones elementales y reorganización de tensores en MHSA o Red de Atención Auto Multi-Cabeza. Para abordar estas operaciones de memoria ineficientes, los desarrolladores de EfficientViT han trabajado en un nuevo bloque de construcción utilizando un diseño de sandwich, es decir, el modelo EfficientViT utiliza una sola capa de Atención Auto Multi-Cabeza limitada por la memoria entre capas de red neuronal feed forward eficientes que ayuda a mejorar la eficiencia de la memoria, y también a mejorar la comunicación general del canal. Además, el modelo también descubre que los mapas de atención a menudo tienen similitudes altas en todo los cabezales lo que conduce a redundancia computacional. Para abordar el problema de redundancia, el modelo EfficientViT presenta un módulo de atención de grupo en cascada que alimenta los cabezales de atención con diferentes divisiones de la característica completa. El método no solo ayuda a ahorrar costos computacionales, sino que también mejora la diversidad de atención del modelo. 

Experimentos exhaustivos realizados en el modelo EfficientViT en diferentes escenarios indican que EfficientViT supera a los modelos eficientes existentes para visión por computadora mientras logra un buen equilibrio entre precisión y velocidad. Así que profundicemos un poco más y exploremos el modelo EfficientViT con un poco más de detalle. 

Introducción a Vision Transformers y EfficientViT

Los Vision Transformers siguen siendo uno de los marcos más populares en la industria de la visión por computadora porque ofrecen un rendimiento superior y capacidades computacionales altas. Sin embargo, con la precisión y el rendimiento constantemente mejorados de los modelos de vision transformer, los costos operativos y la sobrecarga computacional también aumentan. Por ejemplo, los modelos actuales conocidos por proporcionar un rendimiento de estado del arte en conjuntos de datos ImageNet como SwinV2 y V-MoE utilizan 3B y 14,7B parámetros, respectivamente. El tamaño enorme de estos modelos, combinado con los costos computacionales y los requisitos, los hace prácticamente inadecuados para dispositivos y aplicaciones en tiempo real. 

El modelo EfficientNet tiene como objetivo explorar cómo mejorar el rendimiento de los modelos de vision transformer, y encontrar los principios involucrados detrás del diseño de arquitecturas de marcos de transformer basados en eficiencia. El modelo EfficientViT se basa en marcos de vision transformer existentes como Swim y DeiT, y analiza tres factores esenciales que afectan las velocidades de interferencia de los modelos, incluyendo redundancia computacional, acceso a memoria y uso de parámetros. Además, el modelo observa que la velocidad de los modelos de vision transformer está limitada por la memoria, lo que significa que la utilización completa de la potencia de cálculo en CPUs/GPUs está prohibida o restringida por la demora en el acceso a la memoria, lo que resulta en un impacto negativo en la velocidad de ejecución de los transformadores. Las funciones elementales y la reorganización de tensores en MHSA o Red de Atención Auto Multi-Cabeza son las operaciones más ineficientes en términos de memoria. El modelo también observa que ajustar óptimamente la relación entre FFN (red neuronal feed forward) y MHSA puede ayudar a reducir significativamente el tiempo de acceso a la memoria sin afectar el rendimiento. Sin embargo, el modelo también observa alguna redundancia en los mapas de atención como resultado de la tendencia de los cabezales de atención a aprender proyecciones lineales similares. 

El modelo es un cultivo final de los hallazgos durante el trabajo de investigación para EfficientViT. El modelo presenta un nuevo bloque con un diseño de sandwich que aplica una sola capa de Atención Auto Multi-Cabeza limitada por la memoria entre capas de red neuronal feed forward eficientes. El enfoque no solo reduce el tiempo que se tarda en ejecutar operaciones limitadas por la memoria en MHSA, sino que también hace que todo el proceso sea más eficiente en términos de memoria al permitir que más capas de FFN faciliten la comunicación entre diferentes canales. El modelo también utiliza un nuevo módulo de atención de grupo en cascada que apunta a hacer que los cálculos sean más efectivos al reducir la redundancia computacional no solo en los cabezales de atención, sino que también aumenta la profundidad de la red, lo que resulta en una capacidad de modelo elevada. Finalmente, el modelo amplía el ancho del canal de componentes de red esenciales, incluyendo proyecciones de valor, mientras que reduce el ancho del canal de componentes de red con poco valor, como dimensiones ocultas en las redes neuronales feed forward, para redistribuir los parámetros en el marco. 

Como se puede ver en la imagen de arriba, el marco de EfficientViT funciona mejor que los modelos CNN y ViT actuales en términos de precisión y velocidad. Pero, ¿cómo logró el marco de EfficientViT superar a algunos de los marcos actuales de estado del arte? Veamos. 

EfficientViT: Mejorando la Eficiencia de los Vision Transformers

El modelo EfficientViT apunta a mejorar la eficiencia de los modelos de vision transformer existentes desde tres perspectivas,

  1. Redundancia computacional. 
  2. Acceso a memoria. 
  3. Uso de parámetros. 

El modelo apunta a encontrar cómo los parámetros anteriores afectan la eficiencia de los modelos de vision transformer, y cómo solucionarlos para lograr mejores resultados con mayor eficiencia. Veamos cada uno de ellos con un poco más de detalle. 

Acceso a Memoria y Eficiencia

Uno de los factores esenciales que afectan la velocidad de un modelo es el acceso a memoria o MAO. Como se puede ver en la imagen de abajo, varios operadores en transformer, incluyendo la suma elementales, la normalización y la reorganización frecuente, son operaciones ineficientes en términos de memoria, porque requieren acceso a diferentes unidades de memoria, lo que es un proceso que consume tiempo. 

Aunque existen algunos métodos existentes que pueden simplificar los cálculos de atención auto softmax estándar, como la aproximación de bajo rango y la atención dispersa, a menudo ofrecen una aceleración limitada y degradan la precisión. 

Por otro lado, el marco de EfficientViT apunta a reducir el costo de acceso a memoria al reducir la cantidad de capas ineficientes en términos de memoria en el marco. El modelo reduce la escala de DeiT-T y Swin-T a subredes pequeñas con un rendimiento de interferencia más alto de 1,25X y 1,5X, y compara el rendimiento de estas subredes con las proporciones de las capas de MHSA. Como se puede ver en la imagen de abajo, cuando se implementa, el enfoque mejora la precisión de las capas de MHSA en aproximadamente un 20 a 40%. 

Eficiencia Computacional

Las capas de MHSA tienden a incrustar la secuencia de entrada en múltiples subespacios o cabezales, y calculan los mapas de atención individualmente, un enfoque que se sabe que mejora el rendimiento. Sin embargo, los mapas de atención no son computacionalmente baratos, y para explorar los costos computacionales, el modelo EfficientViT explora cómo reducir la redundancia de atención en modelos ViT más pequeños. El modelo mide la similitud de coseno máxima de cada cabeza y las cabezas restantes dentro de cada bloque al entrenar los modelos DeiT-T y Swim-T con un escalado de ancho reducido con una aceleración de inferencia de 1,25 veces. Como se puede observar en la imagen de abajo, hay un número alto de similitud entre los cabezales de atención, lo que sugiere que el modelo incurre en redundancia computacional porque numerosos cabezales tienden a aprender proyecciones similares de la característica completa exacta. 

Para alentar a los cabezales a aprender patrones diferentes, el modelo aplica explícitamente una solución intuitiva en la que cada cabeza se alimenta solo con una porción de la característica completa, una técnica que se asemeja a la idea de convolución de grupo. El modelo entrena diferentes aspectos de los modelos con escalado de ancho reducido que presentan capas de MHSA modificadas. 

Eficiencia de Parámetros

Los modelos ViT promedio heredan sus estrategias de diseño, como utilizar un ancho equivalente para proyecciones, configurar la relación de expansión a 4 en FFN y aumentar los cabezales en etapas desde NLP transformadores. Las configuraciones de estos componentes necesitan ser diseñadas cuidadosamente para módulos ligeros. El modelo EfficientViT despliega la poda estructurada de Taylor para encontrar los componentes esenciales en las capas de Swim-T y DeiT-T automáticamente, y explora más a fondo los principios subyacentes de asignación de parámetros. Bajo ciertas restricciones de recursos, los métodos de poda eliminan canales no importantes y mantienen los críticos para garantizar la mayor precisión posible. La figura de abajo compara la proporción de canales con las incrustaciones de entrada antes y después de la poda en el marco de Swin-T. Se observó que: Precisión base: 79,1%; precisión podada: 76,5%. 

La imagen de arriba indica que las dos primeras etapas del marco conservan más dimensiones, mientras que las dos últimas etapas conservan mucho menos dimensiones. Puede significar que una configuración de canal típica que duplica el canal después de cada etapa o utiliza canales equivalentes para todos los bloques, puede resultar en una redundancia sustancial en los bloques finales. 

Efficient Vision Transformer: Arquitectura

En base a los conocimientos obtenidos durante el análisis anterior, los desarrolladores trabajaron en la creación de un nuevo modelo jerárquico que ofrece velocidades de interferencia rápidas, el modelo EfficientViT. Veamos la estructura del marco de EfficientViT con un poco más de detalle. La figura de abajo da una idea genérica del marco de EfficientViT. 

Bloques de Construcción del Marco de EfficientViT

El bloque de construcción para la red de vision transformer más eficiente se ilustra en la figura de abajo. 

El marco consiste en un módulo de atención de grupo en cascada, un diseño de sandwich de memoria eficiente y una estrategia de reasignación de parámetros que se centran en mejorar la eficiencia del modelo en términos de cálculo, memoria y parámetro, respectivamente. Veamos cada uno de ellos con un poco más de detalle. 

Diseño de Sandwich

El modelo utiliza un nuevo diseño de sandwich para construir un bloque de memoria más eficaz y eficiente para el marco. El diseño de sandwich utiliza menos capas de autoatención limitadas por la memoria y utiliza más redes neuronales feed forward eficientes para la comunicación del canal. Para ser más específicos, el modelo aplica una sola capa de autoatención para mezcla espacial que está sandwichada entre las capas de FFN. El diseño no solo ayuda a reducir el tiempo de memoria debido a las capas de autoatención, sino que también permite una comunicación efectiva entre diferentes canales dentro de la red gracias al uso de capas de FFN. El modelo también aplica una capa de token de interacción adicional antes de cada capa de red neuronal feed forward utilizando una convolución engañosa y mejora la capacidad del modelo al introducir sesgo inductivo de la información estructural local. 

Atención de Grupo en Cascada

Uno de los problemas principales con las capas de MHSA es la redundancia en los cabezales de atención, lo que hace que los cálculos sean menos eficientes. Para solucionar el problema, el modelo propone CGA o Atención de Grupo en Cascada para vision transformers, un nuevo módulo de atención que toma inspiración de las convoluciones de grupo en CNN eficientes. En este enfoque, el modelo alimenta los cabezales individuales con divisiones de las características completas y, por lo tanto, descompone el cálculo de atención explícitamente a través de los cabezales. Dividir las características en lugar de alimentar las características completas a cada cabeza ahorra cálculos y hace que el proceso sea más eficiente, y el modelo continúa trabajando en mejorar la precisión y la capacidad incluso más alentando a las capas a aprender proyecciones en características que tienen información más rica. 

Reasignación de Parámetros

Para mejorar la eficiencia de los parámetros, el modelo reasigna los parámetros en la red al ampliar el ancho del canal de módulos críticos mientras reduce el ancho del canal de módulos no tan importantes. En base al análisis de Taylor, el modelo establece dimensiones de canal pequeñas para proyecciones en cada cabeza durante cada etapa o el modelo permite que las proyecciones tengan la misma dimensión que la entrada. La relación de expansión de la red neuronal feed forward también se reduce a 2 desde 4 para ayudar con la redundancia de parámetros. La estrategia de reasignación propuesta que el marco de EfficientViT implementa asigna más canales a módulos importantes para permitir que aprendan representaciones en un espacio de alta dimensión mejor que minimiza la pérdida de información de características. Además, para acelerar el proceso de interferencia y mejorar la eficiencia del modelo incluso más, el modelo elimina automáticamente los parámetros redundantes en módulos no importantes. 

La visión general del marco de EfficientViT se puede explicar en la imagen de arriba donde las partes,

  1. Arquitectura de EfficientViT,
  2. Bloque de diseño de sandwich,
  3. Atención de grupo en cascada.

 

EfficientViT: Arquitecturas de Red

La imagen de arriba resume la arquitectura de red del marco de EfficientViT. El modelo introduce una incrustación de parche superpuesta [20,80] que incrusta parches de 16×16 en tokens de dimensión C1 que mejora la capacidad del modelo para aprender representaciones visuales de bajo nivel. La arquitectura del modelo consiste en tres etapas donde cada etapa apila los bloques de construcción propuestos del marco de EfficientViT, y el número de tokens en cada capa de subsampling (2× subsampling de la resolución) se reduce en 4 veces. Para hacer que el subsampling sea más eficiente, el modelo propone un bloque de subsample que también tiene el diseño de sandwich propuesto, con la excepción de que un bloque de residuo invertido reemplaza la capa de atención para reducir la pérdida de información durante el muestreo. Además, en lugar de la normalización de capa convencional (LN), el modelo utiliza la normalización de lote (BN) porque BN se puede combinar con las capas lineales o convolucionales anteriores, lo que le da una ventaja en tiempo de ejecución sobre LN. 

 

Familia de Modelos EfficientViT

La familia de modelos EfficientViT consiste en 6 modelos con diferentes escalas de profundidad y ancho, y se asigna un número fijo de cabezales para cada etapa. Los modelos utilizan menos bloques en las etapas iniciales en comparación con las etapas finales, un proceso similar al seguido por el marco de MobileNetV3 porque el proceso de procesamiento de etapas tempranas con resoluciones más grandes es costoso en términos de tiempo. El ancho se aumenta en las etapas con un factor pequeño para reducir la redundancia en las etapas posteriores. La tabla adjunta a continuación proporciona los detalles arquitectónicos de la familia de modelos EfficientViT, donde C, L y H se refieren al ancho, profundidad y número de cabezales en la etapa particular. 

EfficientViT: Implementación del Modelo y Resultados

El modelo EfficientViT tiene un tamaño de lote total de 2.048, se construye con Timm y PyTorch, se entrena desde cero durante 300 épocas utilizando 8 GPUs Nvidia V100, utiliza un programador de aprendizaje de coseno, un optimizador AdamW y realiza su experimento de clasificación de imágenes en ImageNet-1K. Las imágenes de entrada se recortan y se redimensionan aleatoriamente a una resolución de 224×224. Para los experimentos que involucran la clasificación de imágenes descendentes, el marco de EfficientViT ajusta el modelo durante 300 épocas y utiliza un optimizador AdamW con un tamaño de lote de 256. El modelo utiliza RetineNet para la detección de objetos en COCO y procede a entrenar los modelos durante 12 épocas más con los mismos ajustes. 

Resultados en ImageNet

Para analizar el rendimiento de EfficientViT, se compara con los modelos ViT y CNN actuales en el conjunto de datos ImageNet. Los resultados de la comparación se informan en la figura siguiente. Como se puede ver, la familia de modelos EfficientViT supera a los marcos actuales en la mayoría de los casos y logra un equilibrio ideal entre velocidad y precisión. 

Comparación con CNN Eficientes y ViT Eficientes

El modelo compara primero su rendimiento con CNN eficientes como EfficientNet y marcos de CNN vanilla como MobileNets. Como se puede ver, cuando se compara con los marcos de MobileNet, los modelos EfficientViT obtienen una mejor puntuación de precisión superior, mientras que se ejecutan 3,0 veces y 2,5 veces más rápido en CPU de Intel y GPU V100, respectivamente.  

La figura de arriba compara el rendimiento del modelo EfficientViT con modelos ViT de gran escala que se ejecutan en el conjunto de datos ImageNet-1K. 

Clasificación de Imágenes Descendentes

El modelo EfficientViT se aplica a varias tareas descendentes para estudiar las capacidades de aprendizaje de transferencia del modelo, y la imagen de abajo resume los resultados del experimento. Como se puede observar, el modelo EfficientViT-M5 logra mejores o resultados similares en todos los conjuntos de datos mientras mantiene un rendimiento mucho mayor. La única excepción es el conjunto de datos de Autos, donde el modelo EfficientViT no logra entregar en precisión. 

Detección de Objetos

Para analizar la capacidad del modelo EfficientViT para detectar objetos, se compara con modelos eficientes en la tarea de detección de objetos de COCO, y la imagen de abajo resume los resultados de la comparación. 

Pensamientos Finales

En este artículo, hemos hablado sobre EfficientViT, una familia de modelos de vision transformer rápidos que utilizan atención de grupo en cascada y proporcionan operaciones de memoria eficientes. Experimentos exhaustivos realizados para analizar el rendimiento de EfficientViT han mostrado resultados prometedores, ya que el modelo EfficientViT supera a los modelos CNN y ViT actuales en la mayoría de los casos. También hemos intentado proporcionar un análisis sobre los factores que juegan un papel en la velocidad de interferencia de los vision transformers. 

Un ingeniero por profesión, un escritor por corazón. Kunal es un escritor técnico con un profundo amor y comprensión de la IA y el ML, dedicado a simplificar conceptos complejos en estos campos a través de su documentación atractiva e informativa.