2026 LONG CONTEXT ON
APPLE_SILICON_
KV_SWAP_MLX.
Многие команды сначала выкатывают ползунок 128K и только потом видят, что счёт выставляет рост KV в unified memory, а не размер GGUF. Материал для инженеров, которые гоняют MLX или llama.cpp на Apple Silicon и должны честно держать RAG/агентные промпты: четыре типовых отказа, грубая таблица бюджета для 32K/64K/128K, пятиступенчатая приёмка TTFT, перцентилей decode и площади swap, матрица «когда удалённые MLX-узлы бьют тяжёлые ноутбуки». Читайте вместе с материалами MACGPU про swap на unified memory, параллель vllm-mlx и SSH против VNC для удалённых Mac.
1. Разбор боли: почему длинный контекст больнее роста числа параметров
Во-первых, KV и рабочий набор масштабируются с длиной последовательности, а prefill даёт пик до первого decode-токена. Во-вторых, unified memory делится с GPU, Neural Engine и кэшем ОС; фоновый рендер ComfyUI или индексация Xcode тихо съедают запас. В-третьих, после порога swap Metal-инференс деградирует скачком до однозначных tok/s. В-четвёртых, средний decode без TTFT и swap-метрик скрывает SLA-риск на юридических или монорепо-промптах.
2. Грубый KV-бюджет: от маркетингового окна к инженерному конверту
Веса ~ параметры × байты кванта × batch; верхняя граница KV ~ слои × головы × размерность × 2 × длина × dtype с коэффициентом фрагментации 1,2–1,35. Эмпирически 32K часто живёт на 48 ГБ класса для 7B–13B Q4; 64K ломает совместимость с параллельными сервисами; 128K на 64 ГБ часто конфликтует со второй линией инференса.
| Окно | Сигналы | Одна машина | Удалённый MLX |
|---|---|---|---|
| 32K | TTFT p95 > ~8 с, высокий разброс decode | batch=1, фикс кванта, убрать GPU-хищников | Второй сервис класса 30B или 7x24 |
| 64K | Резидент > ~78% RAM, всплески swap | Чанкование RAG, урезать tool JSON | Продукт требует полную вставку без swap |
| 128K | Вентилятор на максимуме, swap >2 ГБ устойчиво | Выделенный Mac под инференс | Studio 192 ГБ или почасовой пул |
3. Пять шагов приёмки: ворота swap и минимальные tok/s
Шаг 1 зафиксировать наборы промптов
8K/32K/128K синтетика или обезличенные реальные, температура 0, фиксированные seed.
Шаг 2 зафиксировать квант и параллелизм
Не более двух уровней кванта на релиз; начинать с одного запроса.
Шаг 3 логировать TTFT, decode p50/p95, интеграл swap
Первый момент swap >512 МБ и tok/s в ту же секунду.
Шаг 4 опубликовать минимальные tok/s
Пример: поддержка decode p95 ≥12 tok/s; код ≥28 tok/s.
Шаг 5 CSV с отпечатками ОС и рантайма
Минор macOS, коммит MLX или llama.cpp, контрольная сумма модели.
4. Матрица: остаться локально, урезать окно, переделать RAG, вынести MLX
| Триггер | Предпочтительно | Запасной | Избегать |
|---|---|---|---|
| Swap >1 ГБ 90 с | Укоротить окно или остановить вторую линию | 192 ГБ удалённо для длинного окна | Только наращивать параллелизм |
| TTFT p95/p50 >2,8 | Резать system prompt и tool JSON | Удалённый prefill, локальный маленький оркестратор | Слепой прыжок к большей модели |
| Обязательная вставка 128K | Выделенный образ инференса | Почасовой пул удалённых Mac | 36 ГБ ноутбук в проде |
Три числовых ворот для вики: резидент >82% физической RAM 10 минут и любой сэмпл swap >768 МБ → авто-даунгрейд до 32K или маршрутизация наружу. Decode p95 хуже на >35% относительно графически простоя при экспорте — очередь или перенос инференса. Два OOM/jetsam в неделю — гибридный PoC до третьего ноутбука.
5. Кейс: юридический RAG от полного 128K к этажным саммари и удалённому 128K
Пятница, 6 ГБ swap на полном OCR-128K; после переноса длинной ветки на удалённый MLX Studio и 8B-оркестратора на ноутбуке P95 упал с четырёх минут до 22 секунд.
Шесть человек в legal-tech гоняли MLX на диффах контрактов с сотнями страниц OCR и многоходовым tool JSON. На второй неделе наложили swap и перцентили TTFT: prefill 128K выталкивает кэши ОС и дрожит decode. Полный корпус заменили векторными чанками и секционными саммари; только спорные клаузулы поднимаются в 128K; ветку закрепили на арендованном Mac Studio 192 ГБ. Руководство получило график swap до/после и сместило CapEx с «ещё ноутбуки» на предсказуемые почасовые Mac-вычисления.
6. Взгляд: маркетинг длины контекста против аудируемого SLA
Карточки моделей будут обещать больше окна, но пропускная способность unified memory и SSD-swap не удваиваются каждый квартал. Остаются перцентильные кривые, интеграл swap и автоматические пути понижения. Прод с контрактными 64K–128K требует выделенного Mac-инференса или эластичных удалённых пулов со стабильным питанием и термикой. Читайте гайд MACGPU SSH/VNC и статью vllm-mlx, чтобы не класть два убийцы на один бюджет unified memory.
Длинный контекст только на ноутбуке годится для индивидуалов, терпимых к джиттеру. Когда swap недопустим, а длина не обсуждается, почасовая аренда крупных узлов Mac с unified memory часто выигрывает гонку за максимальным BTO. Аренда удалённых Mac у MACGPU снимает MLX-пики без принудительного CUDA-only режима — сохраняя низкоуровневый фокус на Metal и пропускной способности памяти.