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 для всех каналов.
Ключевые архитектурные решения
- Окно контекста ctx=8 (9 байт) — обучение на
data[i-8..=i], декодер сwindow=9. Устраняет фазовый сдвиг, дававший "репетиционные циклы" (vity is...). - Patch Loss Curriculum —
λ(t) = 0.10 + 0.30·exp(−t/τ), τ=500K: старт λ=0.4 (жёсткая сшивка соседних API-узлов), экспоненциальное затухание к 0.10. Переобучение побеждено. - Перекрывающиеся патчевые окна — обучение W_patch на окнах со сдвигом −1 патч (pp−5..pp−2 → pp, половинный λ) насыщает альтернативные рёбра графа переходов.
- 100% поток градиентов W_patch — обновление на каждом шаге (Widrow-Hoff дельта, без пропуска i%2==1).
- Единый энкодер-базис — байтовый и патчевый каналы используют один seed (0xF03D) — детерминизм холодного/горячего инференса.
- Честная сериализация — встроенный тест: 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»:
- MegaByte-каркас: W_patch по окну 4 полных патча предсказывает top-K коридор (K=8) — задаёт глобальную 200B-траекторию, держит контекст даже для коротких сидов (
fn main() {→ 200B, раньше 3B обрыв). - Локальный перехват v2: как только локальный W видит знакомый токен (cos ≥ 0.05) и это его локальный максимум (чистый косинус, без β-бонуса) — байт берётся напрямую, минуя семплинг. Так точные имена функций достраиваются целиком, без разрывов патчевой сетки.
- 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
- 21