Paikkakoodaus järjestystä varten
Lisätkää sekvenssin sijainti tokeneihin
Paikkakoodaus järjestystä varten 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.
Huomio ohittaa järjestyksen
Itsehuomio käsittelee lausetta tokenien joukkona. Sanojen järjestyksen muuttaminen vaikuttaa matematiikkaan vain vähän, joten mallilla ei ole sisäänrakennettua käsitystä järjestyksestä.
Järjestys sisältää merkitystä
Järjestyksellä on kuitenkin merkitystä: "dog bites man" ei ole sama kuin "man bites dog". Mallille on annettava tietoa kunkin tokenin sijainnista.
Lisää, älä liitä
Ratkaisu on lisätä sijaintivektori suoraan kunkin tokenin upotukseen. Muoto säilyy samana, joten huomio näkee sisällön ja sijainnin yhdistettynä.
x = token_emb + pos_embSinimuotoinen koodaus
Alkuperäinen transformer käytti eri taajuuksien kiinteitä siniaaltoja ja kosiniaaltoja, yhden kuvion kutakin ulottuvuutta kohden, merkitsemään jokaisen sijainnin.
Miksi siniaallot
Taajuuksien yhdistelmä antaa jokaiselle sijainnille yksilöllisen sormenjäljen, ja tasaisesti muuttuvat aallot auttavat mallia yleistämään pituuksiin, joita se ei nähnyt koulutuksessa.
Kaava
Parilliset ulottuvuudet käyttävät siniä ja parittomat kosinia, ja aallonpituus kasvaa ulottuvuuksien mukana. Siinä on koko koodausmenetelmä.
pe[:, 0::2] = torch.sin(pos / div)
pe[:, 1::2] = torch.cos(pos / div)Suhteellinen etäisyys
Sinimuotojen hyödyllinen lisäetu on, että kahden sijainnin välinen siirtymä on helppo ilmaista. Tämä auttaa huomiota päättelemään suhteellista etäisyyttä.
Opitut sijainnit
Nykyaikaiset mallit ohittavat usein sinimuodot ja käyttävät opittua upotustaulukkoa: yhtä koulutettavaa vektoria sijaintia kohden, aivan kuten sanaupotuksissa.
self.pos_emb = nn.Embedding(max_len, d_model)Kiinteä vai opittu
Kiinteät sinimuodot yleistyvät uusiin pituuksiin ilmaiseksi, kun taas opitut taulukot sopivat dataasi, mutta niiden enimmäispituus on rajattu koulutuksessa käytettyyn enimmäispituuteen.
Rotary-koodaus
Uudemmat transformerit suosivat rotary-sijaintikoodausta, jossa query- ja key-vektoreita kierretään sijaintiin sidotun kulman verran ja järjestys sisällytetään suoraan huomioon.
Mihin se sijoitetaan
Valitsemastasi menetelmästä riippumatta sijaintitieto syötetään kerran sisäänmenossa, ennen ensimmäisen huomio-kerroksen suorittamista.
Pikakertaus
Tarkistetaan, miksi sijaintikoodaus on olemassa.
Kertaus
Opit, että huomio ohittaa järjestyksen, joten lisäämme sijaintikoodaukset — olivatpa ne sinimuotoisia, opittuja tai rotary-muotoisia — kertomaan, missä tokenit sijaitsevat. Hienosti tehty!
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 ”Paikkakoodaus järjestystä varten” ilmainen?
Kyllä – oppitunnin ”Paikkakoodaus järjestystä varten” 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 ”Paikkakoodaus järjestystä varten”?
Lisätkää sekvenssin sijainti tokeneihin 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 ”Paikkakoodaus järjestystä varten”-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
- Self-attention: Query, Key ja Value
- Skaalattu pistetulo ja multi-head
- Paikkakoodaus järjestystä varten
- Kootkaa transformer-enkooderin lohko