2026 OLLAMA
MLX_PREVIEW_
ROLLBACK_
RUNBOOK.
Включение MLX preview inference в Ollama на Apple Silicon часто ускоряет decode, но переносит риски в плоскость dtype-контрактов, дрожания Metal и дыр квантизации. Здесь — матрица симптомов (нет загрузки, краш после первого токена, падает только один формат), пять шагов отката на стабильный llama.cpp и правила для контрольного удалённого Mac, чтобы сон и термика ноутбука не подменяли выводы. См. также бенч MLX, сравнение стеков, SSH/VNC.
1. Разбор боли
Preview ставит пропускную способность выше ширины совместимости. Ноутбук с Xcode Indexing, Electron и CI недооценивает чувствительность к памятной полосе. Одинаковое имя модели при разном digest — другой артефакт. TTFT и decode измеряются раздельно, минимум N≥24 выборок.
2. Матрица симптомов
| Сигнал | Вероятный корень | Не делать |
|---|---|---|
| Ошибка сразу после успешного pull | dtype/quant ≠ preview-сборка | прыгать по тегам без pin semver |
| GPU-падение после первого токена | Metal + параллельные всплески | GUI-стресс вместе с headless API |
| Падает только один quant | частичное покрытие MLX | «меньше значит безопаснее» |
| Репродукция у одного инженера | кэш/сон/kext | отказ от второго чистого хоста |
3. Пять шагов отката
Step 1 Заморозить тройку
Семвер Ollama, digest модели, патч macOS — в тикет.
Step 2 Явно выключить preview
Официальные флаги/ENV, однострочный diff.
Step 3 Хирургия кэша
Удалить подозрительные blob, логировать digest до/после.
Step 4 Пробы 1→4 потока
Повторить конкуренцию IDE.
Step 5 Политика
Preview только для PoC? Нужен второй backend?
4. Матрица решений
| Триггер | Первично | Запасной |
|---|---|---|
| Репродукция на втором Mac того же поколения с тем же digest | вести как регрессию | pin последней стабильной сборки |
| Всплески только на ноутбуке | тепло/питание/сон | удалённый Mac mini под нагрузку |
| Мультиклиентский поток | разделить интерактив/пакет | один процесс на всё |
5. Полевая заметка
«Виновата не память: выключили preview, удалили два blob — dtype-штурм перекомпиляций исчез.»
CI слал шесть параллельных потоков на localhost-Ollama; RSS был ровным, токены «замирали». Откат и digest-логи указали на интервальные Metal-rebuild узкой quant-дорожки. Повтор на удалённом Mac в стойке нормализовал кривые. Скорость preview требует зафиксированных артефактов и термически честного контрольного хоста.
6. Операционный язык и Metal
Относитесь к semver Ollama как к мажорным релизам Node, digest — как к lockfile. Удалённый Apple Silicon упрощает доказательство софт-регрессий независимо от перегрева зала переговоров.
Для команд с высокой нагрузкой на Metal выгоднее вынести инференс на арендуемый узел MACGPU, чем покупать каждому Ultra — этот runbook копируется на вторую машину без переделок.
7. Ворота Metal/квантизации
A: dtype+manifest+digest в одном тикете. B: первый shader-build отделить от номинального TTFT. C: перечислить скрытую параллельность клиентов. Удалённый replay отделяет среду от кода.
8. Числовые ворота MR
N≥24; TTFT p95 при 4 потоках >2.8× от одного потока → архитектурный разбор; средний swap за 90с >768МБ блокирует новых клиентов.
9. FAQ
Параллельно mlx_lm.server? Развести порты и RAM-бюджет. Только M5? Сначала патч ОС и сборка. Только warnings? verbose, stderr к одному тикету.