Разработка нейросетевых решений на заказ под ключ

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

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1530
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1354
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1070
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1328
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    772
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1074

Почему нейросетевые решения не доходят до рабочего контура

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

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

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

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

Измеримые эффекты: время обработки, доля ошибок, простой

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

Время обработки обращения

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

Доля решений без ручной проверки

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

Устранённый класс ошибок

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

Устойчивость к сбоям и перегрузке

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

Разгрузка специалистов на однотипных задачах

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

Способы внедрения: готовая модель, дообучение, своя разработка

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

Вариант Когда подходит Ограничения
Готовая модель без дообучения Типовые задачи: классификация обращений, извлечение сущностей, распознавание речи на общей лексике Не знает домена — качество остаётся базовым, поведение не настроить
Дообучение на собственных данных Несколько тысяч размеченных примеров и стабильный формат входа Нужна разметка, при смене данных обучение повторяют; риск переобучения на узкой выборке
Разработка модели под задачу Своя метрика: особый формат ответа, несколько типов данных на входе, требования к скорости Дольше вывод в работу, нужен свой контур обучения и контроль качества

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

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

Этапы работ: аудит данных, схема, настройка, проверка

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

  1. Аудит данных и процессов. Смотрим, какие события уже логируются, с какой задержкой и полнотой, где дубли и пропуски, какая доля операций выполняется вручную. На выходе — карта источников и перечень того, что придётся доносить или чистить.
  2. Схема решения и точки интеграции. Определяем, где решение встаёт в процесс: синхронный ответ на запрос, фоновая обработка массива или подсказка оператору. Фиксируем форматы обмена, поведение при недоступности сервиса и откат к прежней логике.
  3. Подготовка и разметка данных. Договариваемся о правилах разметки и разборе спорных случаев, проверяем согласованность нескольких разметчиков. Разделение на обучающую, валидационную и отложенную выборку делаем по времени, а не случайно — иначе соседние записи утекают между выборками и оценка завышается.
  4. Базовая линия. Сначала собираем простое решение и замеряем текущий процесс, иначе непонятно, что именно даёт усложнение модели.
  5. Настройка под контур заказчика. Дообучение на доменных данных, ограничения по времени ответа, кэширование повторяющихся запросов, контроль смещения данных при изменении потока.
  6. Проверка на отложенной выборке. Смотрим не среднюю метрику, а разбивку по сегментам и худшие случаи; фиксируем порог качества и правило «не уверен — отдаём человеку».
  7. Передача решения и обучение команды. Код, конфигурации, схема развёртывания, регламент переобучения и разбор инцидентов — чтобы сопровождение не требовало нас на постоянной связи.

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

Артефакты проекта: схемы, конфигурации, регламенты

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

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

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

Разбор кейса: сортировка обращений до и после внедрения

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

Что изменили

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

Что стало

Автоматически разбирается около 92% обращений, время до первого ответа сократилось с часов до минут, доля ручных доработок упала примерно до 5%. Оставшиеся проценты — это нетиповые запросы: жалобы с эмоциональной окраской, письма без текста со вложениями, обращения сразу по двум темам. Такие случаи система не пытается угадать — она снижает уверенность и переводит обращение оператору вместе с расшифровкой и историей клиента.

Чем нейросетевые решения отличаются от обычной автоматизации

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

Вариант Когда подходит Ограничения
Жёсткие правила Признаки формализованы, вход однородный, нужна объяснимость решения Ломается на вариативности, растёт комбинаторика условий
Обучаемая модель Признаков много и они неформализованы, вход меняется Нужна разметка, качество вероятностное, требуется контроль дрейфа
Гибрид Критичное — правилами, нечёткий ввод — моделью Сложнее поддержка, нужен слой арбитража между контурами

Порог качества фиксируется до внедрения, а не после: на отложенной выборке считаем точность и полноту, отдельно оцениваем цену ошибок разных классов и выбираем уровень уверенности, ниже которого ответ уходит в ручную обработку. Это штатный режим, а не аварийный — доля таких обращений измеряется, а не скрывается. Если модель закрывает 85–90% потока, остаток идёт оператору с уже подготовленными подсказками.

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

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

Технические сомнения: контур, данные, поддержка модели

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

Можно ли развернуть решение во внутреннем контуре?

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

Что делать, если данных для обучения мало?

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

Как проверяется качество до передачи?

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

Что входит в поддержку модели после запуска?

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

Обсудим задачу: что нужно для точной оценки

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

  • Описание процесса, как он идёт сейчас. Шаги, участники, где решение принимает человек и по каким правилам он это делает — из этих правил собирается логика работы модели и границы её применения.
  • Примеры данных. Несколько десятков реальных записей вместе с правильными ответами, включая спорные и ошибочные: на них мы проверяем, что задача решается на ваших данных, а не только на演示 идеальных примерах.
  • Ограничения по размещению данных. Контур заказчика, изолированная сеть или обработка на нашей стороне, требования к обезличиванию и сроки хранения — от этого зависит выбор модели и способ доставки результата.
  • Ожидаемый результат и метрика приёмки. Что считаем верным ответом, какая доля ошибок допустима на старте, кто разбирает спорные случаи вручную и по какому регламенту.
  • Точки интеграции с текущими системами. Учётные системы, очереди, файловые обмены, веб-формы: откуда приходят данные, куда возвращается результат, в каком формате и как часто.
  • Доступы и тестовый контур. Где разворачиваем прототип, кто со стороны заказчика подтверждает корректность ответов, как передаются учётные данные.

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