Modely a platformy AI
EfficientViT: Paměťově efektivní Vision Transformer pro počítačové vidění s vysokým rozlišením

Díky své vysoké modelové kapacitě si modely Vision Transformer užívaly velké úspěchy v nedávné době. Navzdory jejich výkonu mají modely vision transformer jednu velkou vadu: jejich pozoruhodná výpočetní síla stojí za vysokými výpočetními náklady, a to je důvod, proč vision transformery nejsou první volbou pro aplikace v reálném čase. Aby se tento problém vyřešil, skupina vývojářů spustila EfficientViT, rodinu rychlých vision transformerů.
Při práci na EfficientViT vývojáři pozorovali, že rychlost současných transformerových modelů je často omezena neefektivními operacemi s pamětí, zejména element-wise funkcemi a tensorovým reshape v MHSA nebo Multi-Head Self Attention síti. Aby se tyto neefektivní operace s pamětí vyřešily, vývojáři EfficientViT pracovali na novém stavebním bloku pomocí sendvičové layoutu, tj. model EfficientViT využívá jeden paměťově vázaný Multi-Head Self Attention blok mezi efektivními FFN (feed forward network) vrstvami, což pomáhá zlepšit paměťovou efektivitu a také celkovou komunikaci mezi kanály. Kromě toho model zjistil, že pozornostní mapy často mají vysoké podobnosti mezi hlavami, což vede ke komputační redundanci. Aby se tato redundance vyřešila, model EfficientViT představuje nový modul Cascaded Group Attention, který krmit pozornostní hlavy s rozdílnými částmi plné funkce. Tato metoda nejenom šetří výpočetní náklady, ale také zlepšuje rozmanitost pozornosti modelu.
Komplexní experimenty provedené na modelu EfficientViT napříč různými scénáři ukazují, že EfficientViT překonává stávající efektivní modely pro počítačové vidění, zatímco dosahuje dobrého kompromisu mezi přesností a rychlostí. Takže se pojďme podívat na model EfficientViT blíže.
Úvod do Vision Transformerů a EfficientViT
Vision Transformery zůstávají jednou z nejpopulárnějších rámců v počítačovém vidění, protože nabízejí vyšší výkon a vysoké výpočetní schopnosti. Nicméně, s neustále se zlepšující přesností a výkonem modelů vision transformer, provozní náklady a výpočetní nároky také rostou. Například současné modely, které poskytují špičkový výkon na ImageNet datech, jako je SwinV2 a V-MoE, používají 3B a 14,7B parametrů. Velikost těchto modelů spolu s výpočetními náklady a požadavky je činí prakticky nevhodnými pro zařízení a aplikace v reálném čase.
Model EfficientNet se snaží prozkoumat, jak zlepšit výkon modelů vision transformer a najít principy, které stojí za návrhem efektivní a efektivní transformerové architektury. Model EfficientViT je založen na stávajících rámcích vision transformer, jako je Swim a DeiT, a analyzuje tři základní faktory, které ovlivňují rychlost modelů, včetně komputační redundance, přístupu k paměti a použití parametrů. Kromě toho model pozoruje, že rychlost modelů vision transformer je omezena pamětí, což znamená, že plné využití výpočetní síly v CPU/GPU je omezeno zpožděním přístupu k paměti, což má negativní dopad na rychlost běhu transformerů. Element-wise funkce a tensorové reshape v MHSA nebo Multi-Head Self Attention síti jsou nejméně efektivní operace.
Model je konečným výsledkem výzkumné práce na EfficientViT. Model má nový blok se sendvičovou layout, který aplikuje jeden paměťově vázaný MHSA blok mezi FFN vrstvami. Tento přístup nejenom snižuje čas potřebný pro provedení paměťově vázaných operací v MHSA, ale také činí celý proces více paměťově efektivním, umožňuje-li více FFN vrstev usnadnit komunikaci mezi kanály. Model také využívá nový modul Cascaded Group Attention, který se snaží učinit výpočty více efektivními, snižuje-li komputační redundanci nejenom v pozornostních hlavách, ale také zvyšuje hloubku sítě, což vede ke zvýšení kapacity modelu. Nakonec model rozšiřuje šířku kanálu kritických komponent sítě, zatímco zmenšuje šířku kanálu méně důležitých komponent, aby přerozdělil parametry v rámci.

Jak je vidět na obrázku výše, rámec EfficientViT funguje lépe než současné špičkové modely CNN a ViT z hlediska přesnosti a rychlosti. Ale jak se EfficientViT podařilo překonat některé ze současných špičkových rámců? Pojďme to zjistit.
EfficientViT: Zlepšení efektivity Vision Transformerů
Model EfficientViT se snaží zlepšit efektivitu stávajících modelů vision transformer z hlediska tří perspektiv:
- Komputační redundance.
- Přístup k paměti.
- Použití parametrů.
Model se snaží zjistit, jak tyto parametry ovlivňují efektivitu modelů vision transformer a jak je možné je vyřešit, aby se dosáhlo lepších výsledků s vyšší efektivitou. Pojďme se na ně podívat blíže.
Přístup k paměti a efektivita
Jedním z hlavních faktorů, které ovlivňují rychlost modelu, je přístup k paměti nebo MAO. Jak je vidět na obrázku níže, několik operátorů v transformeru, včetně element-wise přidání, normalizace a častého reshape, jsou neefektivní operace, protože vyžadují přístup k různým paměťovým jednotkám, což je časově náročný proces.

Ačkoli existují některé stávající metody, které mohou zjednodušit standardní softmax self-attention výpočty, jako je low-rank aproximace a sparse attention, často nabízejí omezenou akceleraci a snižují přesnost.
Na druhé straně se rámec EfficientViT snaží snížit náklady na přístup k paměti, snížením počtu neefektivní vrstev v rámci. Model měří poměr kanálů k vstupním embeddingům před a po prořezání na Swin-T rámci. Jak je vidět na obrázku níže, když je implementován, přístup zvyšuje přesnost MHSA vrstev o cca 20-40%.

Komputační efektivita
MHSA vrstvy tendují k tomu, aby vložily vstupní sekvenci do více podsítí nebo hlav, a počítají pozornostní mapy jednotlivě, což je přístup, který je známý tím, že zvyšuje výkon. Nicméně, pozornostní mapy nejsou levné, a aby se prozkoumaly výpočetní náklady, model EfficientViT zkoumá, jak snížit redundantní pozornost v menších ViT modelech. Model měří maximální kosinovou podobnost každé hlavy a zbývajících hlav v každém bloku, trénováním šířkově snížených DeiT-T a Swim-T modelů s 1,25násobným zrychlením inference. Jak je vidět na obrázku níže, existuje vysoký počet podobnosti mezi pozornostními hlavami, což naznačuje, že model incuruje komputační redundanci, protože mnoho hlav se učí podobné projekce plné funkce.

Aby se hlavám umožnilo naučit se různé vzory, model explicitně aplikuje intuitivní řešení, ve kterém je každá hlava krmena pouze částí plné funkce, což připomíná myšlenku group konvoluce. Model trénuje různé aspekty snížených modelů, které mají modifikované MHSA vrstvy.
Parametrická efektivita
Průměrné modely ViT dědí své designové strategie, jako je použití ekvivalentní šířky pro projekce, nastavení expansion ratio na 4 v FFN a zvyšování hlav přes fáze z NLP transformerů. Konfigurace těchto komponent musí být pečlivě navrhnuta pro lehké moduly. Model EfficientViT nasazuje Taylor strukturované prořezání, aby nalezl základní komponenty ve Swin-T a DeiT-T vrstvách automaticky, a dále prozkoumá základní principy alokace parametrů. Pod určitými omezeními zdrojů odstraňují metody prořezání nepodstatné kanály a uchovávají kritické, aby zajistily nejvyšší možnou přesnost. Obrázek níže porovnává poměr kanálů k vstupním embeddingům před a po prořezání na Swin-T rámci. Bylo zjištěno, že: Základní přesnost: 79,1%; prořezaná přesnost: 76,5%.

Obrázek výše ukazuje, že první dvě fáze rámce uchovávají více dimenzí, zatímco poslední dvě fáze uchovávají mnohem méně dimenzí. To může znamenat, že typická konfigurace kanálů, která zdvojnásobuje kanál po každé fázi nebo používá ekvivalentní kanály pro všechny bloky, může vést k podstatné redundanci v posledních blocích.
Efficient Vision Transformer: Architektura
Na základě poznatků získaných během výše uvedené analýzy, vývojáři pracovali na vytvoření nového hierarchického modelu, který nabízí rychlé inference rychlosti, model EfficientViT. Pojďme se podívat na strukturu rámce EfficientViT podrobněji.
Stavební bloky rámce EfficientViT
Stavební blok pro více efektivní vision transformer síť je znázorněn na obrázku níže.

Rámec se skládá z modulu Cascaded Group Attention, paměťově efektivní sendvičové layout a strategie realokace parametrů, které se zaměřují na zlepšení efektivnosti modelu z hlediska výpočtu, paměti a parametrů. Pojďme se na ně podívat blíže.
Sendvičová layout
Model využívá novou sendvičovou layout, aby vytvořil více efektivní a efektivní paměťový blok pro rámec. Sendvičová layout využívá méně paměťově vázaných self-attention vrstev a využívá více paměťově efektivní feed forward sítě pro komunikaci mezi kanály. Konkrétněji model aplikuje jeden self-attention blok pro prostorové míchání, který je umístěn mezi FFN vrstvami. Design nejenom snižuje čas potřebný pro provedení paměťově vázaných operací v self-attention vrstvách, ale také umožňuje efektivní komunikaci mezi kanály v síti, díky použití FFN vrstev. Model také aplikuje další interakční token vrstvu před každou feed forward síťovou vrstvou, pomocí DWConv nebo Deceptive Convolution, a zvyšuje kapacitu modelu, zavádějíce induktivní bias lokální strukturální informace.
Cascaded Group Attention
Jedním z hlavních problémů s MHSA vrstvami je redundance v pozornostních hlavách, což činí výpočty méně efektivními. Aby se tento problém vyřešil, model navrhuje nový modul Cascaded Group Attention pro vision transformery, který inspiruje group konvoluce v efektivní CNN. V tomto přístupu model krmit pozornostní hlavy s rozdílnými částmi plné funkce, a tím explicitně rozkládá pozornostní výpočty mezi hlavami. Rozdělování funkcí místo krmení plných funkcí každé hlavě šetří výpočetní náklady a činí proces více efektivní, a model pokračuje ve zlepšování přesnosti a kapacity, podporuje-li vrstvy, aby se naučily projekce na funkcích s bohatějšími informacemi.

Realokace parametrů
Aby se zlepšila efektivita parametrů, model realokuje parametry v síti, rozšiřuje šířku kanálu kritických modulů, zatímco zmenšuje šířku kanálu méně důležitých modulů. Na základě Taylorovy analýzy model buď nastavuje malé kanálové rozměry pro projekce v každé hlavě během každé fáze, nebo umožňuje projekcím mít stejné rozměry jako vstup. Expansion ratio feed forward sítě je také snížena na 2 z 4, aby se snížila redundance parametrů. Navrhovaná strategie realokace, kterou rámec EfficientViT implementuje, přiděluje více kanálů důležitým modulům, aby se umožnilo naučit se reprezentace v vysoké dimenzi lépe, a minimalizovalo se ztrátu informací o funkcích. Kromě toho, aby se urychlil proces inference a zlepšila efektivita modelu, model automaticky odstraňuje redundantní parametry v méně důležitých modulech.

Přehled rámce EfficientViT lze vysvětlit na obrázku výše, kde jsou části:
- Architektura EfficientViT,
- Sendvičová layout blok,
- Cascaded Group Attention.
EfficientViT: Sítě

Obrázek výše shrnuje architekturu sítě EfficientViT. Model zavádí překrývající se patch embedding [20,80], který vkládá 16×16 patche do C1 dimenzionálních tokenů, což zvyšuje kapacitu modelu pro nízkoúrovňové vizuální reprezentace. Architektura modelu se skládá ze tří fází, kde každá fáze skládá navrhované stavební bloky rámce EfficientViT, a počet tokenů v každé subsampling vrstvě (2× subsampling rozlišení) je snížen o 4X. Aby se subsampling stal více efektivní, model navrhuje subsample blok, který má také navrhovanou sendvičovou layout, s výjimkou, že invertovaný reziduální blok nahrazuje pozornostní vrstvu, aby se snížila ztráta informací během vzorkování. Kromě toho, místo konvenční LayerNorm (LN), model využívá BatchNorm (BN), protože BN může být složen do předchozích lineárních nebo konvolučních vrstev, což mu dává výhodu v době běhu oproti LN.
Rodina modelů EfficientViT
Rodina modelů EfficientViT se skládá ze šesti modelů s rozdílnou hloubkou a šířkou, a stanoveným počtem hlav pro každou fázi. Modely využívají méně bloků v počátečních fázích ve srovnání s konečnými fázemi, proces podobný tomu, který je následován rámcem MobileNetV3, protože proces počáteční fáze s většími rozlišeními je časově náročný. Šířka je zvyšována přes fáze s malým faktorem, aby se snížila redundance v pozdějších fázích. Tabulka níže poskytuje architektonické detaily rodiny modelů EfficientViT, kde C, L a H označují šířku, hloubku a počet hlav v konkrétní fázi.

EfficientViT: Implementace modelu a výsledky
Model EfficientViT má celkovou velikost batchu 2 048, je postaven s Timm a PyTorch, je trénován od začátku po dobu 300 epoch, pomocí 8 Nvidia V100 GPU, využívá kosinový plánovač学习 rychlosti, AdamW optimalizátor, a provádí experimenty na ImageNet-1K. Vstupní obrázky jsou náhodně ořezány a přepočteny do rozlišení 224×224. Pro experimenty, které zahrnují downstream klasifikaci obrázků, rámec EfficientViT fine-tunuje model po dobu 300 epoch, a využívá AdamW optimalizátor s velikostí batchu 256. Model využívá RetineNet pro detekci objektů na COCO, a pokračuje ve trénování modelů po dalších 12 epoch, se stejnými nastaveními.
Výsledky na ImageNet
Aby se analyzoval výkon modelu EfficientViT, je srovnán s aktuálními modely ViT a CNN na datasetu ImageNet. Výsledky porovnání jsou uvedeny v následujícím obrázku. Jak je vidět, rodina modelů EfficientViT překonává současné rámce ve většině případů, a dosahuje ideálního kompromisu mezi rychlostí a přesností.

Srovnání s efektivními CNN a efektivními ViT
Model se nejprve porovnává se svými výsledky proti efektivnímu CNN, jako je EfficientNet, a vanilkovým CNN rámcem, jako je MobileNet. Jak je vidět, že ve srovnání s MobileNet rámcem, modely EfficientViT získávají lepší skóre přesnosti, zatímco běží 3,0x a 2,5x rychleji na Intel CPU a V100 GPU.

Obrázek výše porovnává výkon modelu EfficientViT s špičkovými velkými modely ViT, běžícími na datasetu ImageNet-1K.
Downstream klasifikace obrázků
Model EfficientViT je aplikován na různé downstream úkoly, aby se studovaly schopnosti modelu pro přenos učení, a níže uvedený obrázek shrnuje výsledky experimentu. Jak je vidět, model EfficientViT-M5 dosahuje lepších nebo podobných výsledků ve všech datech, zatímco udržuje mnohem vyšší propustnost. Jedinou výjimkou je dataset Cars, kde model EfficientViT nedokáže dosáhnout přesnosti.

Detekce objektů
Aby se analyzovaly schopnosti modelu EfficientViT pro detekci objektů, je srovnán s efektivními modely na úkolu detekce objektů COCO, a níže uvedený obrázek shrnuje výsledky porovnání.

Závěrečné myšlenky
V tomto článku jsme hovořili o EfficientViT, rodině rychlých vision transformer modelů, které využívají Cascaded Group Attention a poskytují paměťově efektivní operace. Extensivní experimenty provedené na modelu EfficientViT ukázaly slibné výsledky, protože model EfficientViT překonává současné CNN a vision transformer modely ve většině případů. Také jsme se pokusili poskytnout analýzu faktorů, které ovlivňují rychlost inference vision transformerů.












