Tutkimus
Helix, osa 1: koulutamme eurooppalaisen kielimallin
Koulutamme omaa kielimallia. Se on pieni – 320 miljoonaa parametria – mutta se lukee kaikkia Euroopan unionin 24 virallista kieltä ja oppii peleihin tehdyillä näytönohjaimilla. Tämä ensimmäinen osa kertoo, miten päädyimme tähän; toinen osa seuraa, kun koulutus on valmis.

Sisältö
Miksi pelistudio kouluttaa kielimallin
NETBYTE tekee pelejä, sovelluksia ja verkkosivustoja. Kielimallit ovat yhä useammin tällaisten tuotteiden sisällä: hahmoina, jotka vastaavat, apuna, joka ymmärtää kysymyksen, työkaluina, jotka tekevät jotakin. Useimmat avoimet mallit ajattelevat ensin englanniksi; viro, iiri tai malta jäävät sivuosaan. Halusimme ymmärtää koko ketjun itse – data, tokenisoija, arkkitehtuuri, koulutus – ja selvittää, mihin rahat todella menevät.
- parametria
- 320 milj.
- EU:n virallista kieltä
- 24
- koulutustokenia
- 6,5 mrd.
- vuokratuista GPU:ista
- ≈ 12 $
Helix sai alkunsa tutkimusprototyyppinä. Kaikki alla oleva on päätös, joka muovasi sitä, ja jokainen niistä perustuu mittaukseen – samoin kuin virheet, jotka veivät meiltä eniten aikaa.
Neljä ideaa, yksi jäi
Prototyyppi tähtäsi nykyisten tekstigeneraattoreiden neljään tunnettuun heikkouteen. Se kirjoittaa 16 tokenin lohkoina eikä token kerrallaan, se voi ajaa jaetun kerrosytimen useaan kertaan, se ennustaa jokaiselle lohkolle tiiviin ”suunnitelman”, ja se yhdistää edullisen paikallisen tarkkaavaisuuden lineaariseen tarkkaavaisuuteen pitkillä etäisyyksillä.
Lohkoittain kirjoittaminen toimi heti: pieni testimalli kirjoitti 64 tokenia 13 verkon läpikäynnillä, kun tavallinen malli tarvitsee yhden läpikäynnin tokenia kohden – noin viidesosan työstä. Muut kolme ideaa kaatuivat kovemmassa testissä. Rakensimme tehtäviä, joissa vastaus on kaukana paikallisen ikkunan ulkopuolella, joten mallin on katsottava taaksepäin koko tekstin yli.
Näytä tiedot
| Vaihtoehto | Oikein |
|---|---|
| Vain paikallinen ikkuna | 23,1 % |
| + lineaarinen tarkkaavaisuus, suunnitelma ja silmukat | 23,1 % |
| + 2 tarkkaa globaalia päätä | 49,4 % |
| Täysi tarkkaavaisuus (vertailu) | 49,0 % |
| Sattuma (25 %) | 25,0 % |
Ne ratkaisi vain tarkka tarkkaavaisuus koko matkan yli. Lineaarinen tarkkaavaisuus, suunnitelma ja silmukat jäivät sattuman tasolle; optimoija oli jopa säätänyt lineaarisen muistin puoliintumisajaksi alle yhden tokenin. Kaksi tarkkaa globaalia päätä riitti saavuttamaan täyden tarkkaavaisuuden.
Lopullinen malli pitää siksi jokaisessa kerroksessa kahdeksan paikallista päätä 256 tokenin ikkunalla ja lisää joka toiseen kerrokseen kaksi tarkkaa globaalia päätä; välikerrokset säilyttävät kaksi portitetun lineaarisen tarkkaavaisuuden päätä. Suunnitelma ja silmukat on kytketty pois. Ne ovat yhä koodissa ja testattuja, mutta oikealla tekstillä ne eivät maksaneet itseään takaisin.
- Paikallinen, 256 tokenin ikkuna
- Tarkka globaali tarkkaavaisuus
- Portitettu lineaarinen tarkkaavaisuus
Näytä tiedot
| Päätyyppi | Kerrokset | Päitä kerroksessa |
|---|---|---|
| Paikallinen, 256 tokenin ikkuna | 1–12 | 8 |
| Tarkka globaali tarkkaavaisuus | 1, 3, 5, 7, 9, 11 | 2 |
| Portitettu lineaarinen tarkkaavaisuus | 2, 4, 6, 8, 10, 12 | 2 |
Mittaa, älä oleta
Testasimme jokaisen koulutuskikan 94 miljoonan parametrin mallilla samalla budjetilla ajoa kohden: 29,5 miljoonaa tokenia, sama siemen, sama datan järjestys. Saman kokoonpanon kaksi ajoa eroavat ±0,03, joten kaikki sitä pienempi on kohinaa.
Näytä tiedot
| Muutos | Δ hävikki (natia) |
|---|---|
| Muon + WSD-aikataulu | −0,587 |
| Muon-optimoija | −0,347 |
| Syvempi, kapeampi verkko | −0,099 |
| WSD-aikataulu | −0,080 |
| Arvojäännös | −0,007 |
| z-loss | +0,029 |
| Ryhmitetyn kyselyn tarkkaavaisuus | +0,088 |
Muon-optimoija oli ainoa suuri vipu, ja se toimii yhdessä warmup-stable-decay-oppimisnopeusaikataulun kanssa. Upotuksen ja tuloskerroksen palauttaminen AdamW:lle, kuten Muonin tekijät suosittelevat, toi vielä 0,12 lisää ja nopeutti koulutusta 5 %. Yhdistelmät eivät vain summaudu: syvempi ja kapeampi verkko auttoi AdamW:n kanssa ja haittasi Muonin kanssa. Siksi jokainen lupaava yhdistelmä sai oman ajonsa.
24 kieltä, 6,5 miljardia tokenia
Helix lukee verkkotekstiä FineWeb-Edusta englanniksi ja FineWeb-2:sta muille 23 kielelle – suuremmilla kielillä sen laadun mukaan suodatetusta ylimmästä kymmenyksestä. Koodi, matematiikka ja pieni synteettinen keskusteluvirta täydentävät sekoituksen. Englanti saa kolmanneksen. Muut kielet painotetaan saatavilla olevan tekstin määrän mukaan, tasoitettuna niin, etteivät iiri ja malta huku, eikä mitään lähdettä toisteta yli neljää kertaa – siihen asti toisto on lähes yhtä hyvää kuin tuore data.
Näytä tiedot
| Lähde | Osuus |
|---|---|
| Muut 23 EU-kieltä | 51,6 % |
| Englanti | 33,0 % |
| Koodi ja merkintäkielet | 10,0 % |
| Matematiikka | 3,0 % |
| Synteettinen keskustelu ja työkalut | 2,4 % |
Keskusteluvirta on poimiva: vastaukset kopioidaan oikeista kappaleista, ja työkalujen tulokset lasketaan eikä keksitä. Se opettaa muotoa, ei tietoa. Tokenisoija on tavutason BPE, jossa on 64 000 merkintää; se pakkaa jokaisella latinalaisin kirjaimin kirjoitetulla kielellä 3,3–4 tavua tekstiä yhteen tokeniin.
Kolme kertomisen arvoista bugia
- Malli, joka luki vastauksen. Yhdessä koodipolussa globaalit päät ohittivat kausaalisen maskin ja näkivät tulevat tokenit. Hävikki putosi 75 askeleessa 6,85:stä 1,71:een, ja 16 tunnin ajo meni hukkaan. Epäilyttävän hyvä hävikki on bugiraportti; nyt regressiotesti vartioi juuri tätä.
- Merkit eivät ole tavuja. Pakkaus laskettiin merkeissä UTF-8-tavujen sijaan. Se keksi kiinaan ”heikkouden” ja sai kreikan ja bulgarian näyttämään lähes kaksi kertaa todellista huonommilta.
- Dokumentit katkottuina joka tyhjällä rivillä. Enkooderi jakoi dokumentit jokaisen tyhjän rivin kohdalta – ja tyhjiä rivejä on lähes jokaisen lähdetiedoston keskellä. Jopa 35 % koodi- ja matematiikkatekstistä katosi. Korjasimme erottimen ja rakensimme koko korpuksen uudelleen 31. lokakuuta; siihen meni 2 tuntia 12 minuuttia.
Työpöydältä vuokrakoneelle
Ensimmäiset 1,66 miljardia tokenia ajettiin yhdellä AMD Radeon RX 7800 XT:llä. Kaksi asiaa teki siitä käyttökelpoista: tarkkaavaisuusytimen lippu, joka on oletuksena pois päältä – ilman sitä tarkkaavaisuus oli 12 kertaa hitaampi – ja jokaisen kerroksen kääntäminen torch.compile:lla. Mediaanilla 11 800 tokenia sekunnissa loppuosa olisi vienyt vielä lähes viisi päivää.
Kirjoitimme siis autopilotin. Se vuokraa GPU:ita Vast.ai-palvelusta, lataa koodin, korpuksen ja tarkistuspisteen, kouluttaa, tuo tarkistuspisteen kotiin kolmen tunnin välein ja pysähtyy ennen kuin saldo loppuu. Marraskuun 2. päivänä se kävi läpi kolme konetta, joita palveluntarjoajat eivät koskaan käynnistäneet, ja päätyi sitten kahteen RTX 4070 Ti Super -korttiin Saksassa hintaan 0,363 $ tunnilta. 15,4 GiB:n lataus kesti 40 minuuttia.
Näytä tiedot
| Kokoonpano | Tokenia/s |
|---|---|
| Paikallisesti, ennen optimointia | 8 319 |
| Paikallisesti, käännettynä | 11 830 |
| Vuokrattu, 2 GPU:ta | 41 367 |
41 400 tokenia sekunnissa on 3,5-kertainen työpöytään verrattuna. Vuokrattu osuus – 4,8 miljardia tokenia noin 33 tunnissa – maksaa suunnilleen 12 $.
Missä Helix on tänään
- Erillään pidetty
- Koulutus
Hävikki (natia tokenia kohden)
Luetut tokenit miljardeina
Näytä tiedot
| Luetut tokenit miljardeina | Erillään pidetty | Koulutus |
|---|---|---|
| 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 |
3. marraskuuta 2026 Helix on lukenut 5,35 miljardia 6,5 miljardista tokenistaan. 5,2 miljardista lähtien se on ollut jäähdytysvaiheessa: oppimisnopeus laskee ja sekoitus painottuu matematiikkaan, koodiin ja keskusteluun. Kaikkien virtojen erilleen pidetyllä tekstillä hävikki on 3,12 natia tokenia kohden.
Näytä tiedot
| Kieli | Bittiä tavua kohden |
|---|---|
| kreikka | 0,721 |
| bulgaria | 0,844 |
| ranska | 1,065 |
| englanti | 1,086 |
| espanja | 1,135 |
| portugali | 1,219 |
| saksa | 1,257 |
| hollanti | 1,268 |
| italia | 1,277 |
| puola | 1,355 |
| tanska | 1,364 |
| unkari | 1,407 |
| slovakki | 1,412 |
| malta | 1,415 |
| romania | 1,416 |
| ruotsi | 1,418 |
| iiri | 1,422 |
| sloveeni | 1,431 |
| tšekki | 1,444 |
| liettua | 1,450 |
| latvia | 1,451 |
| kroatia | 1,507 |
| suomi | 1,508 |
| viro | 1,727 |
Mitä tämä tarkoittaa käytännössä, näkyy parhaiten muokkaamattomasta näytteestä tarkistuspisteestä noin 4,9 miljardin tokenin kohdalla. Alku on meidän, loput Helixin:
Alku: The history of the printing press begins in the fifteenth century, when Johannes Gutenberg introduced movable type to Europe. Before that, books
Mallin teksti: 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.
Kielioppi, sanavalinnat ja aihe pitävät; faktat eivät. Suunnilleen tätä voi odottaa 320 miljoonalta parametrilta ja 6,5 miljardilta tokenilta: sujuvaa mallia, joka keksii asioita.
Mitä seuraavaksi
Esikoulutus päättyy muutaman tunnin kuluttua. Sen jälkeen tulevat pitkän kontekstin vaihe Project Gutenbergin kirjoilla ja EUR-Lexin EU-oikeustekstillä, hienosäätö keskusteluun ja työkalujen käyttöön sekä pieni luonnosmalli, joka nopeuttaa tekstin tuottamista.