See on masintõlge; artikli originaaltekst on inglise keeles. Loe originaali

Miks keelemudelil on raske sõnas tähti kokku lugeda

A white paneled robot counts on its fingers while blank glowing jigsaw pieces float in front of it, fusing into fewer and larger pieces.

Sõna "strawberry" jõuab mudelini kolme tükina — str, aw, berry. Tähed on kadunud enne, kui mudel on midagi lugenud.

WHAT YOU TYPEstrawberry3 × rWHAT THE MODEL RECEIVESstrawberry3 OPAQUE IDs
Sa saadad tähed. Mudel saab kolm läbipaistmatut identifikaatorit. r-tähti ei olnudki mudeli nähtud sisendis.

Küsi keelemudelilt, mitu korda esineb sõnas "strawberry" täht "r", ja see võib sulle vastata, et kaks. Seda peetakse tihti märgiks mõnest sügavast puudujäägist. Tegelikult on see pigem võrreldav sellega, kui paluda kellelgi lugeda kokku pintslitõmbed sõnas, mida ta on kuulnud ainult hääldatuna.

Mida mudel tegelikult saab

Enne kui ükski mudel teksti näeb, tükeldatakse tekst tokeniteks. Ei tähtedeks ega sõnadeks — tükkideks, mille on valinud algoritm, mis on analüüsinud suurt korpust ning liitnud uuesti ja uuesti kõige sagedamini kõrvuti esinenud paare, kuni tal on mõnekümne tuhande osaga sõnavara.

Tavalistest sõnadest saab üksainus token. Haruldasemad sõnad tükeldatakse ning see, kuhu tükelduskohad langevad, sõltub korpuse statistikast, mitte tähendusest ega kirjaviisist. "strawberry" võib kohale jõuda kahe või kolme tükina ja mudel näeb neid tükke aatomiliste sümbolitena — igaüks neist on suvaline indeks sõnavaras, millel pole mudeli jaoks rohkem sisestruktuuri kui majanumbril.

Niisiis ei ole tähti seal tegelikult olemas. Mudel võib õppida fakte õigekirja kohta — et teatud tokenid kipuvad esinema koos teatud väidetega tähtede kohta —, kuid see arutleb omaenda sisendi üle kuulujuttude, mitte sisendi enda põhjal. Tükeldamise toimimist saab ise jälgida tööriistas Tokenizer.

Mida see veel selgitab

Pikkade arvude aritmeetika. Ka arvud tokeniseeritakse ja mitte alati numbri kaupa. Arv võidakse tükeldada osadeks, mis lõikavad risti läbi järgukohtade, mistõttu tulpades aritmeetikat tegev mudel töötab tükkidega, mis ei joondu tulpadega. Jõudluse järsk langus numbrite arvu kasvades on vihje, et probleem on esitusviisis.

Riimid, anagrammid, akrostihhonid. Iga ülesanne, mis on määratletud tähtede, mitte tähenduse põhjal, põrkub sama seina vastu.

Kulud ja konteksti piirangud muudes keeltes peale inglise keele. Tokeniseerijaid treenitakse korpustel, mis on ülekaalukalt ingliskeelsed, mistõttu saab inglise keel tõhusad tokenid ja teised keeled tükeldatakse sõna kohta rohkematesse osadesse. Sama lause vähem esindatud keeles võib kulutada mitu korda rohkem tokeneid, mis tähendab, et selle töötlemine maksab rohkem ja hõivab suurema osa fikseeritud kontekstiaknast. See on võrdsuse küsimus, mis peidab end eeltöötluse etapis.

Tokenid pole ainus koht, kus see üllatus peitub

Tähendus on geomeetriline. Sõnadest saavad vektorid ning lähedust selles ruumis õpitakse koos-esinemise põhjal — mis esineb mille lähedal. Seetõttu tabavad mudelid seoseid nii hästi ja pärivad oma treeningtekstide eelarvamused: kui sõna esineb korpuses teatud teiste sõnade lähedal, paikneb see ka ruumis nende lähedal ning selles mehhanismis ei erista miski fakti stereotüübist. Tööriist Token Embeddings ehitab sellest ruumist väikese versiooni, et saaksid näha, millest see geomeetria koosneb.

Väljundit sämplitakse, mitte ei valita. Mudel tekitab järgmise tokeni kohta tõenäosusjaotuse ning sellest tuleb üks välja valida. Temperatuuri langetamisel valib mudel iga kord kõige tõenäolisema variandi, muutudes korduvaks ja etteaimatavaks. Temperatuuri tõstmisel valib see sagedamini väikese tõenäosusega variante, muutudes lennukaks ja ebausaldusväärseks. Suur osa sellest, mida kirjeldatakse mudeli "loovuse" või "hallutsinatsioonina", on tegelikult sämplimise parameeter. Tööriist Temperature Sampling kuvab tõenäosusjaotuse ja valiku kõrvuti.

Miks seda tasub teada

See muudab müsteeriumi spetsifikatsiooniks. Väide "mudel on ebausaldusväärne" ei anna tegutsemisjuhist. Seda annab aga "mudel ei näe tähti, seega suuna õigekirja- ja tähemärkide loendamise ülesanded koodile". Samuti "see keel kulutab kolm korda rohkem tokeneid, seega arvesta sellega eelarves" ja "see väljund sämpliti temperatuuril, mis ei anna korratavaid tulemusi".

Peaaegu iga praktiline otsus nende süsteemide tõhusaks kasutamiseks tuleneb teadmisest, millisest kihist mingi käitumine pärineb — kas tokeniseerijast, vektoresituse geomeetriast või sämplijast. Ükski neist kolmest ei ole intellekt ning kõik kolm on vaadeldavad.

Kuidas sõnavara luuakse

Tavapärane meetod on baitpaaride kodeerimine ja see on lihtsam, kui selle maine põhjal võiks arvata. Alustuseks võetakse iga märk eraldi tokenina. Kogu korpuses loetakse kokku kõik kõrvutiasuvad paarid, leitakse kõige sagedasem paar ja liidetakse see üheks uueks tokeniks. Seda protsessi korratakse mõnikümmend tuhat korda.

Tulemuseks ei ole keeleteaduslik analüüs. See on sagedusjärjestus. Tavalised ingliskeelsed sõnad jäävad terveks, sest need olid korpuses sagedased; morfoloogia haaratakse kaasa vaid seal, kus see juhtumisi kattub sagedusega. Tokeniseerijal puudub igasugune ettekujutus, et "running" sisaldab sõna "run" — see esitab seda niimoodi vaid siis, kui selline tükeldus juhtus loenduse võitma.

Sellel on tagajärg, mida tasub selgelt välja öelda: sõnavara on ühe konkreetse korpuse kivistis ühel konkreetsel ajahetkel. Muuda treeningteksti ja tükelduskohad nihkuvad. Kaks erineva tokeniseerijaga mudelit ei erine üksnes väljundi osas — nad erinevad selles osas, mis sisend üldse on.

Miks seda ei saa lihtsalt ära parandada

Ilmne lahendus oleks sööta mudelile selle asemel tähemärke. Mõned mudelid seda teevadki, kuid sel vahetusel on oma hind.

Tokenid on olemas järjestuse lühendamiseks. Lehekülg ingliskeelset teksti on umbes 250 tokenit või 1 200 tähemärki ning tähelepanumehhanismi kulu kasvab järjestuse pikkuse ruuduga — seega nõuab tähemärkide tasemel töötamine samasuguse lõigu puhul umbes kakskümmend korda rohkem arvutusvõimsust. Tokeniseerimine on pakkimise samm ning sellele kehtib täpselt sama kompromiss, mida kirjeldati pakkimist käsitlevas artiklis: ostad lühemad järjestused, loobudes ligipääsust tokenist allpool asuvale struktuurile.

Niisiis on see teadlik vahetus, kus tähemärkide taseme nähtavus loovutatakse järjestuse pikkuse nimel — valik, mis tehakse enne, kui mudel midagi näeb —, ning selle hind annab tunda täpselt seal, kus tähemärkide tasemel detailid olidki peamine eesmärk.

Pakkimisnipp aastast 1994

Sellisel tükeldusskeemil on kummaline ajalugu. Baitpaaride kodeerimise avaldas Philip Gage 1994. aastal ühes programmeerimisajakirjas andmetihenduse algoritmina failide pakkimiseks. Selle reegel oli leida kõige sagedasem kõrvutiasuvate baitide paar ja asendada see kasutamata baidiga ning seejärel protsessi korrata.

2016. aastal võtsid Sennrich, Haddow ja Birch selle kasutusele masintõlkes — mitte millegi pakkimiseks, vaid sellise sõnavara loomiseks, mis suudaks haruldasi sõnu esitada osadena, selle asemel et neist loobuda.

Niisiis otsustab kolmekümne aasta vanune pakkimisnipp, mis ehitati ajal, mil peamisküsimuseks oli kettaruum, mida tänapäeva suurimad mudelid on võimelised tajuma.