Modele i platformy AI

EfficientViT: Pamięciowo Wydajny Transformator Wizji Dla Zadania Wysokorozdzielczego Przetwarzania ObrazÃģw

mm
Dodaj Unite.AI do preferowanych ÅšrÃģdeł w Google

Ze względu na ich wysoką pojemność modelu, modele transformatora wizji cieszą się duÅžym powodzeniem w ostatnich czasach. Pomimo ich wydajności, modele transformatora wizji mają jeden głÃģwny mankament: ich niezwykła zdolność obliczeniowa wiÄ…Åže się z wysokimi kosztami obliczeniowymi, a to jest powodem, dla ktÃģrego modele transformatora wizji nie są pierwszym wyborem dla aplikacji w czasie rzeczywistym. Aby rozwiązać ten problem, grupa deweloperÃģw uruchomiła EfficientViT, rodzinę szybkich transformatorÃģw wizji.

Podczas pracy nad EfficientViT, deweloperzy zauwaÅžyli, Åže prędkość bieŞących modeli transformatora jest często ograniczona przez nieefektywne operacje pamięci, szczegÃģlnie funkcje elementowe i przekształcenie tensora w sieci Multi-Head Self Attention. Aby rozwiązać te nieefektywne operacje pamięci, deweloperzy EfficientViT pracowali nad nowym blokiem budulcowym, wykorzystując układ piętrowy, czyli model EfficientViT wykorzystuje pojedynczą warstwę Multi-Head Self Attention pomiędzy warstwami Feed Forward Network, co pomaga w poprawie wydajności pamięci i ogÃģlnej komunikacji kanałÃģw. Ponadto model odkrył, Åže mapy uwagi często mają wysoką podobieństwo między głowami, co prowadzi do redundancji obliczeniowej. Aby rozwiązać problem redundancji, model EfficientViT przedstawia moduł Cascaded Group Attention, ktÃģry karmi głowy uwagi rÃģÅžnymi podziałami pełnych cech. Metoda nie tylko pomaga w oszczędnościach obliczeniowych, ale takÅže poprawia rÃģÅžnorodność uwagi modelu.

Wyczerpujące eksperymenty przeprowadzone na modelu EfficientViT w rÃģÅžnych scenariuszach wskazują, Åže EfficientViT przewyÅžsza istniejące efektywne modele dla zadania przetwarzania wizji, jednocześnie osiągając dobry kompromis między dokładnością a szybkością. Więc zajmijmy się głębszym zanurzeniem w modelu EfficientViT.

Wprowadzenie do TransformatorÃģw Wizji i EfficientViT

Transformatory wizji pozostają jednym z najpopularniejszych frameworkÃģw w branÅžy przetwarzania wizji, poniewaÅž oferują lepszą wydajność i wysoką zdolność obliczeniową. Jednak wraz ze stale rosnącą dokładnością i wydajnością modeli transformatora wizji, koszty operacyjne i obciÄ…Åženie obliczeniowe rÃģwnieÅž rosną. Na przykład, obecne modele znane z dostarczania najlepszych wynikÃģw na zestawach danych ImageNet, takie jak SwinV2 i V-MoE, wykorzystują odpowiednio 3B i 14,7B parametrÃģw. Sam rozmiar tych modeli w połączeniu z kosztami obliczeniowymi i wymaganiami sprawia, Åže są one niepraktycznie nieodpowiednie dla urządzeń i aplikacji w czasie rzeczywistym.

Model EfficientNet ma na celu zbadanie, jak poprawić wydajność modeli transformatora wizji i znalezienie zasad projektowania efektywnych i skutecznych frameworkÃģw transformatora. Model EfficientViT oparty jest na istniejących frameworkach transformatora wizji, takich jak Swim i DeiT, i analizuje trzy podstawowe czynniki, ktÃģre wpływają na prędkość interferencji modeli, w tym redundancję obliczeniową, dostęp do pamięci i uÅžycie parametrÃģw. Ponadto model obserwuje, Åže prędkość modeli transformatora wizji jest ograniczona przez pamięć, co oznacza, Åže pełne wykorzystanie mocy obliczeniowej w CPU/GPU jest zabronione lub ograniczone przez opÃģÅšnienie dostępu do pamięci, co ma negatywny wpływ na prędkość wykonywania transformatora. Funkcje elementowe i przekształcenie tensora w sieci Multi-Head Self Attention są najmniej wydajnymi operacjami. Model obserwuje rÃģwnieÅž pewną redundancję w mapach uwagi w wyniku tendencji głÃģw uwagi do nauki podobnych projekcji liniowych.

Model jest ostatecznym wynikiem badań nad EfficientViT. Model składa się z nowego bloku z układem piętrowym, ktÃģry wykorzystuje pojedynczą warstwę Multi-Head Self Attention pomiędzy warstwami Feed Forward Network. Podejście nie tylko redukuje czas wykonywania operacji związanych z pamięcią w sieci Multi-Head Self Attention, ale takÅže czyni cały proces bardziej wydajnym, pozwalając na więcej warstw Feed Forward Network, ktÃģre ułatwiają komunikację między kanałami. Model wykorzystuje rÃģwnieÅž nowy moduł Cascaded Group Attention, ktÃģry ma na celu zwiększenie efektywności obliczeń, redukując redundancję obliczeniową nie tylko w głowach uwagi, ale takÅže zwiększając głębokość sieci, co prowadzi do zwiększenia pojemności modelu. Wreszcie, model rozszerza szerokość kanału podstawowych składnikÃģw sieci, w tym projekcji wartości, a składniki sieci o niskiej wartości, takie jak wymiary ukryte w sieciach Feed Forward, są zmniejszane w celu ponownego rozdzielenia parametrÃģw w frameworku.

Jak widać na powyÅžszym obrazie, framework EfficientViT wykonuje lepiej niÅž obecne modele CNN i ViT pod względem dokładności i szybkości. Ale jak framework EfficientViT zdołał przewyÅžszyć niektÃģre z obecnych frameworkÃģw? Zobaczmy.

EfficientViT: Poprawa Wydajności TransformatorÃģw Wizji

Model EfficientViT ma na celu poprawę wydajności istniejących modeli transformatora wizji z trzech perspektyw,

  1. Redundancja obliczeniowa.
  2. Dostęp do pamięci.
  3. UÅžycie parametrÃģw.

Model ma na celu zbadanie, jak powyÅžsze parametry wpływają na wydajność modeli transformatora wizji i jak je rozwiązać, aby osiągnąć lepsze wyniki z większą wydajnością. Zobaczmy je w większym szczegÃģle.

Dostęp do Pamięci i Wydajność

Jednym z podstawowych czynnikÃģw wpływających na prędkość modelu jest opÃģÅšnienie dostępu do pamięci lub MAO. Jak widać na poniÅžszym obrazie, kilka operatorÃģw w transformatorze, w tym elementowe dodawanie, normalizacja i częste przekształcenie tensora, są operacjami nieefektywnymi pod względem pamięci, poniewaÅž wymagają dostępu do rÃģÅžnych jednostek pamięci, co jest czasochłonne.

ChociaÅž istnieją pewne metody, ktÃģre mogą uprościć standardowe obliczenia uwagi, takie jak przybliÅženie o niskim ranku i uwaga rzadka, często oferują one ograniczoną przyspieszenie i pogarszają dokładność.

Z drugiej strony, framework EfficientViT ma na celu obniÅženie kosztu dostępu do pamięci, redukując liczbę warstw nieefektywnych pod względem pamięci w frameworku. Model skaluje w dÃģł DeiT-T i Swin-T do małych podsieci z wyÅžszą prędkością interferencji o 1,25-krotnym i 1,5-krotnym wzroście, i porÃģwnuje wydajność tych podsieci z proporcjami warstw MHSA. Jak widać na poniÅžszym obrazie, podejście to zwiększa dokładność warstw MHSA o około 20-40%.

Wydajność Obliczeniowa

Warstwy MHSA mają tendencję do wbudowania sekwencji wejściowej w wiele podprzestrzeni lub głÃģw i obliczają mapy uwagi indywidualnie, co jest podejściem znanym z poprawy wydajności. Jednak mapy uwagi nie są tanie obliczeniowo, a aby zbadać koszty obliczeniowe, model EfficientViT bada, jak zredukować redundancję uwagi w mniejszych modelach ViT. Model mierzy maksymalne podobieństwo kosinusowe kaÅždej głowy i pozostałych głÃģw w kaÅždym bloku, trenując modele DeiT-T i Swim-T ze skalowaną szerokością i 1,25-krotnym przyspieszeniem inferencji. Jak widać na poniÅžszym obrazie, istnieje wysoki poziom podobieństwa między głowami uwagi, co sugeruje, Åže model ponosi redundancję obliczeniową, poniewaÅž wiele głÃģw ma tendencję do nauki podobnych projekcji pełnych cech.

Aby zachęcić głowy do nauki rÃģÅžnych wzorcÃģw, model wykorzystuje intuicyjne rozwiązanie, w ktÃģrym kaÅžda głowa jest karmiona tylko częścią pełnych cech, co przypomina ideę grupowej konwolucji. Model trenuje rÃģÅžne aspekty skalowanych modeli z modyfikowanymi warstwami MHSA.

Wydajność ParametrÃģw

Średnie modele ViT dziedziczą strategie projektowe, takie jak uÅžycie rÃģwnowaÅžnej szerokości dla projekcji, ustawienie wspÃģłczynnika ekspansji na 4 w sieci Feed Forward, i zwiększanie liczby głÃģw na etapach z NLP transformatorÃģw. Konfiguracje tych składnikÃģw muszą być starannie zaprojektowane dla lekkich modułÃģw. Model EfficientViT wdroÅžonył cięcie strukturalne Taylor, aby znaleŚć najwaÅžniejsze składniki w warstwach Swim-T i DeiT-T automatycznie, i dalej badał zasady alokacji parametrÃģw. Pod pewnymi ograniczeniami zasobÃģw, metody cięcia usuwają nieistotne kanały i zachowują najwaÅžniejsze, aby zapewnić najwyÅžszą moÅžliwą dokładność. PoniÅžszy rysunek porÃģwnuje stosunek kanałÃģw do wejściowych osadzeń przed i po cięciu w frameworku Swin-T. Zaobserwowano, Åže: dokładność bazowa: 79,1%; dokładność po cięciu: 76,5%.

PowyÅžszy rysunek wskazuje, Åže pierwsze dwie fazy frameworku zachowują więcej wymiarÃģw, podczas gdy ostatnie dwie fazy zachowują znacznie mniej wymiarÃģw. MoÅže to oznaczać, Åže typowa konfiguracja kanałÃģw, ktÃģra podwaja kanał po kaÅždym etapie lub uÅžywa rÃģwnowaÅžnych kanałÃģw dla wszystkich blokÃģw, moÅže prowadzić do znacznej redundancji w ostatnich blokach.

Efficient Vision Transformer: Architektura

Na podstawie wnioskÃģw z powyÅžszej analizy, deweloperzy pracowali nad stworzeniem nowego hierarchicznego modelu, ktÃģry oferuje szybkie prędkości interferencji, model EfficientViT. Zobaczmy strukturę frameworku EfficientViT. PoniÅžszy rysunek daje ogÃģlne pojęcie o frameworku EfficientViT.

Budulec Frameworku EfficientViT

Budulec dla bardziej wydajnego modelu transformatora wizji jest ilustrowany na poniÅžszym rysunku.

Framework składa się z modułu Cascaded Group Attention, wydajnego układu piętrowego i strategii ponownego rozdzielenia parametrÃģw, ktÃģre koncentrują się na poprawie wydajności modelu pod względem obliczeń, pamięci i parametrÃģw. Zobaczmy je w większym szczegÃģle.

Układ Piętrowy

Model wykorzystuje nowy układ piętrowy, aby stworzyć bardziej efektywny i wydajny blok pamięci dla frameworku. Układ piętrowy wykorzystuje mniej warstw związanych z pamięcią i wykorzystuje więcej wydajnych sieci Feed Forward do komunikacji kanałÃģw. Aby być bardziej konkretnym, model stosuje pojedynczą warstwę uwagi dla mieszania przestrzennego, ktÃģra jest umieszczona pomiędzy warstwami Feed Forward. Projekt nie tylko pomaga w redukowaniu czasu dostępu do pamięci ze względu na warstwy uwagi, ale takÅže pozwala na efektywną komunikację między kanałami dzięki uÅžyciu warstw Feed Forward. Model rÃģwnieÅž stosuje dodatkową warstwę tokena interakcji przed kaÅždą warstwą Feed Forward, wykorzystując DWConv lub Deceptive Convolution, i zwiększa pojemność modelu, wprowadzając indukcyjną bias lokalnej struktury.

Cascaded Group Attention

Jednym z głÃģwnych problemÃģw z warstwami MHSA jest redundancja w głowach uwagi, co sprawia, Åže obliczenia są mniej efektywne. Aby rozwiązać ten problem, model proponuje Cascaded Group Attention dla transformatorÃģw wizji, nowy moduł uwagi, ktÃģry czerpie inspirację z grupowych konwolucji w efektywnych CNN. W tym podejściu, model karmi poszczegÃģlne głowy częściami pełnych cech, i w ten sposÃģb dekomponuje obliczenia uwagi wyraÅšnie między głowami. Podział cech zamiast karmienia kaÅždej głowy pełnymi cechami oszczędza obliczenia i sprawia, Åže proces jest bardziej efektywny, a model kontynuuje pracę nad poprawą dokładności i pojemności, zachęcając warstwy do nauki projekcji na cechach o bogatszych informacjach.

Ponowne Rozdzielenie ParametrÃģw

Aby poprawić wydajność parametrÃģw, model ponownie rozdziela parametry w sieci, rozszerzając szerokość kanału podstawowych składnikÃģw sieci, takich jak projekcje wartości, a składniki sieci o niskiej wartości, takie jak wymiary ukryte w sieciach Feed Forward, są zmniejszane w celu ponownego rozdzielenia parametrÃģw w frameworku. Na podstawie analizy Taylor, model albo ustawia małe wymiary kanałÃģw dla projekcji w kaÅždej głowie na kaÅždym etapie, albo pozwala projekcjom mieć takie same wymiary jak wejściowe. WspÃģłczynnik ekspansji sieci Feed Forward jest rÃģwnieÅž zmniejszony do 2 z 4, aby pomÃģc w redundancji parametrÃģw. Proponowana strategia ponownego rozdzielenia, ktÃģrą framework EfficientViT wdroÅžył, przydziela więcej kanałÃģw waÅžnym modułom, aby mogły one nauczyć się reprezentacji w wysokowymiarowej przestrzeni, co minimalizuje utratę informacji o cechach. Ponadto, aby przyspieszyć proces interferencji i zwiększyć wydajność modelu, model automatycznie usuwa redundancję parametrÃģw w nieistotnych modułach.

Przegląd frameworku EfficientViT moÅžna wyjaśnić na powyÅžszym rysunku, gdzie części,

  1. Architektura EfficientViT,
  2. Blok układu piętrowego,
  3. Cascaded Group Attention.

 

EfficientViT: Architektury Sieci

PowyÅžszy rysunek podsumowuje architekturę sieci frameworku EfficientViT. Model wprowadza nakładające się osadzanie patchÃģw [20,80], ktÃģre osadzają patche 16×16 w wymiarze C1, co zwiększa pojemność modelu do lepszego wykonania niskopoziomowego uczenia reprezentacji wizualnej. Architektura modelu składa się z trzech etapÃģw, z ktÃģrych kaÅždy stosuje proponowane bloki budulcowe frameworku EfficientViT, a liczba tokenÃģw na kaÅždej warstwie subsamplingu (2-krotny subsampling rozdzielczości) jest zmniejszona o 4-krotność. Aby subsampling był bardziej efektywny, model proponuje blok subsamplingu, ktÃģry rÃģwnieÅž ma proponowany układ piętrowy, z wyjątkiem, Åže odwrÃģcony blok resztowy zastępuje warstwę uwagi, aby zmniejszyć utratę informacji podczas prÃģbkowania. Ponadto, zamiast konwencjonalnej LayerNorm (LN), model wykorzystuje BatchNorm (BN), poniewaÅž BN moÅže być złoÅžony w poprzedniej warstwie liniowej lub warstwie konwolucyjnej, co daje mu przewagę podczas wykonywania nad LN.

 

Rodzina Modeli EfficientViT

Rodzina modeli EfficientViT składa się z 6 modeli o rÃģÅžnej skali głębokości i szerokości, a ustalona liczba głÃģw jest przydzielona dla kaÅždego etapu. Modele wykorzystują mniej blokÃģw w początkowych etapach w porÃģwnaniu z etapami końcowymi, co jest podobne do procesu stosowanego przez framework MobileNetV3, poniewaÅž proces przetwarzania na wczesnych etapach z większymi rozdzielczościami jest czasochłonny. Szerokość jest zwiększana na etapach z małym czynnikiem, aby zmniejszyć redundancję w pÃģÅšniejszych etapach. PoniÅžsza tabela zawiera szczegÃģły architektury rodziny modeli EfficientViT, gdzie C, L i H odnoszą się do szerokości, głębokości i liczby głÃģw na danym etapie.

EfficientViT: Implementacja Modelu i Wyniki

Model EfficientViT ma łączną wielkość partii 2 048, jest zbudowany z Timm i PyTorch, jest trenowany od podstaw przez 300 epok, wykorzystując 8 kart graficznych Nvidia (NVDA ) V100, wykorzystuje planista learning rate cosine, optymizator AdamW, i prowadzi eksperyment klasyfikacji obrazÃģw na ImageNet-1K. Obrazy wejściowe są losowo obcinane i zmieniane rozmiaru na 224×224. Dla eksperymentÃģw, ktÃģre obejmują klasyfikację obrazÃģw w dÃģł, framework EfficientViT dostraja model przez 300 epok, i wykorzystuje optymizator AdamW z wielkością partii 256. Model wykorzystuje RetineNet do wykrywania obiektÃģw na COCO, i kontynuuje szkolenie modeli przez dodatkowe 12 epok z tymi samymi ustawieniami.

Wyniki na ImageNet

Aby przeanalizować wydajność EfficientViT, jest on porÃģwnywany z bieŞącymi modelami ViT i CNN na zestawie danych ImageNet. Wyniki z porÃģwnania są raportowane w poniÅžszym rysunku. Jak widać, rodzina modeli EfficientViT przewyÅžsza obecne frameworki w większości przypadkÃģw i osiąga optymalny kompromis między szybkością a dokładnością.

PorÃģwnanie z Efektywnymi CNN i Efektywnymi ViT

Model jest najpierw porÃģwnywany z efektywnymi CNN, takimi jak EfficientNet i zwykłymi frameworkami CNN, takimi jak MobileNets. Jak widać, w porÃģwnaniu z frameworkami MobileNet, modele EfficientViT osiągają lepszą dokładność top-1, jednocześnie działając 3,0-krotnie i 2,5-krotnie szybciej na CPU Intel (INTC ) i GPU V100 odpowiednio.

PowyÅžszy rysunek porÃģwnuje wydajność modelu EfficientViT z duÅžymi, skalowalnymi modelami ViT, działającymi na zestawie danych ImageNet-1K.

Klasyfikacja ObrazÃģw w DÃģł

Model EfficientViT jest stosowany w rÃģÅžnych zadaniach w dÃģł, aby zbadać moÅžliwości transferu wiedzy modelu, a poniÅžszy rysunek podsumowuje wyniki eksperymentu. Jak widać, model EfficientViT-M5 osiąga lepsze lub podobne wyniki we wszystkich zestawach danych, jednocześnie utrzymując znacznie wyÅžszą wydajność. Jedynym wyjątkiem jest zestaw danych Cars, w ktÃģrym model EfficientViT nie radzi sobie z dokładnością.

Wykrywanie ObiektÃģw

Aby przeanalizować moÅžliwości modelu EfficientViT w wykrywaniu obiektÃģw, jest on porÃģwnywany z efektywnymi modelami na zadaniu wykrywania obiektÃģw COCO, a poniÅžszy rysunek podsumowuje wyniki porÃģwnania.

Podsumowanie

W tym artykule, omÃģwiliśmy EfficientViT, rodzinę szybkich modeli transformatora wizji, ktÃģre wykorzystują Cascaded Group Attention i zapewniają efektywne operacje pamięci. Wyczerpujące eksperymenty przeprowadzone w celu przeanalizowania wydajności EfficientViT wykazały obiecujące wyniki, poniewaÅž model EfficientViT przewyÅžsza obecne modele CNN i transformatora wizji w większości przypadkÃģw. PrÃģbowaliśmy rÃģwnieÅž zapewnić analizę czynnikÃģw, ktÃģre wpływają na prędkość interferencji transformatora wizji.

"InÅžynier z zawodu, pisarz z serca". Kunal jest technicznym pisarzem z głęboką miłością i zrozumieniem AI i ML, poświęconym uproszczeniu złoÅžonych pojęć w tych dziedzinach poprzez swoje angaÅžujące i informacyjne dokumentacje.