Kwantyzacja dla mniejszych i szybszych modeli
Zmniejszać wagi dzięki inferencji int8
Kwantyzacja dla mniejszych i szybszych modeli to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Deep Learning Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.
Mniejsze wagi, szybsze modele
Duże modele są powolne i ciężkie w serwowaniu. Kwantyzacja zmniejsza je, przechowując liczby z użyciem mniejszej liczby bitów, dzięki czemu działają szybciej i zajmują mniej miejsca. 📉
Float32 a Int8
Modele zwykle przechowują wagi jako liczby zmiennoprzecinkowe 32-bitowe. Kwantyzacja konwertuje je na 8-bitowe liczby całkowite, zmniejszając rozmiar około czterokrotnie.
Dlaczego Int8 działa szybciej
Na większości sprzętu działania na liczbach całkowitych są tańsze niż działania zmiennoprzecinkowe, dlatego inferencja int8 wykorzystuje mniej przepustowości pamięci i kończy się szybciej.
Mapowanie liczb zmiennoprzecinkowych na całkowite
Skala i punkt zerowy odwzorowują każdy zakres liczb zmiennoprzecinkowych na liczby całkowite. Pozwalają modelowi odzyskać przybliżoną wartość zmiennoprzecinkową podczas obliczeń.
Spodziewaj się niewielkiego spadku trafności
Mniejsza liczba bitów oznacza utratę części precyzji, więc trafność może nieznacznie spaść. W większości modeli spadek jest niewielki i zdecydowanie wart uzyskanego przyspieszenia.
Kwantyzacja dynamiczna: łatwa korzyść
Kwantyzacja dynamiczna to najprostsza ścieżka. Kwantyzuje wagi z wyprzedzeniem, a aktywacje w locie, dlatego świetnie sprawdza się w warstwach liniowych i RNN.
import torch
q = torch.quantization.quantize_dynamic(
model, {torch.nn.Linear}, dtype=torch.qint8)Kwantyzacja statyczna: najpierw kalibracja
Kwantyzacja statyczna również kwantyzuje aktywacje z wyprzedzeniem. Dostarcza się jej przykładowe dane do skalibrowania zakresów, uzyskując większe przyspieszenie na procesorach CPU.
Trening świadomy kwantyzacji
Aby uzyskać najlepszą trafność, trening świadomy kwantyzacji symuluje int8 podczas treningu, dzięki czemu model uczy się tolerować niższą precyzję.
Zmierz zysk na rozmiarze
Po kwantyzacji zapisz model i porównaj rozmiary plików. Wersja int8 zazwyczaj zajmuje około jednej czwartej miejsca zajmowanego przez oryginał float32. 💾
torch.save(q.state_dict(), 'model_int8.pt')Zawsze ponownie sprawdzaj trafność
Uruchom zbiór walidacyjny na skwantyzowanym modelu i upewnij się, że trafność nadal jest akceptowalna, zanim wdrożysz go dla rzeczywistych użytkowników.
Kwantyzacja sprawdza się na CPU i urządzeniach brzegowych
Kwantyzacja daje największe korzyści na procesorach CPU, telefonach i urządzeniach brzegowych, gdzie pamięć jest ograniczona, a działania na liczbach całkowitych są dobrze obsługiwane. 📱
Szybkie sprawdzenie
Chcesz przeprowadzić najszybszą kwantyzację bez etapu kalibracji. Która metoda będzie odpowiednia?
Podsumowanie: lżej i szybciej
Zmniejszył Pan model za pomocą kwantyzacji, zastąpił float32 przez int8, wybrał kwantyzację dynamiczną, statyczną lub trening świadomy kwantyzacji, a następnie ponownie sprawdził trafność. 🎉
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Kwantyzacja dla mniejszych i szybszych modeli” jest bezpłatna?
Tak — pełny tekst „Kwantyzacja dla mniejszych i szybszych modeli” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Deep Learning Academy, przejdź na CoddyKit PRO. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Kwantyzacja dla mniejszych i szybszych modeli”?
Zmniejszać wagi dzięki inferencji int8 Ćwiczysz Deep Learning Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Deep Learning Academy?
Nie wymagamy żadnego doświadczenia. Deep Learning Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Kwantyzacja dla mniejszych i szybszych modeli”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Deep Learning Academy?
Tak. Każda lekcja Deep Learning Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- TorchScript i torch.compile
- Eksport do ONNX
- Kwantyzacja dla mniejszych i szybszych modeli
- Udostępniać model za pomocą FastAPI