KI-Modelle und Plattformen

EfficientViT: Speicher-Effizienter Vision-Transformer für Hochauflösende Computer-Vision

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufügen

Aufgrund ihrer hohen Modellkapazität haben Vision-Transformer-Modelle in letzter Zeit großen Erfolg gehabt. Trotz ihrer Leistung haben Vision-Transformer-Modelle einen großen Nachteil: ihre bemerkenswerte Rechenleistung geht mit hohen Rechenkosten einher, und das ist der Grund, warum Vision-Transformer nicht die erste Wahl für Echtzeit-Anwendungen sind. Um dieses Problem zu lösen, haben eine Gruppe von Entwicklern EfficientViT entwickelt, eine Familie von Hochgeschwindigkeits-Vision-Transformern.

Bei der Arbeit an EfficientViT haben die Entwickler festgestellt, dass die Geschwindigkeit der aktuellen Transformer-Modelle oft durch ineffiziente Speicheroperationen begrenzt ist, insbesondere Element-weise Funktionen und Tensor-Neuformulierung in MHSA oder Multi-Head-Self-Attention-Netzwerk. Um diese ineffizienten Speicheroperationen zu lösen, haben die EfficientViT-Entwickler einen neuen Baustein mit einer Sandwich-Struktur entwickelt, d. h. das EfficientViT-Modell verwendet ein einzelnes speicherbegrenztes Multi-Head-Self-Attention-Netzwerk zwischen effizienten FFN-Schichten, was dazu beiträgt, die Speichereffizienz zu verbessern und die gesamte Kanalkommunikation zu erhöhen. Darüber hinaus hat das Modell festgestellt, dass Aufmerksamkeitskarten oft hohe Ähnlichkeiten über Köpfe hinweg aufweisen, was zu berechnungstechnischer Redundanz führt. Um das Redundanzproblem zu lösen, präsentiert das EfficientViT-Modell ein kaschierendes Gruppenaufmerksamkeitsmodul, das Aufmerksamkeitsköpfe mit verschiedenen Teilen des vollständigen Merkmals füttert. Die Methode hilft nicht nur dabei, Rechenkosten zu sparen, sondern verbessert auch die Aufmerksamkeitsvielfalt des Modells.

Umfassende Experimente, die am EfficientViT-Modell in verschiedenen Szenarien durchgeführt wurden, zeigen, dass EfficientViT bestehende effiziente Modelle für Computer-Vision übertrifft, während es einen guten Kompromiss zwischen Genauigkeit und Geschwindigkeit schlägt. Lassen Sie uns also einen tieferen Einblick in das EfficientViT-Modell werfen.

Eine Einführung in Vision-Transformer und EfficientViT

Vision-Transformer bleiben eines der beliebtesten Frameworks in der Computer-Vision-Industrie, da sie eine überlegene Leistung und hohe Rechenfähigkeiten bieten. Allerdings steigen die Betriebskosten und die Rechenüberhead mit der ständig verbesserten Genauigkeit und Leistung der Vision-Transformer-Modelle. Zum Beispiel verwenden aktuelle Modelle, die auf ImageNet-Datensätzen wie SwinV2 und V-MoE State-of-the-Art-Leistung bieten, 3B und 14,7B Parameter. Die enorme Größe dieser Modelle, kombiniert mit den Rechenkosten und Anforderungen, machen sie praktisch unsuitable für Echtzeit-Geräte und Anwendungen.

Das EfficientNet-Modell zielt darauf ab, zu erforschen, wie die Leistung von Vision-Transformer-Modellen gesteigert werden kann und welche Prinzipien hinter der Gestaltung effizienter und effektiver Transformer-basierter Framework-Architekturen stecken. Das EfficientViT-Modell basiert auf bestehenden Vision-Transformer-Frameworks wie Swim und DeiT und analysiert drei wesentliche Faktoren, die die Interferenzgeschwindigkeit der Modelle beeinflussen, einschließlich Rechenredundanz, Speicherzugriff und Parameterverwendung. Darüber hinaus stellt das Modell fest, dass die Geschwindigkeit von Vision-Transformer-Modellen speicherbegrenzt ist, was bedeutet, dass die vollständige Nutzung der Rechenleistung in CPUs/GPUs durch Speicherzugriffsverzögerungen eingeschränkt wird, was sich negativ auf die Laufzeitgeschwindigkeit der Transformer auswirkt. Elementweise Funktionen und Tensor-Neuformulierung in MHSA oder Multi-Head-Self-Attention-Netzwerk sind die ineffizientesten Operationen. Das Modell stellt außerdem fest, dass die optimale Anpassung des Verhältnisses zwischen FFN (Feed-Forward-Netzwerk) und MHSA dazu beitragen kann, die Speicherzugriffszeit erheblich zu reduzieren, ohne die Leistung zu beeinträchtigen. Allerdings stellt das Modell auch fest, dass es eine Redundanz in den Aufmerksamkeitskarten gibt, die durch die Neigung der Aufmerksamkeitsköpfe, ähnliche lineare Projektionen zu erlernen, verursacht wird.

Das Modell ist das endgültige Ergebnis der Forschungsarbeiten für das EfficientViT. Das Modell verfügt über einen neuen Baustein mit einer Sandwich-Struktur, der ein einzelnes speicherbegrenztes MHSA-Schicht zwischen den FFN-Schichten verwendet. Der Ansatz reduziert nicht nur die Zeit, die für die Ausführung von speicherbegrenzten Operationen in MHSA benötigt wird, sondern macht den gesamten Prozess auch speichereffizienter, indem er mehr FFN-Schichten ermöglicht, die die Kommunikation zwischen verschiedenen Kanälen erleichtern. Das Modell verwendet auch ein neues CGA- oder kaschierendes Gruppenaufmerksamkeitsmodul, das darauf abzielt, die Berechnungen effizienter zu machen, indem es die Rechenredundanz nicht nur in den Aufmerksamkeitsköpfen, sondern auch die Tiefe des Netzwerks erhöht, was die Modellkapazität erhöht. Schließlich erweitert das Modell die Kanalbreite der kritischen Netzwerkkomponenten, einschließlich Wertprojektionen, während es die Kanalbreite der weniger wichtigen Komponenten reduziert, um die Parameter im Framework umzuverteilen.

Wie aus dem oben gezeigten Bild hervorgeht, führt das EfficientViT-Framework besser als aktuelle State-of-the-Art-CNN- und ViT-Modelle in Bezug auf Genauigkeit und Geschwindigkeit. Aber wie hat das EfficientViT-Framework es geschafft, einige der aktuellen State-of-the-Art-Frameworks zu überbieten? Lassen Sie uns das herausfinden.

EfficientViT: Verbesserung der Effizienz von Vision-Transformern

Das EfficientViT-Modell zielt darauf ab, die Effizienz der bestehenden Vision-Transformer-Modelle aus drei Perspektiven zu verbessern:

  1. Rechenredundanz.
  2. Speicherzugriff.
  3. Parameterverwendung.

Das Modell zielt darauf ab, herauszufinden, wie diese Parameter die Effizienz von Vision-Transformer-Modellen beeinflussen und wie sie gelöst werden können, um bessere Ergebnisse mit besserer Effizienz zu erzielen. Lassen Sie uns sie genauer betrachten.

Speicherzugriff und Effizienz

Einer der wesentlichen Faktoren, die die Geschwindigkeit eines Modells beeinflussen, ist der Speicherzugriffs-Overhead oder MAO. Wie aus dem Bild unten hervorgeht, sind mehrere Operatoren in Transformer, einschließlich Element-weise Addition, Normalisierung und häufige Tensor-Neuformulierung, speicherineffiziente Operationen, da sie den Zugriff auf verschiedene Speichereinheiten erfordern, was ein zeitaufwändiger Prozess ist.

Obwohl es einige bestehende Methoden gibt, die die Standard-Softmax-Self-Attention-Berechnungen vereinfachen können, wie z. B. Low-Rank-Approximation und Sparse-Attention, bieten sie oft nur begrenzte Beschleunigung und verringern die Genauigkeit.

Andererseits zielt das EfficientViT-Framework darauf ab, die Speicherzugriffskosten zu reduzieren, indem es die Anzahl der speicherineffizienten Schichten im Framework reduziert. Das Modell skaliert das DeiT-T und Swin-T auf kleine Subnetzwerke mit einer höheren Interferenzdurchsatzrate von 1,25X und 1,5X und vergleicht die Leistung dieser Subnetzwerke mit den Proportionen der MHSA-Schichten. Wie aus dem Bild unten hervorgeht, verbessert der Ansatz die Genauigkeit der MHSA-Schichten um etwa 20 bis 40 %.

Berechnungseffizienz

MHSA-Schichten neigen dazu, die Eingabesequenz in mehrere Unterräume oder Köpfe zu einbetten und die Aufmerksamkeitskarten einzeln zu berechnen, ein Ansatz, der die Leistung verbessert. Allerdings sind Aufmerksamkeitskarten nicht rechenbillig, und um die Rechenkosten zu untersuchen, erforscht das EfficientViT-Modell, wie die redundante Aufmerksamkeit in kleineren ViT-Modellen reduziert werden kann. Das Modell misst die maximale Kosinus-Ähnlichkeit jedes Kopfes und der verbleibenden Köpfe in jedem Block, indem es die Breite herunterskalierte DeiT-T- und Swin-T-Modelle mit 1,25-facher Inferenzbeschleunigung trainiert. Wie aus dem Bild unten hervorgeht, gibt es eine hohe Anzahl von Ähnlichkeiten zwischen den Aufmerksamkeitsköpfen, was darauf hindeutet, dass das Modell Rechenredundanz aufweist, da viele Köpfe dazu neigen, ähnliche Projektionen des vollständigen Merkmals zu erlernen.

Um die Köpfe dazu zu bringen, unterschiedliche Muster zu erlernen, wendet das Modell eine intuitive Lösung an, bei der jeder Kopf nur einen Teil des vollständigen Merkmals erhält, eine Technik, die der Idee der Gruppenkonvolution ähnelt. Das Modell trainiert verschiedene Aspekte der herunterskalierten Modelle, die modifizierte MHSA-Schichten aufweisen.

Parameter-Effizienz

Durchschnittliche ViT-Modelle erben ihre Designstrategien wie die Verwendung einer äquivalenten Breite für Projektionen, die Festlegung der Expansionsrate auf 4 in FFN und die Erhöhung der Köpfe über Stufen von NLP-Transformern. Die Konfigurationen dieser Komponenten müssen für leichte Module sorgfältig neu entworfen werden. Das EfficientViT-Modell setzt Taylor-Struktur-Pruning ein, um die wesentlichen Komponenten in den Swin-T- und DeiT-T-Schichten automatisch zu finden und erforscht die zugrunde liegenden Parameterzuweisungsprinzipien. Unter bestimmten Ressourcenbeschränkungen entfernen die Pruning-Methoden unwichtige Kanäle und behalten die kritischen Kanäle, um die höchstmögliche Genauigkeit zu gewährleisten. Die Abbildung unten vergleicht das Verhältnis der Kanäle zu den Eingabedarstellungen vor und nach dem Pruning im Swin-T-Framework. Es wurde festgestellt, dass: Baseline-Genauigkeit: 79,1 %; geschnittene Genauigkeit: 76,5 %.

Die obige Abbildung zeigt, dass die ersten beiden Stufen des Frameworks mehr Dimensionen erhalten, während die letzten beiden Stufen weniger Dimensionen erhalten. Es könnte bedeuten, dass eine typische Kanalkonfiguration, die die Kanalbreite nach jeder Stufe verdoppelt oder äquivalente Kanäle für alle Blöcke verwendet, in den letzten Blöcken zu erheblicher Redundanz führen kann.

Effizienter Vision-Transformer: Architektur

Basierend auf den Erkenntnissen, die während der obigen Analyse gewonnen wurden, haben die Entwickler an der Erstellung eines neuen hierarchischen Modells gearbeitet, das schnelle Interferenzgeschwindigkeiten bietet, das EfficientViT-Modell. Lassen Sie uns einen detaillierten Blick auf die Struktur des EfficientViT-Frameworks werfen.

Bausteine des EfficientViT-Frameworks

Der Baustein für das effizientere Vision-Transformer-Netzwerk ist in der folgenden Abbildung dargestellt.

Das Framework besteht aus einem kaschierten Gruppenaufmerksamkeitsmodul, einer speichereffizienten Sandwich-Struktur und einer Parameterreallokationsstrategie, die darauf abzielen, die Effizienz des Modells in Bezug auf Berechnung, Speicher und Parameter zu verbessern. Lassen Sie uns sie genauer betrachten.

Sandwich-Struktur

Das Modell verwendet eine neue Sandwich-Struktur, um einen effizienteren Speicherblock für das Framework zu erstellen. Die Sandwich-Struktur verwendet weniger speicherbegrenzte Selbstaufmerksamkeitsschichten und nutzt speichereffizientere Feed-Forward-Netzwerke für die Kanalkommunikation. Um genauer zu sein, wendet das Modell eine einzelne Selbstaufmerksamkeitsschicht für räumliches Mischen an, die zwischen den FFN-Schichten eingeschlossen ist. Der Ansatz hilft nicht nur dabei, die Speicherzeit aufgrund von Selbstaufmerksamkeitsschichten zu reduzieren, sondern ermöglicht auch eine effektive Kommunikation zwischen verschiedenen Kanälen im Netzwerk dank der Verwendung von FFN-Schichten. Das Modell wendet auch eine zusätzliche Interaktionstoken-Schicht vor jeder Feed-Forward-Netzwerkschicht mit einem DWConv oder Deceptiven Konvolution an und erhöht die Modellkapazität, indem es induktive Voreingenommenheit der lokalen Strukturinformationen einführt.

Kaschierte Gruppenaufmerksamkeit

Eines der Hauptprobleme von MHSA-Schichten ist die Redundanz in den Aufmerksamkeitsköpfen, die die Berechnungen ineffizienter macht. Um dieses Problem zu lösen, schlägt das Modell ein kaschierendes Gruppenaufmerksamkeitsmodul für Vision-Transformer vor, ein neues Aufmerksamkeitsmodul, das von Gruppenkonvolutionen in effizienten CNNs inspiriert ist. In diesem Ansatz erhält jeder Kopf nur einen Teil des vollständigen Merkmals, was die Aufmerksamkeitsberechnung explizit über die Köpfe hinweg zerlegt. Das Teilen der Merkmale anstelle des gesamten Merkmals für jeden Kopf spart Rechenkosten und macht den Prozess effizienter, und das Modell arbeitet weiter daran, die Genauigkeit und Kapazität des Modells zu verbessern, indem es die Schichten dazu bringt, Projektionen auf Merkmale mit reichhaltigeren Informationen zu erlernen.

Parameter-Reallokation

Um die Effizienz der Parameter zu verbessern, realloziert das Modell die Parameter im Netzwerk, indem es die Kanalbreite der kritischen Netzwerkkomponenten erweitert, während es die Kanalbreite der weniger wichtigen Komponenten reduziert. Basierend auf der Taylor-Analyse setzt das Modell entweder kleine Kanaldimensionen für Projektionen in jedem Kopf während jeder Stufe oder ermöglicht es den Projektionen, die gleiche Dimension wie die Eingabe zu haben. Die Expansionsrate des Feed-Forward-Netzwerks wird auch auf 2 von 4 reduziert, um die Parameterredundanz zu helfen. Die vorgeschlagene Reallokationsstrategie, die das EfficientViT-Framework implementiert, weist mehr Kanäle wichtigen Modulen zu, um sie zu ermöglichen, Repräsentationen in einem hochdimensionalen Raum besser zu erlernen, was den Verlust von Merkmalinformationen minimiert. Darüber hinaus entfernt das Modell automatisch redundante Parameter in unwichtigen Modulen, um den Interferenzprozess zu beschleunigen und die Effizienz des Modells weiter zu verbessern.

Die Übersicht über das EfficientViT-Framework kann in der folgenden Abbildung erläutert werden, in der die Teile

  1. Architektur des EfficientViT,
  2. Sandwich-Struktur-Block,
  3. Kaschierte Gruppenaufmerksamkeit.

 

EfficientViT: Netzwerkarchitekturen

Die obige Abbildung fasst die Netzwerkarchitektur des EfficientViT-Frameworks zusammen. Das Modell führt eine überlappende Patch-Einbettung [20,80] ein, die 16×16-Patches in C1-Dimension-Tokens einbettet, was die Fähigkeit des Modells zur besseren Leistung bei der niedrigen visuellen Repräsentationslernen verbessert. Die Architektur des Modells umfasst drei Stufen, bei denen jede Stufe die vorgeschlagenen Bausteine des EfficientViT-Frameworks stapelt, und die Anzahl der Token in jeder Subsampling-Schicht (2×-Subsampling der Auflösung) wird um 4X reduziert. Um das Subsampling effizienter zu machen, schlägt das Modell einen Subsampling-Block vor, der die vorgeschlagene Sandwich-Struktur mit der Ausnahme aufweist, dass ein inverser Restblock die Aufmerksamkeitsschicht ersetzt, um den Informationsverlust während des Samplings zu reduzieren. Darüber hinaus verwendet das Modell anstelle der herkömmlichen LayerNorm (LN) die BatchNorm (BN), da BN in die vorhergehenden linearen oder konvolutiven Schichten eingefaltet werden kann, was es bei der Laufzeit gegenüber LN auszeichnet.

 

EfficientViT-Modellfamilie

Die EfficientViT-Modellfamilie umfasst 6 Modelle mit unterschiedlicher Tiefe und Breite und einer festen Anzahl von Köpfen, die für jede Stufe zugewiesen werden. Die Modelle verwenden weniger Blöcke in den Anfangsstufen im Vergleich zu den Endstufen, ein Prozess, der dem von MobileNetV3 ähnelt, da der Prozess der frühen Stufenverarbeitung mit größeren Auflösungen zeitaufwändig ist. Die Breite wird über die Stufen mit einem kleinen Faktor erhöht, um Redundanz in den späteren Stufen zu reduzieren. Die folgende Tabelle enthält die architektonischen Details der EfficientViT-Modellfamilie, in der C, L und H die Breite, Tiefe und Anzahl der Köpfe in der jeweiligen Stufe bezeichnen.

EfficientViT: Modellimplementierung und Ergebnisse

Das EfficientViT-Modell hat eine Gesamtbatchgröße von 2.048, wird mit Timm und PyTorch erstellt, wird von Grund auf für 300 Epochen mit 8 Nvidia V100-GPUs trainiert, verwendet einen Cosinus-Lernrate-Planer, einen AdamW-Optimizer und führt sein Bildklassifizierungsexperiment auf ImageNet-1K durch. Die Eingabebilder werden zufällig beschnitten und in eine Auflösung von 224×224 vergrößert. Für die Experimente, die die nachgelagerte Bildklassifizierung betreffen, feinjustiert das EfficientViT-Framework das Modell für 300 Epochen und verwendet den AdamW-Optimizer mit einer Batchgröße von 256. Das Modell verwendet RetineNet für die Objekterkennung auf COCO und trainiert die Modelle für weitere 12 Epochen mit den gleichen Einstellungen.

Ergebnisse auf ImageNet

Um die Leistung von EfficientViT zu analysieren, wird es mit aktuellen ViT- und CNN-Modellen auf dem ImageNet-Datensatz verglichen. Die Ergebnisse des Vergleichs werden in der folgenden Abbildung angezeigt. Wie aus der Abbildung hervorgeht, übertrifft die EfficientViT-Modellfamilie die aktuellen Frameworks in den meisten Fällen und erreicht einen idealen Kompromiss zwischen Geschwindigkeit und Genauigkeit.

Vergleich mit effizienten CNNs und effizienten ViTs

Das Modell vergleicht zunächst seine Leistung mit effizienten CNNs wie EfficientNet und herkömmlichen CNN-Frameworks wie MobileNets. Wie aus der Abbildung hervorgeht, erzielt das EfficientViT-Modell eine bessere Top-1-Genauigkeit, während es 3,0-mal und 2,5-mal schneller auf Intel-CPU und V100-GPU läuft.

Die obige Abbildung vergleicht die Leistung des EfficientViT-Modells mit State-of-the-Art-Großmodellen, die auf dem ImageNet-1K-Datensatz laufen.

Nachgelagerte Bildklassifizierung

Das EfficientViT-Modell wird auf verschiedene nachgelagerte Aufgaben angewendet, um die Fähigkeit des Modells zur Transferlernen zu untersuchen, und die folgende Abbildung fasst die Ergebnisse des Experiments zusammen. Wie aus der Abbildung hervorgeht, erreicht das EfficientViT-M5-Modell bessere oder ähnliche Ergebnisse auf allen Datensätzen, während es einen viel höheren Durchsatz aufrechterhält. Der einzige Ausnahmefall ist der Cars-Datensatz, bei dem das EfficientViT-Modell nicht in der Lage ist, in der Genauigkeit zu liefern.

Objekterkennung

Um die Fähigkeit von EfficientViT zur Objekterkennung zu untersuchen, wird es mit effizienten Modellen auf der COCO-Objekterkennungsaufgabe verglichen, und die folgende Abbildung fasst die Ergebnisse des Vergleichs zusammen.

Schlussgedanken

In diesem Artikel haben wir über EfficientViT gesprochen, einer Familie von schnellen Vision-Transformern, die kaschierte Gruppenaufmerksamkeit und speichereffiziente Operationen verwenden. Umfassende Experimente, die zur Analyse der Leistung von EfficientViT durchgeführt wurden, haben vielversprechende Ergebnisse gezeigt, da das EfficientViT-Modell in den meisten Fällen aktuelle CNN- und Vision-Transformer-Modelle übertrifft. Wir haben auch versucht, eine Analyse der Faktoren zu liefern, die die Interferenzgeschwindigkeit von Vision-Transformern beeinflussen.

Kunal Kejriwal ist Backend‑Entwickler und spezialisiert auf Python, PostgreSQL, Redis sowie Cloud‑Infrastruktur auf GCP und AWS. Mit drei Jahren Erfahrung im Aufbau und Skalieren von Produktionssystemen schreibt er über KI‑Infrastruktur, verteilte Systeme und die Architektur hinter der Bereitstellung von Machine‑Learning‑Arbeitslasten.