Kvantisering for mindre og raskere modeller
Gjør vektene mindre med int8-inferens
Kvantisering for mindre og raskere modeller er en gratis leksjon i Deep Learning Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Deep Learning Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.
Mindre vekter, raskere modeller
Store modeller er trege og tunge å drifte. Kvantisering gjør dem mindre ved å lagre tall med færre biter, slik at de kjører raskere og krever mindre ressurser. 📉
Float32 kontra Int8
Modeller lagrer vanligvis vekter som 32-bits flyttall. Kvantisering konverterer dem til 8-bits heltall og reduserer størrelsen omtrent fire ganger.
Hvorfor Int8 kjører raskere
Heltallsaritmetikk er billigere enn flyttallsaritmetikk på de fleste maskiner, så int8-inferens bruker mindre minnebåndbredde og blir raskere ferdig.
Fra flyttall til heltall
En skaleringsfaktor og et nullpunkt avbilder hvert flyttallsområde til heltall. De gjør det mulig for modellen å gjenopprette en tilnærmet flyttallsverdi under beregningen.
Forvent et lite tap i nøyaktighet
Færre biter betyr at noe presisjon går tapt, så nøyaktigheten kan synke litt. For de fleste modeller er nedgangen liten og vel verdt hastighetsøkningen.
Dynamisk kvantisering: Den enkle gevinsten
Dynamisk kvantisering er den enkleste veien. Den kvantiserer vektene på forhånd og aktiveringene under kjøring, og passer spesielt godt for lineære lag og RNN-lag.
import torch
q = torch.quantization.quantize_dynamic(
model, {torch.nn.Linear}, dtype=torch.qint8)Statisk kvantisering: Kalibrer først
Statisk kvantisering kvantiserer også aktiveringene på forhånd. De mater den med eksempeldata for å kalibrere områdene, noe som gir høyere hastighet på CPU-er.
Kvantiseringstilpasset trening
For best mulig nøyaktighet simulerer kvantiseringstilpasset trening int8 under treningen, slik at modellen lærer å tåle den lavere presisjonen.
Mål størrelsesgevinsten
Etter kvantiseringen lagrer De modellen og sammenligner filstørrelsene. En int8-versjon er vanligvis omtrent en fjerdedel av den opprinnelige float32-versjonen. 💾
torch.save(q.state_dict(), 'model_int8.pt')Test alltid nøyaktigheten på nytt
Kjør valideringssettet på den kvantiserte modellen og bekreft at nøyaktigheten fortsatt er akseptabel før De distribuerer den til virkelige brukere.
Kvantisering gjør seg best på CPU og edge-enheter
Kvantisering gir størst gevinst på CPU-er, telefoner og edge-enheter der minnet er begrenset og heltallsaritmetikk støttes godt. 📱
Rask kontroll
De ønsker den raskeste kvantiseringen uten et kalibreringstrinn. Hva passer?
Oppsummering: Lettere og raskere
De gjorde en modell mindre med kvantisering, byttet float32 mot int8, valgte dynamisk eller statisk kvantisering eller kvantiseringstilpasset trening, og kontrollerte nøyaktigheten på nytt. 🎉
Lær deg Python med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Kvantisering for mindre og raskere modeller» gratis?
Ja – hele teksten i «Kvantisering for mindre og raskere modeller» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Deep Learning Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Deep Learning Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Kvantisering for mindre og raskere modeller»?
Gjør vektene mindre med int8-inferens Du øver på Deep Learning Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Deep Learning Academy?
Ingen tidligere erfaring er nødvendig. Deep Learning Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Kvantisering for mindre og raskere modeller»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Deep Learning Academy-leksjonen?
Ja. Alle Deep Learning Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- TorchScript og torch.compile
- Eksporter til ONNX
- Kvantisering for mindre og raskere modeller
- Lever med FastAPI