TSCT — полная спецификация (для внешнего анализа)
Дата: 2026-10-03. Ветка: main f480095. Назначение: сверх-технология эксперта/FFN —
ёмкость без вычислений. Этот документ — полная спецификация для аналитика: что
устроено как, какие константы, что измерено, где открытые проблемы и оси оптимизации.
1. Где живёт TSCT в модели
Section titled “1. Где живёт TSCT в модели”DormouseModel = Embedding(256) → LoopBlock × max_iter → RMSNorm → lm_headLoopBlock (на итерацию, веса общие): controller: sigmoid-гейты (w_attn, w_mem, w_ffn) + softmax-бленд экспертов → KDA (gated-delta attention, единственный attention-ARM) → Engram (FNV-hashed n-gram таблицы, ORDERS=[2,3,4]) → n_experts × TSCT-экспертов (FFN-рука) ← ЗДЕСЬ → ReZero residual (или Gated Residual) → out_proj, усреднение по итерациямTSCT — это FFN-рука: каждый эксперт заменяет плотный Linear(d, 4d) на
спектрально-факторизованный. При n_experts > 1 плотного FFN нет — только эксперты.
2. Математика одного эксперта
Section titled “2. Математика одного эксперта”W ∈ R^{d×f} (d = d_model = 768, f = 4d = 3072 в пресете small)W ≈ U · diag(s) · Vᵀ U ∈ R^{d×r}, V ∈ R^{f×r}, s ∈ R^r, r = 64 (ранг)
Эксперт = gate_up (d→2f, спектральный) → SiLU (нелинейность МЕЖДУ факторами) → down (f→d, спектральный).Параметры: gate_up r·(d+2f) = 442k + down r·(f+d) = 247k = **689k на эксперта**.Dense FFN (d→2f→d) = 7.08M. Сжатие **10.3×** (в спеке 247k была только down — уточнено внешним агентом).Forward: y = x · U · diag(s) · Vᵀ — два матмула вместо одного, но ранг 64 вместо
полной матрицы. Параметры эксперта: r·(d + f + 1) вместо d·f — при r=64, d=768,
f=3072: 247k против 2.36M — 9.5× меньше параметров на эксперта.
3. Спектральная факторизация и ретракция (burn-spectral)
Section titled “3. Спектральная факторизация и ретракция (burn-spectral)”- Факторы инициализируются и поддерживаются ортогональными (UᵀU = I, VᵀV = I).
- Поддержание — полярная ретракция (Newton–Schulz, burn-spectral):
U ← polar(U)каждыеretract_everyшагов,retract_iters = 3NS-итерации. - Коэффициенты NS: фиксированный тройной (1.875, −1.25, 0.375) — PolarExpress, бит-точный, без golden-константы.
- Мастера факторов — fp32; квант применяется только к эффективному весу в forward.
- Ретракция — фиксированная стоимость, НЕ амортизируется по batch: измерено 52–61 ms/step (22% шага при b8), 8× данные → 1.2× время ретракции.
4. max_ortho latch (защита от деградации ортогональности)
Section titled “4. max_ortho latch (защита от деградации ортогональности)”- Метрика: per-entry
‖UᵀU − I‖_F / r, считается каждые 500 шагов. - Порог: 1e-3 per-entry. Свежая инициализация ~1.4e-4; NS-3 сходится к ~6e-5.
- Выше порога: все факторы эксперта необратимо переключаются в fp32 (one-way), проверки прекращаются, latch персистится в чекпоинт.
- Зачем: квант факторов (fp8/fp4) ломает орто → без latch молча деградирует качество.
5. MoE-роутер (поверх экспертов)
Section titled “5. MoE-роутер (поверх экспертов)”- Логиты роутера: обучаемая голова,
expert_logits [b·t, n_experts]. - Вероятности: softmax p_i* БЕЗ ренормализации (Switch §2.1) — владельческое решение: ренорм ≡ 1.0 убивал градиент роутера. Гейт починен в fidelity-fix.
- Load-balancing:
lb_aux(auxiliary loss против коллапса роутера). - Бленд: softmax-взвешенная сумма выходов экспертов в контроллере.
- Ёмкость:
n_experts— лестница 2/4/8/16 (configs готовятся в bf-giant).
6. Квантование весов (лестница)
Section titled “6. Квантование весов (лестница)”--quant fp32|bf16|fp16|fp8|fp4— формат эффективного веса в forward.- Мастера всегда fp32; чекпоинты format-agnostic.
- Лестница битности (открытый вопрос, каждая ступень = A/B 2k×3): fp8 (работает) → fp4 → int4 → ternary (BitNet b1.58, 1.58-bit).
- Гейт ступени: max_ortho latch + BPB. Ступень мёртва, если latch горит постоянно.
- LinearLike пэддит
out_featuresдо кратных 4 (векторизация матмула), срезает обратно.
7. BitNet a4.8 (активационное квантование, ортогонально весам)
Section titled “7. BitNet a4.8 (активационное квантование, ортогонально весам)”act_quant.rs: квант активаций (веса в графе fp32), STE, f32-граф.- Сетки: E2M1 (fp4: 0, .5, 1, 1.5, 2, 3, 4, 6 — 8 магнитуд, 16 кодов), int4 (симметричный, 7 уровней), int8 (127). Дефект «0.75 вместо сетки» исправлен 2026-09-28.
- Путь внимания:
max(bits, 8)— 4-битного внимания не бывает. - Группа:
--act-group N(per-token при 0).
8. Измеренные числа (provenance в benches/history.tsv)
Section titled “8. Измеренные числа (provenance в benches/history.tsv)”| величина | число | где |
|---|---|---|
| шаг 9.2M (byteflow, канон) | 49 ms/step, 3.46 BPB @2k | bfconfirm 2026-10-03 |
| шаг 9.2M (dormouse b8, ночь) | ~245 ms/step | night_20261003.log |
| запусков/шаг | 21 427 (KDA 65.5%, JEPA 22.3%, TSCT 15%) | launch-atlas |
| ретракция | 52–61 ms/step, не амортизируется | §3.1 |
| max_ortho свежая / NS-3 пол / порог | 1.4e-4 / 6e-5 / 1e-3 | §4 |
| чинчилла 9.2M | ~736 MB байтов = 180k шагов | §2.6 |
9. Конфиг-поверхность (флаги)
Section titled “9. Конфиг-поверхность (флаги)”--quant, --act-quant 4|8|fp4, --act-group, --retract-every, --retract-iters,
--factors-fallback, --moe (n_experts через пресет/--set), --bf16,
пресеты configs/*.toml (small, base, byteflow, byteflow_9m).
10. Открытые проблемы (оси для аналитика)
Section titled “10. Открытые проблемы (оси для аналитика)”- Ретракция не амортизируется — фиксированная стоимость на каждый шаг. Ось: реже (каденс 5/10 — в пределах спреда контроля @2k, но не подтверждено 3k), дешевле (NS-2 вместо NS-3?), батчее.
- max_ortho latch на масштабе — при 50M–1B факторов больше, квант грубее; риск, что latch горит постоянно = молчаливый fp32. Ось: адаптивный порог, per-expert latch, квант-компенсация в ретракции.
- Лестница кванта — где кончается компенсация STE (fp8→fp4→int4→ternary)?
- Супер-спарсность (идея владельца): активные параметры = крошечная доля. Оси: (a) top-k по весам внутри эксперта (структурированная спарсность), (b) гейтирование ранга (s→0 для мёртвых сингулярных направлений), (c) MoE-ёмкость 8B/1B-active — уже даёт «8B при вычислениях 1B», (d) комбинация: супер-спарсный эксперт + MoE + квант.
- MoE-роутер учится специализироваться? — utilization-энтропия (moe-dev).
- TSCT на 1B — стоимость ретракции и память факторов на масштабе.
11. Что НЕ трогать (дисциплина)
Section titled “11. Что НЕ трогать (дисциплина)”- NaN-файрвол безусловен; resume-дисциплина (ADR-0005/0021); LOUD/COUNTED (ADR-0019); каждый механизм бьёт своё удаление на held-out BPB (§1.2, 3 сида, спред контроля).
- Все числа — с provenance (config, дата, коммит, окно eval’а).
12. АУДИТ 2026-10-03 (аналитик + проверка кода): top-k НЕ диспетчит
Section titled “12. АУДИТ 2026-10-03 (аналитик + проверка кода): top-k НЕ диспетчит”Подтверждено по коду (loop_block.rs:982-997): for e in 0..n_experts — ВСЕ эксперты
вычисляются каждый шаг; moe_topk > 0 лишь обнуляет веса невыбранных в blend.
FLOPs полные: «ёмкость без вычислений» сейчас не работает. Приоритет №1 — настоящий
top-k dispatch (gather токенов → эксперт → scatter), FLOPs = k/E от полных.
Исследования от аналитика (2026-10-03)
Section titled “Исследования от аналитика (2026-10-03)”| работа | идея для TSCT |
|---|---|
| MoRE 2609.36301 | low-rank router + fused top-k; 1.83–4.54× prefill; НО training +15–42% (Adam по полному пулу) |
| FlexMoE 2606.27866 | структурный prune групп каналов; 99.8% качества при 50% удаления; нужен kernel co-design |
| Intra-expert sparsity 2605.08575 | пропуск нейронов по активации внутри эксперта; 95% при 85% sparsity; только inference |
| REAP 2510.13999 | prune экспертов по gate×вклад, не по частоте |
| TileQ 2605.09281 | общие low-rank факторы между экспертами + low-bit + 2D tiling — пул меньше по памяти |
План аналитика (приоритет)
Section titled “План аналитика (приоритет)”- top-k dispatch (k=1/2) + замер реальных expert GEMM/токен — ПРИОРИТЕТ №1
- структурный prune каналов/рангов (FlexMoE-стиль, физически в kernel)
- общая база факторов (TileQ) — память обучения: fp32-мастера + Adam не режутся routing’ом
- REAP-prune слабых экспертов
- activation sparsity — отдельно, inference
- ретракция — отдельным пакетом (каденс/NS-итеры); общие факторы могут дать ОДНУ ретракцию на базу