Kwantyzacja modelu DistilBERT Humor NLP

Dec 13 2022
Przejście z FP32 na INT8 w celu szybszego wnioskowania dzięki Optimum Intel i Intel Neural Compressor
Kwantyzacja to technika kompresji modelu, która pomaga skrócić czas wnioskowania. Kwantyzacja z 32-bitowej liczby zmiennoprzecinkowej (FP32) na 8-bitową liczbę całkowitą (INT8) poprawia wydajność przy niewielkim spadku dokładności.
Zdjęcie Tengyarta na Unsplash

Kwantyzacja to technika kompresji modelu, która pomaga skrócić czas wnioskowania. Kwantyzacja z 32-bitowej liczby zmiennoprzecinkowej (FP32) na 8-bitową liczbę całkowitą (INT8) poprawia wydajność przy niewielkim spadku dokładności. Ogólnie rzecz biorąc, rozmiar modelu może zmniejszyć się 4–5x, a czas wnioskowania może zostać skrócony ponad 3x ( źródło ).

Musimy najpierw zaimportować kilka dodatkowych bibliotek do kwantyzacji, w tym neural_compressori optimum.intel:

Ustawiam torchurządzenie na cpu:

Możemy teraz zastosować kwantyzację. Zapoznaj się z przykładami klasyfikacji tekstu w optimum.intel repozytorium GitHub , aby dowiedzieć się więcej. Załadujmy wcześniej przeszkolony model:

Skonfigurowałem trenera do korzystania z klasy IncTrainerlub Intel® Neural Compressor Trainer:

Wszystko jest gotowe do przeprowadzenia kwantyzacji. Zauważ, że używam pliku konfiguracyjnego o nazwie quantization.yml pobranego z repozytorium optimum.intel GitHub . Możesz zmienić parametry konfiguracyjne w tym pliku, aby dostosować sposób kwantyzacji modelu. Tutaj stosuję dynamiczną kwantyzację po treningu, technikę, która nie wymaga ponownego szkolenia, ale zazwyczaj poświęca trochę dokładności:

Następnie możemy przejść dalej i uruchomić kwantyzację za pomocą optimizer.fit():

Teraz, gdy mamy zoptymalizowany model, możemy go porównać z modelem bazowym:

Możemy zapisać skwantyzowany model na dysku i mieć do dyspozycji zarówno FP32, jak i nowo skwantyzowany model INT8:

Model INT8 zapisany na dysku

Przeprowadzając ewaluację za pomocą modelu FP32, otrzymujemy:

A dla INT8:

Dokładność jest mniej więcej taka sama, ale model INT8 jest 1,5 razy szybszy niż model FP32. Cały kod można znaleźć na GitHub tutaj .

Aplikację Intel Neural Compressor można zainstalować samodzielnie lub jako część zestawu narzędzi Intel AI Analytics Toolkit . Aby dowiedzieć się więcej o rozwiązaniach sprzętowych i programowych AI firmy Intel, odwiedź tutaj .