Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Reformer

Reformer ist ein speichereffizienter Transformer, der Locality-Sensitive-Hashing-Attention und reversible Schichten nutzt, um sehr lange Sequenzen zu verarbeiten.

Der Reformer ist ein speichereffizienter Transformer, den Nikita Kitaev, Łukasz Kaiser und Anselm Levskaya von UC Berkeley und Google Research in Reformer: Der effiziente Transformer auf der ICLR 2020 vorstellten. Er geht zwei Kostenfaktoren an, die die Sequenzlänge begrenzen. Die Attention mit Locality-Sensitive Hashing (LSH) ersetzt die vollständige n × n-Attention-Matrix und verursacht bei einer Sequenz der Länge L Kosten von etwa L log L. Umkehrbare Residual-Layer speichern die für die Backpropagation benötigten Aktivierungen einmal für das gesamte Netzwerk statt einmal pro Layer. Google berichtete, dass der Reformer Kontextfenster mit bis zu 1 Million Wörtern auf einem einzelnen Beschleuniger mit 16 GB Speicher verarbeiten kann. Außerdem verarbeitete er den gesamten Roman Schuld und Sühne als einzelnes Trainingsbeispiel.

LSH-Attention#

Nach der Softmax-Funktion wird die Attention jeder Query von den wenigen Keys dominiert, die ihr am ähnlichsten sind. Deshalb sucht der Reformer nur nach diesen Keys. Er verwendet eine gemeinsame Projektion für Queries und Keys und hasht jeden Vektor mithilfe von winkelbasiertem Locality-Sensitive Hashing: Er multipliziert ihn mit einer Zufallsmatrix R und nimmt die Position des größten Werts in [xR, −xR] als Bucket. Vektoren, die in ähnliche Richtungen zeigen, landen dadurch meist im selben Bucket. Anschließend werden die Tokens nach Buckets sortiert, die sortierte Sequenz in gleich große Abschnitte aufgeteilt und jedes Token berücksichtigt nur den eigenen Abschnitt sowie den vorherigen. Mehrere Hashing-Runden laufen parallel, um ähnliche Paare zu erfassen, die in einer einzelnen Runde getrennt werden.

LSH ist ein klassisches Verfahren für die approximative Vektorsuche nach nächsten Nachbarn: Es findet die meisten k-nächsten Nachbarn einer Query zu einem Bruchteil der Kosten einer exakten Suche. Der Bucketing-Schritt ist kurz genug, um ihn allein auszuführen:

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")

Der nahe Vektor mit einer Kosinusähnlichkeit von 0,96 zur Query liegt in 72 % der 1.000 Runden im selben Bucket. Der nicht verwandte Vektor mit einem Wert von 0,04 landet in 9 % der Runden im selben Bucket. Auf einen Bucket beschränkte Attention behält daher die meisten relevanten Paare bei.

Umkehrbare Layer und Aufteilung in Abschnitte#

Ein standardmäßiges neuronales Netz speichert für den Rückwärtsdurchlauf die Aktivierungen jedes Layers. Daher wächst der Speicherbedarf sowohl mit der Tiefe als auch mit der Länge. Der Reformer passt umkehrbare Residualnetzwerke (RevNets) an: Er teilt die Aktivierungen in zwei Hälften auf und aktualisiert jede Hälfte mithilfe einer Funktion der jeweils anderen.

Während des Rückwärtsdurchlaufs stellt jeder Layer seine Eingaben anhand seiner Ausgaben wieder her: x2 = y2 − FeedForward(y1) und anschließend x1 = y1 − Attention(x2). Dadurch werden nur die abschließenden Aktivierungen gespeichert und jeder Layer wird einmal neu berechnet. Gradienten-Checkpointing geht ähnlich vor: Es speichert Aktivierungen an einigen Checkpoints und berechnet die Layer dazwischen erneut. Der Reformer führt seine Feed-Forward-Layer außerdem abschnittsweise über Positionen aus, da ihr verborgener Layer um ein Mehrfaches breiter ist als das Modell. Der Aktivierungsspeicher begrenzt die Batchgröße beim Training von Ultralytics YOLO26: Mit batch=-1 misst AutoBatch den GPU-Speicherbedarf bei mehreren Batchgrößen, passt eine Gerade an und wählt die Batchgröße, für die eine Auslastung von 60 % des freien Speichers vorhergesagt wird.

Ergebnisse und Implementierungen#

Der Reformer erreichte bei Zeichentexten aus enwik8 und bei der pixelweisen Bildgenerierung mit ImageNet-64 dieselbe Leistung wie standardmäßige Transformer. Dabei benötigte er deutlich weniger Speicher und war bei langen Sequenzen schneller. Hugging Face Transformers implementiert ihn als ReformerModel und stellt Checkpoints bereit, die mit enwik8 und Schuld und Sühne trainiert wurden.

  • Longformer: Legt das Attention-Muster im Voraus fest: ein gleitendes Fenster um jedes Token sowie einige globale Tokens.
  • Sparse Attention: Die Familie von Verfahren, die nur einige Token-Paare bewerten. LSH-Attention gehört zu den inhaltsbasierten Verfahren dieser Familie.
  • Lineare Attention: Ersetzt die Softmax-Funktion durch eine Kernel-Merkmalsabbildung, sodass sich Attention in linearer Zeit berechnen lässt.
  • Flash Attention: Berechnet exakte Attention in Kacheln des GPU-On-Chip-Speichers, ohne die Bewertungsmatrix zu speichern. Dadurch wächst der Speicherbedarf linear, während die Anzahl der Bewertungen quadratisch bleibt.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens