Развернуть LLM на своём сервере: частная языковая модель в вашем контуре

Ставим открытую языковую модель на ваше оборудование и собираем вокруг неё то, без чего она не годится для работы: сервер инференса, шлюз с авторизацией и журналом, поиск по вашим документам с учётом прав, интерфейс и мониторинг. Запросы и документы остаются внутри периметра, веса, конфигурации и документация передаются вам по акту. Качество модели на ваших данных мы измеряем на пилоте, а не обещаем заранее.

Обследование с расчётом железа — от 200 000 ₽, 2–3 неделиОблачные модели в контуре не используемВеса, промпты и конфигурации остаются у вас

Зачем это нужно

Когда приходят с задачей «поставить LLM у себя»

Документы нельзя отправлять наружу

Договоры, регламенты, переписка и персональные данные не должны уходить во внешний API. Запрет без замены не работает: сотрудники всё равно пользуются публичными чатами с личных устройств.

Пробовали запустить сами и упёрлись

Модель на одной рабочей станции отвечает, но нет авторизации, журнала, прав на документы и понятного способа обновления. Для пилота этого хватало, для работы отдела нет.

Непонятно, какое железо покупать

Видеопамять считается не по размеру модели, а по весам плюс кэш контекста на каждого одновременного пользователя. Без этого расчёта закупка идёт вслепую.

Закрытый контур без интернета

Модели, образы и пакеты нельзя скачать с серверов разработчиков. Нужен регламент переноса, проверка происхождения весов и воспроизводимое развёртывание.

Служба безопасности спрашивает про журнал и права

Кто что спросил, какие фрагменты попали в ответ, на каком основании пользователь их увидел. Если этих ответов нет, согласовать запуск не удастся.

Что именно разворачиваем

Шесть компонентов, из которых состоит рабочая система

Модель — одна из шести деталей. Остальные пять определяют, можно ли ею пользоваться в компании. Подробнее об устройстве — в статье про архитектуру и порядок работ.

Сервер инференса

Программа, которая загружает веса в память видеокарты и отвечает на запросы по стандартному API. Выбираем по задаче: для многопользовательской нагрузки, для одной рабочей станции или для работы без видеокарты.

Шлюз

Единая точка входа: личные ключи вместо общего, роли, лимиты на запросы и длину ответа, журнал. Серверы инференса снаружи не открываем.

Поиск по документам

Индексация ваших файлов, векторный и точный поиск, права доступа на уровне фрагментов. Модель получает только то, что пользователю можно видеть.

Интерфейс

Чат для сотрудников или встраивание в систему, где они уже работают: портал, почта, 1С, служба поддержки. Ответ приходит со ссылкой на файл и страницу.

Журнал и мониторинг

Запросы, найденные фрагменты, отказы, время ответа, загрузка видеокарты, очередь. Журнал — тоже защищаемый ресурс, у него свои права и срок хранения.

Хранилище моделей и зеркало пакетов

Внутренний каталог весов, образов и пакетов с проверкой хэшей. Развёртывание повторяется с нуля без интернета, и первое обновление не останавливает систему.

Какую модель берём

Задача, класс модели, проверка на ваших документах

Таблица показывает порядок рассуждения, а не готовый ответ. Конкретную модель выбираем после проверки на ваших вопросах: «лучшей модели вообще» не существует.

Задача
Класс модели и состав
Что проверяем на ваших документах
Где ломается
ЗадачаОтветы по регламентам и базе знанийпоиск с ссылкой на источник
Класс модели и составМодель среднего размера, векторная модель для поиска, при необходимости ранжирование найденных фрагментов
Что проверяем на ваших документахКонтрольный набор вопросов с известными ответами, вопросы без ответа в базе, вопросы по устаревшим редакциям
Где ломаетсяПоиск не находит нужный фрагмент из-за другой лексики; таблицы режутся пополам; в базе три версии одного регламента
ЗадачаИзвлечение полей из документовдоговоры, счета, акты
Класс модели и составМодель, хорошо следующая формату вывода; распознавание текста перед ней, если на входе сканы
Что проверяем на ваших документахТочность по каждому полю на эталонной выборке, а не «в среднем»; сверка сумм и реквизитов
Где ломаетсяСканы низкого качества; модель «дописывает» отсутствующее поле; нестандартные формы
ЗадачаКлассификация и маршрутизация обращенийпочта, заявки, поддержка
Класс модели и составНебольшая модель, иногда достаточно классического классификатора; большая нужна для разбора сложных писем
Что проверяем на ваших документахМатрица ошибок по классам; доля обращений, которые уходят человеку; поведение на редких классах
Где ломаетсяРедкие классы тонут; список категорий меняется, а модель о нём не знает
ЗадачаКраткое изложение длинных документов и протоколовдлинный контекст
Класс модели и составМодель с длинным контекстом либо пошаговая обработка по частям
Что проверяем на ваших документахСверка изложения с оригиналом по заранее выбранным фактам; расход памяти на длинном входе
Где ломаетсяТеряются детали из середины документа; растёт кэш контекста, видеопамяти не хватает
ЗадачаПомощь разработчикамкод, запросы, скрипты
Класс модели и составМодель, обученная работать с кодом; чаще всего нужен длинный контекст и интеграция с редактором
Что проверяем на ваших документахЗадачи из вашего репозитория, а не учебные примеры; соблюдение вашего стиля и версий библиотек
Где ломаетсяПредлагает устаревшие или несуществующие функции; доступ к исходникам нужно ограничивать так же, как в репозитории
Как подбираем

Шесть критериев при выборе модели и железа

Ни один из них не решается по таблице в интернете: каждый проверяется на вашем материале и в вашем контуре.

Язык

Качество на русском проверяем на ваших текстах, с вашей терминологией, сокращениями и ошибками в документах. Заявленная «поддержка языка» этого не заменяет.

Лицензия весов

Лицензии открытых моделей разные: от свободных до собственных с ограничениями на коммерческое использование и производные модели. Читаем текст лицензии конкретной версии и фиксируем вывод в документе.

Размер и квантование

Сжатие весов экономит память и ускоряет ответ, но меняет ответы. Сравниваем несколько вариантов на одном и том же наборе вопросов.

Длина контекста

Чем длиннее документ и больше найденных фрагментов, тем больше кэш на каждого пользователя. Длину считаем под вашу задачу, а не берём максимум из описания модели.

Формат и происхождение весов

Предпочитаем форматы, которые не исполняют код при загрузке; сверяем хэши с опубликованными источником; не берём файлы с неизвестным происхождением.

Поддержка сервером инференса

Не любая модель одинаково работает на любом сервере и на любой видеокарте. Это проверяется запуском на вашем оборудовании до закупки партии.

Железо

Что считаем до закупки видеокарт

Формулы разобраны в статье про видеопамять для LLM. На обследовании подставляем в них параметры вашей задачи и конфигурацию выбранной модели.

Что считаем
Правило
Откуда берём исходные данные
Где ошибаются
Что считаемВеса моделипамять под саму модель
ПравилоЧисло параметров × байт на параметр; байт на параметр зависит от точности хранения
Откуда берём исходные данныеОписание и конфигурация выбранной модели, формат квантования
Где ошибаютсяЗабывают, что реальный размер немного больше расчётного
Что считаемКэш контекстапамять на каждый диалог
ПравилоРастёт линейно с длиной контекста и числом одновременных диалогов
Откуда берём исходные данныеЧисло слоёв и голов из конфигурации модели; длина документов и вопросов у вас
Где ошибаютсяСчитают по числу сотрудников, а не по числу одновременных запросов
Что считаемОдновременные пользователипиковая нагрузка
ПравилоСвободная память после весов делится на память одного диалога
Откуда берём исходные данныеОпрос отделов, журнал обращений к текущим системам, пилот
Где ошибаютсяПланируют на среднюю нагрузку, а не на утренний пик
Что считаемСкорость ответапропускная способность памяти
ПравилоНа каждый токен читаются все веса, поэтому скорость зависит от пропускной способности памяти
Откуда берём исходные данныеЗамер на вашем оборудовании или на сопоставимом
Где ошибаютсяБерут цифры из чужих обзоров; сравнивают на разных настройках
Что считаемЗапасна буферы и всплески
ПравилоСлужебные структуры сервера и фрагментация памяти требуют резерва сверх расчёта
Откуда берём исходные данныеИзмерение на пилоте под нагрузкой
Где ошибаютсяСчитают впритык, и в работе модель падает с ошибкой нехватки памяти
Что считаемДиск, сеть и модель для поискато, что забывают
ПравилоМесто под несколько версий весов, индекс документов и отдельную векторную модель
Откуда берём исходные данныеОбъём архива документов и план обновлений
Где ошибаютсяХранилище под веса и индекс не заложено в закупку
Честно

Что мы измеряем, а что не обещаем

Открытая модель в вашем контуре отвечает иначе, чем самые большие облачные сервисы. Насколько иначе для вашей задачи, зависит от задачи, документов и вопросов, поэтому на пилоте мы сначала собираем контрольный набор: реальные вопросы сотрудников, правильные ответы и вопросы, на которые ответа в базе нет. Дальше сравниваем две-три модели и разные степени сжатия на одном наборе. Результат вы видите в таблице, а не в презентации.

Скорость и качество без замеров на вашем железе мы не называем. Облачные модели в вашем контуре не используем вовсе. Сравнение подходов — в статье «Своя LLM или ChatGPT API». Дообучение предлагаем, только если пилот показал, что без него не обойтись.

Что делаем

Из чего состоит работа и сколько она стоит

Цены — по тарифам. Обследование вычитается из первого этапа, остановиться можно после любой ступени.

Обследование: задача, документы, права, расчёт железа

Разбираем, кто и о чём спрашивает, какие документы, какие права на них, какие требования у вашего контура. Считаем железо, выбираем две-три модели-кандидата, пишем критерии приёмки. На выходе документ, с которым можно идти в закупку, в том числе к другому исполнителю. 200 000 ₽, если один-два процесса; 350 000 ₽, если документы лежат в нескольких системах.

200 000 ₽ или 350 000 ₽ · 2–4 недели

Пилот лёгкий: ассистент по базе знаний

Модель, поиск и интерфейс на вашем оборудовании и на вашей выборке документов. Контрольный набор вопросов, сравнение моделей, протокол испытаний. Пользуется небольшая группа.

150 000 – 400 000 ₽ · 2–8 недель

Пилот тяжёлый: несколько моделей, интеграции или агент с действиями

Когда ассистент подключается к боевым системам, работает с разными источниками или совершает действия. Добавляются интеграция, регламент эксплуатации и проверка прав.

400 000 – 1 200 000 ₽ · 2–3 месяца

Вывод в продуктив

Шлюз, журнал, мониторинг, резервирование, опытная эксплуатация, приёмочные испытания, обучение людей, передача исходников и инструкции по развёртыванию. У каждого этапа своя приёмка и право остановиться.

от 1 500 000 ₽ · этапами по 300 000 – 700 000 ₽ · от 3 месяцев

Сопровождение

Мониторинг, обновления модели и пакетов по вашему регламенту, разбор инцидентов, плановые доработки. Работы сверх пакета — 5 000 ₽ в час, согласуем до начала.

20 000 ₽, 60 000 ₽ или 120 000 ₽ в месяц
Процесс

Как идёт работа

Недели 1–3 — обследование

Интервью с теми, кто будет спрашивать, и с владельцами документов. Смотрим, в каком состоянии документы и кто имеет к ним доступ. Согласуем со службой безопасности схему сети и порядок доставки моделей. Считаем железо, называем кандидатов, пишем критерии приёмки.

Недели 3–8 — пилот

Разворачиваем сервер инференса, поиск и интерфейс в вашем контуре. Собираем контрольный набор, сравниваем модели и степени сжатия, смотрим поведение на вопросах без ответа и на документах с ограниченным доступом. Итог — протокол испытаний и решение: идти в продуктив, менять модель или остановиться.

Месяцы 2–4 — продуктив этапами

Шлюз с личными ключами и ролями, журнал, мониторинг, резервирование, лимиты. Переносим развёртывание в скрипты, чтобы оно повторялось без нас и без интернета. Опытная эксплуатация на группе пользователей, обучение, приёмочные испытания.

Далее — передача и сопровождение

Передаём исходники, конфигурации, веса, инструкции и регламент обновлений. Дальше вы эксплуатируете сами либо подключаете сопровождение с названными часами и временем реакции.

Эксплуатация

Обновления без интернета, мониторинг и права на документы

Как обновляется модель и пакеты в закрытом контуре

Обновление идёт через внутреннее хранилище. Новые веса и образы попадают в контур по вашему регламенту переноса, проходят проверку хэшей и лицензии, разворачиваются сначала на тестовом экземпляре. Связку «модель, шаблон запроса, параметры, индекс» версионируем целиком, чтобы можно было откатиться на прошлую версию: смена одной модели без проверки контрольного набора ведёт к тихому ухудшению ответов.

Что мониторим

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

Как работают права на документы

Права хранятся вместе с фрагментами и применяются при поиске: если пользователю документ закрыт, фрагмент не попадает в запрос к модели. Фильтровать уже готовый ответ недостаточно, к этому моменту модель уже прочитала закрытый текст. Источник прав — ваш каталог пользователей или система, где лежат документы; задержку между изменением прав и обновлением индекса определяем на обследовании и проверяем тестом: пользователь без доступа задаёт вопрос по закрытому документу.

Границы

Что остаётся у вас и чего мы не делаем

Остаётся у вас

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

Мы этого не делаем

  • Не используем облачные модели внутри вашего контура и не отправляем ваши документы во внешние API.
  • Не проводим аттестацию и не выполняем лицензируемые работы по защите информации: лицензии ФСТЭК у нас нет.
  • Не обещаем качество «как у ChatGPT» и скорость без замеров на вашем железе.
  • Не обещаем круглосуточное дежурство и выезд в течение часа.
  • Не берёмся за работы дешевле 150 000 ₽.
Инструменты

На чём собираем

Модель и инференс
  • Открытые модели в форматах, не исполняющих код при загрузке
  • Серверы инференса под задачу: vLLM, llama.cpp, Ollama
  • NVIDIA CUDA; другие ускорители проверяем отдельно
  • Квантование под имеющуюся память
Поиск и данные
  • PostgreSQL с расширением для векторов или отдельное векторное хранилище
  • Гибридный поиск: смысловой и по точным терминам
  • Извлечение текста и таблиц из DOCX, PDF, XLSX
  • Права доступа из вашего каталога пользователей
Шлюз и интерфейс
  • API, совместимый со стандартным интерфейсом чат-моделей
  • Личные ключи, роли, лимиты, журнал
  • Веб-интерфейс или встраивание в портал, почту, 1С
  • Ссылки на файл и страницу в каждом ответе
Эксплуатация
  • Docker или установка пакетами на Astra Linux, РЕД ОС и другие
  • Внутренние зеркала пакетов и реестр образов
  • Prometheus и Grafana или ваша система мониторинга
  • Скрипты развёртывания в вашем репозитории
Материалы по теме

Что прочитать перед обследованием

Статья

Как развернуть LLM в закрытом контуре

Компоненты, сеть, доставка моделей без интернета, права в поиске, приёмка.

  • Что ломается в каждом компоненте
  • Чек-лист приёмки
Читать →
Статья

Сколько видеопамяти нужно для LLM

Считаем веса и кэш контекста на пальцах, с примером ассистента для отдела.

  • Формулы и условный пример
  • Квантование и что оно меняет
Читать →
Статья

Своя LLM или ChatGPT API

Когда оправдана своя модель, а когда проще внешний сервис.

  • Критерии выбора
  • Ограничения по данным
Читать →
Разбор задачи

LLM в изолированном контуре банка

Типовая инженерная задача: железо, права на документы, журнал, перенос моделей без интернета.

  • Где ломается
  • Что проверяется
Читать →
Заявка

Разберём вашу задачу с LLM

Короткий созвон: какие документы, кто и сколько человек будет пользоваться, какие требования у контура и что уже есть из оборудования.

Спасибо, заявка отправлена. Ответим в течение рабочего дня.

Не удалось отправить. Напишите в телеграм или позвоните.

Вопросы

Частые вопросы: llm на своём сервере

Можно ли запустить языковую модель без видеокарты?

Можно на процессоре, если модель небольшая, а запросов мало. Скорость обычно заметно ниже, чем на видеокарте, и падает с ростом контекста. Подходит ли такой режим для вашего отдела, показывает замер на вашем оборудовании, поэтому на обследовании мы называем и вариант без видеокарт.

Какую модель вы поставите?

Заранее не скажем. Кандидатов выбираем по языку, лицензии весов, размеру, длине контекста и поддержке сервером инференса, потом сравниваем на вашем контрольном наборе вопросов. Название модели появляется в документе по итогам обследования и подтверждается пилотом.

Сколько стоит развернуть LLM у себя?

Обследование с расчётом железа — 200 000 ₽ при одном-двух процессах и 350 000 ₽ при нескольких системах. Пилот-ассистент по базе знаний — 150 000–400 000 ₽, тяжёлый пилот — 400 000–1 200 000 ₽. Вывод в продуктив — от 1 500 000 ₽ этапами по 300 000–700 000 ₽. Оборудование в эти суммы не входит.

Ответит ли модель на уровне ChatGPT?

Не обещаем. Открытая модель в контуре отвечает иначе, чем самые большие облачные. Для ассистента по документам результат часто определяется поиском и состоянием документов, но это проверяется на ваших вопросах, а не принимается на веру.

Как убедиться, что данные не уходят наружу?

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

Как обновлять модель, если в контуре нет интернета?

Через внутреннее хранилище: новые веса и образы приносятся по вашему регламенту переноса, проверяются по хэшам и лицензии, сначала разворачиваются на тестовом экземпляре, затем переключаются. Предыдущая версия остаётся для отката.

Что если сотруднику нельзя видеть часть документов?

Права применяются при поиске, до того как текст попадает в запрос к модели. Это проверяем тестом: пользователь без доступа задаёт вопрос по закрытому документу, и в ответе ничего из него не должно быть.

Кому принадлежат модель, настройки и исходники?

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

Покупать оборудование до обследования?

Не нужно. Сначала считаем нагрузку и проверяем модели на ваших вопросах, потом называем конфигурацию. Закупка до расчёта чаще всего оказывается либо избыточной, либо не хватает видеопамяти.

Вы работаете только в Ростове-на-Дону?

Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.