Дослідження
Helix, частина 1: навчаємо європейську мовну модель
Ми навчаємо власну мовну модель. Вона невелика — 320 мільйонів параметрів, — але читає всіма 24 офіційними мовами Європейського Союзу й навчається на відеокартах, створених для ігор. Ця перша частина розповідає, як ми до цього дійшли; друга вийде, коли навчання завершиться.

Зміст
Навіщо ігровій студії власна мовна модель
NETBYTE створює ігри, застосунки й сайти. Мовні моделі дедалі частіше живуть усередині таких продуктів: персонажі, що відповідають, допомога, яка розуміє запитання, інструменти, що щось роблять. Більшість відкритих моделей думають насамперед англійською; естонська, ірландська чи мальтійська лишаються на узбіччі. Ми хотіли самі розібратися в усьому ланцюжку — дані, токенізатор, архітектура, навчання — і з’ясувати, куди насправді йдуть гроші.
- параметрів
- 320 млн
- офіційні мови ЄС
- 24
- токенів навчання
- 6,5 млрд
- за орендовані GPU
- ≈ 12 $
Helix починався як дослідницький прототип. Усе, що далі, — рішення, які його сформували, кожне підкріплене вимірюванням, а також помилки, що забрали в нас найбільше часу.
Чотири ідеї, вижила одна
Прототип цілився в чотири відомі слабкі місця сучасних генераторів тексту. Він пише блоками по 16 токенів замість одного за раз, може кілька разів проганяти спільне ядро шарів, передбачає компактний «план» для кожного блоку й поєднує дешеву локальну увагу з лінійною увагою для далеких відстаней.
Блоковий запис запрацював одразу: невелика тестова модель написала 64 токени за 13 проходів мережею, тоді як звичайній моделі потрібен один прохід на токен — приблизно п’ята частина роботи. Інші три ідеї провалили жорсткіший тест. Ми побудували завдання, де відповідь лежить далеко за межами локального вікна, тож модель мусить озиратися на весь текст.
Показати дані
| Варіант | Правильно |
|---|---|
| Лише локальне вікно | 23,1% |
| + лінійна увага, план і цикли | 23,1% |
| + 2 точні глобальні голови | 49,4% |
| Повна увага (контроль) | 49,0% |
| Випадковість (25 %) | 25,0% |
Розв’язала їх лише точна увага на всю відстань. Лінійна увага, план і цикли лишилися на рівні випадкового вгадування; оптимізатор навіть звів лінійну пам’ять до періоду напіврозпаду, меншого за один токен. Двох точних глобальних голів вистачило, щоб зрівнятися з повною увагою.
Тому фінальна модель лишає в кожному шарі вісім локальних голів із вікном у 256 токенів і додає дві точні глобальні голови через шар; проміжні шари зберігають дві голови лінійної уваги з гейтом. План і цикли вимкнено. Вони залишилися в коді й покриті тестами, але на реальному тексті не виправдали своєї вартості.
- Локальна, вікно 256 токенів
- Точна глобальна увага
- Лінійна увага з гейтом
Показати дані
| Тип голови | Шари | Голів на шар |
|---|---|---|
| Локальна, вікно 256 токенів | 1–12 | 8 |
| Точна глобальна увага | 1, 3, 5, 7, 9, 11 | 2 |
| Лінійна увага з гейтом | 2, 4, 6, 8, 10, 12 | 2 |
Вимірювати, а не припускати
Кожен прийом навчання ми перевіряли на моделі з 94 мільйонами параметрів з однаковим бюджетом на запуск: 29,5 мільйона токенів, той самий seed, той самий порядок даних. Два запуски однієї конфігурації відрізняються на ±0,03, тож усе менше — шум.
Показати дані
| Зміна | Δ loss (нати) |
|---|---|
| Muon + розклад WSD | -0,587 |
| Оптимізатор Muon | -0,347 |
| Глибша й вужча мережа | -0,099 |
| Розклад WSD | -0,080 |
| Залишковий зв’язок значень | -0,007 |
| z-loss | +0,029 |
| Увага з групованими запитами | +0,088 |
Оптимізатор Muon виявився єдиним великим важелем, і він добре поєднується з розкладом швидкості навчання warmup-stable-decay. Повернення ембедингу й вихідного шару до AdamW, як радять автори Muon, дало ще 0,12 і пришвидшило навчання на 5 %. Комбінації не додаються просто так: глибша й вужча мережа допомагала з AdamW і шкодила з Muon. Тому кожна перспективна комбінація отримала власний запуск.
24 мови, 6,5 мільярда токенів
Helix читає вебтексти з FineWeb-Edu для англійської та з FineWeb-2 для решти 23 мов — для великих із його верхньої десятої частини, відібраної за якістю. Код, математика й невеликий синтетичний потік чатів доповнюють суміш. Англійській дістається третина. Інші мови зважено за обсягом наявного тексту зі згладжуванням, щоб ірландська й мальтійська не потонули, і жодне джерело не повторюється більше чотирьох разів: до цієї межі повтор майже такий самий добрий, як свіжі дані.
Показати дані
| Джерело | Частка |
|---|---|
| Ще 23 мови ЄС | 51,6% |
| Англійська | 33,0% |
| Код і розмітка | 10,0% |
| Математика | 3,0% |
| Синтетичні чати й інструменти | 2,4% |
Потік чатів екстрактивний: відповіді беруться з реальних абзаців, а результати інструментів обчислюються, а не вигадуються. Він навчає формату, а не знань. Токенізатор — байтовий BPE на 64 000 записів; для кожної мови на латиниці він пакує в один токен від 3,3 до 4 байтів тексту.
Три баги, про які варто розповісти
- Модель, що підглядала відповідь. В одній гілці коду глобальні голови ігнорували каузальну маску й бачили майбутні токени. Loss упав із 6,85 до 1,71 за 75 кроків, і 16-годинний запуск виявився марним. Підозріло добрий loss — це баг-репорт; тепер саме цей випадок стереже регресійний тест.
- Символи — не байти. Стиснення рахували в символах, а не в байтах UTF-8. Це вигадало «слабкість» китайської й змусило грецьку та болгарську виглядати майже вдвічі гіршими, ніж вони є.
- Документи, розірвані на кожному порожньому рядку. Кодувальник ділив документи на кожному порожньому рядку, а порожні рядки трапляються посеред майже будь-якого файлу з кодом. Зникло до 35 % тексту коду й математики. Ми виправили роздільник і 31 жовтня перебудували весь корпус; це зайняло 2 години 12 хвилин.
Зі столу на орендовану машину
Перші 1,66 мільярда токенів пройшли на одній AMD Radeon RX 7800 XT. Зробити це придатним допомогли дві речі: прапорець ядра уваги, за замовчуванням вимкнений, — без нього увага працювала в 12 разів повільніше, — і компіляція кожного шару через torch.compile. За медіани 11 800 токенів на секунду решта забрала б ще майже п’ять днів.
Тож ми написали автопілот. Він орендує GPU на Vast.ai, вивантажує код, корпус і чекпойнт, навчає, щотри години забирає чекпойнт додому й зупиняється, перш ніж закінчиться баланс. 2 листопада він перебрав три машини, які хости так і не запустили, а потім зупинився на двох RTX 4070 Ti Super у Німеччині за 0,363 $ на годину. Вивантаження 15,4 ГіБ тривало 40 хвилин.
Показати дані
| Конфігурація | Токенів/с |
|---|---|
| Локально, до оптимізації | 8 319 |
| Локально, з компіляцією | 11 830 |
| Оренда, 2 GPU | 41 367 |
41 400 токенів на секунду — це в 3,5 раза більше, ніж на столі. Орендована частина — 4,8 мільярда токенів приблизно за 33 години — коштує близько 12 $.
Де Helix сьогодні
- Відкладений
- Навчання
Loss (натів на токен)
Прочитано токенів, млрд
Показати дані
| Прочитано токенів, млрд | Відкладений | Навчання |
|---|---|---|
| 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 листопада 2026 року Helix прочитав 5,35 зі своїх 6,5 мільярда токенів. Від позначки 5,2 мільярда триває фаза охолодження: швидкість навчання знижується, а суміш зміщується до математики, коду й чатів. На відкладеному тексті з усіх потоків loss становить 3,12 ната на токен.
Показати дані
| Мова | Біт на байт |
|---|---|
| грецька | 0,721 |
| болгарська | 0,844 |
| французька | 1,065 |
| англійська | 1,086 |
| іспанська | 1,135 |
| португальська | 1,219 |
| німецька | 1,257 |
| нідерландська | 1,268 |
| італійська | 1,277 |
| польська | 1,355 |
| данська | 1,364 |
| угорська | 1,407 |
| словацька | 1,412 |
| мальтійська | 1,415 |
| румунська | 1,416 |
| шведська | 1,418 |
| ірландська | 1,422 |
| словенська | 1,431 |
| чеська | 1,444 |
| литовська | 1,450 |
| латиська | 1,451 |
| хорватська | 1,507 |
| фінська | 1,508 |
| естонська | 1,727 |
Що це означає на практиці, найкраще видно з невідредагованого зразка з чекпойнта приблизно на 4,9 мільярда токенів. Початок наш, решта — від Helix:
Початок тексту: The history of the printing press begins in the fifteenth century, when Johannes Gutenberg introduced movable type to Europe. Before that, books
Відповідь моделі: 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.
Граматика, вибір слів і тема тримаються; факти — ні. Приблизно цього й варто чекати від 320 мільйонів параметрів і 6,5 мільярда токенів: вільна у мовленні модель, яка вигадує.
Що далі
Попереднє навчання завершиться за кілька годин. Потім будуть етап довгого контексту з книжками з Project Gutenberg і правовими текстами ЄС з EUR-Lex, донавчання для діалогу й роботи з інструментами та невелика чорнеткова модель, що пришвидшує генерацію.