¿Cómo reducir el costo computacional del transformador visual? El enfoque de redundancia temporal es sorprendente

Después de traer cambios al campo del lenguaje, Transformer ingresa al campo visual, pero también tiene el problema del alto costo computacional. Recientemente, un equipo de investigación de la Universidad de Wisconsin-Madison propuso Eventful Transformer, que puede ahorrar costos al utilizar la redundancia de tiempo en el Transformer visual.

Fuente de la imagen: Generada por IA ilimitada

Transformer fue diseñado originalmente para tareas de procesamiento del lenguaje natural, pero ahora se usa ampliamente para tareas de visión. Vision Transformer logra una precisión excepcional en una variedad de tareas de reconocimiento visual y logra un rendimiento de vanguardia en tareas como clasificación de imágenes, clasificación de videos y detección de objetos.

Un gran inconveniente del Transformer visual es su alto coste computacional. Las redes convolucionales típicas (CNN) requieren decenas de GFlops por imagen para procesar, mientras que los Transformers visuales a menudo requieren un orden de magnitud más, alcanzando cientos de GFlops por imagen. Al procesar vídeo, este problema es aún más grave debido a la enorme cantidad de datos. El alto costo computacional dificulta que Visual Transformer se implemente en dispositivos con recursos limitados o requisitos de latencia estrictos, lo que limita los escenarios de aplicación de esta tecnología, de lo contrario ya tendríamos algunas aplicaciones interesantes.

En un artículo reciente, tres investigadores de la Universidad de Wisconsin-Madison, Matthew Dutson, Yin Li y Mohit Gupta, propusieron por primera vez que la redundancia temporal entre entradas posteriores se puede utilizar para reducir el costo de los transformadores visuales en aplicaciones de video. También publicaron el código del modelo, que incluye el módulo PyTorch utilizado para construir Eventful Transformer.

* Dirección del papel:

  • dirección del proyecto:

Redundancia temporal: primero suponga que hay un transformador visual que puede procesar una secuencia de video cuadro por cuadro o videoclip por videoclip. Este Transformador puede ser un modelo de procesamiento simple cuadro por cuadro (como un detector de objetos) o un paso intermedio de un modelo espaciotemporal (como el primer paso del modelo descompuesto de ViViT). A diferencia del Transformer de procesamiento de lenguaje, donde una entrada es una secuencia completa, los investigadores aquí proporcionan múltiples entradas diferentes (fotogramas o clips de video) al Transformer a lo largo del tiempo.

Los vídeos naturales contienen una importante redundancia temporal, es decir, las diferencias entre fotogramas posteriores son pequeñas. No obstante, las redes profundas, incluidas las Transformers, normalmente calculan cada cuadro "desde cero". Este método descarta información potencialmente relevante obtenida a través del razonamiento previo, lo cual es un gran desperdicio. Por lo tanto, estos tres investigadores se preguntaron: ¿Se pueden reutilizar los resultados de los cálculos intermedios de los pasos de cálculo anteriores para mejorar la eficiencia del procesamiento de secuencias redundantes?

Inferencia adaptativa: para los transformadores visuales y las redes profundas en general, el costo de la inferencia suele estar dictado por la arquitectura. Sin embargo, en aplicaciones reales, los recursos disponibles pueden cambiar con el tiempo, por ejemplo debido a procesos competitivos o cambios de energía. Como resultado, puede ser necesario modificar el costo de cálculo del modelo en tiempo de ejecución. Uno de los principales objetivos de diseño establecidos por los investigadores en este nuevo esfuerzo fue la adaptabilidad: su enfoque permitió el control en tiempo real de los costos computacionales. La Figura 1 a continuación (abajo) ofrece un ejemplo de modificación del presupuesto computacional durante el procesamiento de video.

Eventful Transformer: este artículo propone Eventful Transformer, que puede explotar la redundancia temporal entre entradas para lograr un razonamiento eficiente y adaptativo. El término accidentado está inspirado en las cámaras de eventos, sensores que registran imágenes discretamente a medida que cambia la escena. Eventful Transformer rastrea los cambios a nivel de token a lo largo del tiempo y actualiza selectivamente las representaciones de tokens y los mapas de autoatención en cada paso del tiempo. El módulo de Eventful Transformer contiene un módulo de activación que se utiliza para controlar la cantidad de tokens que se actualizan durante el tiempo de ejecución.

Este método se puede utilizar con modelos disponibles en el mercado (generalmente sin reentrenamiento) y es compatible con muchas tareas de procesamiento de video. Los investigadores también realizaron demostraciones experimentales y los resultados mostraron que Eventful Transformer se puede utilizar en los mejores modelos existentes, reduciendo en gran medida sus costos computacionales y manteniendo su precisión original.

Transformador lleno de acontecimientos

El objetivo de esta investigación es acelerar Vision Transformer para el reconocimiento de vídeo. En este escenario, el transformador visual necesita procesar repetidamente cuadros de video o clips de video, y las tareas específicas incluyen la detección de objetivos de video y el reconocimiento de acciones de video. La idea clave propuesta aquí es explotar la redundancia temporal, es decir, reutilizar los resultados de los cálculos de pasos de tiempo anteriores. A continuación se describirá en detalle cómo modificar el módulo Transformer para que sea capaz de detectar redundancia de tiempo.

activación de tokens: detección de redundancia

Esta sección presentará dos nuevos módulos propuestos por los investigadores: token gate y token buffer. Estos módulos permiten que el modelo identifique y actualice tokens que han cambiado significativamente desde la última actualización.

Módulo de puerta: esta puerta seleccionará una parte M del token de entrada N y la enviará a la capa descendente para su cálculo. Mantiene un token de referencia establecido en su memoria, denominado u. Este vector de referencia contiene el valor de cada token en el momento de su actualización más reciente. En cada paso de tiempo, cada token se compara con su valor de referencia correspondiente y se actualiza el token que es significativamente diferente del valor de referencia.

Ahora sea la entrada actual a la puerta c. En cada paso de tiempo, se sigue el siguiente proceso para actualizar el estado de la puerta y determinar su salida (consulte la Figura 2 a continuación):

1. Calcule el error total e = u − c.

  1. Utilice una estrategia de selección para el error e. La estrategia de selección devuelve una máscara binaria m (equivalente a una lista de índice de tokens), que indica qué M tokens deben actualizarse.

  2. Extraiga el token seleccionado mediante la estrategia anterior. Esto se describe en la Figura 2 como el producto c × m; en la práctica se logra realizando una operación de "reunión" a lo largo del primer eje de c. Los tokens recolectados se registran aquí como

, que es la salida de la puerta.

  1. Actualice el token de referencia al token seleccionado. La Figura 2 describe este proceso como

;La operación utilizada en la práctica es "dispersión". En el primer paso de tiempo, la puerta actualiza todos los tokens (inicializando u ← c y devolviendo c˜ = c).

Módulo de búfer: el módulo de búfer mantiene un tensor de estado

, que rastrea cada token de entrada

Cuando , el búfer dispersa los tokens de f (c˜) a sus posiciones correspondientes en b. Luego devuelve la b actualizada como salida, consulte la Figura 3 a continuación.

Los investigadores emparejaron cada puerta con un amortiguador detrás. Aquí hay un patrón de uso simple: la salida de la puerta

se pasa a una serie de operaciones f (c˜) en cada token; luego el tensor resultante

Pasado a un buffer, que restaurará la forma completa.

Construya un transformador con capacidad de redundancia

Para aprovechar la redundancia de tiempo anterior, los investigadores propusieron un esquema de modificación del módulo Transformer. La Figura 4 a continuación muestra el diseño del módulo Eventful Transformer. Este método puede acelerar las operaciones en tokens individuales (como MLP), así como la multiplicación del valor de la clave de consulta y del valor de atención.

En el módulo Operation Transformer para cada token, se realizan muchas operaciones para cada token, lo que significa que no implican intercambio de información entre tokens, incluidas transformaciones lineales en MLP y MSA. Para ahorrar costos computacionales, los investigadores afirmaron que se pueden omitir las operaciones orientadas a tokens de tokens no seleccionados por la puerta. Debido a la independencia entre tokens, esto no cambia el resultado de la operación en el token seleccionado. Ver Figura 3.

Específicamente, los investigadores utilizaron un par de búferes de puerta para la secuencia continua de operaciones en cada token (incluida la transformación W_qkv, la transformación W_p y MLP). Tenga en cuenta que también agregaron un búfer antes de la conexión de omisión para garantizar que los tokens de los dos operandos de suma estén alineados correctamente.

El coste de la operación por cada token es proporcional al número de tokens. La puerta puede reducir este número de N a M, lo que también reduce el costo computacional de las operaciones posteriores para cada token en N/M veces.

Producto de consulta-valor-clave: ahora veamos el producto de consulta-valor-clave B = qk^T.

La Figura 5 a continuación muestra un método para actualizar escasamente un subconjunto de elementos en el producto B de consulta-clave-valor.

El costo total de estas actualizaciones es 2NMD, en comparación con el costo de calcular B desde cero, que es N^2D. Tenga en cuenta que el costo del nuevo método es proporcional a M, la cantidad de tokens seleccionados por la puerta. Cuando M < N/2 (los tokens actualizados en este momento son menos de la mitad del total), se puede guardar la cantidad del cálculo.

Producto de valor atención: el investigador propuso una estrategia de actualización basada en el incremento Δ.

La Figura 6 a continuación muestra el método recientemente propuesto para calcular eficientemente tres términos incrementales.

De manera similar, cuando M < N/2, se puede guardar el monto del cálculo.

estrategia de selección de tokens

Un diseño importante de Eventful Transformer es su estrategia de selección de tokens. Dado un tensor de error de puerta e, el objetivo de dicha política es generar una máscara m que indique los tokens que deben actualizarse. Las estrategias específicas incluyen:

Estrategia Top-r: esta estrategia selecciona r tokens con el mayor error e (aquí se usa la norma L2).

Estrategia de umbral: esta estrategia selecciona todos los tokens cuya norma de error e excede un umbral h.

Otras estrategias: las estrategias de selección de tokens más complejas y sofisticadas pueden lograr mejores compensaciones entre precisión y costo. Por ejemplo, se puede utilizar una red de políticas liviana para aprender una estrategia. Sin embargo, entrenar el mecanismo de toma de decisiones de la política puede resultar difícil porque la máscara binaria m generalmente no es diferenciable. Otra idea es utilizar la puntuación de importancia como información de referencia para la selección. Pero estas ideas aún esperan futuras investigaciones.

Experimento

Los investigadores evaluaron experimentalmente el nuevo método propuesto en las tareas de detección de objetos en vídeo y reconocimiento de acciones en vídeo.

La Figura 7 a continuación muestra los resultados experimentales de la detección de objetivos por video. El eje positivo es la tasa de ahorro computacional y el eje negativo es la reducción relativa en la puntuación mAP50 del nuevo método. Se puede ver que el nuevo método logra importantes ahorros computacionales con un pequeño sacrificio de precisión.

La Figura 8 a continuación muestra la comparación de métodos y los resultados experimentales de ablación en la tarea de detección de objetivos de video.

La Figura 9 a continuación muestra los resultados experimentales del reconocimiento de acciones de video.

La Tabla 2 a continuación muestra los resultados del tiempo de ejecución (milisegundos) en una CPU (Xeon Silver 4214, 2,2 GHz) y una GPU (NVIDIA RTX3090). Se puede ver que el aumento de velocidad generado por la redundancia de tiempo en la GPU puede ser de hasta 1,74 veces, y la mejora en la CPU puede llegar a 2,47 veces.

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)