Google I/O to frajda! Nadrobić zaległości w sesjach TensorFlow Zobacz sesje

Optymalizacja współpracy

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:

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ó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:

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/dostrojenie, 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.

collaborative optimization

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óźnienia wnioskowania, a jeśli nie, użycie odpowiedniej techniki optymalizacji współpracy w celu dalszego skompresowania modelu i powtórzenia 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.

collaborative optimization density plot

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 Rzeczy 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%)
Sieć komórkowa_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 Rzeczy 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%)

Przykłady

Na koniec-koniec przykłady wspólnych technik optymalizacji opisane tutaj, proszę odnieść się do CQAT , PQAT , sparsity-konserwowanie klastrów i PCQAT przykład notebooków.