Локальные LLM для бизнеса становятся реальным инструментом решения конкретных задач, а не просто модным трендом. Команда Avito применила языковую модель для автоматизации миграции данных между системами Vertica и Trino — задачи, которая вручную заняла бы месяцы работы аналитиков. Разбираем инженерный подход к внедрению, реальные трудности и способы их преодоления.

Что такое локальные LLM и зачем они бизнесу

Локальные LLM — это языковые модели, которые работают на собственной инфраструктуре компании, без передачи данных внешним сервисам вроде OpenAI или Anthropic. Для бизнеса это означает полный контроль над конфиденциальной информацией: кодом, данными клиентов, внутренними процессами.

Основные преимущества локальных моделей:

  • Безопасность данных — информация не покидает периметр компании
  • Отсутствие зависимости от внешних API и их лимитов
  • Возможность тонкой настройки под специфические задачи
  • Предсказуемая стоимость эксплуатации без платы за токены

Avito выбрала этот путь для решения задачи миграции витрин данных — процесса переноса аналитических запросов и представлений с одной СУБД на другую. Такая задача требует обработки внутреннего кода и структур данных, которые нельзя передавать третьим сторонам.

Проблема миграции данных и роль LLM

Компания столкнулась с необходимостью перенести витрины данных из Vertica в Trino. Витрины данных — это предобработанные наборы информации для аналитики и отчётности, которые строятся на основе SQL-запросов. В Avito таких витрин накопились сотни, и каждая содержит специфичный SQL-код с особенностями синтаксиса Vertica.

Проблема в том, что Vertica и Trino используют разные диалекты SQL. Функции, типы данных, способы обработки строк и дат отличаются. Например, функция работы с датами в Vertica может называться иначе и принимать другие параметры в Trino. Ручная переработка каждого запроса заняла бы у BI-разработчиков несколько месяцев.

Здесь на помощь пришли локальные LLM. Языковые модели умеют работать с кодом: понимать его структуру, находить паттерны и трансформировать из одного формата в другой. Задача миграции SQL-запросов идеально подходит для автоматизации через ИИ в бизнесе.

Почему не подошли готовые решения

Команда Avito изначально попробовала использовать существующие инструменты и базовые модели без доработок. Результат оказался неудовлетворительным: модели ошибались в специфичных конструкциях, не учитывали особенности внутренней архитектуры данных, требовали постоянного ручного контроля. Точность базовой модели на реальных запросах не превышала 60-70%, что недостаточно для промышленного применения.

Инженерный подход Avito: как доработать модель

Команда разработала систему Vertica2Trino, которая не просто использует LLM, а выстраивает вокруг неё инженерную инфраструктуру. Подход состоит из нескольких уровней.

Подготовка обучающих данных. Инженеры собрали примеры реальных SQL-запросов из Vertica и их корректные эквиваленты для Trino. Создали датасет из нескольких сотен пар запросов, покрывающих типичные паттерны и сложные случаи. Это основа для дообучения модели под конкретную задачу.

Дообучение локальной модели. Вместо использования общей LLM команда применила технику файн-тюнинга — дообучения на подготовленных данных. Модель научилась распознавать специфичные конструкции Vertica и правильно транслировать их в синтаксис Trino. После дообучения точность выросла до 85-90%.

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

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

Трудности и решения при внедрении LLM

Внедрение кейса LLM в производство выявило ряд типичных проблем, с которыми сталкивается любой бизнес при работе с локальными моделями.

Галлюцинации модели

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

Ограничения контекста

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

Производительность

Обработка каждого запроса локальной моделью занимает время — от нескольких секунд до минуты в зависимости от сложности. Для сотен витрин это часы работы. Оптимизация включала батчинг (обработку группами), кэширование повторяющихся паттернов и параллельное выполнение на нескольких GPU.

Специфичные бизнес-правила

В Avito есть внутренние соглашения по именованию, структуре данных, способам обработки определённых метрик. Базовая модель об этом не знает. Решение — создание системы правил и шаблонов, которые применяются поверх результата работы LLM. Модель делает основную трансформацию, а правила приводят код к внутренним стандартам.

Результаты и выводы для вашего бизнеса

Система Vertica2Trino позволила Avito автоматизировать миграцию данных, которая иначе потребовала бы месяцев ручной работы. Конкретные результаты внедрения:

  • Автоматическая миграция около 80% витрин данных без ручного вмешательства
  • Сокращение времени на перенос одной витрины с нескольких часов до 10-15 минут
  • Высвобождение ресурсов BI-разработчиков для более сложных задач
  • Снижение количества ошибок по сравнению с ручной миграцией

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

Для каких задач подходит такой подход:

  • Миграция кода между системами и языками
  • Рефакторинг и модернизация легаси-кода
  • Генерация типовых запросов и скриптов по шаблонам
  • Автоматизация рутинных трансформаций данных

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

Чек-лист: как внедрить локальную LLM в свой проект

Если вы рассматриваете использование локальных LLM для автоматизации в своей компании, следуйте этому плану:

  1. Определите конкретную задачу — LLM должна решать чёткую проблему, а не внедряться ради технологии. Убедитесь, что задача подразумевает трансформацию текста или кода по определённым правилам.
  2. Соберите обучающие данные — подготовьте несколько сотен примеров входных данных и желаемых результатов. Чем качественнее датасет, тем лучше будет работать модель.
  3. Выберите базовую модель — начните с открытых моделей типа Llama, Mistral или их аналогов. Оцените их производительность на вашей инфраструктуре.
  4. Проведите файн-тюнинг — дообучите модель на ваших данных. Это критично для достижения приемлемой точности на специфичных задачах.
  5. Постройте систему валидации — автоматические тесты, проверка результатов, механизмы отлова ошибок. Без этого внедрение рискованно.
  6. Начните с пилота — протестируйте на ограниченном наборе данных, соберите метрики, выявите проблемы. Только после успешного пилота масштабируйте.
  7. Организуйте итеративное улучшение — анализируйте ошибки, дополняйте обучающий датасет, периодически переобучайте модель. Качество растёт со временем.
  8. Рассчитайте инфраструктуру — локальные LLM требуют GPU, памяти и времени на обработку. Убедитесь, что производительность соответствует вашим потребностям.

Опыт Avito показывает, что локальные LLM — это рабочий инструмент для решения конкретных инженерных задач в бизнесе. Успех зависит не от выбора самой продвинутой модели, а от грамотного построения системы вокруг неё: подготовки данных, валидации результатов и постоянного улучшения качества.

Кто это написал

Мы в Perfinn разрабатываем сайты и не только: интернет-магазины, корпоративные порталы, интеграции с 1С и 1С-Битрикс, автоматизацию бизнес-процессов и внедрение ИИ в рабочие сценарии.

Расскажите задачу — предложим решение и оценим сроки: perfinn.ru