Warum Vision Transformer (ViT) Register-Token brauchen
(openreview.net)- Token mit hoher Norm in ViT-Feature-Maps treten vor allem in Hintergrundbereichen mit geringem Informationsgehalt auf und werden so interpretiert, dass Patch-Token wie ein wiederverwendeter Speicher für interne Berechnungen dienen
- Die Lösung besteht darin, dem Eingabesequenz neben den Bild-Patches separate Register-Token hinzuzufügen, um die Rolle interner Berechnungen auf dedizierte Token auszulagern
- Sowohl bei überwachten als auch bei selbstüberwachten ViTs nehmen Artefakte ab, und Feature-Maps sowie attention maps werden glatter, was für nachgelagerte visuelle Aufgaben vorteilhaft ist
- Verbesserungen bei object discovery und dense prediction wurden berichtet, aber bei OpenCLIP sank die Leistung bei der object localization leicht, weshalb die Formulierung „Verbesserung in allen Modellen“ korrigiert wurde
- Das Hinzufügen von 4 bis 16 Register-Token verursacht 2–6 % zusätzliche Rechenkosten, und mehr Token führen bei dichten Aufgaben nicht immer zu besserer Leistung
Artefakte in ViT-Feature-Maps
- Vision Transformer werden zwar als leistungsstarke Werkzeuge für das Lernen visueller Repräsentationen eingesetzt, doch in den Feature-Maps überwachter und selbstüberwachter ViTs wurden Artefakte festgestellt
- Diese Artefakte zeigen sich als Token mit hoher Norm während der Inferenz
- Sie treten vor allem in Hintergrundbereichen des Bildes mit geringem Informationsgehalt auf
- Es scheint, als würde das Netzwerk diese Token für interne Berechnungen wiederverwenden
- Diese Token stammen aus Hintergrund-Patches, die den benachbarten Patches ähneln, enthalten aber wenig lokale Patch-Information und vergleichsweise mehr globale Bildinformation
- Bei DINOv2 und anderen ViTs können eine geringere räumliche Auflösung und Genauigkeit der attention maps die Leistung bei nachgelagerter object discovery und localization beeinträchtigen
Der Ansatz mit Register-Token
- Die vorgeschlagene Lösung besteht darin, der Eingabesequenz des Vision Transformer zusätzlich zu den Bild-Patches separate Register-Token hinzuzufügen
- Register sind wie der CLS token von den Bild-Patch-Token getrennt, werden aber nicht direkt für die Berechnung des loss verwendet
- Ziel ist es, zu verhindern, dass vorhandene Patch-Token wie ein „Speicher“ für interne Berechnungen genutzt werden, indem diese Rolle von dedizierten Token übernommen wird
- Dieser Ansatz steht zwar in Beziehung zu früheren Memory Transformer, doch die Analyse der Feature-Artefakte und deren Behebung durch neue Token ist spezifisch für die Untersuchung in dieser Arbeit
Veränderungen bei Feature-Maps und nachgelagerten Aufgaben
- Es wird berichtet, dass durch das Hinzufügen von Registern diese Artefakte sowohl in überwachten als auch in selbstüberwachten Modellen entfernt werden
- Feature-Maps und attention maps werden glatter, was für nachgelagerte visuelle Verarbeitung vorteilhaft ist
- Bei dense visual prediction task selbstüberwachter visueller Modelle wurde ein neuer state of the art erreicht
- Auch bei größeren Modellen wird dadurch der Einsatz von object-discovery-Methoden möglich
- Bei DINOv2 und DeiT-III steigt die Leistung bei object discovery, während die Leistung bei Aufgaben auf Bildebene weitgehend erhalten bleibt
Modellspezifische Ausnahmen und weitere Analyse
- Bei OpenCLIP verbesserten zusätzliche Register die Ergebnisse der object localization nicht; in den Tabellen ist sogar ein leichter Leistungsrückgang zu sehen
- In ihrer Antwort räumten die Autoren ein, dass die Aussage „Die object-discovery-Leistung verbessert sich in allen Modellen“ nicht durch die Zahlen gestützt wird
- Dieser Punkt wurde in Abschnitt 3.3 korrigiert
- Bei OpenCLIP zeigt Figure 7 zwar eine sinkende Norm, doch dies führt nicht zu einer Verbesserung der object localization in Table 3; diese Inkonsistenz wird diskutiert
- In der LOST-Evaluierung wird je Modell das beste Embedding aus keys, queries und values ausgewählt
- Bei CLIP waren values am besten; Artefakte zeigen sich in keys oder queries, aber nicht in values, was mit Table 3 und der qualitativen Analyse übereinstimmt
- Bei MAE scheinen dieselben „outlier patches“ nicht aufzutreten
- Das könnte daran liegen, dass MAE nur mit einem lokalen loss trainiert wird und daher keine oder weniger globale Information sammeln muss
- Die linear-probing-ImageNet-Klassifikationsgenauigkeit von MAE-ViT-Large liegt bei 75 % und damit unter anderen SSL-Methoden
Leistung, Kosten und Grenzen
- Register sind ein einfacher Ansatz, erhöhen aber wegen der zusätzlichen Token den Rechenaufwand
- Beim Hinzufügen von 4 bis 16 Register-Token wurde ein Anstieg des Rechenaufwands um 2–6 % berichtet
- Eine größere Zahl an Registern führt nicht immer zu Verbesserungen bei dichten Aufgaben
- Beim Wechsel von 0 auf 1 Register wird das Artefakt entfernt und segmentation sowie depth prediction verbessern sich
- Nach dem ersten Register bleiben die Feature-Maps bereits sauber, sodass zusätzliche Register die Leistung bei segmentation und depth prediction nicht stark weiter erhöhen
- Die Klassifikationsleistung tendierte jedoch dazu, sich mit mehr Registern weiter zu verbessern, auch wenn dafür noch keine klare Intuition vorliegt
- Im NYU depth dataset steigt die RMSE leicht an, wenn die Zahl der Register von 8 auf 16 erhöht wird
- Durch die längere Sequenz könnten andere optimale hyperparameter erforderlich geworden sein
- Die RMSE-Differenz von 0,03 zwischen 8 und 16 ist zudem klein im Vergleich zur Differenz von 0,1 zwischen 0 und 1 und könnte daher auch bloß Rauschen sein
Annahme bei OpenReview und Diskussionspunkte in den Reviews
- Die Entscheidung bei OpenReview lautet Accept (oral)
- Im Meta-Review vergaben alle vier Reviewer eine 8 und würdigten den technischen Beitrag der Arbeit
- Die Reviewer äußerten Bedenken zu Leistungsinkonsistenzen, dem Zusammenhang zwischen dataset bias und SSL-Modellen, der Wahl der Optimierungseinstellungen sowie dem Einfluss von gradient clipping
- Die Autoren ergänzten im Rebuttal zusätzliche Experimente und Analysen im Appendix
- In der späteren Diskussion wurde die Analyse interner Mechanismen vertieft, etwa dazu, ob Register das Verhalten der outlier übernehmen, ob Bild-Token wieder lokaler werden und wie sich die Norm des CLS token verändert
1 Kommentare
Meinungen auf Hacker News
Laut dem Paper ist ein Register ein zusätzliches, lernbares Token, das während des Trainings eines Vision-Transformer-Modells an die Eingabesequenz angehängt wird.
Es wird nach der Patch-Embedding-Schicht ähnlich wie das [CLS]-Token als lernbarer Wert hinzugefügt; am Ende des Vision Transformer werden die Register-Tokens verworfen, und nur das [CLS]-Token sowie die Patch-Tokens werden als Bildrepräsentation verwendet.
Dieses Token gibt dem Modell während des Forward Pass einen Bereich, in dem es globale Informationen speichern, verarbeiten und abrufen kann, sodass es Patch-Tokens nicht künstlich für diesen Zweck zweckentfremden muss.
Dadurch verschwinden Artefakte und Ausreißer-Tokens mit hoher Norm in den Feature Maps des trainierten Vision Transformer, die Feature Maps werden glatter, und sowohl die Dense-Prediction-Leistung als auch die unüberwachte Objekterkennung verbessern sich.
Da die Inferenzkosten nur um 2 % steigen, die ViT-Leistung aber deutlich besser wird, wirkt das wie ein sauberes Ergebnis, das fast einem kostenlosen Mittagessen gleichkommt.
Probabilistische reguläre Ausdrücke sind schon eine Sache, aber das hier ist mathematische Zügellosigkeit auf einem völlig anderen Niveau.
Trotzdem ist es wirklich erstaunlich, dass es so funktioniert.
Klingt ähnlich wie ein Attention Sink oder ein Pause-Token.
Ich frage mich, ob jemand untersucht hat, die Roh-Ausgabe eines Passes unverändert als nächste Eingabe weiterzugeben.
Scheint verwandt zu sein: "Let's Think Dot by Dot: Hidden Computation in Transformer Language Models" https://arxiv.org/abs/2404.15758
Dieses Paper geht davon aus, dass unklar ist, ob die Leistungssteigerung von Sprachmodellen durch Chain-of-Thought auf menschenähnliche Aufgabenzerlegung zurückgeht oder einfach auf die zusätzliche Rechenarbeit durch zusätzliche Tokens.
Es zeigte, dass Transformer schwierige algorithmische Aufgaben, die sie ohne Zwischentokens nicht lösen konnten, schon mit bedeutungslosen Fülltokens wie etwa
......lösen können; allerdings sei konkretes und engmaschiges Supervision nötig, um den Einsatz solcher Fülltokens zu trainieren.Daher frage ich mich, ob spezielle Rechen-/Register-Tokens auch bei Text-LLMs Vorteile bringen würden.
Weitere Diskussion: https://news.ycombinator.com/item?id=40182695, https://www.reddit.com/r/LocalLLaMA/comments/1cf2w5a/transfo...
In den letzten Jahren habe ich im Bereich Vision und multimodale Erkennung Dutzende, vielleicht über 100 Papers und Ideen ausprobiert, und dies war einer der seltenen Fälle, in denen alles gut funktionierte.
Dieses Modell zum Beispiel wird mit 4 Register-Tokens und einem Matryoshka-artigen Loss trainiert und erzeugt sehr kleine 64-dimensionale Embeddings, die für Leute nützlich sein könnten, die nach einer CLIP-Alternative suchen: https://huggingface.co/unum-cloud/uform3-image-text-english-...
Ich habe es auf der ICLR gesehen; es war eines der besten Papers dieses Jahres, und das war auch in der Postersession klar zu erkennen.
Glückwunsch an die Autoren.
Ich nutze DinoV2 seit einigen Monaten und habe auch ein Modell mit 4 Register-Tokens zusätzlich zu [CLS] + Patch-Tokens ausprobiert.
Weil mehrere Embedding-Tokens aus dem bisherigen Modell ohne Register bereits Teil der Lösung waren und das [CLS]-Token zwischen dem 0-Register- und dem 4-Register-Modell nicht ausgerichtet ist, habe ich das neue Register-Modell nicht übernommen.
Es wäre schön, wenn [CLS] und Patch-Tokens zwischen den beiden Modellen irgendwie ausgerichtet wären.
Sieht aus wie ein Attention Sink für Vision-Modelle