Conectează-te cu noi

EfficientViT: Transformator de viziune eficient în memorie pentru viziune computerizată de înaltă rezoluție

Inteligența artificială

EfficientViT: Transformator de viziune eficient în memorie pentru viziune computerizată de înaltă rezoluție

mm

Datorita capacitatii lor mari de model, modelele Vision Transformer s-au bucurat de un mare succes in ultima vreme. În ciuda performanței lor, modelele de transformatoare de viziune au un defect major: priceperea lor remarcabilă de calcul are costuri mari de calcul și este motivul pentru care transformatoarele de viziune nu sunt prima alegere pentru aplicațiile în timp real. Pentru a rezolva această problemă, un grup de dezvoltatori a lansat EfficientViT, o familie de transformatoare de vedere de mare viteză. 

Când lucrează la EfficientViT, dezvoltatorii au observat că viteza modelelor de transformatoare curente este adesea limitată de operațiuni de memorie ineficiente, în special funcții în funcție de elemente și remodelarea tensorilor în rețeaua MHSA sau Multi-Head Self Attention. Pentru a aborda aceste operațiuni de memorie ineficiente, dezvoltatorii EfficientViT au lucrat la un nou bloc de construcție folosind un aspect sandwich, adică modelul EfficientViT folosește o singură rețea de atenție multicapă legată de memorie între straturi FFN eficiente care ajută la îmbunătățirea eficienței memoriei și de asemenea, îmbunătățind comunicarea generală a canalului. Mai mult, modelul descoperă, de asemenea, că hărțile de atenție au adesea asemănări mari între capetele, ceea ce duce la redundanță computațională. Pentru a aborda problema redundanței, modelul EfficientViT prezintă un modul de atenție de grup în cascadă care alimentează capetele de atenție cu diferite împărțiri ale funcției complete. Metoda nu numai că ajută la economisirea costurilor de calcul, dar îmbunătățește și diversitatea atenției modelului. 

Experimentele cuprinzătoare efectuate pe modelul EfficientViT în diferite scenarii indică faptul că EfficientViT depășește modelele eficiente existente pentru viziunea computerului în același timp, obținând un bun compromis între precizie și viteză. Așa că haideți să facem o scufundare mai profundă și să explorăm modelul EfficientViT mai în profunzime. 

O introducere în Vision Transformers și EfficientViT

Vision Transformers rămân unul dintre cele mai populare cadre din industria viziunii computerizate, deoarece oferă performanțe superioare și capacități de calcul ridicate. Cu toate acestea, odată cu îmbunătățirea constantă a preciziei și a performanței modelelor de transformatoare de viziune, costurile operaționale și cheltuielile generale de calcul cresc, de asemenea. De exemplu, modelele actuale cunoscute pentru a oferi performanțe de ultimă generație pe seturi de date ImageNet precum SwinV2 și V-MoE utilizează parametrii 3B și, respectiv, 14.7B. Dimensiunea mare a acestor modele, împreună cu costurile și cerințele de calcul, le fac practic nepotrivite pentru dispozitive și aplicații în timp real. 

Modelul EfficientNet își propune să exploreze modul de creștere a performanței modele de transformatoare de vedereși găsirea principiilor implicate în spatele proiectării arhitecturilor cadru eficiente și eficiente bazate pe transformatoare. Modelul EfficientViT se bazează pe cadrele de transformare de viziune existente, cum ar fi Swim și DeiT, și analizează trei factori esențiali care afectează vitezele de interferență ale modelelor, inclusiv redundanța de calcul, accesul la memorie și utilizarea parametrilor. În plus, modelul observă că viteza modelelor de transformatoare de viziune în memorie, ceea ce înseamnă că utilizarea completă a puterii de calcul în CPU-uri/GPU-uri este interzisă sau restricționată de întârzierea accesării memoriei, ceea ce are ca rezultat un impact negativ asupra vitezei de rulare a transformatoarelor. . Funcțiile în funcție de elemente și remodelarea tensorilor în rețeaua MHSA sau Multi-Head Self Attention sunt cele mai ineficiente operațiuni de memorie. În plus, modelul observă că ajustarea optimă a raportului dintre FFN (rețea de 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 capului de atenție de a învăța proiecții liniare similare. 

Modelul este o cultivare finală a constatărilor în timpul lucrărilor de cercetare pentru EfficientViT. Modelul prezintă un nou negru cu un aspect sandwich care aplică un singur strat MHSA legat de memorie între straturile Feed Forward Network sau FFN. Abordarea nu numai că reduce timpul necesar pentru a executa operațiuni legate de memorie în MHSA, dar face și întregul proces mai eficient în memorie, permițând mai multe straturi FFN pentru a facilita comunicarea între diferite canale. Modelul folosește, de asemenea, un nou modul CGA sau Cascaded Group Attention, care își propune să facă calculele mai eficiente prin reducerea redundanței computaționale nu numai în capetele de atenție, dar și creșterea adâncimii rețelei, rezultând o capacitate ridicată a modelului. În cele din urmă, modelul extinde lățimea canalului componentelor esențiale ale rețelei, inclusiv proiecțiile valorii, în timp ce micșorează componentele rețelei cu valoare scăzută, cum ar fi dimensiunile ascunse în rețelele feed forward, pentru a redistribui parametrii în cadru. 

După cum se poate observa în imaginea de mai sus, cadrul EfficientViT are performanțe mai bune decât modelele actuale CNN și ViT, atât în ​​ceea ce privește precizia, cât și viteza. Dar cum a reușit cadrul EfficientViT să depășească unele dintre cadrele actuale de ultimă generație? Să aflăm asta. 

EfficientViT: Îmbunătățirea eficienței transformatoarelor de vedere

Modelul EfficientViT își propune să îmbunătățească eficiența modelelor de transformatoare de viziune existente folosind trei perspective,

  1. Redundanță computațională. 
  2. Acces la memorie. 
  3. Utilizarea parametrilor. 

Modelul își propune să afle modul în care parametrii de mai sus afectează eficiența modelelor de transformatoare de viziune și cum să le rezolve pentru a obține rezultate mai bune cu o eficiență mai bună. Să vorbim despre ele mai în profunzime. 

Acces la memorie și eficiență

Unul dintre factorii esențiali care afectează viteza unui model este overhead de acces la memorie sau MAO. După cum se poate observa în imaginea de mai jos, mai mulți operatori din transformator, inclusiv adăugarea elementului, normalizarea și remodelarea frecventă, sunt operațiuni ineficiente din punct de vedere al memoriei, deoarece necesită acces la diferite unități de memorie, ceea ce este un proces consumator de timp. 

Deși există câteva metode existente care pot simplifica calculele standard de autoatenție softmax, cum ar fi aproximarea de rang scăzut și atenția redusă, acestea oferă adesea o accelerație limitată și degradează precizia. 

Pe de altă parte, framework-ul EfficientViT urmărește să reducă costul de acces la memorie prin reducerea cantității de straturi ineficiente din cadru de memorie. Modelul micșorează DeiT-T și Swin-T la subrețele mici cu o capacitate de interferență mai mare de 1.25X și 1.5X și compară performanța acestor subrețele cu proporțiile straturilor MHSA. După cum se poate observa în imaginea de mai jos, atunci când este implementată, abordarea mărește acuratețea straturilor MHSA cu aproximativ 20 până la 40%. 

Eficiență de calcul

Straturile MHSA tind să încorporeze secvența de intrare în mai multe subspații sau capete și calculează hărțile de atenție individual, o abordare despre care se știe că crește 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 de calcul, modelul EfficientViT explorează modul de reducere a atenției redundante în modelele ViT mai mici. Modelul măsoară asemănarea maximă a cosinusului fiecărui cap și a capetelor rămase în fiecare bloc prin antrenarea modelelor DeiT-T și Swim-T cu lățime redusă cu o accelerare a inferenței de 1.25 ×. După cum se poate observa în imaginea de mai jos, există un număr mare de similitudini între capetele de atenție, ceea ce sugerează că modelul implică redundanță de calcul, deoarece numeroase capete tind să învețe proiecții similare ale caracteristicii complete exacte. 

Pentru a încuraja capete să învețe diferite modele, modelul aplică în mod explicit o soluție intuitivă în care fiecare cap este alimentat doar cu o parte din caracteristica completă, o tehnică care seamănă cu ideea de convoluție de grup. Modelul antrenează diferite aspecte ale modelelor reduse care prezintă straturi MHSA modificate. 

Eficiența parametrilor

Modelele ViT medii își moștenesc strategiile de proiectare, cum ar fi utilizarea unei lățimi echivalente pentru proiecții, setarea raportului de expansiune la 4 în FFN și creșterea capetelor peste trepte de la transformatoarele NLP. Configurațiile acestor componente trebuie reproiectate cu atenție pentru module ușoare. Modelul EfficientViT implementează tăierea structurată Taylor pentru a găsi automat componentele esențiale în straturile Swim-T și DeiT-T și explorează în continuare principiile de alocare a parametrilor de bază. Sub anumite constrângeri de resurse, metodele de tăiere îndepărtează canalele neimportante și le păstrează pe cele critice pentru a asigura cea mai mare acuratețe posibilă. Figura de mai jos compară raportul dintre canale și încorporațiile de intrare înainte și după tăiere pe cadrul Swin-T. S-a observat că: Precizie inițială: 79.1%; precizie 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. Ar putea însemna că o configurație tipică de canal care dublează canalul după fiecare etapă sau utilizează canale echivalente pentru toate blocurile, poate duce la o redundanță substanțială în ultimele câteva blocuri. 

Transformator de vedere eficient: Arhitectură

Pe baza învățăturilor obținute în timpul analizei de mai sus, dezvoltatorii au lucrat la crearea unui nou model ierarhic care oferă viteze de interferență rapide, EfficientViT model. Să aruncăm o privire detaliată asupra structurii cadrului EfficientViT. Figura de mai jos vă oferă o idee generică a cadrului EfficientViT. 

Elementele de bază ale cadrului EfficientViT

Elementul de bază pentru rețeaua de transformatoare de viziune mai eficientă este ilustrat în figura de mai jos. 

Cadrul constă dintr-un modul de atenție de grup în cascadă, un aspect 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 termeni de calcul, memorie și, respectiv, parametru. Să vorbim despre ele mai detaliat. 

Aspect Sandwich

Modelul folosește un nou aspect sandwich pentru a construi un bloc de memorie mai eficient și mai eficient pentru cadru. Aspectul sandwich folosește mai puține straturi de auto-atenție legate de memorie și folosește rețele feed forward mai eficiente din punct de vedere al memoriei pentru comunicarea canalului. Pentru a fi mai specific, modelul aplică un singur strat de auto-atenție pentru amestecarea spațială care este intercalat între straturile FFN. Designul nu numai că ajută la reducerea consumului de timp de memorie datorită straturilor de auto-atenție, dar permite și o comunicare eficientă între diferite canale din rețea datorită utilizării straturilor FFN. Modelul aplică, de asemenea, un strat suplimentar de token de interacțiune înainte de fiecare strat de rețea feed forward folosind un DWConv sau Deceptive Convolution și îmbunătățește capacitatea modelului prin introducerea unei părtiniri inductive a informațiilor structurale locale. 

Atenție de grup în cascadă

Una dintre problemele majore ale straturilor MHSA este redundanța capurilor de atenție, ceea ce face ca calculele să fie mai ineficiente. Pentru a rezolva problema, modelul propune CGA sau Cascaded Group Attention pentru transformatoarele de viziune, un nou modul de atenție care se inspiră din convoluțiile de grup în CNN-uri eficiente. În această abordare, modelul alimentează capete individuale cu împărțiri ale caracteristicilor complete și, prin urmare, descompune calculul atenției în mod explicit între capete. Împărțirea caracteristicilor în loc de a furniza caracteristici complete către fiecare cap economisește calculul și face procesul mai eficient, iar modelul continuă să lucreze la îmbunătățirea preciziei și a capacității sale și mai mult, încurajând straturile să învețe proiecții asupra caracteristicilor care au informații mai bogate. 

Realocarea parametrilor

Pentru a îmbunătăți eficiența parametrilor, modelul realocează parametrii în rețea prin extinderea lățimii canalului modulelor critice în timp ce micșorează lățimea canalului modulelor nu atât de importante. Pe baza analizei Taylor, modelul fie stabilește dimensiuni mici ale canalului pentru proiecțiile în fiecare cap în timpul fiecărei etape, fie modelul permite proiecțiilor să aibă aceeași dimensiune ca și intrarea. Raportul de expansiune al rețelei feed forward este, de asemenea, redus la 2 din 4 pentru a ajuta la redundanța parametrilor săi. Strategia de realocare propusă pe care o implementează cadrul EfficientViT alocă mai multe canale modulelor importante pentru a le permite să învețe mai bine reprezentările într-un spațiu dimensional înalt, care minimizează pierderea de informații despre caracteristici. În plus, pentru a accelera procesul de interferență și pentru a spori și mai mult eficiența modelului, modelul elimină automat parametrii redundanți din modulele neimportante. 

Prezentare generală a cadrului EfficientViT poate fi explicată în imaginea de mai sus, unde piesele,

  1. Arhitectura EfficientViT,
  2. Bloc de aspect sandwich,
  3. Atenție de grup în cascadă.

 

EfficientViT: Arhitecturi de rețea

Imaginea de mai sus rezumă arhitectura de rețea a cadrului EfficientViT. Modelul introduce o încorporare a patch-urilor suprapuse [20,80] care încorporează 16 × 16 patch-uri în token-uri de dimensiune C1, ceea ce îmbunătățește capacitatea modelului de a funcționa mai bine în învățarea reprezentării vizuale la nivel scăzut. Arhitectura modelului cuprinde trei etape în care fiecare etapă stivuiește elementele de bază propuse ale cadrului EfficientViT, iar numărul de jetoane la fiecare strat de subeșantionare (2× subeșantionarea rezoluției) este redus de 4X. Pentru a face subeșantionarea mai eficientă, modelul propune un bloc de subeșantionare care are, de asemenea, aspectul sandwich propus, cu excepția faptului că un bloc rezidual inversat înlocuiește stratul de atenție pentru a reduce pierderea de informații în timpul eșantionării. Mai mult, în loc de LayerNorm (LN) convențional, modelul folosește BatchNorm (BN), deoarece BN poate fi pliat în straturile liniare sau convoluționale precedente, ceea ce îi oferă un avantaj de rulare față de LN. 

 

Familia de modele EfficientViT

Familia de modele EfficientViT constă din 6 modele cu scări diferite de adâncime și lățime și este alocat un număr stabilit de capete 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 framework-ul MobileNetV3, deoarece procesul de procesare în stadiu incipient cu rezoluții mai mari necesită timp. Lățimea este mărită pe etape cu un factor mic pentru a reduce redundanța în etapele ulterioare. Tabelul atașat mai jos oferă detaliile arhitecturale ale familiei de modele EfficientViT, unde C, L și H se referă la lățimea, adâncimea și numărul de capete într-o anumită etapă. 

EfficientViT: Implementarea modelului și rezultate

Modelul EfficientViT are o dimensiune totală a lotului de 2,048, este construit cu Timm & PyTorch, este antrenat de la zero timp de 300 de epoci folosind 8 GPU-uri Nvidia V100, utilizează un planificator al ratei de învățare cosinus, un optimizator AdamW și își desfășoară experimentul de clasificare a imaginilor pe ImageNet -1K. Imaginile de intrare sunt decupate aleatoriu și redimensionate 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ă optimizatorul AdamW cu o dimensiune a lotului de 256. Modelul folosește RetineNet 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 ViT și CNN din setul de date ImageNet. Rezultatele comparației sunt prezentate în figura următoare. După cum se poate observa că familia de modele EfficientViT depășește cadrele actuale în majoritatea cazurilor și reușește să atingă un compromis ideal între viteză și precizie. 

Comparație cu CNN-uri eficiente și ViT-uri eficiente

Modelul își compară mai întâi performanța cu CNN-urile eficiente precum EfficientNet și cadrele CNN vanilla precum MobileNets. După cum se poate observa că, în comparație cu cadrele MobileNet, modelele EfficientViT obțin un scor de precizie de top-1 mai bun, în timp ce rulează de 3.0 ori și 2.5 ori mai rapid pe CPU Intel și, respectiv, GPU V100.  

Figura de mai sus compară performanța modelului EfficientViT cu modelele ViT de ultimă generație care rulează pe setul de date ImageNet-1K. 

Clasificarea imaginilor din aval

Modelul EfficientViT este aplicat pe diverse sarcini din aval pentru a studia abilitățile de învățare de transfer ale modelului, iar imaginea de mai jos rezumă rezultatele experimentului. După cum se poate observa, modelul EfficientViT-M5 reușește să obțină rezultate mai bune sau similare în toate seturile de date, menținând în același timp un debit mult mai mare. Singura excepție este setul de date Cars, unde modelul EfficientViT nu reușește să ofere acuratețe. 

Detectarea obiectelor

Pentru a analiza capacitatea EfficientViT de a detecta obiecte, acesta este comparat cu modele eficiente pentru sarcina de detectare a obiectelor COCO, iar imaginea de mai jos rezumă rezultatele comparației. 

Gânduri finale

În acest articol, am vorbit despre EfficientViT, o familie de modele de transformatoare de viziune rapidă care utilizează atenția de grup în cascadă și oferă operațiuni eficiente din punct de vedere al memoriei. Experimentele ample efectuate pentru a analiza performanța EfficientViT au arătat rezultate promițătoare, deoarece modelul EfficientViT depășește modelele actuale CNN și transformatoare de viziune în majoritatea cazurilor. De asemenea, am încercat să oferim o analiză a factorilor care joacă un rol în afectarea vitezei de interferență a transformatoarelor de vedere. 

„Un inginer de profesie, un scriitor pe de rost”. Kunal este un scriitor tehnic cu o dragoste și o înțelegere profundă a AI și ML, dedicat simplificării conceptelor complexe din aceste domenii prin documentația sa captivantă și informativă.