ConvNeXt powstaje przez sekwencję zmian nakładanych na ResNet: (1) zmiana proporcji obliczeń między etapami na (3,3,9,3) w stylu Swin; (2) patchify stem, czyli zastąpienie wejściowej konwolucji 7x7 stride-2 i max-poolingu nienakładającą się konwolucją 4x4 stride-4; (3) blok w stylu ResNeXt z konwolucją głębokościową i szeroką liczbą kanałów; (4) odwrócony bottleneck (rozszerzenie kanałów ~4x, jak w FFN transformera); (5) przesunięcie i powiększenie jądra konwolucji głębokościowej do 7x7; (6) zamiana ReLU na GELU i redukcja liczby aktywacji do jednej na blok; (7) zamiana BatchNorm na LayerNorm i redukcja liczby normalizacji; (8) osobne warstwy downsamplingu (konwolucja 2x2 stride-2 z LayerNorm) między etapami. Model pozostaje hierarchiczny i w pełni konwolucyjny.
Po sukcesie Vision Transformerów pojawiła się teza, że mechanizm uwagi jest niezbędny do osiągania najlepszych wyników w widzeniu komputerowym, a hierarchiczne warianty (Swin) i tak przywracały indukcyjne obciążenia znane z konwolucji. ConvNeXt bada, na ile przewaga transformerów wynika z samej uwagi, a na ile z nowoczesnych decyzji treningowych i architektonicznych, i pokazuje, że dobrze zaprojektowana czysta konwolucja dorównuje transformerom.
Zastępuje wejściową konwolucję 7x7 stride-2 i max-pooling ResNetu nienakładającą się konwolucją 4x4 stride-4, analogicznie do patch embeddingu w ViT.
Duże jądro 7x7 stosowane per-kanał, pełniące rolę przestrzennego mieszania informacji, analogicznie do okna uwagi w Swin.
Blok rozszerzający liczbę kanałów (~4x) i projektujący je z powrotem, w stylu bloku FFN transformera oraz MobileNetV2/ResNeXt.
Normalizacja warstwowa zastępująca BatchNorm; zmniejszono liczbę warstw normalizacji w bloku.
GELU zastępuje ReLU, przy jednej aktywacji na blok zamiast wielu.
Dedykowane warstwy 2x2 stride-2 z LayerNorm między etapami, zamiast downsamplingu wewnątrz bloku rezydualnego.
Sieci rezydualne, punkt wyjścia modernizowany przez ConvNeXt.
Zastosowanie czystego transformera do klasyfikacji obrazów.
Hierarchiczny ViT z oknami przesuwnymi; główny punkt odniesienia dla ConvNeXt.
Modernizacja ResNetu dorównująca transformerom na ImageNet, COCO i ADE20K.
Rozszerzenie o samonadzorowany pretrening FCMAE i warstwę Global Response Normalization (GRN).
ConvNeXt wykorzystywany jako konwolucyjny backbone w rodzinie modeli DINOv3 firmy Meta.
Złożoność czasowa: O(H·W·C·K² + H·W·C²). Złożoność przestrzenna: O(H·W·C).
Warianty rodziny różniące się liczbą kanałów, głębokością i kosztem obliczeniowym.
Liczba bloków w kolejnych etapach; ConvNeXt-T/S używa (3,3,9,3), a B/L/XL (3,3,27,3).
Liczba kanałów w kolejnych etapach hierarchii.
Rozmiar dużego jądra konwolucji głębokościowej; domyślnie 7x7.
Czysta sieć konwolucyjna bez mechanizmu uwagi i bez routingu; wszystkie ścieżki obliczeniowe aktywne dla każdego wejścia.
Konwolucje są równoległe po pozycjach przestrzennych i kanałach; brak sekwencyjnej zależności między tokenami.
Gęste konwolucje dobrze mapują się na GPU, ale konwolucje głębokościowe 7x7 są ograniczone przepustowością pamięci i słabiej wykorzystują tensor cores względem niskiej liczby FLOPs.
Standardowe operacje konwolucyjne są szeroko wspierane na różnych akceleratorach.