Skip to content

Интеграция практик 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
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 на каждой.

Честное ограничение: квоты сабагентов исчерпаны — интеграция встаёт до сброса лимитов. План готов, исполним по первому слоту.