Интеграция практик OLMo-2 / OLMo-core в наш стек
Дата: 2026-10-04. Источники: статья «2 OLMo 2 Furious» (2501.00656) + OLMo-core (код, olmo-mine лёг в rate-limit). Принцип: берём ИДЕИ, переписываем на Rust/burn. Каждая практика = A/B против удаления (§1.2).
Категория A — дешёвые (стабильность, прямое попадание в NaN-эпизоды)
Section titled “Категория A — дешёвые (стабильность, прямое попадание в NaN-эпизоды)”| практика | что делает | куда в наш код | стоимость |
|---|---|---|---|
| QK-Norm | RMSNorm на K и Q до attention — логики не взрываются | KDA: q/k проекции | 2–3 LOC |
| Z-Loss | регуляризация стабильности (z-loss на logits) | loss в train_loop | ~10 LOC |
| Reordered norm | норма на ВЫХОДЕ руки (Eq 1/2: h := x + RMSNorm(Arm(x))) | LoopBlock: сейчас норма на входе | ~5 LOC |
Приоритет: ПЕРВЫЕ. Прямо бьют в наши NaN-эпизоды (§2.3). Гейты: A/B против текущего, 3 сида, BPB + число NaN-эпизодов. Kill-switch: если не помогают — откат.
Категория B — средние (конфиг / одна строка)
Section titled “Категория B — средние (конфиг / одна строка)”| практика | применение |
|---|---|
| RoPE θ = 5e5 | наш 1M-контекст: более тонкое позиционное разрешение (сейчас 1e4?) |
| No WD на embedding | у нас уже (Adam wd=0 tables) ✅ |
| GQA | наш KDA — другой путь, не трогаем |
Категория C — дорогие (рецепт гиганта / данные)
Section titled “Категория C — дорогие (рецепт гиганта / данные)”| практика | применение |
|---|---|
| Two-stage mid-training | наш гигант: 90-95% web → 5-10% quality upsample + synthetic, LR→0 |
| LR truncation | decay до 10% peak после N токенов, затем mid-train до нуля |
| Гигиена данных | повторяющиеся n-граммы → loss spikes (их находка): дедуп/фильтр корпуса |
| Init σ=0.02 truncated normal | проверить наш init (OLMo-2 init стабильнее) |
Категория D — из кода OLMo-core (нужен olmo-mine, rate-limit)
Section titled “Категория D — из кода OLMo-core (нужен olmo-mine, rate-limit)”| практика | применение |
|---|---|
| Dropless MoE (grouped_gemm) | наш MoE с отбросом → dropless |
| Fused-linear loss (Liger) | наш loss-путь — проверить лишние запуски |
| float8 training (torchao) | сверить с нашим QAT-планом |
| Efficient attention (flash/ring) | паттерны для KDA/MSA |
Порядок интеграции
Section titled “Порядок интеграции”A (QK-Norm + Z-Loss + Reordered norm) → A/B, самое дешёвое из важного → B (RoPE θ) → конфиг → D (olmo-mine перезапуск) → dropless MoE, fused loss → C (mid-training, гигиена) → рецепт гигантаГейты каждой: A/B против удаления, 3 сида, BPB + стабильность (NaN) + wall-clock. Kill-switch на каждой.
Честное ограничение: квоты сабагентов исчерпаны — интеграция встаёт до сброса лимитов. План готов, исполним по первому слоту.