Для внедрения корпоративного ИИ в закрытом контуре не всегда нужны суперкомпьютеры. Мы проверили, насколько качественный результат можно получить от крошечной модели LLM в жёстких условиях:
- CPU вместо GPU;
- закрытый контур.
Цель — научить модель отвечать на вопросы по программе газификации РФ. В статье: пошаговый разбор, код инструмента LLLaMBA для автоматизации бенчмарка и готовые конфиги. Эксперимент можно повторить на своих данных.
Проблема: дефицит вычислительных ресурсов
С 2022 года официальные поставки серверных видеокарт Nvidia A100/H100/H200 в РФ запрещены санкциями. Тем не менее, спрос на ИИ растёт. В 2025 году наблюдается рост продаж игровых видеокарт — таких как RTX 3050 и 4060 — на 60% за девять месяцев. Компании используют их как замену серверным решениям, теряя в производительности и масштабируемости.
В этих условиях малые и эффективные LLM становятся не просто удобным, а единственным вариантом для внедрения ИИ в корпоративной среде.
Локальные модели решают вопросы информационной безопасности и снижают затраты. Однако у них есть недостатки: меньше фактов в весах, слабее следование инструкциям, выше вероятность галлюцинаций. Как показывает практика, ИИ-продукт — это всегда «вероятность решения задачи, не равная 100%».
Разумный подход — проверить модель на реальных данных до разработки ПО. Это можно сделать почти бесплатно и постепенно улучшать пайплайн. Далее — как именно.
Инструменты эксперимента
Для автоматизации тестирования был создан инструмент LLLaMBA (Local LLM Benchmark Automat). Его исходный код доступен в открытом репозитории.
Для инференса использовалась библиотека ollama. Для оценки ответов — OpenAI-совместимое API с моделью Qwen3-Max, выступающей в роли «судьи» (LLM-as-a-Judge).
Тестируемая модель — qwen3:0.6b. Выбор обусловлен:
- быстрым временем генерации даже на CPU (от 2 секунд);
- наглядностью роста метрик на малых моделях.
Методика тестирования
Эксперимент проходил в несколько этапов:
- Подготовка вопросов, контекста и эталонных ответов в формате .xlsx.
- Создание конфигурационного .yaml-файла с параметрами теста.
- Запуск LLLaMBA, которая:
- прогоняет вопросы через модель;
- передаёт ответ и эталон «судье»;
- получает оценку от 1 до 100 баллов;
- сохраняет логи.
Процедура повторяется до достижения желаемого качества.
Важное предупреждение
LLM работают вероятностно. Это означает:
- ответ модели может меняться при одинаковых входных данных;
- оценка «судьи» также может варьироваться.
Поэтому:
- проводите серию из 5 и более запусков;
- не доверяйте метрикам без ручной проверки (Human-as-a-Judge).
Тестовый кейс: программа газификации РФ
Цель — создать систему, отвечающую на вопросы обычных граждан о программе газификации, реализуемой ПАО «Газпром».
Для теста выбрано 10 вопросов. Примеры:
- Должен ли я платить за подготовку договора о подключении газа?
- Правомерно ли требование дополнительных справок?
- Куда подавать заявку на подключение?
- Может ли компания отказать, если «нет мест»?
- Можно ли подключиться бесплатно, если открыть пекарню в доме?
Ответы содержатся в Постановлении Правительства РФ №1547 от 13.09.2021. Датасет доступен в репозитории.
Этапы эксперимента
Предел возможностей
Сначала проверили максимальный потенциал модели. В промт добавили эталонный ответ и установили минимальные значения temperature, top_p, top_k.
Результат — стабильные 100 баллов. Это показывает: даже маленькая модель может давать идеальные ответы, если получает релевантный контекст.
Базовый уровень
Затем проверили модель «из коробки» с рекомендованными настройками. Результат — медиана в 20 баллов, в худшем случае — 10. Такое качество неприемлемо.
Режим рассуждений
Включили thinking-mode (для Qwen — важная функция). Результат — те же 20 баллов, в отдельных случаях — до 27,5. Режим не улучшил медиану, лишь слегка повысил шанс «угадать» правильный ответ.
Детерминированность
Снизили температуру и другие параметры, чтобы уменьшить разброс. Разброс уменьшился, но метрика осталась на уровне 20 баллов. Модель перестала «угадывать», но не стала умнее. Жёсткие настройки не добавляют знаний — они лишь фиксируют стратегию выбора токенов.
Ролевая игра
Добавили в системный промт роль — например, «эксперт по газификации». Результат не изменился. Роль без содержательного контекста не помогает.
Вводный инструктаж
Добавили в промт .md-файл с основными понятиями из Постановления (4276 токенов, ~12% контекстного окна).
Появилось небольшое улучшение: модель стала лучше использовать терминологию. Однако общее качество осталось низким.
Вопрос: «Я хочу открыть небольшую пекарню на первом этаже своего дома. Смогу ли я подключиться бесплатно по программе догазификации?»
Ответ модели: «Да, вы можете подключиться к программе „догазификации“ по условиям первой категории, если подключение будет на территории сельской местности...»
Ответ звучит убедительно, но неверен по сути. Подход, основанный только на терминах, опасен — он вводит пользователей в заблуждение.
Переход к RAG
Решили эмулировать RAG: для каждого вопроса вручную подавали релевантный фрагмент из Постановления.
Вопрос: «Должен ли я платить за подготовку договора о подключении газа?»
Контекст: «Подготовка и направление исполнителем заявителю проекта договора о подключении осуществляются без взимания платы.»
Наконец — значимое улучшение. В более чем половине случаев модель выдавала корректные ответы.
Вопрос: «Куда мне нужно обратиться, чтобы подать заявку на подключение газа к дому?»
Ответ модели: «Для подачи заявки можно направить заявку в офис исполнителя газификации, через личный кабинет, через многофункциональный центр, через региональный портал, или письмо в адрес исполнителя.»
Метрика — 90 баллов. Пример хорошего ответа.
Вопрос: «С кем я буду заключать договор на подключение газа — с одной организацией или с несколькими?»
Ответ модели: «С одной организацией.»
Оценка — 10 баллов. Ответ короткий, но неполный: в исходном тексте есть нюансы. Модель не извлекла их. Есть над чем работать.
Итоги эксперимента
Сводка по этапам:
- Определение верхней границы — 100 баллов.
- Базовый уровень — 20 баллов.
- Режим рассуждений — без улучшения медианы.
- Жёсткие параметры — стабильность, но не качество.
- Роль и доменный контекст — минимальный эффект.
- RAG-подход — значимый рост метрик.
❌ Приёмы, связанные с настройкой параметров инференса (reasoning, температура, top_p, top_k, роль), дают лишь незначительные улучшения. В среднем — не влияют на правильность ответа. Их можно использовать только для стабилизации.
✅ Приёмы, предоставляющие модель конкретный, релевантный контекст, оказывают сильное положительное влияние. Чем точнее контекст, тем выше качество. Даже самые маленькие модели могут достигать максимальных баллов при правильном контексте.
В статье рассмотрены базовые методы. На практике существуют более сложные подходы. Эта тема — о том, как эффективно использовать ИИ в условиях ограниченных ресурсов и закрытых сетей — заслуживает продолжения.