Utrzymywany przez Arm ML Tooling
Ten dokument zawiera przegląd eksperymentalnych interfejsów API umożliwiających łączenie różnych technik w celu optymalizacji modeli uczenia maszynowego pod kątem wdrożenia.
Przegląd
Optymalizacja oparta na współpracy to nadrzędny proces obejmujący różne techniki tworzenia modelu, który po wdrożeniu wykazuje najlepszą równowagę cech docelowych, takich jak szybkość wnioskowania, rozmiar modelu i dokładność.
Ideą optymalizacji opartych na współpracy jest opieranie się na indywidualnych technikach poprzez stosowanie ich jedna po drugiej w celu osiągnięcia skumulowanego efektu optymalizacji. Możliwe są różne kombinacje następujących optymalizacji:
- Przycinanie wagi
- Grupowanie wag
Kwantyzacja
Problem, który pojawia się przy próbie połączenia tych technik, polega na tym, że zastosowanie jednej zazwyczaj niszczy wyniki poprzedniej techniki, psując ogólne korzyści z jednoczesnego stosowania ich wszystkich; na przykład klastrowanie nie zachowuje rzadkości wprowadzonej przez interfejs API czyszczenia. Aby rozwiązać ten problem, wprowadzamy następujące eksperymentalne techniki optymalizacji opartej na współpracy:
- Klastrowanie zachowujące rzadkość
- Szkolenie świadome kwantyzacji zachowującej rzadkość (PQAT)
- Szkolenie w zakresie świadomości kwantyzacji klastrów (CQAT)
- Trening świadomy kwantyzacji z zachowaniem rzadkości i klastrów
Zapewniają one kilka ścieżek wdrażania, które można wykorzystać do kompresji modelu uczenia maszynowego i wykorzystania przyspieszenia sprzętowego w czasie wnioskowania. Poniższy diagram przedstawia kilka ścieżek wdrażania, które można zbadać w poszukiwaniu modelu o pożądanych cechach wdrożenia, gdzie węzły-liście 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 ponowne szkolenie/dostrojenie, a przerywana czerwona ramka podkreśla etapy optymalizacji opartej na współpracy. Technika zastosowana do uzyskania modelu w danym węźle jest wskazana na odpowiedniej etykiecie.
Na powyższym rysunku pominięto bezpośrednią ścieżkę wdrożenia obejmującą wyłącznie kwantyzację (po szkoleniu lub QAT).
Zamysłem jest osiągnięcie w pełni zoptymalizowanego modelu na trzecim poziomie powyższego drzewa wdrożeniowego; jednakże dowolny z pozostałych poziomów optymalizacji może okazać się zadowalający i osiągnąć wymagany kompromis w zakresie opóźnienia wnioskowania/dokładności, w którym to przypadku dalsza optymalizacja nie jest konieczna. Zalecany proces szkoleniowy polegałby na iteracyjnym przejściu przez poziomy drzewa wdrożenia mającego zastosowanie do docelowego scenariusza wdrożenia i sprawdzeniu, czy model spełnia wymagania dotyczące opóźnień wnioskowania, a jeśli nie, zastosowanie odpowiedniej techniki optymalizacji opartej na współpracy w celu dalszej kompresji modelu i powtórzenia dopóki model nie zostanie w pełni zoptymalizowany (oczyszczony, skupiony i skwantowany), jeśli to konieczne.
Poniższy rysunek przedstawia wykresy gęstości jądra o masie próbki przechodzącej przez potok wspólnej optymalizacji.
Rezultatem jest skwantowany 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 szkolenia. Poza znaczącymi zaletami kompresji modelu, specyficzna obsługa sprzętu może wykorzystać te rzadkie, klastrowe modele, aby znacznie zmniejszyć opóźnienia wnioskowania.
Wyniki
Poniżej znajdują się niektóre wyniki dotyczące dokładności i kompresji, które uzyskaliśmy podczas eksperymentowania ze wspólnymi ścieżkami optymalizacji PQAT i CQAT.
Szkolenie w zakresie świadomości kwantyzacji zachowującej rzadkość (PQAT)
Model | Rzeczy | Linia bazowa | Model przycięty (rzadkość 50%) | Model QAT | Model PQAT |
---|---|---|---|---|---|
DS-CNN-L | Dokładność FP32 Top1 | 95,23% | 94,80% | (Fałszywy INT8) 94,721% | (Fałszywy INT8) 94,128% |
Pełna kwantyzacja całkowitoliczbowa INT8 | 94,48% | 93,80% | 94,72% | 94,13% | |
Kompresja | 528128 → 434879 (17,66%) | 528128 → 334154 (36,73%) | 512224 → 403261 (21,27%) | 512 032 → 303 997 (40,63%) | |
Mobilenet_v1-224 | FP32 Najwyższa dokładność 1 | 70,99% | 70,11% | (Fałszywy INT8) 70,67% | (Fałszywy INT8) 70,29% |
Pełna kwantyzacja całkowitoliczbowa INT8 | 69,37% | 67,82% | 70,67% | 70,29% | |
Kompresja | 4665520 → 3880331 (16,83%) | 4 665 520 → 2 939 734 (37,00%) | 4569416 → 3808781 (16,65%) | 4569416 → 2869600 (37,20%) |
Szkolenie uwzględniające kwantyzację zachowującą klastry (CQAT)
Model | Rzeczy | Linia bazowa | Model klastrowy | Model QAT | Model CQAT |
---|---|---|---|---|---|
Mobilenet_v1 na CIFAR-10 | Dokładność FP32 Top1 | 94,88% | 94,48% | (Fałszywy INT8) 94,80% | (Fałszywy INT8) 94,60% |
Pełna kwantyzacja całkowitoliczbowa INT8 | 94,65% | 94,41% | 94,77% | 94,52% | |
Rozmiar | 3,00 MB | 2,00 MB | 2,84MB | 1,94 MB | |
Mobilenet_v1 w ImageNet | FP32 Najwyższa dokładność 1 | 71,07% | 65,30% | (Fałszywy INT8) 70,39% | (Fałszywy INT8) 65,35% |
Pełna kwantyzacja całkowitoliczbowa INT8 | 69,34% | 60,60% | 70,35% | 65,42% | |
Kompresja | 4665568 → 3886277 (16,7%) | 4 665 568 → 3 035 752 (34,9%) | 4569416 → 3804871 (16,7%) | 4569472 → 2912655 (36,25%) |
Wyniki CQAT i PCQAT dla modeli skupionych na kanale
Poniższe wyniki uzyskano stosując technikę grupowania na kanał . Pokazują, że jeśli warstwy splotowe modelu są skupione na kanale, wówczas dokładność modelu jest wyższa. Jeśli Twój model ma wiele warstw splotowych, zalecamy klastrowanie według kanału. Stopień kompresji pozostaje taki sam, ale dokładność modelu będzie wyższa. W naszych eksperymentach potok optymalizacji modelu jest „klastrowany -> zachowujący klaster QAT -> kwantyzacja po szkoleniu, int8”. Model Klastrowany -> CQAT, skwantowany int8 Klastrowane na kanał -> CQAT, kwantowane int8 DS-CNN-L 95,949% 96,44% MobileNet-V2 71,538% 72,638% MobileNet-V2 (przycięty) 71,45% 71,901%
Przykłady
Aby zapoznać się z kompleksowymi przykładami opisanych tutaj technik optymalizacji współpracy, zapoznaj się z przykładowymi notatnikami CQAT , PQAT , klastrowanie zachowujące rzadkość i PCQAT .