Deep Learning Academy · Lekcja

Kwantyzacja dla mniejszych i szybszych modeli

Zmniejszać wagi dzięki inferencji int8

Lekcja 3 z 413 kroki

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ść. 🎉

Bezpłatny start

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

  1. TorchScript i torch.compile
  2. Eksport do ONNX
  3. Kwantyzacja dla mniejszych i szybszych modeli
  4. Udostępniać model za pomocą FastAPI
← Powrót do Deep Learning Academy