Visibilidad IA

Arquitectura Performer (Rethinking Attention with Performers): qué es, cómo funciona FAVOR+ y cómo reduce la complejidad de la atención mediante características aleatorias

La arquitectura Performer (Rethinking Attention with Performers) es una evolución de los modelos Transformer diseñada para reducir la complejidad computacional de los mecanismos de autoatención mediante una técnica matemática conocida como Fast Attention Via Positive Orthogonal Random Features (FAVOR+).

Su principal innovación consiste en aproximar el cálculo tradicional de atención softmax utilizando características aleatorias positivas y transformaciones basadas en funciones kernel. Gracias a este enfoque, Performer puede procesar secuencias extensas sin construir explícitamente la matriz cuadrática de atención utilizada por los Transformers convencionales.

Performer fue presentada en septiembre de 2020 por un equipo de investigadores encabezado por Krzysztof Choromanski, Valerii Likhosherstov y David Dohan. El trabajo científico, titulado Rethinking Attention with Performers, fue publicado posteriormente en ICLR 2021.

La arquitectura surgió para abordar uno de los problemas fundamentales de los Transformers: el elevado coste computacional y de memoria cuando aumenta la longitud de la secuencia.

En la autoatención convencional, cada token puede establecer relaciones directas con todos los demás tokens. Esta estrategia genera una matriz cuyo tamaño aumenta cuadráticamente respecto al número de tokens.

Performer propone un procedimiento diferente.

En lugar de calcular y almacenar todas esas relaciones, transforma las consultas y claves mediante funciones de características aleatorias positivas. Posteriormente, reorganiza las operaciones matriciales para obtener una aproximación eficiente del resultado de la atención.

El mecanismo FAVOR+ permite que el coste de atención crezca linealmente respecto a la longitud de la secuencia cuando el número de características aleatorias y las dimensiones internas permanecen fijos.

A diferencia de Longformer y BigBird, que seleccionan determinadas conexiones de atención, o de Linformer, que utiliza proyecciones de baja dimensión sobre el eje de secuencia, Performer aproxima directamente el kernel utilizado por el mecanismo softmax.

En esta guía exploraremos qué es Performer, cómo funciona FAVOR+, qué son las características aleatorias ortogonales positivas, cómo se obtiene la atención lineal y cuáles son sus aplicaciones y limitaciones.

También presentaremos ejemplos prácticos en Python y compararemos Performer con otras arquitecturas Transformer eficientes.

¿Qué es la arquitectura Performer?

Performer es una arquitectura de aprendizaje profundo basada en Transformers que utiliza mecanismos de atención aproximada para reducir la complejidad computacional y el consumo de memoria.

Su característica fundamental es la utilización de FAVOR+, una técnica que permite aproximar la atención softmax mediante una representación basada en características aleatorias positivas.

El nombre Performer está asociado al artículo Rethinking Attention with Performers, que puede traducirse como «Repensar la atención mediante Performers».

La investigación fue desarrollada por Krzysztof Choromanski, Valerii Likhosherstov, David Dohan, Xingyou Song, Andreea Gane, Tamás Sarlós, Peter Hawkins, Jared Davis, Afroz Mohiuddin, Łukasz Kaiser, David Belanger, Lucy Colwell y Adrian Weller.

El objetivo principal de la arquitectura consiste en construir mecanismos de atención que puedan utilizarse con secuencias largas sin calcular todas las relaciones entre posiciones.

En un Transformer convencional, el producto entre las matrices Query y Key produce una matriz de atención cuadrática.

Performer evita construir explícitamente esta matriz.

Para conseguirlo, utiliza una aproximación matemática del kernel exponencial asociado con softmax.

Esta aproximación permite expresar las relaciones entre consultas y claves como productos de vectores transformados.

Posteriormente, gracias a la propiedad asociativa de la multiplicación matricial, las operaciones pueden reorganizarse para disminuir su coste.

La característica importante es que Performer no requiere imponer un patrón fijo de atención dispersa.

Tampoco necesita asumir que la matriz original de atención posee necesariamente un rango bajo.

Su estrategia se basa en aproximar las interacciones del kernel mediante características aleatorias.

Origen y desarrollo de Performer

La arquitectura Transformer original, presentada en 2017 mediante el artículo Attention Is All You Need, introdujo mecanismos de autoatención que transformaron el procesamiento del lenguaje natural.

Posteriormente, modelos como BERT, GPT y Transformer-XL demostraron que los Transformers podían aprender representaciones complejas de secuencias.

Sin embargo, las necesidades computacionales crecían rápidamente cuando aumentaba la longitud de las entradas.

Este problema motivó numerosas investigaciones sobre atención eficiente.

Transformer-XL introdujo mecanismos de memoria recurrente entre segmentos.

Longformer propuso combinar atención local y global.

BigBird incorporó conexiones locales, aleatorias y globales.

Reformer utilizó Locality-Sensitive Hashing para agrupar representaciones similares.

Linformer introdujo proyecciones aprendidas que reducen la dimensión secuencial de claves y valores.

Performer exploró una estrategia diferente: representar el propio mecanismo de similitud de la atención mediante funciones kernel aproximadas.

Los investigadores observaron que determinadas operaciones de atención podían reformularse utilizando características aleatorias.

Esta transformación permitía reorganizar las multiplicaciones matriciales y evitar la construcción de matrices cuadráticas.

El resultado fue FAVOR+, un procedimiento especialmente diseñado para utilizar características positivas y proyecciones aleatorias ortogonales.

La arquitectura demostró resultados competitivos en diferentes aplicaciones, incluyendo modelado del lenguaje, secuencias de imágenes y proteínas.

El problema de la atención cuadrática

Para comprender Performer, debemos analizar el mecanismo de autoatención convencional.

En un Transformer, cada token se transforma en tres representaciones:

  • Query (Q): consultas.
  • Key (K): claves.
  • Value (V): valores.

El mecanismo de atención utiliza las consultas y claves para calcular relaciones de similitud.

Posteriormente, estas relaciones determinan cómo se combinan los valores.

La atención escalada convencional se expresa mediante:

[
\operatorname{Attention}(Q,K,V)=
\operatorname{softmax}
\left(
\frac{QK^T}{\sqrt{d_k}}
\right)V
]

Donde (d_k) representa la dimensión de las claves.

Si una secuencia contiene (L) tokens, las matrices Query y Key tienen una representación por cada token.

El producto:

[
QK^T
]

produce una matriz de dimensiones:

[
L \times L
]

Por tanto, la memoria necesaria para almacenar las puntuaciones de atención crece aproximadamente como:

[
O(L^2)
]

El número de operaciones también presenta un componente cuadrático respecto a la longitud de la secuencia.

Por ejemplo:

Longitud de secuenciaPares de atención completa
512 tokens262.144
1.024 tokens1.048.576
2.048 tokens4.194.304
4.096 tokens16.777.216
8.192 tokens67.108.864
16.384 tokens268.435.456

Estas cifras representan pares de posiciones, no el número total de operaciones del modelo.

Sin embargo, muestran claramente por qué la atención completa puede resultar costosa.

Performer aborda este problema mediante una aproximación que evita construir explícitamente la matriz completa.

¿Qué es FAVOR+?

FAVOR+ significa Fast Attention Via Positive Orthogonal Random Features.

Puede traducirse como «Atención rápida mediante características aleatorias ortogonales positivas».

Es el mecanismo central de Performer.

Su objetivo consiste en aproximar determinadas funciones de similitud utilizadas durante la atención mediante representaciones vectoriales que pueden calcularse eficientemente.

La técnica combina tres ideas fundamentales.

1. Características aleatorias

Las representaciones se transforman mediante funciones que utilizan parámetros aleatorios.

Estas transformaciones permiten aproximar determinadas funciones kernel.

2. Características positivas

Las funciones utilizadas para aproximar el kernel softmax producen valores positivos.

Esta propiedad contribuye a mejorar la estabilidad numérica y reducir determinados problemas de varianza.

3. Proyecciones ortogonales

FAVOR+ utiliza construcciones de proyecciones aleatorias ortogonales para mejorar la calidad de la estimación.

En comparación con determinadas alternativas que utilizan proyecciones gaussianas independientes, las características ortogonales pueden reducir la varianza de la aproximación.

La combinación permite construir un estimador eficiente del mecanismo de atención.

No obstante, FAVOR+ continúa siendo una aproximación probabilística.

No garantiza producir exactamente los mismos resultados que la atención softmax completa en todas las situaciones.

¿Qué son las funciones kernel?

Para comprender FAVOR+, es importante conocer el concepto de kernel.

En aprendizaje automático, una función kernel mide una relación o similitud entre dos elementos.

Por ejemplo, una función kernel puede comparar dos vectores y producir un valor que representa su relación.

Una función kernel puede expresarse de forma general como:

[
K(x,y)
]

Donde (x) e (y) representan dos vectores.

En el contexto de la atención softmax, las relaciones entre consultas y claves utilizan un término exponencial.

De manera simplificada:

[
K(q,k)=\exp(q^Tk)
]

Aquí se ha omitido el factor de escalado de la atención para facilitar la explicación.

El objetivo de Performer consiste en aproximar esta función mediante una transformación de características:

[
K(q,k)\approx\phi(q)^T\phi(k)
]

Donde (\phi) representa una función que transforma los vectores originales en un nuevo espacio de características.

La ventaja es que el producto entre características transformadas puede calcularse sin construir una matriz completa de relaciones entre todas las consultas y claves.

Esta transformación es la base matemática de FAVOR+.

¿Qué son las características aleatorias positivas?

Las características aleatorias positivas son representaciones construidas mediante transformaciones aleatorias cuyos valores resultantes son positivos.

Una identidad matemática importante para el kernel exponencial utiliza un vector aleatorio gaussiano:

[
\omega \sim \mathcal{N}(0,I)
]

Para vectores (x) e (y), podemos definir:

[
\phi_{\omega}(x)=
\exp\left(
\omega^Tx-\frac{|x|^2}{2}
\right)
]

Bajo esta construcción:

\exp(x^Ty)
]

Esta identidad permite aproximar el kernel exponencial mediante un número finito de muestras aleatorias.

Si utilizamos (m) características, obtenemos una representación vectorial:

[
\phi(x)\in\mathbb{R}^{m}
]

El producto:

[
\phi(x)^T\phi(y)
]

aproxima la similitud exponencial entre ambos vectores.

La atención softmax utiliza además un escalado de consultas y claves. Para representar exactamente el kernel correspondiente, las transformaciones deben incorporar ese factor de escala.

En FAVOR+, las proyecciones ortogonales y las técnicas de estabilización numérica mejoran esta construcción básica.

Por tanto, esta identidad explica el fundamento matemático, pero no constituye por sí sola toda la implementación de FAVOR+.

¿Por qué utilizar proyecciones ortogonales?

Las proyecciones ortogonales son una característica distintiva de FAVOR+.

Dos vectores son ortogonales cuando su producto escalar es cero.

En términos geométricos, esto significa que sus direcciones son perpendiculares.

Cuando se utilizan vectores aleatorios completamente independientes, pueden existir redundancias entre las direcciones muestreadas.

FAVOR+ aprovecha construcciones ortogonales para reducir determinadas correlaciones y mejorar la eficiencia estadística de las características.

Ventaja de la ortogonalidad

Las proyecciones ortogonales pueden proporcionar una aproximación más estable que ciertas alternativas basadas únicamente en muestras independientes.

Ventaja de las características positivas

La positividad ayuda a controlar problemas numéricos que pueden surgir al aproximar kernels exponenciales.

¿La estimación es exacta?

No necesariamente.

La aproximación depende del número de características, de las proyecciones utilizadas y de las propiedades de los vectores procesados.

El trabajo original presenta garantías teóricas de estimación insesgada o casi insesgada para las construcciones correspondientes, además de resultados de convergencia y varianza.

Estas propiedades matemáticas no significan que una implementación con un número finito de características reproduzca exactamente todas las salidas de la atención completa.

¿Cómo funciona Performer paso a paso?

El funcionamiento del mecanismo FAVOR+ puede dividirse en varias etapas.

1. Tokenización

El texto se convierte en una secuencia de tokens.

Por ejemplo:

«Los modelos Transformer procesan documentos extensos».

2. Representaciones vectoriales

Cada token se transforma en un embedding.

Estas representaciones incorporan información lingüística y posicional según la configuración del modelo.

3. Generación de Query, Key y Value

El modelo produce las matrices Q, K y V mediante transformaciones aprendidas.

4. Aplicación de características aleatorias

Las consultas y claves se transforman mediante funciones de características positivas.

Obtenemos:

[
Q’=\phi(Q)
]

[
K’=\phi(K)
]

5. Cálculo de estadísticas agregadas

En lugar de construir una matriz cuadrática de atención, el modelo combina las claves transformadas con los valores.

6. Reorganización de operaciones

La propiedad asociativa de la multiplicación matricial permite aplicar las consultas transformadas sobre las estadísticas agregadas.

7. Normalización

El resultado se normaliza para aproximar el comportamiento de la atención softmax.

8. Generación de representaciones

Las salidas contextualizadas continúan procesándose mediante las siguientes capas Transformer.

La diferencia fundamental está en que las operaciones no requieren construir explícitamente una matriz de atención de dimensiones (L\times L).

Formulación matemática de FAVOR+

Consideremos una secuencia con (L) posiciones.

Sea:

  • (Q): matriz de consultas.
  • (K): matriz de claves.
  • (V): matriz de valores.
  • (\phi): transformación de características aleatorias positivas.

En la atención softmax aproximada, las relaciones entre consultas y claves pueden representarse mediante:

[
\phi(Q)\phi(K)^T
]

El resultado normalizado para todas las consultas puede escribirse conceptualmente como:

\frac{
\phi(Q)\left(\phi(K)^TV\right)
}{
\phi(Q)\left(\phi(K)^T\mathbf{1}\right)
}
]

La división se realiza por filas, de manera que cada posición dispone de su propio factor de normalización.

El vector (\mathbf{1}) contiene unos y permite calcular los denominadores correspondientes.

La diferencia fundamental está en el orden de las multiplicaciones.

En la atención convencional, primero se calculan relaciones entre todas las consultas y claves.

En Performer, primero se calcula:

[
\phi(K)^TV
]

Este resultado tiene dimensiones asociadas al número de características aleatorias y a la dimensión de los valores, no a una matriz cuadrática entre todas las posiciones.

Posteriormente, las consultas transformadas se multiplican por ese resultado.

La operación evita construir explícitamente la matriz completa de atención.

¿Por qué Performer consigue complejidad lineal?

Supongamos que:

  • (L) representa la longitud de la secuencia.
  • (m) representa el número de características aleatorias.
  • (d) representa una dimensión interna representativa.

La atención completa requiere un coste cuadrático en (L).

En FAVOR+, el coste principal de combinar las características y los valores crece aproximadamente como:

[
O(Lmd)
]

Si (m) y (d) permanecen constantes cuando aumenta (L), el coste crece linealmente:

[
O(L)
]

Esta propiedad es la principal ventaja de Performer.

Sin embargo, debemos distinguir entre la complejidad del mecanismo de atención y el coste total del modelo.

Las proyecciones, las redes feed-forward, la normalización y otros componentes también requieren operaciones.

Además, aumentar el número de características aleatorias puede mejorar la aproximación, pero incrementa los recursos necesarios.

Por tanto, Performer presenta un compromiso entre precisión de la aproximación y eficiencia computacional.

Ejemplo conceptual de ahorro de memoria

Consideremos una secuencia de 8.192 tokens.

En la atención completa, una cabeza puede necesitar representar:

[
8192^2=67.108.864
]

puntuaciones de atención.

Si utilizamos una aproximación con 256 características aleatorias, las representaciones transformadas de consultas y claves contienen, respectivamente:

[
8192\times256=2.097.152
]

elementos.

Estas matrices son considerablemente menores que una matriz cuadrática de atención.

Además, FAVOR+ permite utilizar estadísticas agregadas para calcular la salida sin construir el producto completo entre todas las consultas y claves.

Es importante señalar que estas cifras son ilustrativas.

No representan por sí mismas el consumo total de memoria de un modelo Performer ni incluyen todos los tensores auxiliares.

La memoria efectiva depende de la implementación, el hardware, el tamaño de los lotes y la precisión numérica.

Atención bidireccional y atención causal en Performer

Una característica importante de Performer es que su enfoque puede aplicarse tanto a atención bidireccional como a atención causal.

Atención bidireccional

En una configuración bidireccional, un token puede utilizar información procedente de posiciones anteriores y posteriores.

Este enfoque resulta útil para tareas de representación y comprensión del lenguaje.

En FAVOR+, las estadísticas agregadas pueden calcularse utilizando la secuencia completa.

Atención causal

En una configuración causal, un token no debe acceder a posiciones futuras.

Esto es fundamental para modelos autorregresivos que predicen progresivamente el siguiente token.

Performer adapta el cálculo mediante sumas acumuladas.

En lugar de utilizar estadísticas calculadas sobre toda la secuencia, cada posición utiliza únicamente la información acumulada hasta ese punto.

Podemos expresar las estadísticas causales como:

[
S_t=
\sum_{j=1}^{t}
\phi(k_j)v_j^T
]

[
z_t=
\sum_{j=1}^{t}
\phi(k_j)
]

La salida de la posición (t) se aproxima mediante:

[
o_t=
\frac{
\phi(q_t)^TS_t
}{
\phi(q_t)^Tz_t
}
]

Estas ecuaciones muestran que el modelo puede actualizar las estadísticas a medida que procesa nuevos tokens.

Esto permite implementar atención causal sin construir una matriz triangular completa de tamaño cuadrático.

¿Performer necesita almacenar todo el historial?

No necesariamente.

En una implementación causal basada en estadísticas acumuladas, el modelo puede mantener representaciones resumidas del contexto anterior.

Esto evita almacenar explícitamente todas las relaciones entre posiciones históricas.

Sin embargo, existe una diferencia importante entre almacenar estadísticas agregadas y recordar perfectamente todo el contenido previo.

Las estadísticas comprimidas no garantizan recuperar cualquier detalle de una secuencia anterior.

Además, las aproximaciones pueden introducir errores que afectan a las predicciones.

Por tanto, el mecanismo resulta eficiente desde el punto de vista computacional, pero no constituye una memoria perfecta o ilimitada.

Generalized Attention: atención generalizada

Otra contribución importante de Performer es su capacidad para trabajar con diferentes funciones kernel.

La atención softmax constituye el caso más conocido.

Sin embargo, FAVOR+ y el marco de atención generalizada también permiten estudiar otras funciones de similitud que puedan representarse mediante características adecuadas.

Por ejemplo, pueden utilizarse transformaciones basadas en funciones no lineales como ReLU.

Esta flexibilidad permite investigar distintos mecanismos de relación entre consultas y claves.

Es importante comprender que utilizar otro kernel no significa aproximar exactamente el mismo mecanismo softmax.

Cuando cambia la función kernel, también cambia la definición de similitud utilizada por la atención.

El artículo original investigó estas alternativas para estudiar su comportamiento en diferentes tareas.

Esto amplía la relevancia de Performer más allá de una simple técnica para acelerar softmax.

Arquitectura interna de Performer

Performer conserva los componentes generales de los Transformers, pero modifica el mecanismo de atención.

Embeddings de entrada

Transforman los tokens en representaciones vectoriales.

Información posicional

Permite representar la posición de los elementos dentro de la secuencia.

Query, Key y Value

Proporcionan las representaciones utilizadas para calcular atención.

Random Feature Mapping

Transforma consultas y claves mediante características aleatorias.

FAVOR+ Attention

Aproxima la atención utilizando características positivas ortogonales.

Normalización de atención

Permite obtener combinaciones contextualizadas de los valores.

Multi-Head Attention

Puede utilizar múltiples cabezas de atención para aprender diferentes relaciones.

Feed-Forward Networks

Aplican transformaciones no lineales a las representaciones.

Residual Connections

Facilitan la propagación de información entre capas.

Layer Normalization

Contribuye a estabilizar el procesamiento y el entrenamiento.

Estos componentes permiten utilizar Performer como sustituto de determinados bloques de atención dentro de modelos Transformer.

Performer frente al Transformer convencional

CaracterísticaTransformer convencionalPerformer
Mecanismo de atenciónSoftmax completaAproximación mediante FAVOR+
Matriz cuadrática explícitaHabitualNo necesaria
Complejidad respecto a la secuenciaCuadráticaLineal con dimensiones fijas
Características aleatoriasNoSí
Proyecciones ortogonales para FAVOR+NoSí
Atención causalSíSí, mediante acumulación
Atención bidireccionalSíSí
Aproximación de la atenciónNo necesariamenteSí
Innovación principalAutoatención completaAtención eficiente mediante kernels

La principal diferencia consiste en la forma de calcular el resultado de atención.

El Transformer convencional calcula explícitamente las relaciones entre posiciones, salvo que utilice implementaciones optimizadas que eviten materializar la matriz.

Performer utiliza características aleatorias para aproximar el resultado y reorganizar las operaciones.

Esto permite reducir el coste asintótico respecto a la longitud de la secuencia.

Performer frente a Linformer

Performer y Linformer buscan conseguir atención eficiente, pero utilizan estrategias diferentes.

Linformer emplea proyecciones aprendidas para reducir la dimensión secuencial de claves y valores.

Performer utiliza características aleatorias para aproximar el kernel de atención.

CaracterísticaLinformerPerformer
EstrategiaProyección de claves y valoresAproximación del kernel
Reducción de dimensión temporalSíNo como operación central
Características aleatoriasNo como mecanismo principalSí
Kernel softmax aproximadoMediante atención proyectadaMediante FAVOR+
Atención causalRequiere adaptación del diseño originalAdmitida mediante sumas acumuladas
Complejidad característica(O(Lk))(O(Lmd))
Principal compromisoCompresión secuencialError de estimación aleatoria

La diferencia conceptual es fundamental.

Linformer reduce el número de posiciones efectivas de claves y valores.

Performer transforma la representación matemática de la similitud para reorganizar el cálculo de atención.

Ambos procedimientos pueden reducir el coste respecto a la atención completa, pero sus errores de aproximación son diferentes.

Performer frente a Reformer, Longformer y BigBird

Las arquitecturas de atención eficiente pueden clasificarse según cómo reducen el coste computacional.

Longformer utiliza conexiones locales y globales.

BigBird combina conexiones locales, aleatorias y globales.

Reformer agrupa representaciones mediante Locality-Sensitive Hashing.

Linformer proyecta claves y valores hacia dimensiones secuenciales menores.

Performer aproxima el kernel de atención mediante características aleatorias.

ArquitecturaTécnica principalTipo de aproximación
LongformerAtención de ventana y globalPatrón disperso
BigBirdConexiones locales, aleatorias y globalesPatrón disperso
ReformerLocality-Sensitive HashingAgrupación por similitud
LinformerProyecciones de baja dimensiónCompresión secuencial
PerformerFAVOR+Aproximación mediante kernels

Estas estrategias no son equivalentes.

Longformer y BigBird reducen las conexiones directas entre posiciones.

Reformer selecciona grupos a partir de similitud aproximada.

Linformer comprime las representaciones sobre el eje de secuencia.

Performer cambia la forma matemática de calcular atención mediante características transformadas.

En particular, FAVOR+ no depende de establecer que la matriz de atención sea dispersa.

Esto permite aproximar interacciones globales sin enumerar individualmente todos los pares de tokens.

¿Performer es lo mismo que FlashAttention?

No.

Aunque ambas tecnologías buscan mejorar la eficiencia de la atención, utilizan enfoques diferentes.

Performer aproxima el mecanismo softmax mediante características aleatorias.

FlashAttention utiliza algoritmos de atención exacta basados en reorganizar las operaciones y administrar eficientemente el movimiento de datos entre niveles de memoria.

En términos generales, FlashAttention conserva el cálculo matemático de softmax salvo diferencias asociadas con la precisión numérica.

Performer introduce una aproximación del kernel.

La diferencia es importante:

  • Performer modifica la forma de estimar las relaciones de atención.
  • FlashAttention optimiza cómo se ejecuta la atención sin utilizar el mismo tipo de aproximación aleatoria.

Por tanto, ambos métodos pueden presentar compromisos diferentes relacionados con precisión, velocidad, memoria y hardware.

Resultados experimentales de Performer

Los investigadores evaluaron Performer en diferentes dominios.

Entre ellos se encontraban modelado del lenguaje, predicción de píxeles y procesamiento de secuencias de proteínas.

Modelado del lenguaje

Performer fue evaluado en tareas de predicción de texto.

Los experimentos mostraron que podía obtener resultados competitivos respecto a diferentes métodos de atención eficiente.

También se investigó la posibilidad de transferir pesos desde modelos Transformer previamente entrenados y posteriormente realizar fine-tuning.

Predicción de secuencias de imágenes

Los investigadores estudiaron aplicaciones donde las imágenes se representan mediante secuencias.

Este enfoque puede producir entradas extensas, especialmente cuando se utilizan representaciones de píxeles.

La atención eficiente permite trabajar con secuencias que pueden resultar costosas para la atención completa.

Modelado de proteínas

Performer también fue utilizado en experimentos relacionados con secuencias de aminoácidos.

Las proteínas pueden representarse como secuencias de símbolos, de forma conceptualmente similar a los tokens de texto.

Los investigadores observaron que determinados mecanismos de atención generalizada podían aprender relaciones útiles en estos datos.

Contextos extensos

Los experimentos incluyeron escenarios donde los Transformers convencionales encontraban limitaciones de memoria.

La atención de complejidad lineal permitió estudiar secuencias más largas bajo condiciones comparables.

Sin embargo, estos resultados pertenecen al contexto experimental de 2020 y 2021.

No deben interpretarse como una demostración de superioridad universal frente a todos los modelos contemporáneos.

Aplicaciones prácticas de Performer

1. Procesamiento de documentos extensos

Performer puede utilizarse como base arquitectónica para sistemas que necesitan analizar textos largos.

Su atención eficiente resulta especialmente interesante cuando la longitud de la entrada representa una limitación computacional.

2. Modelado del lenguaje

La variante causal permite estudiar predicción secuencial de tokens.

Esto proporciona una base para sistemas experimentales de generación de texto.

3. Análisis de secuencias biológicas

Los principios de FAVOR+ pueden aplicarse al procesamiento de secuencias de proteínas y otros datos biológicos.

Estas aplicaciones requieren modelos y conjuntos de entrenamiento especializados.

4. Procesamiento de secuencias de imágenes

Performer puede utilizarse para experimentar con representaciones secuenciales de imágenes.

5. Clasificación de documentos

Un encoder basado en Performer puede adaptarse a clasificación documental mediante entrenamiento supervisado.

6. Investigación sobre atención eficiente

Performer constituye una arquitectura de referencia para estudiar aproximaciones basadas en kernels y características aleatorias.

7. Procesamiento de series temporales

Los mecanismos de atención lineal pueden investigarse en escenarios donde se procesan secuencias temporales extensas.

Su aplicación requiere adaptar y evaluar la arquitectura al dominio.

8. Sistemas con recursos limitados

En determinadas configuraciones, evitar matrices cuadráticas puede reducir el consumo de memoria y facilitar el procesamiento de entradas más largas.

Sin embargo, las ventajas reales deben medirse en la infraestructura utilizada.

Ejemplo práctico: implementar una aproximación de atención positiva con Python

Una manera útil de comprender Performer consiste en implementar una versión educativa de atención basada en características aleatorias positivas.

El siguiente ejemplo utiliza PyTorch.

Es importante destacar que el código demuestra la identidad matemática utilizada por FAVOR+, pero no implementa todas las optimizaciones y garantías del algoritmo original.

En particular, utiliza características gaussianas positivas sin la construcción ortogonal especializada de FAVOR+.

Primero, instalamos PyTorch:

pip install torch

Después, ejecutamos:

import math
import torch
def positive_random_features(x, omega):
# Transformación de características positivas
projection = torch.matmul(x, omega)
norm = 0.5 * torch.sum(
x * x,
dim=-1,
keepdim=True
)
return torch.exp(
projection - norm
) / math.sqrt(omega.shape[-1])
def linear_attention(q, k, v, omega):
q_features = positive_random_features(q, omega)
k_features = positive_random_features(k, omega)
# Estadística agregada K' transpuesta por V
kv = torch.matmul(
k_features.transpose(-2, -1),
v
)
# Suma de características de claves
k_sum = k_features.sum(
dim=-2
)
numerator = torch.matmul(
q_features,
kv
)
denominator = torch.matmul(
q_features,
k_sum.unsqueeze(-1)
)
return numerator / denominator.clamp_min(1e-8)
torch.manual_seed(42)
batch_size = 1
sequence_length = 128
head_dim = 32
num_features = 128
q = torch.randn(
batch_size,
sequence_length,
head_dim
) * 0.2
k = torch.randn(
batch_size,
sequence_length,
head_dim
) * 0.2
v = torch.randn(
batch_size,
sequence_length,
head_dim
)
# Escalado equivalente al factor de softmax
scale = head_dim ** -0.25
q = q * scale
k = k * scale
omega = torch.randn(
head_dim,
num_features
)
output = linear_attention(
q,
k,
v,
omega
)
print("Output shape:", output.shape)

Este programa realiza varias operaciones.

Primero, genera matrices de consultas, claves y valores.

Después, transforma las consultas y claves mediante características aleatorias positivas.

A continuación, calcula estadísticas agregadas que representan el producto entre claves transformadas y valores.

Finalmente, utiliza las consultas transformadas para producir la salida.

El resultado conserva una representación por cada posición de entrada.

La idea central es que no necesitamos construir una matriz completa de atención de dimensiones 128 × 128.

Este ejemplo utiliza números pequeños para facilitar su ejecución.

En una implementación de producción deben utilizarse mecanismos de estabilización, proyecciones apropiadas, control de precisión numérica y pruebas de exactitud.

Comparación con atención softmax exacta

Podemos ampliar el ejemplo anterior para comparar la salida aproximada con la atención completa.

Suponiendo que ya hemos ejecutado el código anterior:

scores = torch.matmul(
q,
k.transpose(-2, -1)
)
exact_weights = torch.softmax(
scores,
dim=-1
)
exact_output = torch.matmul(
exact_weights,
v
)
approx_output = linear_attention(
q,
k,
v,
omega
)
relative_error = (
torch.linalg.norm(
exact_output - approx_output
)
/
torch.linalg.norm(
exact_output
).clamp_min(1e-8)
)
print(
"Relative error:",
relative_error.item()
)

El programa calcula dos salidas.

La primera utiliza softmax completa.

La segunda utiliza la aproximación basada en características aleatorias.

Posteriormente, compara ambas representaciones mediante un error relativo.

En general, la aproximación no será idéntica al resultado exacto.

El error dependerá de las consultas, las claves, los valores y el número de características utilizadas.

Una implementación adecuada de FAVOR+ puede mejorar el comportamiento respecto a este ejemplo educativo mediante características ortogonales y procedimientos de estabilización.

El objetivo de este ejercicio no es demostrar una superioridad determinada, sino comprender cómo puede aproximarse la atención mediante funciones kernel.

Implementaciones de Performer disponibles para Python

La implementación de investigación asociada al artículo original está disponible en el repositorio de Google Research.

El código incluye componentes desarrollados principalmente con JAX y TensorFlow.

También existen implementaciones comunitarias en PyTorch.

Una de las más conocidas es performer-pytorch, desarrollada por Phil Wang, conocido como lucidrains.

Este proyecto proporciona componentes basados en Performer y FAVOR+ que pueden utilizarse para realizar experimentos.

Sin embargo, es importante distinguir entre el código oficial de investigación y las implementaciones comunitarias.

Las interfaces, las optimizaciones, el soporte de hardware y la compatibilidad pueden variar.

Antes de utilizar una implementación en producción conviene comprobar:

  • Versión de Python y PyTorch.
  • Implementación exacta del mecanismo FAVOR+.
  • Soporte de atención causal.
  • Número de características aleatorias.
  • Gestión de máscaras y padding.
  • Estabilidad numérica.
  • Compatibilidad con entrenamiento distribuido.
  • Mantenimiento y pruebas del repositorio.

El ejemplo anterior permite comprender el principio matemático sin depender de interfaces externas sujetas a cambios.

¿Cuántas características aleatorias necesita Performer?

El número de características aleatorias es uno de los hiperparámetros más importantes.

Podemos representarlo mediante (m).

Si utilizamos pocas características, el cálculo será relativamente eficiente, pero la aproximación puede presentar un error considerable.

Si utilizamos más características, la representación puede aproximar mejor el kernel, aunque aumenta el coste de procesamiento.

Este compromiso depende de diferentes factores.

Entre ellos se encuentran la dimensión de las consultas y claves, la distribución de sus valores y la precisión requerida.

También influye la construcción matemática de las características.

Por ejemplo, utilizar proyecciones ortogonales puede ofrecer un comportamiento estadístico diferente al de utilizar únicamente muestras gaussianas independientes.

No existe un único valor de (m) adecuado para todas las aplicaciones.

La selección debe realizarse mediante experimentos que comparen el error de aproximación, el rendimiento de la tarea, la latencia y el consumo de memoria.

Ventajas de la arquitectura Performer

Complejidad lineal de atención

La principal ventaja es que el coste de atención puede crecer linealmente respecto a la longitud de la secuencia.

Reducción del consumo de memoria

El mecanismo evita construir explícitamente matrices cuadráticas de atención.

Aproximación de atención global

Performer no necesita imponer un patrón local o disperso de conexiones para aproximar las relaciones de softmax.

Compatibilidad con atención causal

Las estadísticas acumuladas permiten utilizar mecanismos de atención causal en modelos autorregresivos.

Flexibilidad de funciones kernel

El marco de atención generalizada permite investigar diferentes funciones de similitud.

Garantías teóricas

El artículo original presenta resultados matemáticos relacionados con precisión, convergencia y varianza de determinados estimadores.

Aplicaciones en diferentes dominios

Performer puede utilizarse como base para modelos de lenguaje, secuencias de imágenes y proteínas.

Limitaciones de Performer

A pesar de sus ventajas, Performer presenta varias limitaciones importantes.

La primera es que FAVOR+ aproxima la atención softmax.

Esto significa que puede existir una diferencia entre las salidas obtenidas mediante Performer y las de la atención completa.

Otra limitación es la dependencia del número de características aleatorias.

Una configuración demasiado pequeña puede ofrecer una aproximación insuficiente.

También existen desafíos relacionados con estabilidad numérica.

Las transformaciones exponenciales pueden producir valores extremos si no se utilizan técnicas apropiadas de normalización y estabilización.

Además, el mecanismo requiere operaciones adicionales para generar y aplicar las características aleatorias.

En secuencias cortas, una implementación altamente optimizada de atención completa puede resultar más eficiente.

Otra limitación es que las estadísticas agregadas no conservan necesariamente toda la información individual de las posiciones anteriores.

Esto puede resultar relevante para tareas que necesitan recuperar detalles concretos de contextos extensos.

Finalmente, utilizar Performer no garantiza automáticamente una mayor precisión en tareas de procesamiento del lenguaje natural.

Las mejoras deben evaluarse en condiciones comparables.

Performer y el procesamiento del lenguaje en español

La arquitectura Performer no depende de un idioma determinado.

Su mecanismo de atención puede integrarse en modelos entrenados para inglés, español u otras lenguas.

Sin embargo, la arquitectura no proporciona por sí misma conocimientos lingüísticos.

Para desarrollar un modelo en español es necesario utilizar un tokenizador adecuado y parámetros entrenados sobre datos representativos.

Por ejemplo, podría utilizarse una arquitectura basada en Performer para estudiar clasificación de documentos empresariales largos en español.

También sería posible investigar su utilización en modelos de lenguaje especializados.

No obstante, desarrollar un modelo desde cero puede requerir una cantidad considerable de datos y recursos computacionales.

En proyectos empresariales, conviene comparar el resultado con encoders preentrenados existentes antes de decidir una implementación personalizada.

Performer y la inteligencia artificial generativa

Performer también resulta relevante para la investigación sobre modelos generativos.

Su variante causal permite calcular atención mediante estadísticas acumuladas.

Esto puede reducir el coste asociado a procesar historiales largos.

Sin embargo, la aproximación de atención introduce compromisos.

En determinadas tareas generativas, los detalles específicos de posiciones anteriores pueden resultar importantes.

La calidad de la aproximación determina qué información queda representada en las estadísticas acumuladas.

Por ello, los modelos generativos modernos pueden utilizar diferentes estrategias de atención eficiente.

Estas incluyen atención optimizada exacta, ventanas deslizantes, mecanismos de memoria, atención dispersa y variantes de atención lineal.

Performer constituye una referencia importante para comprender las aproximaciones basadas en kernels.

Sin embargo, no debe asumirse que todos los modelos de contexto largo actuales utilizan FAVOR+ ni que este mecanismo sea universalmente superior.

Importancia de Performer en la evolución de los Transformers

La principal contribución de Performer consiste en demostrar que el mecanismo de atención softmax puede aproximarse mediante características aleatorias positivas y operaciones matriciales reorganizadas.

Esta perspectiva introdujo una alternativa importante a los enfoques basados en atención dispersa.

En Longformer y BigBird, la eficiencia se obtiene restringiendo las relaciones de atención que se calculan directamente.

En Reformer, se utiliza hashing para seleccionar grupos de representaciones similares.

En Linformer, se comprime la dimensión secuencial mediante proyecciones aprendidas.

Performer utiliza una aproximación del kernel de atención para evitar la construcción de matrices cuadráticas.

Esta estrategia permitió avanzar en la investigación sobre atención lineal y funciones kernel.

Además, el trabajo original proporcionó garantías matemáticas relevantes para comprender el comportamiento de las estimaciones.

Su importancia también radica en que permitió investigar mecanismos de similitud alternativos a softmax.

Por tanto, Performer no solamente propuso una técnica de eficiencia.

También amplió las posibilidades de estudiar cómo deben calcularse las relaciones contextuales dentro de los Transformers.

Preguntas frecuentes sobre Performer

¿Qué es Performer en inteligencia artificial?

Performer es una arquitectura Transformer eficiente que utiliza FAVOR+ para aproximar la atención softmax mediante características aleatorias positivas y reducir el coste computacional.

¿Qué significa FAVOR+?

Significa Fast Attention Via Positive Orthogonal Random Features. Es un mecanismo de atención rápida basado en características aleatorias positivas y proyecciones ortogonales.

¿Quién desarrolló Performer?

Performer fue presentada por un equipo de investigación encabezado por Krzysztof Choromanski, Valerii Likhosherstov y David Dohan. El artículo apareció en 2020 y fue publicado en ICLR 2021.

¿Qué son las características aleatorias?

Son representaciones construidas mediante transformaciones que utilizan parámetros aleatorios para aproximar funciones de similitud o kernels.

¿Por qué FAVOR+ utiliza características positivas?

Porque las características positivas contribuyen a mejorar la estabilidad y el comportamiento estadístico de la aproximación del kernel softmax.

¿Qué aportan las proyecciones ortogonales?

Pueden reducir la varianza de determinadas estimaciones y mejorar la calidad de la aproximación.

¿Performer calcula atención exacta?

No. FAVOR+ proporciona una aproximación del mecanismo de atención softmax, aunque el artículo original presenta garantías teóricas para sus estimadores.

¿Por qué Performer tiene complejidad lineal?

Porque puede calcular atención utilizando estadísticas agregadas sin construir una matriz cuadrática entre todas las posiciones.

¿Performer utiliza Transformers?

Sí. Conserva los fundamentos de la arquitectura Transformer y modifica principalmente el cálculo de atención.

¿Cuál es la diferencia entre Performer y Linformer?

Linformer comprime las matrices de claves y valores mediante proyecciones de baja dimensión. Performer aproxima el kernel de atención utilizando características aleatorias.

¿Cuál es la diferencia entre Performer y Reformer?

Reformer utiliza Locality-Sensitive Hashing para agrupar representaciones. Performer utiliza funciones kernel y características aleatorias positivas para aproximar softmax.

¿Performer utiliza atención dispersa?

No como requisito central. Su mecanismo puede aproximar atención global mediante características transformadas sin imponer un patrón disperso fijo.

¿Performer puede utilizar atención causal?

Sí. Puede utilizar estadísticas acumuladas para procesar secuencias sin acceder a tokens futuros.

¿Performer puede procesar documentos extensos?

Sí, su mecanismo de atención está diseñado para mejorar la eficiencia en secuencias largas. Los límites concretos dependen de la configuración y los recursos disponibles.

¿Performer puede trabajar con español?

Sí, siempre que se integre en un modelo entrenado con datos y tokenización adecuados para el idioma.

¿Se puede utilizar Performer con Python?

Sí. Existen implementaciones de investigación y proyectos comunitarios basados en JAX, TensorFlow y PyTorch.

¿Performer es más rápido que FlashAttention?

No existe una respuesta universal. Performer aproxima el cálculo de atención, mientras que FlashAttention utiliza técnicas de ejecución eficiente de atención exacta. La velocidad depende de la implementación, el hardware y la longitud de entrada.

¿Por qué es importante estudiar Performer?

Porque permite comprender cómo los métodos kernel, las características aleatorias y la asociatividad matricial pueden reducir el coste de la atención en modelos Transformer.

Conclusión

La arquitectura Performer representa una contribución fundamental a la investigación sobre Transformers eficientes y procesamiento de secuencias largas.

Su principal innovación consiste en utilizar FAVOR+, un mecanismo de atención basado en características aleatorias positivas y proyecciones ortogonales que permite aproximar el kernel softmax.

Gracias a esta transformación, Performer puede reorganizar las operaciones matriciales y evitar la construcción explícita de matrices cuadráticas de atención.

Esta estrategia permite obtener una complejidad lineal respecto a la longitud de la secuencia cuando las dimensiones internas permanecen fijas.

Además, el mecanismo puede adaptarse tanto a atención bidireccional como causal.

Los experimentos originales demostraron su utilidad en diferentes dominios, incluyendo modelado del lenguaje, imágenes y secuencias de proteínas.

Sin embargo, FAVOR+ continúa siendo una aproximación probabilística, por lo que deben considerarse cuidadosamente el número de características, la estabilidad numérica y la calidad de los resultados.

Para estudiantes, investigadores y desarrolladores de inteligencia artificial, Performer ofrece una lección fundamental:

La eficiencia de un Transformer no depende únicamente de reducir el número de conexiones o comprimir sus matrices, sino también de reformular matemáticamente el mecanismo de atención para calcular sus resultados mediante operaciones más eficientes.

Comprender Performer permite profundizar en los fundamentos de atención lineal, funciones kernel, características aleatorias, aproximaciones probabilísticas y optimización computacional de modelos de aprendizaje profundo.


Referencias y fuentes oficiales

  1. Choromanski, K. et al. (2021). Rethinking Attention with Performers. ICLR 2021. https://arxiv.org/abs/2009.14794
  2. Google Research. Rethinking Attention with Performers. https://research.google/pubs/rethinking-attention-with-performers/
  3. Google Research. Rethinking Attention with Performers — Explicación técnica. https://research.google/blog/rethinking-attention-with-performers/
  4. Google Research. Performer FAVOR+ — Implementación de investigación. https://github.com/google-research/google-research/tree/master/performer
  5. Hugging Face. Rethinking Attention with Performers — Artículo científico. https://huggingface.co/papers/2009.14794
  6. Lucidrains. Performer — Implementación comunitaria en PyTorch. https://github.com/lucidrains/performer-pytorch
  7. Wang, S. et al. (2020). Linformer: Self-Attention with Linear Complexity. https://arxiv.org/abs/2006.04768
  8. Katharopoulos, A. et al. (2020). Transformers are RNNs: Fast Autoregressive Transformers with Linear Attention. https://arxiv.org/abs/2006.16236
  9. Vaswani, A. et al. (2017). Attention Is All You Need. https://arxiv.org/abs/1706.03762

Solicitar Análisis Gratuito
Solicitar Análisis Gratuito

Visibilidad IA

Contact

Menu

(c) 2025-2026  Todos los derechos reservados | Designed by Benelux-IT