Výzkum
Helix, díl 1: trénujeme evropský jazykový model
Trénujeme vlastní jazykový model. Je malý – 320 milionů parametrů –, ale čte všech 24 úředních jazyků Evropské unie a trénuje na grafických kartách určených pro hry. Tento první díl vypráví, jak jsme se sem dostali; druhý vyjde, až trénink skončí.

Obsah
Proč herní studio trénuje jazykový model
NETBYTE dělá hry, aplikace a weby. Jazykové modely se v takových produktech objevují čím dál častěji: jako postavy, které odpovídají, jako nápověda, která rozumí otázce, jako nástroje, které něco udělají. Většina otevřených modelů myslí především anglicky; estonština, irština nebo maltština přicházejí až na okraji. Chtěli jsme celému řetězci porozumět sami – data, tokenizér, architektura, trénink – a zjistit, kam skutečně jdou peníze.
- parametrů
- 320 mil.
- úředních jazyků EU
- 24
- trénovacích tokenů
- 6,5 mld.
- za pronajaté GPU
- ≈ 12 $
Helix začal jako výzkumný prototyp. Všechno níže je rozhodnutí, které ho formovalo, každé podložené měřením – a k tomu chyby, které nás stály nejvíc času.
Čtyři nápady, přežil jeden
Prototyp mířil na čtyři známé slabiny dnešních generátorů textu. Píše po blocích 16 tokenů místo po jednom, umí několikrát projít sdíleným jádrem vrstev, pro každý blok předpovídá kompaktní „plán“ a kombinuje levnou lokální pozornost s lineární pozorností pro velké vzdálenosti.
Psaní po blocích fungovalo hned: malý testovací model napsal 64 tokenů ve 13 průchodech sítí, kde běžný model potřebuje jeden průchod na token – zhruba pětinu práce. Zbylé tři nápady neprošly tvrdším testem. Postavili jsme úlohy, ve kterých odpověď leží daleko za lokálním oknem, takže se model musí ohlédnout přes celý text.
Zobrazit data
| Varianta | Správně |
|---|---|
| Jen lokální okno | 23,1 % |
| + lineární pozornost, plán a smyčky | 23,1 % |
| + 2 přesné globální hlavy | 49,4 % |
| Plná pozornost (kontrola) | 49,0 % |
| Náhoda (25 %) | 25,0 % |
Vyřešila je jen přesná pozornost přes celou vzdálenost. Lineární pozornost, plán a smyčky zůstaly na úrovni náhody; optimalizátor dokonce stáhl lineární paměť na poločas kratší než jeden token. Dvě přesné globální hlavy stačily, aby se vyrovnaly plné pozornosti.
Výsledný model proto ponechává v každé vrstvě osm lokálních hlav s oknem 256 tokenů a v každé druhé vrstvě přidává dvě přesné globální hlavy; vrstvy mezi nimi si ponechávají dvě hlavy lineární pozornosti s hradlem. Plán a smyčky jsou vypnuté. Zůstávají v kódu a jsou otestované, ale na skutečném textu se jejich cena nevyplatila.
- Lokální, okno 256 tokenů
- Přesná globální pozornost
- Lineární pozornost s hradlem
Zobrazit data
| Typ hlavy | Vrstvy | Hlav na vrstvu |
|---|---|---|
| Lokální, okno 256 tokenů | 1–12 | 8 |
| Přesná globální pozornost | 1, 3, 5, 7, 9, 11 | 2 |
| Lineární pozornost s hradlem | 2, 4, 6, 8, 10, 12 | 2 |
Měřit, ne předpokládat
Každý trénovací trik jsme testovali na modelu s 94 miliony parametrů se stejným rozpočtem na běh: 29,5 milionu tokenů, stejný seed, stejné pořadí dat. Dva běhy téže konfigurace se liší o ±0,03, takže cokoli menšího je šum.
Zobrazit data
| Změna | Δ ztráty (naty) |
|---|---|
| Muon + rozvrh WSD | -0,587 |
| Optimalizátor Muon | -0,347 |
| Hlubší a užší síť | -0,099 |
| Rozvrh WSD | -0,080 |
| Reziduum hodnot | -0,007 |
| z-loss | +0,029 |
| Pozornost se seskupenými dotazy | +0,088 |
Optimalizátor Muon byl jedinou velkou pákou a dobře se kombinuje s rozvrhem rychlosti učení warmup-stable-decay. Vrácení embeddingu a výstupní vrstvy zpět na AdamW, jak doporučují autoři Muonu, přineslo dalších 0,12 a zrychlilo trénink o 5 %. Kombinace se jednoduše nesčítají: hlubší a užší síť pomáhala s AdamW a škodila s Muonem. Proto každá slibná kombinace dostala vlastní běh.
24 jazyků, 6,5 miliardy tokenů
Helix čte webový text z FineWeb-Edu pro angličtinu a z FineWeb-2 pro zbylých 23 jazyků – u větších z jeho horní desetiny vybrané podle kvality. Kód, matematika a malý syntetický proud chatů směs doplňují. Angličtina dostává třetinu. Ostatní jazyky jsou váženy podle množství dostupného textu, vyhlazeného tak, aby irština a maltština nezapadly, a žádný zdroj se neopakuje víc než čtyřikrát – do té hranice je opakování téměř stejně dobré jako čerstvá data.
Zobrazit data
| Zdroj | Podíl |
|---|---|
| Dalších 23 jazyků EU | 51,6 % |
| Angličtina | 33,0 % |
| Kód a značkování | 10,0 % |
| Matematika | 3,0 % |
| Syntetické chaty a nástroje | 2,4 % |
Proud chatů je extraktivní: odpovědi se přebírají ze skutečných odstavců a výsledky nástrojů se počítají, nikoli vymýšlejí. Učí formát, ne znalosti. Tokenizér je bajtový BPE s 64 000 položkami; pro každý jazyk psaný latinkou vměstná do jednoho tokenu 3,3 až 4 bajty textu.
Tři chyby, které stojí za vyprávění
- Model, který četl odpověď. V jedné větvi kódu globální hlavy ignorovaly kauzální masku a viděly budoucí tokeny. Ztráta klesla během 75 kroků z 6,85 na 1,71 a šestnáctihodinový běh byl k ničemu. Podezřele dobrá ztráta je hlášení o chybě; přesně tohle teď hlídá regresní test.
- Znaky nejsou bajty. Komprese se počítala ve znacích místo v bajtech UTF-8. To si vymyslelo „slabinu“ v čínštině a řečtina s bulharštinou vypadaly skoro dvakrát hůř, než ve skutečnosti jsou.
- Dokumenty rozlámané na každém prázdném řádku. Enkodér dělil dokumenty na každém prázdném řádku – a prázdné řádky jsou uprostřed téměř každého zdrojového souboru. Ztratilo se až 35 % textu s kódem a matematikou. Opravili jsme oddělovač a 31. října přestavěli celý korpus; trvalo to 2 hodiny a 12 minut.
Od stolu k pronajatému stroji
Prvních 1,66 miliardy tokenů proběhlo na jediné AMD Radeon RX 7800 XT. Použitelné to udělaly dvě věci: příznak jádra pozornosti, který je ve výchozím stavu vypnutý – bez něj byla pozornost 12× pomalejší –, a kompilace každé vrstvy pomocí torch.compile. Při mediánu 11 800 tokenů za sekundu by zbytek trval ještě skoro pět dní.
Napsali jsme proto autopilota. Pronajímá GPU na Vast.ai, nahraje kód, korpus a checkpoint, trénuje, každé tři hodiny stáhne checkpoint domů a zastaví se dřív, než dojde kredit. Druhého listopadu prošel třemi stroji, které poskytovatelé nikdy nespustili, a pak zakotvil u dvou RTX 4070 Ti Super v Německu za 0,363 $ na hodinu. Nahrání 15,4 GiB trvalo 40 minut.
Zobrazit data
| Sestava | Tokeny/s |
|---|---|
| Lokálně, před optimalizací | 8 319 |
| Lokálně, zkompilováno | 11 830 |
| Pronájem, 2 GPU | 41 367 |
41 400 tokenů za sekundu je 3,5násobek stolu. Pronajatá část – 4,8 miliardy tokenů zhruba za 33 hodin – stojí asi 12 $.
Kde je Helix dnes
- Odložený
- Trénink
Ztráta (naty na token)
Přečtené tokeny v miliardách
Zobrazit data
| Přečtené tokeny v miliardách | Odložený | Trénink |
|---|---|---|
| 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 |
K 3. listopadu 2026 přečetl Helix 5,35 ze svých 6,5 miliardy tokenů. Od 5,2 miliardy běží fáze dochlazení: rychlost učení klesá a směs se posouvá k matematice, kódu a chatům. Na odloženém textu ze všech proudů je ztráta 3,12 natu na token.
Zobrazit data
| Jazyk | Bity na bajt |
|---|---|
| řečtina | 0,721 |
| bulharština | 0,844 |
| francouzština | 1,065 |
| angličtina | 1,086 |
| španělština | 1,135 |
| portugalština | 1,219 |
| němčina | 1,257 |
| nizozemština | 1,268 |
| italština | 1,277 |
| polština | 1,355 |
| dánština | 1,364 |
| maďarština | 1,407 |
| slovenština | 1,412 |
| maltština | 1,415 |
| rumunština | 1,416 |
| švédština | 1,418 |
| irština | 1,422 |
| slovinština | 1,431 |
| čeština | 1,444 |
| litevština | 1,450 |
| lotyština | 1,451 |
| chorvatština | 1,507 |
| finština | 1,508 |
| estonština | 1,727 |
Co to znamená v praxi, nejlépe ukazuje neupravená ukázka z checkpointu při zhruba 4,9 miliardy tokenů. Začátek je náš, zbytek je od Helixu:
Začátek textu: The history of the printing press begins in the fifteenth century, when Johannes Gutenberg introduced movable type to Europe. Before that, books
Výstup modelu: 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.
Gramatika, volba slov a téma drží; fakta ne. Přibližně to lze čekat od 320 milionů parametrů a 6,5 miliardy tokenů: plynulý model, který si vymýšlí.
Co přijde dál
Předtrénink skončí za pár hodin. Potom přijde fáze dlouhého kontextu s knihami z Project Gutenberg a právními texty EU z EUR-Lex, doladění pro konverzaci a práci s nástroji a malý návrhový model, který zrychlí generování.