Deep Learning Academy · Oppitunti

Kvantisaatio pienemmille ja nopeammille malleille

Pienentäkää painoja int8-päättelyllä

Oppitunti 3/413 vaihetta

Kvantisaatio pienemmille ja nopeammille malleille on ilmainen Deep Learning Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Deep Learning Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.

Pienemmät painot, nopeammat mallit

Suuret mallit ovat hitaita ja raskaita palvella. Kvantisointi pienentää niitä tallentamalla luvut harvemmilla biteillä, jolloin ne toimivat nopeammin ja vievät vähemmän tilaa. 📉

Float32 vastaan Int8

Mallit tallentavat painot yleensä 32-bittisinä liukulukuina. Kvantisointi muuntaa ne 8-bittisiksi kokonaisluvuiksi ja pienentää koon noin neljäsosaan.

Miksi Int8 toimii nopeammin

Kokonaislukulaskenta on useimmilla laitteilla edullisempaa kuin liukulukulaskenta, joten int8-päättely käyttää vähemmän muistikaistan kapasiteettia ja valmistuu nopeammin.

Liukulukujen muuntaminen kokonaisluvuiksi

Skaala ja nollapiste kuvaavat jokaisen liukulukuvälin kokonaisluvuiksi. Niiden avulla malli voi laskennan aikana palauttaa likimääräisen liukulukuarvon.

Varaudu pieneen tarkkuuden menetykseen

Harvemmat bitit tarkoittavat, että osa tarkkuudesta menetetään, joten tarkkuus voi hieman laskea. Useimmilla malleilla pudotus on pieni ja nopeusetu on sen arvoinen.

Dynaaminen kvantisointi: helppo hyöty

Dynaaminen kvantisointi on yksinkertaisin vaihtoehto. Se kvantisoi painot etukäteen ja aktivaatioarvot lennossa, joten se sopii erityisesti lineaarisille ja RNN-kerroksille.

import torch
q = torch.quantization.quantize_dynamic(
  model, {torch.nn.Linear}, dtype=torch.qint8)

Staattinen kvantisointi: kalibroi ensin

Staattinen kvantisointi kvantisoi myös aktivaatioarvot etukäteen. Syötätte sille esimerkkidataa arvoalueiden kalibrointia varten, mikä parantaa suorituskykyä CPU:illa.

Kvantisointitietoinen koulutus

Parhaan tarkkuuden saavuttamiseksi kvantisointitietoinen koulutus simuloi int8:aa koulutuksen aikana, jotta malli oppii sietämään heikompaa tarkkuutta.

Mittaa koon pienentymisestä saatava hyöty

Kvantisoinnin jälkeen tallentakaa malli ja verratkaa tiedostokokoja. Int8-versio on tyypillisesti noin neljäsosa float32-alkuperäisestä. 💾

torch.save(q.state_dict(), 'model_int8.pt')

Testaa tarkkuus aina uudelleen

Suorittakaa validointijoukko kvantisoidulla mallilla ja varmistakaa ennen käyttöönottoa, että tarkkuus on edelleen hyväksyttävä oikeille käyttäjille.

Kvantisointi loistaa CPU:illa ja reunalaitteissa

Kvantisoinnista on eniten hyötyä CPU:illa, puhelimissa ja reunalaitteissa, joissa muisti on rajallinen ja kokonaislukulaskentaa tuetaan hyvin. 📱

Pikatarkistus

Haluatte nopeimman kvantisoinnin ilman kalibrointivaihetta. Mikä vaihtoehto sopii?

Kertaus: kevyempi ja nopeampi

Pienensitte mallia kvantisoinnilla, vaihdoitte float32:n int8:aan, valitsitte dynaamisen tai staattisen kvantisoinnin tai kvantisointitietoisen koulutuksen ja tarkistitte tarkkuuden uudelleen. 🎉

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Kvantisaatio pienemmille ja nopeammille malleille” ilmainen?

Kyllä – oppitunnin ”Kvantisaatio pienemmille ja nopeammille malleille” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Deep Learning Academy-kurssin, päivitä CoddyKit PROhon. Deep Learning Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Kvantisaatio pienemmille ja nopeammille malleille”?

Pienentäkää painoja int8-päättelyllä Harjoittelet Deep Learning Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Deep Learning Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Deep Learning Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.

Kuinka kauan ”Kvantisaatio pienemmille ja nopeammille malleille”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Deep Learning Academy-oppitunnilla?

Kyllä. Jokainen Deep Learning Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. TorchScript ja torch.compile
  2. Viekää malli ONNX-muotoon
  3. Kvantisaatio pienemmille ja nopeammille malleille
  4. Tarjotkaa malli FastAPI:lla
← Takaisin: Deep Learning Academy