Kwantyzacja modelu DistilBERT Humor NLP
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:
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 .

![Czym w ogóle jest lista połączona? [Część 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































