FUGA v7.1 — единая байтовая модель речи и кода без словарей

FUGA — это мега-модель нового класса: один файл, чистые байты, никаких токенизаторов и словарей. Модель обучалась на байтовом уровне с SDR-представлениями и выдаёт осмысленный код корпуса (сигнатуры функций C, идентификаторы API) и связные текстовые последовательности.

Это главный релиз спринта v4→v7. Впервые FUGA генерирует целостные сигнатуры функций (int codepoint_to_utf8(char ...)) и локальные идентификаторы (cfg, code_buf) в длинном 200-байтовом потоке — не абстрактный синтаксис, а осмысленный код корпуса.

Состав репозитория

Файл Версия Характеристика
fuga-v7.1.fuga v7.1 @ 1.2M шагов 🏆 Главный релиз: семантические сигнатуры функций корпуса, 200B потоки
fuga-v7@1M.fuga v7 @ 1M шагов Ветвление графа: срезка фразы → переход к соседней C-конструкции (154B)

Формат файла (.fuga)

Единый файл-контейнер из 5 секций (9.0 MB):

LOCAL_W   262144 floats  — байтовый переходный оператор W (LMS-остаток)
PATCH_W   262144 floats  — патчевый оператор W_patch (4-патчевое окно, 100% поток)
OWM_P     262144 floats  — направляющая матрица консолидации (16 направлений)
KAN_C    1572864 floats  — KAN-сплайн коэффициенты (нелинейный канал)
Meta      строки         — steps, ctx, version

Внутренняя размерность SDR: 512×512 бит (DIM=512), единый энкодер-базис 0xF03D_C0DE для всех каналов.

Ключевые архитектурные решения

  1. Окно контекста ctx=8 (9 байт) — обучение на data[i-8..=i], декодер с window=9. Устраняет фазовый сдвиг, дававший "репетиционные циклы" (vity is...).
  2. Patch Loss Curriculumλ(t) = 0.10 + 0.30·exp(−t/τ), τ=500K: старт λ=0.4 (жёсткая сшивка соседних API-узлов), экспоненциальное затухание к 0.10. Переобучение побеждено.
  3. Перекрывающиеся патчевые окна — обучение W_patch на окнах со сдвигом −1 патч (pp−5..pp−2 → pp, половинный λ) насыщает альтернативные рёбра графа переходов.
  4. 100% поток градиентов W_patch — обновление на каждом шаге (Widrow-Hoff дельта, без пропуска i%2==1).
  5. Единый энкодер-базис — байтовый и патчевый каналы используют один seed (0xF03D) — детерминизм холодного/горячего инференса.
  6. Честная сериализация — встроенный тест: local_W и patch_W бинарно идентичны при сохранении/загрузке (MSE=0.000e0, 0/262144 несовпадающих).

Декодер (инференс)

tm_generate_cosine_gate_v2 — косинусный выбор + топ-k, параметры:

window      = 9   (ctx=8, 9 байт истории)
α (KAN)     = 0   (без KAN-диктата при свободной генерации)
τ           = 0.01
corridor    = 0   (без жёсткой маски)
β (patch)   = 0   (без патч-смещения при свободной генерации)
rep_word    = 0.20 (штраф повтора слов)
rep_phrase  = 0.8  (фразовый штраф, PHR_LEN=12)

Фразовый repetition penalty (PHR_LEN=12) — штраф на замыкающие символы повтора байтового блока 12 байт: физически срезает фразовые циклы (RedisModule_Free 99B → 38B) и переводит генерацию к соседним конструкциям корпуса.

Гибрид-декодер: MegaByte v2 + перехват v2 (рекомендуемый, 2026-08)

tm_generate_megabyte_v2 — единый декодер, собирающий «длину MegaByte + точность v2»:

  1. MegaByte-каркас: W_patch по окну 4 полных патча предсказывает top-K коридор (K=8) — задаёт глобальную 200B-траекторию, держит контекст даже для коротких сидов (fn main() { → 200B, раньше 3B обрыв).
  2. Локальный перехват v2: как только локальный W видит знакомый токен (cos ≥ 0.05) и это его локальный максимум (чистый косинус, без β-бонуса) — байт берётся напрямую, минуя семплинг. Так точные имена функций достраиваются целиком, без разрывов патчевой сетки.
  3. Whitespace penalty (ws_pen=0.30): энтропийно-пустые патчи (пробелы/табы/кавычки) выбиваются из коридора — плотные имена и операторы доминируют.

Параметры: top_k=8, β=0.3, ws_pen=0.30, conf_th=0.05, rep_word=0.20, rep_phrase=0.8, window=9.

Результат: «fn main() {» → 200B с точным codepoint_to_utf8(char (имя из 2 вхождений корпуса!); метрика точности имён (name_metric.py): v2 == MegaByte-v2.

Результаты генерации (валидация v6_validate)

Сид v7.1@1.2M (β=0)
the force of gravity is 200B: ...codetoint_to_utf8(... int codepoint_to_utf8(cha...
in the beginning 91B: ...tucode_ot totnint(l, cfg, cuont an etrcodetoint_to_utf8(...
let x = 4 158B: ...buf_ ... cfg, code_buf ... encode_nt ...
fn main() { 36B (на v7@1M): ...i = 0; j < NrLL ...

Серия v7 — коридор норм (|Wp| [7.7, 8.3] — золотое сечение архитектуры):

| Прогон | |W| | |Wp| | Декод | |---|---|---|---|---| | v7@1M | 14.4 | 8.29 | ветвление графа: C-цикл после срезки фразы | | v7@1.5M | 15.7 | 8.21 | переобучение (λ затух к 0.17) | | v7.1@800K | 14.1 | 8.07 | the shard bytes, bin_start | | v7.1@1.2M | 15.5 | 7.68 | 🏆 сигнатуры функций: codepoint_to_utf8 |

История версий

  • v4/v5 — окно 5 байт (ctx=4), длинные потоки the red the reder... (слоговые гибриды)
  • v6 (λ=0.35, 2M) — точный C-синтаксис, но обрывы 17-40B (переобучение)
  • v6.1 (λ=0.15, 1.5M) — Redis-код RedisModule_Free(t->uple.ele) 99B
  • v7@1M — первое ветвление графа (154B, C-цикл)
  • v7.1@1.2M — 🏆 сигнатуры функций корпуса (200B)

Быстрый старт (Rust)

// Загрузка + свободная генерация
let data = load_unified("fuga-v7.1.fuga");  // W, W_patch, OWM_P, KAN_C
let mut tm = TemporalMemory::new(64, 8);
tm.apply_byte_w(w);
tm.apply_patch_w(w_patch);
// ... v6_validate / talk_model стенды в репозитории fuga

Стенды валидации: v6_validate (window=9, β=0, rep_phrase), talk_model (V2 основной декодер), cosine_gate_test (A/B рычагов).

Ограничения (честно)

  • Сгенерированный код — смесь валидных сигнатур и мусорных хвостов (codetoint вместо codepoint) — байтовый граф ещё не идеален на уровне полных имён.
  • Код-сиды (fn main() {) стартуют слабо (3-16B) — патчевый граф кода слабее текстового.
  • Длина ограничена аттракторами: 200B — верхняя граница текущего свободного декода.

Лицензия и происхождение

Apache-2.0. Проект: github.com/Slavawe/fuga.ai — «единая байтовая модель, которая и говорит, и кодит, без словарей».

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support