Локальные LLM для AI-агентов: как выбрать модель и посчитать железо
Локальные LLM для AI-агентов нужны там, где данные нельзя отправлять наружу: модель работает на ваших серверах, и ни один запрос к ней не покидает периметр. Платить за это нередко приходится качеством на сложных шагах и всегда железом, которое надо считать заранее. Разбираем, чего ждать от открытых моделей, как это компенсировать, как оценить память и нагрузку и что проверить в лицензии.
Локальные LLM для AI-агентов: когда они нужны, а когда нет
Локальная модель работает на ваших серверах: вы скачали её веса, развернули у себя и вызываете внутри контура, запросы не уходят стороннему поставщику. Это самый прямой способ закрыть вопрос «куда уходят данные», поэтому on-premise LLM выбирают не из интереса к технике, а по условиям допуска к проекту. Типичные причины такие:
- данные нельзя передавать третьим лицам: персональные данные, коммерческая тайна, условия договоров с вашими клиентами;
- служба безопасности не согласует внешние обращения;
- нужна предсказуемость: локальная модель не обновится без вашего ведома и не изменит поведение агента посреди квартала;
- плата за обращения к облачной модели при вашем потоке сопоставима со стоимостью собственного железа: это надо считать, а не предполагать.
Если данные можно отправлять наружу, поток небольшой, а обслуживать серверы с ускорителями некому, облачная модель российского поставщика обычно проще и дешевле: железо простаивает ночью, а платить за него приходится постоянно. Сравнение вариантов — в статье GigaChat, YandexGPT или открытая модель. Промежуточный вариант — арендовать у провайдера сервер с ускорителями и поставить на него открытую модель: вы платите за аренду, а не за обращения, но сервер физически у третьей стороны, и годится ли это под ваши требования к данным, решает служба безопасности.
Оговорка: «локально» не значит «безопасно само по себе». Модель в контуре не помешает агенту записать полные тексты обращений в журнал, а библиотеке — при первом запуске скачать веса или отправить статистику наружу. Чтобы «внешних вызовов нет» было правдой, проверяют всю цепочку: сервер модели, векторную базу, модели поиска, зависимости. Что здесь спрашивает служба безопасности — в отдельном разборе, как мы это закрываем — на странице про ИИ в контуре компании.
Чего ждать от открытой модели в работе агента
Чат-боту достаточно связно ответить. Агент должен выполнить длинную инструкцию, выбрать инструмент, правильно заполнить параметры, понять, что вызов не удался, и не зациклиться. На этих навыках разница между моделями заметнее, чем в диалоге. В статье о выборе поставщика мы писали, что на типовых задачах разница обычно не критична; для агентной работы это проверяют отдельно, и по публичным рейтингам это не решить: они меряют не вашу задачу и часто не ваш язык.
| Что нужно агенту | Где обычно возникают проблемы | Как это проявляется |
|---|---|---|
| Вызов инструментов | Модель путает названия, пропускает параметры, придумывает значения | Вызов отклоняется схемой или, хуже, проходит с неверными данными |
| Длинный контекст | Заявленное окно контекста и окно, где модель надёжна, часто не совпадают | Агент «забывает» начало диалога или документа |
| Русский язык | Терминология, падежи, имена, юридические формулировки | Неловкие формулировки, ошибки в именах |
| Многошаговость | Модель не замечает ошибку инструмента и повторяет вызов | Зацикливание, лишние обращения |
Всё это зависит от конкретной модели и версии: вывод по названию или размеру делать нельзя, это измеряется на ваших примерах.
Локальная модель убирает вопрос «куда уходят данные», но не вопрос «кто проверит ответ». Первое решает железо, второе — устройство процесса.
Как компенсировать разрыв в качестве
Узкая задача
Один шаг — одна задача с понятным входом и выходом: определить тип обращения, достать поля из счёта.
Строгие схемы инструментов
Мало инструментов и параметров, перечисления вместо свободного текста, проверка аргументов обычным кодом до вызова. Многие серверы умеют принудительно ограничивать вывод заданной схемой: это снижает долю битых вызовов, но не делает значения верными. Подробнее — в статье про MCP и вызов функций.
Тестовый набор до запуска
Обезличенные реальные примеры и ожидаемый результат, согласованный с владельцем процесса. Каждую модель и обновление прогоняют по нему: как оценить качество агента.
Запасной путь через человека
Схема не прошла проверку, вызов повторился слишком часто или задача вышла за рамки сценария (одной самооценке модели «не уверена» доверять нельзя): задача уходит человеку с контекстом. Где нужны такие точки — в статье про human-in-the-loop.
Дообучение на своих данных мы первым шагом не предлагаем: нужны размеченные примеры, железо и время, а выигрыш часто дают вещи проще: точная инструкция, поиск по базе вместо длинного контекста (RAG), разбиение на шаги. К нему возвращаются, если замеры показали, что иначе не обойтись. Ни один приём не делает модель безошибочной: они ограничивают ущерб и создают места, где ошибку поймают. Про выдуманные ответы — в разборе галлюцинаций ИИ.
Открытые модели для бизнеса: какой класс для какой задачи
Размер модели измеряют числом параметров, от единиц миллиардов до сотен: чем больше, тем больше она умеет и тем больше памяти требует. Границы условные, а модели разных поколений по размеру несравнимы, поэтому ниже классы по порядку величины и реалистичной роли, без результатов тестов.
| Класс по размеру | Для чего реально годится | Что учесть |
|---|---|---|
| Малые: единицы миллиардов параметров | Классификация и маршрутизация обращений, извлечение полей по жёсткой схеме, фильтры | Слабее держат длинные инструкции и несколько шагов; для небольшого потока иногда хватает скромного железа |
| Средние: десятки миллиардов | Ответы по базе знаний, черновики писем, агент с несколькими инструментами и коротким сценарием | Часто выбирают как компромисс между качеством и стоимостью железа; для рабочей нагрузки обычно нужны профессиональные или серверные ускорители |
| Крупные: сотни миллиардов, нередко «смесь экспертов» | Сложные сценарии с планированием, трудные тексты, шаги с дорогой ошибкой | Как правило, нужны серверы с несколькими ускорителями; в памяти лежат все параметры, хотя на токен работает лишь их часть |
| Вспомогательные модели | Эмбеддинги и ранжирование для поиска по документам, речь для голосового агента, распознавание документов | Занимают память наряду с основной; их включают и в расчёт железа, и в проверку лицензий |
Практический вывод: разные шаги — разные модели. Небольшая модель сортирует обращения и достаёт поля, более сильная берёт только спорные случаи, а всё, что решается правилом, считает обычный код. Железа нужно меньше, но компонентов больше, а вместе с ними сложности и расходов: об этой цене — статья про один агент или несколько.
Конкретные модели мы не рекомендуем: список меняется быстрее, чем пишутся статьи. На момент подготовки материала открытые веса выпускают зарубежные и российские разработчики; примеры семейств — Llama, Qwen, Mistral, Gemma, DeepSeek. Кандидатов собираем на аудите и сверяем с актуальными условиями.
Лицензия открытой модели: что проверить до запуска в бизнесе
Слово «открытая» вводит в заблуждение. Открытыми могут быть веса, то есть их можно скачать, а условия использования разные: от стандартных лицензий вроде Apache 2.0 или MIT до собственных лицензий семейства с ограничениями, иногда разными для разных размеров. Мы не даём юридических заключений: текст читает ваш юрист, а мы приносим список вопросов.
- Коммерческое использование и допустимые применения. Разрешено ли оно в вашем случае, нет ли порогов по выручке или числу пользователей и перечня запрещённых применений.
- Производные. Что может требоваться, если вы дообучаете модель или меняете формат: указание источника, особые правила именования, условия на распространение изменений.
- Компоненты. Сервер инференса, модели эмбеддингов и речи: у каждого свои условия, а лицензия на код и на веса может различаться.
- Происхождение. Госзаказчик или компания с госучастием уточняет требования к происхождению ПО у своей службы безопасности и юристов.
- Поставка от разработчика. Если модель передаёт в контур её разработчик по коммерческому договору, условия, цену, порядок обновления и поддержку определяет договор: запросите их письменно, предложения меняются.
- Версия. Условия меняются между версиями: записывайте название, версию, источник, контрольную сумму и копию лицензии на день загрузки.
Итог — перечень моделей и компонентов с лицензиями: он идёт в приложение к договору с условием, что замена возможна только по согласованию, и это же перечень, о котором спрашивает служба безопасности.
Запуск LLM на своих серверах: как посчитать память и железо
Главная ошибка планирования — спросить «какая нужна видеокарта» до того, как известны модель, длина контекста и число одновременных запросов. Конфигурацию мы считаем проверяемым методом, а цифры получаем измерением на вашей нагрузке. Память состоит из нескольких частей.
| Статья памяти | От чего зависит | Как оценить |
|---|---|---|
| Веса модели | Число параметров и точность хранения: 16, 8 или 4 бита | Параметры умножают на байты на параметр. Сжатие (квантизация) экономит память, но может снизить качество, это измеряют |
| Память под контекст (KV-кэш) | Длина контекста, число одновременных запросов, устройство модели | Размер на один токен берут из описания модели или замеряют, умножают на длину и число запросов |
| Служебные расходы и запас | Сервер инференса, драйверы, фрагментация, отказоустойчивость | Берут из документации и подтверждают нагрузочным тестом; нужен ли второй экземпляр, зависит от требований к доступности |
| Вспомогательные модели | Эмбеддинги, ранжирование, речь, распознавание документов | Считают тем же методом и добавляют в сумму |
Условный пример с абстрактными величинами, не замер и не рекомендация. Допустим, у модели N миллиардов параметров. В 16 битах параметр занимает 2 байта, и под веса нужно около 2N гигабайт; в 8 битах около N, в 4 битах около N/2. Пусть один токен контекста занимает k единиц памяти, запрос держит в среднем L токенов, а одновременно в работе M запросов: под контекст нужно k × L × M. При росте L и M вторая часть может обогнать первую: «модель помещается в память» ещё не значит, что агент выдержит нагрузку.
Число сотрудников и число одновременных запросов — разные величины: одна заявка запускает у агента цепочку обращений, а пики приходятся на начало дня и отчётные даты. Порядок оценки:
- Взять число операций в пиковый час по вашим данным, а не среднее за месяц, и умножить на число обращений к модели на операцию.
- Измерить токенайзером выбранной модели размер входа и выхода на ваших русских текстах: у многих моделей русский текст занимает больше токенов, чем английский.
- Сравнить потребность с производительностью кандидата в нагрузочном тесте на стенде с обезличенными данными и заложить запас на пики и повторные обращения.
Как считается расход токенов на операцию — в статье про обращения к модели. Отдельный риск закупки — сроки поставки и совместимость ускорителей: серверы инференса поддерживают оборудование неодинаково, поэтому условия проверяют до заказа.
Задержка и одновременные пользователи
Время ответа складывается из того, как долго модель читает вход и с какой скоростью пишет выход. Когда запросов несколько, сервер обрабатывает их вместе: общая пропускная способность растёт, а каждый отдельный ответ идёт медленнее. У агента задержка ещё и суммируется: несколько обращений к модели с вызовами инструментов между ними занимают время всех шагов, поэтому цель по времени задают на всю операцию.
- Диалог в мессенджере или чате: важны время до первых слов, очередь и таймауты.
- Голосовой агент: жёсткий бюджет на всю цепочку «речь, модель, речь», размер модели ограничен скоростью. Подробнее — голосовой AI-агент.
- Фоновая обработка документов и писем: важна пропускная способность, а не время одного ответа; нагрузку можно сдвинуть на ночь. Если железо не справляется, очередь ограничивают, а на пике задачу отдают человеку, а не ждут бесконечно.
Серверы инференса и обновления в закрытой сети
Модель запускает сервер инференса: он принимает запросы по сети и отдаёт ответы. Проекты здесь развиваются быстро, поэтому поддержку нужной модели и вашего оборудования проверяйте перед выбором. На момент подготовки материала картина такая: лёгкие серверы (например, llama.cpp, Ollama) подходят для экспериментов и небольших потоков. Серверные движки с пакетной обработкой (например, vLLM, SGLang) рассчитаны на много одновременных запросов.
Многие серверы предоставляют интерфейс, совместимый с популярным облачным API, и это упрощает замену модели. Но вызов инструментов зависит от связки «модель, сервер и шаблон диалога»: одна модель на разных серверах может вести себя по-разному, поэтому тестовый набор гоняют на той связке, которая пойдёт в работу. Сервер закрывают аутентификацией и сегментацией сети: доступ только у агента и администраторов.
Как обновлять модель без интернета
- Загрузить веса и образы в отдельном сегменте из официального источника и сверить контрольные суммы, если источник их публикует.
- Проверить формат: форматы, не исполняющие код при загрузке (например, safetensors), безопаснее старых форматов на основе pickle; не включайте и загрузку стороннего кода вместе с моделью, если вы его не прочитали.
- Проверить лицензию именно этой версии и внести её в перечень.
- Передать в контур по согласованному каналу, развернуть на стенде, прогнать тестовый набор и сравнить с текущей версией.
- Переключать с возможностью отката, а версии модели, сервера, драйверов, инструкции и схем считать одним релизом.
Обновлять модель только потому, что вышла новая, не нужно: поведение агента сдвинется, а выигрыш не доказан. Нужна названная причина: уязвимость, закончившаяся поддержка, улучшение на вашем наборе. Почему без сопровождения качество падает — в статье про деградацию агента.
Мониторинг локальной модели
В облаке часть этой работы берёт на себя поставщик, в контуре — нет. Следят за тремя группами показателей: состояние сервера (загрузка ускорителей и памяти, длина очереди, время до первого токена и полного ответа, таймауты), поведение агента (доля вызовов, отклонённых схемой, повторные обращения, доля задач, переданных человеку, расход токенов на операцию) и качество (регулярный прогон тестового набора после любого изменения). Журнал запросов к модели так же чувствителен, как сами данные: его по возможности ведут без персональных данных. Подробнее — в статье про мониторинг AI-агента.
Как выбрать модель для ИИ-агента в контуре: порядок шагов
- Определить класс данных и ограничения: что нельзя выпускать, чего требует служба безопасности.
- Разложить процесс на шаги: вход, выход, цена ошибки, нужен ли человек.
- Составить короткий список: две-три модели в двух классах размера с подходящей лицензией.
- Собрать тестовый набор из обезличенных реальных примеров и прогнать кандидатов на связке «модель и сервер»: доля верных результатов, корректность вызовов инструментов, время под нагрузкой.
- Посчитать железо и решить, не отдать ли часть шагов небольшой модели.
- Зафиксировать в договоре перечень моделей, версии, лицензии и процедуру замены.
Если ни одна локальная модель не справляется с шагом, остаются три честных пути: сузить шаг, оставить его человеку или вынести в облачную модель, если политика данных допускает, зафиксировав передаваемые поля. Отказ от решения, которое не работает, — тоже результат аудита. Начать можно со страницы про разработку AI-агентов.
Что это значит для бюджета
Установка в контуре заказчика — от 2 500 000 ₽, по проекту. Железо находится на стороне заказчика и составляет отдельную статью: её размер зависит от модели и нагрузки, поэтому конфигурацию мы называем на аудите, до согласования сметы. Экспресс-аудит с расчётом ROI — 50 000 ₽, 5-7 рабочих дней, засчитывается в проект. Платы за обращения к модели нет, но электропитание, обслуживание и обновления остаются расходами. Если требований к периметру нет, пилот на одном процессе — от 200 000 ₽, 3-4 недели, и модель для него можно выбрать из облачных.
Частые вопросы
Что такое локальная LLM и чем она отличается от облачной?
Локальная LLM — языковая модель, которую вы запускаете на своих серверах: запросы к ней идут внутри вашей сети, а не стороннему поставщику. От облачной она отличается тем, что железо, обновления и мониторинг на вас, платите вы за инфраструктуру, а не за обращения, а версию модели выбираете вы.
Какую локальную LLM выбрать для AI-агента?
Универсального ответа нет: выбор зависит от задачи, данных, языка, железа и лицензии. Для классификации и извлечения полей часто хватает небольших моделей, для ответов по базе знаний средних, для сложных сценариев смотрят на крупные. Окончательно выбирают по тестовому набору из ваших примеров, а не по рейтингу.
Локальные модели слабее облачных?
На сложных шагах часто да, особенно у небольших и средних моделей, и в агентных сценариях разрыв обычно заметнее: вызов инструментов, длинные инструкции, многошаговые задачи. Чем крупнее модель, тем обычно меньше разрыв, но тем дороже железо. На узких задачах разница может быть несущественной. Это определяется замером, а разрыв компенсируют узкими шагами, строгими схемами и передачей спорных случаев человеку.
Сколько видеопамяти нужно для запуска LLM на своих серверах?
Единой цифры нет: память складывается из весов, памяти под контекст при нужном числе одновременных запросов, служебных расходов и вспомогательных моделей. Ориентир для весов: число параметров, умноженное на байты на параметр (16 бит — 2 байта, 8 бит — 1, 4 бита — около половины байта); сверху добавляются контекст и запас. Подробный метод описан выше, а конфигурацию мы называем на аудите после замеров.
Можно ли запустить LLM без интернета, в закрытом контуре?
Да, веса и серверы инференса работают без выхода в сеть. Обновления переносят по согласованному каналу и проверяют. Заранее убедитесь, что компоненты не пытаются скачивать веса или отправлять статистику.
Какие условия лицензии проверить, прежде чем запускать открытую модель в бизнесе?
Проверяют коммерческое использование и допустимые применения, правила для дообученных и производных моделей, лицензии на компоненты и условия конкретной версии. У одних моделей условия мягкие, у других есть ограничения; разрешено ли ваше применение, решает юрист по тексту лицензии. Мы составляем перечень моделей и условий, но юридического заключения не даём.
Локальная модель дешевле облачной?
Не всегда. Платы за обращения нет, но есть железо, электропитание и обслуживание. На больших потоках локальный вариант может быть выгоднее, на малых заметно дороже. Границу считают по вашему числу операций, как в статье про расходы на обращения к модели.
Что будет, если локальная модель ошибётся при вызове инструмента?
Аргументы проверяются схемой и кодом до выполнения. При ошибке агент делает ограниченное число повторов и передаёт задачу человеку, а критичные действия подтверждает человек. Это не исключает ошибок, но ограничивает ущерб.
Назовём конфигурацию до сметы
На аудите выясняем класс данных, число операций и требования ко времени ответа: из них следует размер модели и железа. Экспресс-аудит процессов с расчётом ROI: 50 000 ₽, 5-7 рабочих дней, сумма засчитывается в проект.
Оставить заявку