Как получить результат от ИИ без мощного железа

Как получить результат от ИИ без мощного железа

Для внедрения корпоративного ИИ в закрытом контуре не всегда нужны суперкомпьютеры. Мы проверили, насколько качественный результат можно получить от крошечной модели 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, роль), дают лишь незначительные улучшения. В среднем — не влияют на правильность ответа. Их можно использовать только для стабилизации.

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

В статье рассмотрены базовые методы. На практике существуют более сложные подходы. Эта тема — о том, как эффективно использовать ИИ в условиях ограниченных ресурсов и закрытых сетей — заслуживает продолжения.

Читать оригинал