Modele și platforme AI
EfficientViT: Transformer de Viziune Eficient pentru Viziunea Calculată de Înaltă Rezoluție

Datorită capacității lor ridicate de model, modelele de transformatori de viziune au avut un mare succes în ultimul timp. În ciuda performanței lor, modelele de transformatori de viziune au o mare problemă: puterea lor de calcul remarcabilă vine la un cost de calcul ridicat, și este motivul pentru care transformatorii de viziune nu sunt primul alegerea pentru aplicații în timp real. Pentru a aborda această problemă, un grup de dezvoltatori a lansat EfficientViT, o familie de transformatori de viziune de înaltă viteză.
Atunci când au lucrat la EfficientViT, dezvoltatorii au observat că viteza modelelor de transformatori actuale este adesea limitată de operațiuni de memorie ineficiente, în special funcții element-wise și reșaparea tensorilor în rețeaua de auto-atentie Multi-Head. Pentru a aborda aceste operații de memorie ineficiente, dezvoltatorii EfficientViT au lucrat la un nou bloc de construcție folosind o dispunere sandwich, adică modelul EfficientViT utilizează o singură rețea de auto-atentie Multi-Head între straturi de rețea feed-forward eficiente, ceea ce ajută la îmbunătățirea eficienței memoriei și la creșterea comunicării între canale. De asemenea, modelul a descoperit că hărțile de atenție au adesea similitudini ridicate între capete, ceea ce duce la redundanță computațională. Pentru a aborda problema redundanței, modelul EfficientViT prezintă un modul de atenție în cascadă care alimentează capetele de atenție cu diviziuni diferite ale caracteristicii complete. Metoda nu numai că ajută la economisirea costurilor computaționale, dar și la creșterea diversității atenției modelului.
Experimente cuprinzătoare efectuate pe modelul EfficientViT în diferite scenarii indică faptul că EfficientViT depășește modelele eficiente existente pentru viziunea calculată în timp ce oferă un echilibru bun între precizie și viteză. Așadar, să facem o analiză mai profundă și să explorăm modelul EfficientViT în mai multe detalii.
Introducere în Transformatorii de Viziune și EfficientViT
Transformatorii de viziune rămân unul dintre cele mai populare cadre în industria viziunii calculate, deoarece oferă o performanță superioară și capacități computaționale ridicate. Cu toate acestea, odată cu îmbunătățirea continuă a preciziei și a performanței modelelor de transformatori de viziune, costurile operaționale și suprasarcina computațională cresc de asemenea. De exemplu, modelele actuale cunoscute pentru a oferi o performanță de ultimă oră pe seturile de date ImageNet, cum ar fi SwinV2 și V-MoE, utilizează 3B și, respectiv, 14,7B de parametri. Dimensiunea uriașă a acestor modele, împreună cu costurile computaționale și cerințele, le fac practic inadecvate pentru dispozitive și aplicații în timp real.
Modelul EfficientNet își propune să exploreze modul de a îmbunătăți performanța modelelor de transformatori de viziune și să descopere principiile implicate în proiectarea arhitecturilor de cadre bazate pe transformatori eficienți și eficace. Modelul EfficientViT se bazează pe cadrele de transformatori de viziune existente, cum ar fi Swim și DeiT, și analizează trei factori esențiali care afectează viteza de interferență a modelelor, incluzând redundanța computațională, accesul la memorie și utilizarea parametrilor. De asemenea, modelul observă că viteza modelelor de transformatori de viziune este limitată de memoria accesată, ceea ce înseamnă că utilizarea deplină a puterii de calcul în CPU/GPU este interzisă sau restricționată de întârzierea accesării memoriei, ceea ce are un impact negativ asupra vitezei de rulare a transformatorilor. Funcțiile element-wise și reșaparea tensorilor în rețeaua de auto-atentie Multi-Head sunt cele mai ineficiente operații de memorie. Modelul observă, de asemenea, că ajustarea optimă a raportului dintre rețeaua feed-forward și MHSA poate ajuta la reducerea semnificativă a timpului de acces la memorie fără a afecta performanța. Cu toate acestea, modelul observă, de asemenea, o anumită redundanță în hărțile de atenție, ca urmare a tendinței capetelor de atenție de a învăța proiecții liniare similare.
Modelul este o cultură finală a descoperirilor din timpul lucrărilor de cercetare pentru EfficientViT. Modelul prezintă un nou bloc de construcție cu o dispunere sandwich care aplică o singură rețea de auto-atentie Multi-Head între straturi de rețea feed-forward eficiente. Abordarea nu numai că reduce timpul necesar pentru executarea operațiilor legate de memorie în MHSA, dar face și întregul proces mai eficient din punct de vedere al memoriei, permițând mai multe straturi de rețea feed-forward pentru a facilita comunicarea între canale diferite. Modelul utilizează, de asemenea, un nou modul de atenție în cascadă care își propune să facă calculele mai eficiente prin reducerea redundanței computaționale nu numai în capetele de atenție, dar și prin creșterea adâncimii rețelei, ceea ce duce la o capacitate de model ridicată. În final, modelul extinde lățimea canalului componentelor de rețea esențiale, inclusiv proiecțiile de valoare, în timp ce reduce lățimea canalului componentelor de rețea cu valoare scăzută, cum ar fi dimensiunile ascunse în rețeaua feed-forward, pentru a realoca parametrii în cadrul.

Așa cum se poate vedea în imaginea de mai sus, cadrul EfficientViT prezintă o performanță mai bună decât modelele actuale de referință CNN și ViT în ceea ce privește atât precizia, cât și viteza. Dar cum a reușit cadrul EfficientViT să depășească unele dintre modelele actuale de referință? Să aflăm.
EfficientViT: Îmbunătățirea Eficienței Transformatorilor de Viziune
Modelul EfficientViT își propune să îmbunătățească eficiența modelelor de transformatori de viziune existente din trei perspective,
- Redundanță computațională.
- Acces la memorie.
- Utilizarea parametrilor.
Modelul își propune să descopere cum afectează acești parametri eficiența modelelor de transformatori de viziune și cum să le rezolve pentru a obține rezultate mai bune cu o eficiență mai mare. Să discutăm despre ele în mai multe detalii.
Acces la Memorii și Eficiență
Unul dintre factorii esențiali care afectează viteza unui model este întârzierea accesării memoriei sau MAO. Așa cum se poate vedea în imaginea de mai jos, mai multe operatori din transformator, incluzând funcții element-wise, normalizare și reșapare frecventă a tensorilor, sunt operații ineficiente din punct de vedere al memoriei, deoarece necesită acces la unități de memorie diferite, ceea ce este un proces care consumă timp.

Deși există metode existente care pot simplifica calculele standard de atenție self, cum ar fi aproximarea de rang scăzut și atenția rară, acestea oferă adesea o accelerare limitată și degradează precizia.
Pe de altă parte, cadrul EfficientViT își propune să reducă costul accesării memoriei prin reducerea numărului de straturi ineficiente din punct de vedere al memoriei în cadrul. Modelul reduce dimensiunile DeiT-T și Swin-T la subrețele mici cu o rată de interferență mai mare de 1,25X și 1,5X și compară performanța acestor subrețele cu proporțiile straturilor MHSA. Așa cum se poate vedea în imaginea de mai jos, atunci când este implementat, abordarea crește precizia straturilor MHSA cu aproximativ 20-40%.

Eficiență Computațională
Straturile MHSA tind să încorporeze secvența de intrare în multiple subspații sau capete și să calculeze hărțile de atenție individual, o abordare care este cunoscută pentru a îmbunătăți performanța. Cu toate acestea, hărțile de atenție nu sunt ieftine din punct de vedere computațional, și pentru a explora costurile computaționale, modelul EfficientViT explorează modul de a reduce redundanța atenției în modelele ViT mai mici. Modelul măsoară similaritatea maximă a cosinusului pentru fiecare cap și capetele rămase în fiecare bloc prin antrenarea modelului DeiT-T și Swim-T cu lățime redusă și o accelerare a inferenței de 1,25X. Așa cum se poate observa în imaginea de mai jos, există o similitudine ridicată între capetele de atenție, ceea ce sugerează că modelul suferă de redundanță computațională, deoarece multe capete tind să învețe proiecții similare ale caracteristicii complete.

Pentru a încuraja capetele să învețe modele diferite, modelul aplică în mod explicit o soluție intuitivă în care fiecare cap este alimentat doar cu o parte a caracteristicii complete, o tehnică care amintește de ideea de convoluție în grup. Modelul antrenează aspecte diferite ale modelelor reduse, care prezintă straturi MHSA modificate.
Eficiență a Parametrilor
Modelele ViT medii moștenesc strategiile de proiectare, cum ar fi utilizarea unei lățimi echivalente pentru proiecții, setarea raportului de expansiune la 4 în rețeaua feed-forward și creșterea numărului de capete pe etape din transformatorii NLP. Configurațiile acestor componente necesită o re-proiectare atentă pentru module ușoare. Modelul EfficientViT utilizează o tăiere structurată Taylor pentru a găsi componentele esențiale în straturile Swim-T și DeiT-T în mod automat și explorează, de asemenea, principiile de alocare a parametrilor subiacente. Sub anumite constrângeri de resurse, metodele de tăiere elimină canalele neimportante și păstrează canalele critice pentru a asigura cea mai mare precizie posibilă. Figura de mai jos compară raportul canalelor cu încorporările de intrare înainte și după tăiere pe cadrul Swin-T. S-a observat că: Precizia de bază: 79,1%; precizia tăiată: 76,5%.

Imaginea de mai sus indică faptul că primele două etape ale cadrului păstrează mai multe dimensiuni, în timp ce ultimele două etape păstrează mult mai puține dimensiuni. Acest lucru poate însemna că o configurație tipică a canalului care dublează canalul după fiecare etapă sau utilizează canale echivalente pentru toate blocurile poate duce la o redundanță substanțială în ultimele blocuri.
Transformator de Viziune Eficient: Arhitectură
Pe baza învățămintelor obținute în timpul analizei de mai sus, dezvoltatorii au lucrat la crearea unui nou model ierarhic care oferă viteze de interferență rapide, modelul EfficientViT. Să facem o analiză mai profundă a structurii cadrului EfficientViT. Figura de mai jos oferă o idee generală despre cadrul EfficientViT.
Blocuri de Construcție ale Cadrului EfficientViT
Blocul de construcție pentru rețeaua de transformatori de viziune mai eficientă este ilustrat în figura de mai jos.

Cadrul constă dintr-un modul de atenție în cascadă, o dispunere sandwich eficientă din punct de vedere al memoriei și o strategie de realocare a parametrilor care se concentrează pe îmbunătățirea eficienței modelului în ceea ce privește calculul, memoria și parametrii, respectiv. Să discutăm despre ele în mai multe detalii.
Dispunere Sandwich
Modelul utilizează o nouă dispunere sandwich pentru a construi un bloc de memorie mai eficient și mai eficace pentru cadrul. Dispunerea sandwich utilizează mai puține straturi de auto-atentie legate de memorie și utilizează mai multe rețele feed-forward eficiente pentru comunicarea canalului. Mai exact, modelul aplică o singură rețea de auto-atentie pentru amestecarea spațială, care este sandwichată între straturile de rețea feed-forward. Proiectarea nu numai că reduce timpul de consum al memoriei din cauza straturilor de auto-atentie, dar permite și o comunicare eficientă între canale diferite datorită utilizării straturilor de rețea feed-forward. Modelul aplică, de asemenea, un strat de token de interacțiune suplimentar înainte de fiecare strat de rețea feed-forward, utilizând o convoluție deprimantă și îmbunătățește capacitatea modelului prin introducerea unui bias inductiv al informațiilor structurale locale.
Atenție în Cascadă
Una dintre principalele probleme cu straturile MHSA este redundanța în capetele de atenție, ceea ce face calculele mai ineficiente. Pentru a rezolva problema, modelul propune o atenție în cascadă pentru transformatorii de viziune, un nou modul de atenție care se inspiră din convoluțiile în grup din rețelele neuronale convolutive eficiente. În această abordare, modelul alimentează individual capetele cu diviziuni ale caracteristicii complete și, prin urmare, descompune în mod explicit calculul atenției între capete. Divizarea caracteristicilor în loc de alimentarea capetelor cu caracteristici complete economisește calcule și face procesul mai eficient, iar modelul continuă să lucreze la îmbunătățirea preciziei și capacității sale, încurajând straturile să învețe proiecții pe caracteristici care au informații mai bogate.

Realocarea Parametrilor
Pentru a îmbunătăți eficiența parametrilor, modelul realocă parametrii în rețea prin extinderea lățimii canalului componentelor de rețea critice, în timp ce reduce lățimea canalului componentelor de rețea cu valoare scăzută. Pe baza analizei Taylor, modelul setează dimensiuni de canal mici pentru proiecții în fiecare cap în fiecare etapă sau permite proiecțiilor să aibă aceeași dimensiune ca intrarea. Raportul de expansiune al rețelei feed-forward este, de asemenea, redus la 2 de la 4 pentru a ajuta la redundanța parametrilor. Strategia de realocare propusă de cadrul EfficientViT alocă mai multe canale modulelor importante pentru a permite acestora să învețe reprezentări într-un spațiu de dimensiuni mai mari, ceea ce minimizează pierderea de informații despre caracteristici. De asemenea, pentru a accelera procesul de interferență și a îmbunătăți eficiența modelului, modelul elimină în mod automat parametrii redundanți din modulele neimportante.

Imaginea de mai sus oferă o vedere de ansamblu a cadrului EfficientViT, unde componentele,
- Arhitectura EfficientViT,
- Blocul de dispunere sandwich,
- Atenția în cascadă.
EfficientViT: Arhitecturi de Rețea

Imaginea de mai sus rezumă arhitectura de rețea a cadrului EfficientViT. Modelul introduce o încorporare de patch suprapusă [20,80] care încorporează patch-uri de 16×16 în tokeni de dimensiune C1, ceea ce îmbunătățește capacitatea modelului de a învăța reprezentări vizuale de nivel scăzut. Arhitectura modelului constă din trei etape, unde fiecare etapă stochează blocurile de construcție propuse ale cadrului EfficientViT, iar numărul de tokeni la fiecare strat de eșantionare (2× subsampling a rezoluției) este redus de 4X. Pentru a face subsampling mai eficient, modelul propune un bloc de subsample care are, de asemenea, dispunerea sandwich propusă, cu excepția faptului că un bloc de reziduu inversat înlocuiește stratul de atenție pentru a reduce pierderea de informații în timpul eșantionării. De asemenea, în loc de LayerNorm (LN) convențional, modelul utilizează BatchNorm (BN), deoarece BN poate fi încorporat în straturile liniare sau convolutive precedente, ceea ce oferă un avantaj de timp de rulare față de LN.
Familia de Modele EfficientViT
Familia de modele EfficientViT constă din 6 modele cu diferite scară de adâncime și lățime și un număr fix de capete alocat pentru fiecare etapă. Modelele utilizează mai puține blocuri în etapele inițiale în comparație cu etapele finale, un proces similar cu cel urmat de cadrul MobileNetV3, deoarece procesul de prelucrare a etapelor inițiale cu rezoluții mai mari este consumator de timp. Lățimea este crescută pe etape cu un factor mic pentru a reduce redundanța în etapele finale. Tabelul atașat mai jos oferă detalii arhitecturale ale familiei de modele EfficientViT, unde C, L și H se referă la lățime, adâncime și număr de capete în etapa respectivă.

EfficientViT: Implementarea Modelului și Rezultate
Modelul EfficientViT are o dimensiune totală de batch de 2.048, este construit cu Timm și PyTorch, este antrenat de la zero pentru 300 de epoci, utilizând 8 GPU-uri Nvidia V100, utilizează un planificator de învățare cosinus, un optimizer AdamW și efectuează experimentul de clasificare a imaginilor pe ImageNet-1K. Imaginile de intrare sunt recoltate și redimensionate aleatoriu la o rezoluție de 224×224. Pentru experimentele care implică clasificarea imaginilor în aval, cadrul EfficientViT ajustează modelul pentru 300 de epoci și utilizează un optimizer AdamW cu o dimensiune de batch de 256. Modelul utilizează RetinaNet pentru detectarea obiectelor pe COCO și continuă să antreneze modelele pentru încă 12 epoci cu setări identice.
Rezultate pe ImageNet
Pentru a analiza performanța EfficientViT, acesta este comparat cu modelele actuale de referință ViT și CNN pe setul de date ImageNet. Rezultatele comparației sunt raportate în figura de mai jos. Așa cum se poate vedea, familia de modele EfficientViT depășește modelele actuale de referință în majoritatea cazurilor și reușește să obțină un echilibru ideal între viteză și precizie.

Comparație cu CNN-uri Eficiente și ViT-uri Eficiente
Modelul este comparat mai întâi cu CNN-uri eficiente, cum ar fi EfficientNet și cadre CNN standard, cum ar fi MobileNets. Așa cum se poate vedea, atunci când este comparat cu cadrele MobileNet, modelele EfficientViT obțin un punctaj de precizie mai bun, în timp ce rulează de 3,0X și 2,5X mai rapid pe CPU Intel și GPU V100, respectiv.

Imaginea de mai sus compară performanța modelului EfficientViT cu modelele ViT de scară largă de referință care rulează pe setul de date ImageNet-1K.
Clasificarea Imaginilor în Aval
Modelul EfficientViT este aplicat pe diverse sarcini în aval pentru a studia capacitățile de învățare ale modelului și imaginea de mai jos rezumă rezultatele experimentului. Așa cum se poate observa, modelul EfficientViT-M5 reușește să obțină rezultate mai bune sau similare pe toate seturile de date, în timp ce menține un debit mult mai mare. Singura excepție este setul de date Cars, unde modelul EfficientViT nu reușește să livreze în ceea ce privește precizia.

Detectarea Obiectelor
Pentru a analiza capacitatea modelului EfficientViT de a detecta obiecte, acesta este comparat cu modele eficiente pe sarcina de detectare a obiectelor COCO, și imaginea de mai jos rezumă rezultatele comparației.

Gânduri Finale
În acest articol, am discutat despre EfficientViT, o familie de transformatori de viziune rapide care utilizează atenție în cascadă și oferă operații de memorie eficiente. Experimente extinse efectuate pentru a analiza performanța EfficientViT au arătat rezultate promițătoare, deoarece modelul EfficientViT depășește modelele actuale de referință CNN și ViT în majoritatea cazurilor. Am încercat, de asemenea, să oferim o analiză a factorilor care afectează viteza de interferență a transformatorilor de viziune.












