Utrzymywane przez Arm ML Tooling
Ten dokument zawiera omówienie eksperymentalnych interfejsów API do łączenia różnych technik w celu optymalizacji modeli uczenia maszynowego do wdrożenia.
Przegląd
Optymalizacja zespołowa to nadrzędny proces, który obejmuje różne techniki tworzenia modelu, który podczas wdrażania wykazuje najlepszą równowagę między cechami docelowymi, takimi jak szybkość wnioskowania, rozmiar modelu i dokładność.
Ideą optymalizacji kooperacyjnych jest budowanie na indywidualnych technikach poprzez stosowanie ich jedna po drugiej w celu uzyskania skumulowanego efektu optymalizacji. Możliwe są różne kombinacje następujących optymalizacji:
- Przycinanie masy
- Grupowanie wag
Kwantyzacja
Problem, który pojawia się podczas próby połączenia tych technik, polega na tym, że zastosowanie jednej zazwyczaj niszczy wyniki poprzedniej techniki, psując ogólną korzyść z jednoczesnego stosowania ich wszystkich; na przykład klastrowanie nie zachowuje rzadkości wprowadzonej przez interfejs API przycinania. Aby rozwiązać ten problem, wprowadzamy następujące eksperymentalne techniki optymalizacji współpracy:
- Grupowanie z zachowaniem rzadkości
- Trening ze świadomością kwantyzacji z zachowaniem rzadkości (PQAT)
- Trening ze świadomością kwantyzacji zachowujący klaster (CQAT)
- Trening dotyczący rzadkości i klastrów z zachowaniem świadomości kwantyzacji
Zapewniają one kilka ścieżek wdrażania, których można użyć do skompresowania modelu uczenia maszynowego i wykorzystania przyspieszenia sprzętowego w czasie wnioskowania. Poniższy diagram przedstawia kilka ścieżek wdrażania, które można eksplorować w poszukiwaniu modelu o pożądanych właściwościach wdrażania, gdzie węzły liści są modelami gotowymi do wdrożenia, co oznacza, że są częściowo lub całkowicie skwantowane i mają format tflite. Zielone wypełnienie wskazuje etapy, w których wymagane jest przeszkolenie/dostrajanie, a przerywana czerwona ramka wyróżnia etapy wspólnej optymalizacji. Technika użyta do uzyskania modelu w danym węźle jest wskazana w odpowiedniej etykiecie.
Na powyższym rysunku pominięto bezpośrednią ścieżkę wdrażania tylko do kwantyzacji (po szkoleniu lub QAT).
Ideą jest osiągnięcie w pełni zoptymalizowanego modelu na trzecim poziomie powyższego drzewa wdrożeniowego; jednak każdy z pozostałych poziomów optymalizacji może okazać się zadowalający i osiągnąć wymagany kompromis między opóźnieniem wnioskowania a dokładnością, w którym to przypadku dalsza optymalizacja nie jest potrzebna. Zalecanym procesem uczenia byłoby iteracyjne przechodzenie przez poziomy drzewa wdrożenia mające zastosowanie do docelowego scenariusza wdrożenia i sprawdzenie, czy model spełnia wymagania dotyczące opóźnień wnioskowania, a jeśli nie, użycie odpowiedniej techniki optymalizacji współpracy, aby dalej skompresować model i powtórzyć dopóki model nie zostanie w pełni zoptymalizowany (oczyszczony, pogrupowany i skwantyzowany), jeśli to konieczne.
Poniższy rysunek przedstawia wykresy gęstości jądra masy próbki przechodzącego przez potok optymalizacji współpracy.
Rezultatem jest skwantyzowany model wdrażania ze zmniejszoną liczbą unikalnych wartości, a także znaczną liczbą rzadkich wag, w zależności od docelowej rzadkości określonej w czasie uczenia. Poza znaczącymi zaletami kompresji modelu, specyficzna obsługa sprzętu może wykorzystać te rzadkie modele klastrowe do znacznego zmniejszenia opóźnień wnioskowania.
Wyniki
Poniżej znajduje się kilka wyników dotyczących dokładności i kompresji, które uzyskaliśmy podczas eksperymentów ze ścieżkami optymalizacji zespołowej PQAT i CQAT.
Szkolenie ze świadomością kwantyzacji z zachowaniem rzadkości (PQAT)
Model | Przedmiotów | Linia bazowa | Przycinany model (50% rzadkość) | Model QAT | Model PQAT |
---|---|---|---|---|---|
DS-CNN-L | Dokładność Top1 FP32 | 95,23% | 94,80% | (Fałszywe INT8) 94,721% | (Fałszywe INT8) 94,128% |
INT8 pełna kwantyzacja liczb całkowitych | 94,48% | 93,80% | 94,72% | 94,13% | |
Kompresja | 528 128 → 434 879 (17,66%) | 528 128 → 334 154 (36,73%) | 512 224 → 403 261 (21,27%) | 512 032 → 303 997 (40,63%) | |
Mobilenet_v1-224 | FP32 Top 1 dokładność | 70,99% | 70,11% | (Fałszywe INT8) 70,67% | (Fałszywe INT8) 70,29% |
INT8 pełna kwantyzacja liczb całkowitych | 69,37% | 67,82% | 70,67% | 70,29% | |
Kompresja | 4 665 520 → 3 880 331 (16,83%) | 4 665 520 → 2 939 734 (37,00%) | 4 569 416 → 3 808 781 (16,65%) | 4 569 416 → 2 869 600 (37,20%) |
Szkolenie ze świadomością kwantyzacji z zachowaniem klastra (CQAT)
Model | Przedmiotów | Linia bazowa | Model klastrowy | Model QAT | Model CQAT |
---|---|---|---|---|---|
Mobilenet_v1 na CIFAR-10 | Dokładność Top1 FP32 | 94,88% | 94,48% | (Fałszywe INT8) 94,80% | (Fałszywe INT8) 94,60% |
INT8 pełna kwantyzacja liczb całkowitych | 94,65% | 94,41% | 94,77% | 94,52% | |
Rozmiar | 3,00 MB | 2,00 MB | 2,84 MB | 1,94 MB | |
Mobilenet_v1 w ImageNet | FP32 Top 1 dokładność | 71,07% | 65,30% | (Fałszywe INT8) 70,39% | (Fałszywe INT8) 65,35% |
INT8 pełna kwantyzacja liczb całkowitych | 69,34% | 60,60% | 70,35% | 65,42% | |
Kompresja | 4 665 568 → 3 886 277 (16,7%) | 4 665 568 → 3 035 752 (34,9%) | 4 569 416 → 3 804 871 (16,7%) | 4 569 472 → 2 912 655 (36,25%) |
Wyniki CQAT i PCQAT dla modeli zgrupowanych na kanał
Poniższe wyniki uzyskano za pomocą techniki grupowania na kanał . Pokazują, że jeśli splotowe warstwy modelu są zgrupowane na kanał, to dokładność modelu jest wyższa. Jeśli Twój model ma wiele warstw splotowych, zalecamy klastrowanie na kanał. Stopień kompresji pozostaje taki sam, ale dokładność modelu będzie wyższa. W naszych eksperymentach proces optymalizacji modelu to „klastrowy -> klaster zachowujący QAT -> kwantyzacja po treningu, int8”. Model Klastrowy -> CQAT, kwantyzacja int8 Klastrowane na kanał -> CQAT, kwantyzacja int8 DS-CNN-L 95,949% 96,44% MobileNet-V2 71,538% 72,638% MobileNet-V2 (przycinany) 71,45% 71,901%
Przykłady
Pełne przykłady opisanych tutaj technik optymalizacji zespołowej można znaleźć w przykładowych notatnikach CQAT , PQAT , klastrów z zachowaniem rzadkości i PCQAT .