Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Reformer

O Reformer é um Transformer eficiente em termos de memória que utiliza atenção com hashing sensível à localidade e camadas reversíveis para processar sequências muito longas.

O Reformer é um Transformer eficiente em termos de memória que Nikita Kitaev, Łukasz Kaiser e Anselm Levskaya, da UC Berkeley e do Google Research, apresentaram em Reformer: The Efficient Transformer na ICLR 2020. Ele aborda os dois custos que limitam o comprimento das sequências. A atenção por hashing sensível à localidade (LSH) substitui a matriz de atenção completa n × n e custa cerca de L log L para uma sequência de comprimento L; as camadas residuais reversíveis armazenam as ativações necessárias para a retropropagação uma única vez para toda a rede, em vez de uma vez por camada. O Google informou que o Reformer processa janelas de contexto de até 1 milhão de palavras em um único acelerador com 16 GB de memória e que processou o romance inteiro Crime e Castigo como um único exemplo de treinamento.

Atenção LSH#

Após o softmax, a atenção de cada consulta é dominada pelas poucas chaves mais semelhantes a ela, por isso o Reformer procura apenas essas chaves. Ele usa uma única projeção compartilhada para consultas e chaves e aplica hashing a cada vetor com hashing sensível à localidade angular: multiplica por uma matriz aleatória R e usa como bucket a posição do maior valor em [xR, −xR], de modo que vetores que apontam em direções semelhantes geralmente ficam no mesmo bucket. Em seguida, os tokens são ordenados por bucket, a sequência ordenada é dividida em blocos iguais e cada token presta atenção apenas ao próprio bloco e ao bloco anterior. Várias rodadas de hashing são executadas em paralelo para capturar pares semelhantes que uma única rodada separaria.

LSH é um método clássico de busca vetorial aproximada de vizinhos mais próximos: encontra a maioria dos k vizinhos mais próximos de uma consulta por uma fração do custo de uma busca exata. A etapa de agrupamento em buckets é curta o bastante para ser executada isoladamente:

import torch

torch.manual_seed(0)
dim, n_buckets, rounds = 64, 16, 1000
query = torch.randn(dim)
vectors = {"query": query, "near": query + 0.3 * torch.randn(dim), "far": torch.randn(dim)}

# Angular LSH as in Reformer: random projection R, then bucket = argmax over [xR, -xR]
R = torch.randn(rounds, dim, n_buckets // 2)
buckets = {}
for name, x in vectors.items():
    proj = torch.einsum("d,rdb->rb", x, R)
    buckets[name] = torch.cat([proj, -proj], dim=-1).argmax(dim=-1)

for name in ("near", "far"):
    cosine = torch.cosine_similarity(query, vectors[name], dim=0)
    shared = (buckets[name] == buckets["query"]).float().mean()
    print(f"{name}: cosine similarity {cosine:.2f}, same bucket as the query in {shared:.0%} of rounds")

O vetor próximo, com similaridade de cosseno de 0,96 em relação à consulta, compartilha o bucket em 72% das 1.000 rodadas; o vetor não relacionado, com 0,04, compartilha o bucket em 9%. Portanto, a atenção restrita a um bucket mantém a maioria dos pares relevantes.

Camadas reversíveis e divisão em blocos#

Uma rede neural padrão mantém as ativações de todas as camadas para a passagem de volta, por isso a memória aumenta tanto com a profundidade quanto com o comprimento. O Reformer adapta as redes residuais reversíveis (RevNets): divide as ativações em duas metades e atualiza cada metade com uma função da outra.

Durante a passagem de volta, cada camada recupera suas entradas a partir das saídas: x2 = y2 − FeedForward(y1) e, em seguida, x1 = y1 − Attention(x2). Assim, apenas as ativações finais são armazenadas e cada camada é recalculada uma vez. O checkpointing de gradientes faz uma troca semelhante: armazena ativações em alguns checkpoints e recalcula as camadas entre eles. O Reformer também executa suas camadas feed-forward em blocos de posições, porque a camada oculta delas é várias vezes mais larga que o modelo. A memória das ativações é o que limita o tamanho do lote ao treinar o Ultralytics YOLO26: com batch=-1, o AutoBatch mede a memória da GPU para vários tamanhos de lote, ajusta uma linha reta e escolhe o lote que, segundo a previsão, ocupará 60% da memória livre.

Resultados e implementações#

O Reformer igualou os Transformers padrão em texto ao nível de caracteres do enwik8 e na geração de imagens pixel a pixel no ImageNet-64, usando muito menos memória e executando mais rapidamente em sequências longas. A biblioteca Hugging Face Transformers implementa o modelo como ReformerModel, com checkpoints disponibilizados e treinados no enwik8 e em Crime e Castigo.

  • Longformer: Define o padrão de atenção antecipadamente: uma janela deslizante em torno de cada token, além de alguns tokens globais.
  • Atenção esparsa: Família de métodos que pontuam apenas alguns pares de tokens. A atenção LSH é um método dessa família baseado no conteúdo.
  • Atenção linear: Substitui o softmax por um mapa de características de kernel para que a atenção possa ser calculada em tempo linear.
  • Atenção Flash: Calcula a atenção exata em blocos na memória interna da GPU sem armazenar a matriz de pontuações, de modo que a memória cresce linearmente enquanto o número de pontuações permanece quadrático.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina