EnglishРусский Map
Preferring Local OSS LLMs

Я хочу, чтобы локальные модели работали

title
Я хочу, чтобы локальные модели работали
type
summary
summary
Армин Ронахер о том, почему UX локальных LLM хуже, чем мог бы: фрагментация, нехватка стриминга вызовов инструментов, и ставка на pi-ds4 и ds4.c
tags
llm, local-models, tooling
created
2026-05-10
updated
2026-05-17
lang
ru
translation_of
lucumr-local-models
source_updated
2026-05-17
translated
2026-09-01
translator
lllm/antigravity/gemini-3.7-flash-high

Армин Ронахер (Flask, Sentry, Pi) утверждает, что опыт работы с локальными LLM сейчас куда хуже, чем должен быть - и проблема вовсе не в качестве моделей, а в отсутствии продуктовой шлифовки на всех уровнях стека. Пост представляет собой отчасти манифест, отчасти анонс расширения pi-ds4, которое оборачивает ds4.c Сальваторе Санфилиппо внутри Pi.

Отправной точкой служит контраст в UX между облачными и локальными решениями. Вставить API key в Pi - это "скучно" в самом лучшем смысле: выбрал провайдера, ввёл ключ и готово. Сделать то же самое локально означает выбрать движок инференса, затем модель, квантование, шаблон чата, размер контекста, затем отлаживать JSON-конфигурации на нескольких уровнях, а в итоге обнаружить, что одно из этих решений втихую ухудшило работу модели. Ничего из этого не должно быть обязательным, но сейчас всё это переложено на плечи пользователя.

Три конкретные проблемы:

В большинстве локальных стеков нет потоковой передачи параметров инструментов. В API completions от OpenAI аргументы вызова инструментов (tool calls) могут передаваться потоком по частям, точно так же, как обычные токены текста. Большинство локальных серверов буферизуют вызов инструмента целиком и отдают его атомарно. Последствия: невозможно понять, зависло ли соединение или модель просто медленно думает; не видно, какая именно команда bash собирается; нельзя прервать генерацию на раннем этапе. При бенчмарках качества моделей это незаметно, но полностью ломает UX для coding-агентов.

Фрагментация стека. llama.cpp, Ollama, LM Studio, MLX, Transformers, vLLM - сами по себе отличные проекты, но для любой модели реальное поведение в рантайме зависит от длинной цепочки мелких решений (рендеринг шаблона чата, обработка токенов рассуждения, трансляция формата вызовов инструментов, честный учёт контекстного окна, подключение KV cache, соответствие квантования "железу"), которые большинство пользователей отслеживать не станет. В итоге люди пробуют локальную модель, получают посредственный опыт и ставят на ней крест. "Очень напоминает старую добрую возню с пакетами в Python".

Ни одна связка не набирает критической массы. Новые модели выходят каждую неделю; внимание переключается на очередную новинку вместо того, чтобы довести до идеала конкретную связку (модель, "железо", движок, harness). Облачные провайдеры поставляют не "мешок весов с конфигом" - они поставляют готовый продукт. Локальным решениям пора двигаться в ту же сторону.

Ставка на DS4: ds4.c - это намеренно узкоспециализированный движок инференса от antirez: только DeepSeek V4 Flash на Mac со 128GB+ RAM, реализация на Metal, загрузка и рендеринг промптов под конкретную модель, работа с KV cache со сбросом на SSD, серверный API. Это не универсальный GGUF runner. Расширение pi-ds4 от Ронахера регистрирует этот движок как первоклассного провайдера для Pi: компилирует и запускает ds4-server по требованию, скачивает и собирает рантайм, автоматически выбирает квантование и управляет жизненным циклом процесса. В нём намеренно нет настроечных крутилок, потому что цель - научиться выставлять все эти параметры автоматически.

Основная мысль: речь идёт не о том, чтобы спрятать сложность, а о том, чтобы собрать её в одном месте, где её можно планомерно устранять. Выбрать одного победителя, довести до блеска, а затем масштабировать подход на другие конфигурации.

Почему это важно: перекликается с hold-on-to-your-hardware (Mac Studio с таким объёмом RAM сейчас практически не достать), titit-local-ai (похожий аргумент Ньюарда), deepseek (V4 Flash как модель, которую действительно реально запускать локально при наличии подходящего "железа") и ai-subsidy-economics (слова Ронахера о том, что "молоток заперт за подпиской в другой стране", представляют собой ту же самую критику).

Ссылки: lucumr-blog, titit-local-ai, deepseek, hold-on-to-your-hardware, deepseek-v4-roleplay-instruct, local-llm-16gb-vram-tests (наглядный пример именно того уровня экспертных знаний оператора, который, по словам Ронахера, требоваться не должен: --n-cpu-moe, тройная блокировка рассуждений, подмена точности KV cache), steering-vectors-interesting-again (директория dir-steering/ в ds4 служит для Гёдеке примером того, почему steering внезапно стал практичным), llama-cpp, opencode.