Raziskave
Helix, 1. del: učimo evropski jezikovni model
Učimo lasten jezikovni model. Majhen je – 320 milijonov parametrov –, a bere vseh 24 uradnih jezikov Evropske unije in se uči na grafičnih karticah, narejenih za igre. Ta prvi del pripoveduje, kako smo prišli do sem; drugi bo sledil, ko se učenje konča.

Vsebina
Zakaj studio za igre uči jezikovni model
NETBYTE dela igre, aplikacije in spletne strani. Jezikovni modeli so v takih izdelkih vse pogostejši: kot liki, ki odgovarjajo, kot pomoč, ki razume vprašanje, kot orodja, ki nekaj naredijo. Večina odprtih modelov najprej razmišlja v angleščini; estonščina, irščina ali malteščina pridejo na vrsto šele ob robu. Celotno verigo smo želeli razumeti sami – podatke, tokenizator, arhitekturo, učenje – in ugotoviti, kam v resnici gre denar.
- parametrov
- 320 mio.
- uradnih jezikov EU
- 24
- učnih žetonov
- 6,5 mrd.
- za najete GPU-je
- ≈ 12 $
Helix se je začel kot raziskovalni prototip. Vse, kar sledi, je odločitev, ki ga je oblikovala, vsaka podprta z meritvijo – in napake, ki so nam vzele največ časa.
Štiri ideje, preživela je ena
Prototip je ciljal na štiri znane šibkosti današnjih generatorjev besedila. Piše v blokih po 16 žetonov namesto po enega, skupno jedro plasti lahko prehodi večkrat, za vsak blok napove strnjen »načrt« in poceni lokalno pozornost združuje z linearno pozornostjo za velike razdalje.
Pisanje v blokih je delovalo takoj: majhen testni model je 64 žetonov napisal v 13 prehodih skozi mrežo, kjer običajen model potrebuje en prehod na žeton – približno petino dela. Preostale tri ideje so padle na zahtevnejšem preizkusu. Sestavili smo naloge, v katerih je odgovor daleč zunaj lokalnega okna, zato mora model pogledati nazaj čez celotno besedilo.
Prikaži podatke
| Različica | Pravilno |
|---|---|
| Samo lokalno okno | 23,1 % |
| + linearna pozornost, načrt in zanke | 23,1 % |
| + 2 natančni globalni glavi | 49,4 % |
| Polna pozornost (kontrola) | 49,0 % |
| Naključje (25 %) | 25,0 % |
Rešila jih je le natančna pozornost čez vso razdaljo. Linearna pozornost, načrt in zanke so ostali na ravni naključja; optimizator je linearni spomin celo zmanjšal na razpolovni čas, krajši od enega žetona. Dve natančni globalni glavi sta zadostovali, da sta se izenačili s polno pozornostjo.
Končni model zato v vsaki plasti obdrži osem lokalnih glav z oknom 256 žetonov in v vsaki drugi plasti doda dve natančni globalni glavi; vmesne plasti ohranijo dve glavi linearne pozornosti z vrati. Načrt in zanke so izklopljeni. Še vedno so v kodi in preizkušeni, a na resničnem besedilu niso upravičili svoje cene.
- Lokalna, okno 256 žetonov
- Natančna globalna pozornost
- Linearna pozornost z vrati
Prikaži podatke
| Vrsta glave | Plasti | Glav na plast |
|---|---|---|
| Lokalna, okno 256 žetonov | 1–12 | 8 |
| Natančna globalna pozornost | 1, 3, 5, 7, 9, 11 | 2 |
| Linearna pozornost z vrati | 2, 4, 6, 8, 10, 12 | 2 |
Meriti, ne domnevati
Vsak trik za učenje smo preizkusili na modelu z 94 milijoni parametrov z enakim proračunom na zagon: 29,5 milijona žetonov, isto seme, isti vrstni red podatkov. Dva zagona iste konfiguracije se razlikujeta za ±0,03, zato je vse manjše šum.
Prikaži podatke
| Sprememba | Δ izgube (nati) |
|---|---|
| Muon + urnik WSD | −0,587 |
| Optimizator Muon | −0,347 |
| Globlja, ožja mreža | −0,099 |
| Urnik WSD | −0,080 |
| Ostanek vrednosti | −0,007 |
| z-loss | +0,029 |
| Pozornost z združenimi poizvedbami | +0,088 |
Optimizator Muon je bil edini velik vzvod in se dobro dopolnjuje z urnikom stopnje učenja warmup-stable-decay. Vrnitev vdelave in izhodne plasti na AdamW, kot priporočajo avtorji Muona, je prinesla še 0,12 in učenje pospešila za 5 %. Kombinacije se ne seštevajo kar tako: globlja in ožja mreža je pomagala z AdamW in škodila z Muonom. Zato je vsaka obetavna kombinacija dobila svoj zagon.
24 jezikov, 6,5 milijarde žetonov
Helix bere spletno besedilo iz FineWeb-Edu za angleščino in iz FineWeb-2 za preostalih 23 jezikov – pri večjih iz njegove zgornje desetine, izbrane po kakovosti. Koda, matematika in majhen sintetični tok klepetov dopolnjujejo mešanico. Angleščina dobi tretjino. Drugi jeziki so uteženi po količini razpoložljivega besedila, zglajeni tako, da irščina in malteščina ne utoneta, in noben vir se ne ponovi več kot štirikrat – do te meje je ponavljanje skoraj tako dobro kot sveži podatki.
Prikaži podatke
| Vir | Delež |
|---|---|
| Preostalih 23 jezikov EU | 51,6 % |
| Angleščina | 33,0 % |
| Koda in označevanje | 10,0 % |
| Matematika | 3,0 % |
| Sintetični klepeti in orodja | 2,4 % |
Tok klepetov je ekstraktiven: odgovori so prevzeti iz resničnih odstavkov, rezultati orodij pa izračunani, ne izmišljeni. Uči obliko, ne znanja. Tokenizator je bajtni BPE s 64.000 vnosi; za vsak jezik v latinici v en žeton spravi od 3,3 do 4 bajte besedila.
Tri napake, vredne pripovedi
- Model, ki je bral odgovor. V eni veji kode so globalne glave prezrle vzročno masko in videle prihodnje žetone. Izguba je v 75 korakih padla s 6,85 na 1,71 in 16-urni zagon je bil ničvreden. Sumljivo dobra izguba je poročilo o napaki; prav to zdaj varuje regresijski test.
- Znaki niso bajti. Stiskanje se je štelo v znakih namesto v bajtih UTF-8. To si je izmislilo »šibkost« kitajščine, grščina in bolgarščina pa sta bili videti skoraj dvakrat slabši, kot v resnici sta.
- Dokumenti, razlomljeni ob vsaki prazni vrstici. Kodirnik je dokumente delil ob vsaki prazni vrstici – prazne vrstice pa so sredi skoraj vsake izvorne datoteke. Izgubili smo do 35 % besedila s kodo in matematiko. Popravili smo ločilo in 31. oktobra na novo zgradili celoten korpus; trajalo je 2 uri in 12 minut.
Od mize do najetega stroja
Prvih 1,66 milijarde žetonov je teklo na eni sami AMD Radeon RX 7800 XT. Uporabno sta to naredili dve stvari: zastavica jedra pozornosti, ki je privzeto izklopljena – brez nje je bila pozornost 12-krat počasnejša –, in prevajanje vsake plasti s torch.compile. Pri mediani 11.800 žetonov na sekundo bi preostanek trajal še skoraj pet dni.
Zato smo napisali avtopilota. GPU-je najame na Vast.ai, naloži kodo, korpus in kontrolno točko, uči, vsake tri ure prinese kontrolno točko domov in se ustavi, preden zmanjka dobroimetja. Drugega novembra je šel skozi tri stroje, ki jih ponudniki nikoli niso zagnali, nato pa se ustalil pri dveh RTX 4070 Ti Super v Nemčiji za 0,363 $ na uro. Nalaganje 15,4 GiB je trajalo 40 minut.
Prikaži podatke
| Postavitev | Žetoni/s |
|---|---|
| Lokalno, pred optimizacijo | 8319 |
| Lokalno, prevedeno | 11.830 |
| Najem, 2 GPU-ja | 41.367 |
41.400 žetonov na sekundo je 3,5-kratnik mize. Najeti del – 4,8 milijarde žetonov v približno 33 urah – stane okoli 12 $.
Kje je Helix danes
- Zadržano
- Učenje
Izguba (nati na žeton)
Prebrani žetoni v milijardah
Prikaži podatke
| Prebrani žetoni v milijardah | Zadržano | Učenje |
|---|---|---|
| 0,06 | 4,571 | 4,261 |
| 0,55 | 3,776 | 3,574 |
| 1,04 | 3,694 | 3,469 |
| 1,54 | 3,596 | 3,421 |
| 2,03 | 3,426 | 3,238 |
| 2,52 | 3,329 | 3,143 |
| 3,01 | 3,291 | 3,113 |
| 3,50 | 3,263 | 3,076 |
| 3,99 | 3,225 | 3,079 |
| 4,49 | 3,244 | 3,076 |
| 4,98 | 3,218 | 3,036 |
| 5,35 | 3,123 | 2,884 |
Na dan 3. novembra 2026 je Helix prebral 5,35 od svojih 6,5 milijarde žetonov. Od 5,2 milijarde teče faza ohlajanja: stopnja učenja pada, mešanica pa se premika k matematiki, kodi in klepetu. Na zadržanem besedilu iz vseh tokov je izguba 3,12 nata na žeton.
Prikaži podatke
| Jezik | Biti na bajt |
|---|---|
| grščina | 0,721 |
| bolgarščina | 0,844 |
| francoščina | 1,065 |
| angleščina | 1,086 |
| španščina | 1,135 |
| portugalščina | 1,219 |
| nemščina | 1,257 |
| nizozemščina | 1,268 |
| italijanščina | 1,277 |
| poljščina | 1,355 |
| danščina | 1,364 |
| madžarščina | 1,407 |
| slovaščina | 1,412 |
| malteščina | 1,415 |
| romunščina | 1,416 |
| švedščina | 1,418 |
| irščina | 1,422 |
| slovenščina | 1,431 |
| češčina | 1,444 |
| litovščina | 1,450 |
| latvijščina | 1,451 |
| hrvaščina | 1,507 |
| finščina | 1,508 |
| estonščina | 1,727 |
Kaj to pomeni v praksi, najbolje pokaže neurejen vzorec iz kontrolne točke pri približno 4,9 milijarde žetonov. Začetek je naš, preostanek je Helixov:
Začetek besedila: The history of the printing press begins in the fifteenth century, when Johannes Gutenberg introduced movable type to Europe. Before that, books
Izhod modela: for printing were usually in the form of texts, usually in the format of illustrations. In its introduction to the printing press, Gutenberg uses one line-of-action model to illustrate a series of printed pieces of a book.
Slovnica, izbira besed in tema držijo; dejstva ne. Približno to lahko pričakujemo od 320 milijonov parametrov in 6,5 milijarde žetonov: tekoč model, ki si izmišljuje.
Kaj sledi
Predučenje se konča v nekaj urah. Nato sledijo faza dolgega konteksta s knjigami iz Project Gutenberg in pravnimi besedili EU iz EUR-Lex, fino uglaševanje za pogovor in uporabo orodij ter majhen osnutni model, ki pospeši generiranje.