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 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 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.

Kunal Kejriwal jest inżynierem backendu specjalizującym się w Pythonie, PostgreSQL, Redis oraz infrastrukturze chmurowej w GCP i AWS. Z trzyletnim doświadczeniem w budowaniu i skalowaniu systemów produkcyjnych pisze o infrastrukturze AI, systemach rozproszonych i architekturze wdrażania obciążeń uczenia maszynowego.