Tegemist on masintõlkega ning algupärand on inglise keeles. Loe algupärandit

Miks keelemudelil on raske sõnas tähti loendada

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 GPT-4-ni kolme osana — str, aw, berry. Tähed on kadunud enne, kui see on midagi lugenud.

WHAT YOU TYPEstrawberry3 × rWHAT THE MODEL RECEIVESstrawberry3 OPAQUE IDs
Sina saadad tähed. Mudel saab kolm läbipaistmatut identifikaatorit. R-tähti ei olnud tema nähtud sisendis kordagi.

Kui keelemudelilt küsida, mitu korda esineb sõnas „strawberry“ täht „r“, võib vastuseks tulla kaks. Seda peetakse sageli tõendiks mingi sügava puudujäägi kohta. Tegelikult sarnaneb see pigem olukorraga, kus kellelgi palutakse kokku lugeda pintslitõmbed sõnas, mida ta on üksnes kuulnud.

Mida mudel tegelikult saab

Enne kui ükski mudel teksti näeb, lõigatakse tekst tokeniteks. Mitte tähtedeks ega sõnadeks — vaid tükkideks, mille on välja valinud algoritm, mis vaatles suurt korpust ja liitis korduvalt kokku need kõrvutiolevad paarid, mis esinesid kõige sagedamini, kuni tekkis mõnekümnest tuhandest osast koosnev sõnavara.

Tavalistest sõnadest saab üksainus token. Haruldasemad tükeldatakse ning see, kuhu jaotuspiirid langevad, määratakse korpuse statistika, mitte tähenduse või kirjapildi järgi. „strawberry“ võib kohale jõuda kahe või kolme tükina ja mudel näeb neid tükke atomaarsete sümbolitena — igaüks neist suvaline indeks sõnavaras, millel pole mudeli jaoks rohkem siseehitust kui majanumbril.

Nii et tähti ei ole seal tõepoolest olemas. Mudel võib küll õppida fakte kirjapildi kohta — et teatud tokenid kipuvad esinema koos teatud väidetega tähtede kohta —, kuid see teeb järeldusi omaenda sisendi kohta käivate kuulujuttude, mitte sisendi enda põhjal. Tükeldamise toimumist saab jälgida tööriistas Tokenizer. Selle sõnavara pärineb veebitõmmise asemel selle lehe enda tekstidest, mistõttu lõikab see sõna „strawberry“ neljaks tükiks, samas kui GPT oma lõikab kolmeks.

Mida see veel selgitab

Pikkade arvude aritmeetika. Ka arve tokeniseeritakse, ja mitte alati numbrihaaval. Arv võidakse tükeldada tükkideks, mis lõikavad läbi järguväärtuste, mistõttu veergudes arvutav mudel töötab osadega, mis ei lange veergudega kohakuti. Jõudluse järsk langus numbrite arvu kasvades annab märku, et probleem peitub esitusviisis.

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

Kulud ja kontekstipiirangud muudes keeltes peale inglise keele. Tokeniseerijaid treenitakse korpustel, mis on valdavalt ingliskeelsed, mistõttu saab inglise keel tõhusad tokenid, samas kui teised keeled tükeldatakse rohkemateks osadeks sõna kohta. Sama lause vähem esindatud keeles võib kulutada mitu korda rohkem tokeneid, mis tähendab, et selle töötlemine on kulukam ning võtab fikseeritud kontekstiaknast suurema osa. See on eeltöötlussammu peitunud võrdsusküsimus.

Tokenid pole ainus koht, kus üllatus peitub

Tähendus on geomeetriline. Sõnadest saavad vektorid ning lähedus selles ruumis õpitakse selgeks kooseseinemise 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 ruumis nende lähedal, ning miski selles mehhanismis ei erista fakti stereotüübist. Tööriist Token Embeddings loob sellest ruumist väikese versiooni, võimaldades näha, millest see geomeetria koosneb.

Väljund sämplitakse, seda ei valita välja. Mudel tekitab tõenäosusjaotuse järgmise tokeni kohal ja miski peab neist ühe välja valima. Alanda temperatuuri ja see valib iga kord kõige tõenäolisema variandi, muutudes kordavaks ja ennustatavaks. Tõsta temperatuuri ja see valib sagedamini väikese tõenäosusega variante, muutudes leidlikuks ja ebausaldusväärseks. Suur osa sellest, mida kirjeldatakse mudeli „loovusena“, on tegelikult sämplimisparameeter. Hallutsinatsioonid seda pole: mudel mõtleb asju välja ka nulltemperatuuril ning sämplija muudab vaid seda, kui tihti. Temperature Sampling teeb jaotuse ja tehtud valiku kõrvuti nähtavaks.

Millisest kihist käitumine pärineb

See muudab mõistatuse tehniliseks kirjelduseks. Tõdemusega „Mudel on ebausaldusväärne“ pole midagi peale hakata. Tõdemusega „Mudel ei näe tähti, seega suuna õigekirja ja märkide loendamise ülesanded programmkoodile“ aga saab. Nii saab ka teadmistega „see keel nõuab kolm korda rohkem tokeneid, seega arvesta eelarves sellega“ ning „see väljund sämpliti temperatuuril, mis ei anna korratavaid tulemusi“.

Peaaegu iga praktiline otsus nende süsteemide heaks kasutamiseks tuleneb teadmisest, millisest kihist mingi käitumine pärineb: tokeniseerijast, vektorkujutuse geomeetriast või sämplijast. Mitte ükski neist kolmest ei kujuta endast intelligentsust ning kõiki kolme saab uurida.

Kuidas sõnavara luuakse

Tavaline meetod on baitpaarkodeerimine ja see on lihtsam kui selle maine. Alustuseks on iga märk omaette token. Loendatakse kokku kõik kõrvutiasuvad paarid üle kogu korpuse, leitakse kõige sagedasem paar ja liidetakse see üheks uueks tokeniks. Seda korratakse mõnikümmend tuhat korda.

Tulemuseks ei ole keeleteaduslik analüüs, vaid sagedusjärjestus. Tavalised ingliskeelsed sõnad jäävad terveks, sest need olid korpuses sagedased; morfoloogia talletub vaid seal, kus see juhtub sagedusega kokku langema. Tokeniseerijal pole aimugi, et „running“ sisaldab sõna „run“ — see esitab seda sellisel kujul vaid siis, kui loendamisel osutus võitjaks just selline jaotus.

Sõnavara on ühe konkreetse korpuse kivistis konkreetsel ajahetkel. Muuda treeningteksti ja jaotuskohad nihkuvad. Kaks erineva tokeniseerijaga mudelit ei ole eri meelel üksnes väljundi osas — nad on eri meelel selles, mis see sisend üldse on.

Miks seda ei saa lihtsalt korda teha

Ilmne lahendus oleks anda mudelile selle asemel ette tähemärgid. Mõned mudelid teevadki nii, kuid sellel kompromissil on oma hind.

Tokenid on olemas selleks, et jada lühendada. Üks lehekülg ingliskeelset teksti on umbes 250 tokenit või 1,200 tähemärki ning tähelepanumehhanismi kulu kasvab jada pikkuse ruudus, mistõttu nõuab tähemärkidega töötamine sama teksti puhul ligikaudu kakskümmend korda rohkem arvutusvõimsust. Tokeniseerimine on andmepakkimise samm ning sellele kehtib täpselt sama kompromiss nagu pakkimist käsitlevas artiklis: lühemad jadad ostetakse selle arvelt, et loobutakse ligipääsust tokenist allpool asuvale struktuurile.

Seega on tegemist teadliku tähemärkide tasemel nähtavuse vahetamisega jada pikkuse vastu juba enne, kui mudel midagi näeb, ning selle hind annab tunda täpselt seal, kus tähemärgi tasemel detailid olidki kogu asja mõte.

Pakkimisvõte aastast 1994

Sellel tükeldusskeemil on kummaline ajalugu. Baitpaarkodeerimise avaldas Philip Gage 1994. aastal programmeerimisajakirjas andmepakkimisalgoritmina failide kokkusurumiseks. Selle reegel oli leida kõige sagedasem kõrvutiasuvate baitide paar, asendada see ühe kasutusel mitteoleva baidiga ja seda korrata.

Aastal 2016 võtsid Sennrich, Haddow ja Birch selle kasutusele masintõlkes — mitte selleks, et midagi pakkida, vaid selleks, et luua sõnavara, mis suudaks haruldasi sõnu esitada osade kaupa, selle asemel et nende ees käega lüüa.

Nii otsustab kolmekümne aasta vanune pakkimisvõte, mis töötati välja ajal, mil mureks oli kettaruum, seda, mida tänapäeva suurimad mudelid suudavad tajuda.