Как развернуть LLM локально за два дня: пошаговый кейс на DGX Spark и vLLM
Развернуть LLM (большую языковую модель) локально, от файлов до работающего API, можно за два дня, но между «модель запустилась» и «ИИ-функция работает» лежит инженерная дистанция, которую редко показывают целиком.

Локальное развёртывание LLM на российском корпоративном железе упирается не в размер модели, а в совместимость runtime, управление памятью и поведение потоковой выдачи. Эта инструкция собрана из реального пилота на NVIDIA DGX Spark и AMD Radeon, где каждый шаг проверен на практике.
Инженер, стоявший за этим пилотом, честно признаёт: теорию он знал давно, а вот сквозной путь от файлов модели до рабочего пользовательского сценария прошёл впервые. За два дня команда подняла две локальные LLM на двух DGX Spark, развернула отдельную модель распознавания речи (ASR, автоматическое распознавание речи) на мини-ПК с AMD GPU и подключила всё к мультиагентной платформе «Искра». Результат стал инженерным кейсом, где видны реальные узкие места. Ниже по шагам, что именно делать, на чём спотыкаться и как не потерять дни на ошибках, которые выглядят мелкими.
Что понадобится?
- Серверы с GPU. В пилоте использовались два NVIDIA DGX Spark (ARM64, архитектура Grace Blackwell, 128 ГБ согласованной памяти CPU и GPU). Для ASR задействован мини-ПК Beelink с AMD Radeon 8060S
- Runtime для LLM. vLLM, фреймворк, который поднимает OpenAI-совместимый HTTP-сервер. Приложение вызывает локальные модели через привычный
/v1/chat/completions, не требуя отдельной интеграции под каждый runtime - Модели. Основная LLM:
Qwen3.8-27B-FP8. Быстрая LLM:Qwen3.6-35B-A3B-NVFP4. ASR:Qwen3-ASR-1.7B - Среда для AMD-контура. WSL2 (подсистема Windows для Linux) плюс ROCm (аналог CUDA для видеокарт AMD)
- Оркестрация. Мультиагентная платформа «Искра», к которой подключаются все три вычислительных сервиса
- Время. Два полных рабочих дня на пилот, включая диагностику и откат неудачных оптимизаций
Архитектура пилота: три сервиса за одним API
Схема, которую собрали, выглядит так: пользователь обращается к платформе «Искра», та оркестрирует агентов (ИИ-агент, программа, самостоятельно выполняющая цепочку действий) и маршрутизирует запросы на три endpoint (точки подключения):
- Основная LLM на DGX Spark №1 для сложных пользовательских задач
- Fast LLM на DGX Spark №2 для служебных и простых запросов
- ASR API на Beelink с AMD Radeon в WSL2 для транскрибации аудио и видео
Ключевое архитектурное решение: vLLM отдаёт стандартизированный OpenAI-совместимый контракт. Это отделяет приложение от конкретной реализации инференса (инференс, выполнение уже обученной модели на входных данных). Модель, квантизацию (способ сжатия весов для экономии памяти) или параметры сервера можно менять за границей API, не переписывая агентный слой.
Но совместимый endpoint не гарантирует совместимого поведения. Особенно в потоковой выдаче (streaming) и tool calling (вызов внешних функций моделью). Об этом ниже.
Пошаговая инструкция
1. Соберите матрицу совместимости, прежде чем скачивать веса
Первая проверка не «помещается ли модель в память», а полная матрица:
- Архитектура CPU (в случае DGX Spark это ARM64)
- Поколение GPU и его возможности
- Версия CUDA или ROCm и драйвера
- Поддержка конкретной квантизации (FP8, FP4) в выбранном runtime
- Наличие нужных вычислительных ядер (kernels) в runtime
- Формат весов и chat template (шаблон, по которому runtime формирует диалог из сообщений)
- Архитектура контейнерного образа
Для AMD-контура в WSL2 существует отдельный путь установки и своя матрица совместимости. Переносить CUDA-инструкции на такой узел бессмысленно.
2. Разверните воспроизводимые контейнеры
Модель в репозитории это набор артефактов: веса, конфигурация архитектуры, токенизатор (программа, разбивающая текст на единицы, понятные модели), chat template, иногда дополнительный код модели, метаданные квантизации. Сами по себе они не принимают HTTP-запросы, не ограничивают параллелизм, не пишут метрики и не восстанавливаются после перезагрузки.
Минимальный контур сервиса:
артефакты модели
+ совместимый runtime
+ GPU-драйвер и вычислительный стек
+ HTTP API / streaming / auth
+ healthcheck / логи / restart policy
= сервис, который можно подключать к приложению
Веса выносите в постоянное хранилище. Серверы получают API-аутентификацию, healthcheck (автоматическую проверку работоспособности) и политику перезапуска.
3. Настройте безопасность API с оговоркой
Встроенный API-ключ в vLLM защищает не все endpoint. В официальной документации vLLM прямо рекомендуется учитывать это при публикации сервера и при необходимости ставить его за reverse proxy (промежуточный сервер, закрывающий прямой доступ к сервису). «Есть ключ» и «поверхность сервиса закрыта» не одно и то же.
4. Рассчитайте память правильно: веса это только начало
Грубая формула потребления:
память процесса ≈ веса модели
+ KV-кэш
+ рабочие буферы и графы
+ служебные структуры runtime
+ память других процессов
KV-кэш (кэш ключей и значений, где модель хранит контекст диалога) зависит от архитектуры модели, длины контекста, числа одновременных последовательностей и типа данных. Рабочая память меняется с настройками prefill, CUDA graphs и конкретными вычислительными ядрами.
Поэтому вопрос «влезет ли модель?» неполон. Спрашивайте иначе:
- С каким максимальным контекстом она поместится?
- Сколько запросов сможет выполнять одновременно?
- Какой запас останется системе?
- Не появятся ли вытеснения KV-кэша?
- Что произойдёт при двух длинных запросах сразу?
В пилоте начальная конфигурация работала с окном 32 тысячи токенов (токен, минимальная единица текста для модели, примерно три четверти слова). Для реальных агентных сценариев потребовалось расширить контекст до 256 тысяч токенов, и это пришлось «оплачивать» снижением параллелизма.
5. Подключите к оркестратору и проверьте потоковую выдачу и tool calling
Самая коварная зона. OpenAI-совместимый endpoint не означает, что streaming и tool calling (когда модель вызывает внешние функции, например поиск или калькулятор) будут вести себя идентично облачному API OpenAI. В пилоте именно здесь обнаружились расхождения, которые потребовали отдельной отладки на стороне платформы «Искра».
Команда запустила Qwen3.8-27B-FP8 на DGX Spark №1 через vLLM с окном 32 тысячи токенов. Модель стартовала, healthcheck проходил, простые запросы через /v1/chat/completions возвращали корректные ответы. Но при подключении к агентному контуру «Искры» обнаружилось: длинные сценарии с цепочкой tool calling и контекстом свыше 100 тысяч токенов вызывали вытеснение KV-кэша. Модель «забывала» начало диалога. Расширение окна до 256 тысяч токенов решило проблему контекста, но сократило число одновременных сессий. Функциональная проверка на 256 тысяч токенов всё ещё не означает production-ready: устойчивость под нагрузкой и поведение при пиковых запросах требуют отдельного тестирования.
- Оценивать память только размером весов. KV-кэш, буферы и служебные структуры runtime могут занять больше, чем сами веса, особенно при длинном контексте
- Переносить CUDA-инструкции на AMD-контур. Для ROCm в WSL2 существует отдельный путь установки. Копировать шаги из CUDA-туториала приведёт к непонятным ошибкам на этапе загрузки ядер
- Считать, что API-ключ vLLM закрывает все endpoint. Документация vLLM предупреждает об этом явно: при работе за пределами доверенной сети ставьте reverse proxy
- Путать «модель запустилась» и «сервис работает». Без healthcheck, политики перезапуска и логирования процесс в терминале упадёт при первом сбое и никого не предупредит
- Тестировать только короткие промпты (промпт, входной текст-инструкция для модели). Агентные сценарии порождают контексты в десятки и сотни тысяч токенов, поведение модели при этом отличается принципиально
Что делать с этим прямо сейчас, по ролям
Автору Дзена и копирайтеру. Если вы присматриваетесь к локальным моделям для генерации текстов, учитывайте: развернуть LLM локально можно и на потребительском железе с одной видеокартой, но агентные сценарии с длинным контекстом потребуют серверного класса. Для экспериментов с короткими промптами подойдёт и домашняя машина с 16 ГБ видеопамяти, но без иллюзий про «замену ChatGPT».
Маркетологу. Локальный контур означает, что данные не уходят за периметр компании. Для задач, связанных с обработкой клиентских обращений, персональных данных или внутренних документов, это может быть единственный допустимый вариант. Из доступных в РФ облачных аналогов: YandexGPT и GigaChat через API, но они не дают контроля над размещением данных на уровне «железо стоит в нашей серверной».
Предпринимателю и техническому руководителю в РФ. DGX Spark доступен в России через партнёров NVIDIA. vLLM работает с открытыми моделями (моделями с доступными весами), поэтому не зависит от санкционных ограничений на API. Главный вопрос не «какую модель взять», а «кто в команде пройдёт путь от матрицы совместимости до стабильного сервиса». Закладывайте два-три дня инженерной работы на пилот и отдельно время на нагрузочное тестирование.
По моим наблюдениям, большинство инструкций по теме «развернуть LLM локально» заканчиваются на моменте «модель ответила на первый вопрос». Этот кейс ценен тем, что показывает всё, что идёт после: память, параллелизм, совместимость streaming и tool calling, безопасность endpoint. Честная оговорка: все данные относятся к пилотному контуру, заказчик обезличен, результаты замеров нельзя механически переносить на другое железо, модели и сценарии. Но сам чек-лист проблем универсален. Если вы планируете локальное развёртывание, начните с матрицы совместимости и формулы памяти, а не с выбора модели по рейтингу. Модель это последнее решение, а не первое.
Попробуйте генерацию контента с ИИ на dzen.guru
Мы тестируем нейросети и собираем работающие приёмы для авторов Дзена. Подпишитесь, чтобы получать разборы и инструкции, проверенные на практике.
ПодписатьсяЛокальная LLM, запущенная и отвечающая на простой промпт, это примерно 20% пути. Остальные 80% лежат в инженерии сервиса: памяти, безопасности, потоковой выдаче и поведении под нагрузкой. Кто пройдёт этот путь до конца, получит инфраструктуру, которая не зависит ни от чужого облака, ни от чужих правил.

Основатель dzen.guru. Эксперт по монетизации и продвижению на Дзен. Автор курса «Старт на Дзен 2026».
Читайте также

Anthropic раскрыла 5 случаев обхода защиты Claude AI: безопасность проверили биооружием
Anthropic, разработчик Claude, второго июня 2025 года впервые раскрыла конкретные случаи, когда исследователи из запрещённых стран пытались использовать модель…

Агенты OpenAI взломали RubyGems
Независимые расследователи обнаружили, что ИИ-агенты OpenAI в мае 2025 года атаковали RubyGems, репозиторий пакетов для языка программирования Ruby, загрузив…
Исследователь Anthropic уволился, глава безопасности его поддержал: опасность ИИ признали изнутри
Исследователь Anthropic, одной из крупнейших компаний в сфере ИИ, уволился на этой неделе и публично заявил, что компания «мчится к самосовершенствующемуся…
Комментарии