Машинное Обучение В Технической Поддержке True Engineering

Вот уже около года команда поддержки одного из наших высоконагруженных продуктов использует собственную систему ML — Платформу обнаружения проблем (PDP).

Этот сервис может анализировать журналы и автоматически классифицировать возникающие ошибки.

В результате поддержка получает не тонны сырой информации из логов, а данные, с которыми можно быстро и удобно работать.

Платформа использует машинное обучение для выявления ранних признаков сбоя в журналах.

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

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

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

В результате поддержка избавляется от рутины, а ее эффективность качественно возрастает.



Как это работает

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

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

У инженеров также есть панель управления в Kibana, где они могут погружаться в соответствующие события.

Сервис собирает результаты анализа в таблицу Excel, где можно увидеть общую статистику по возникшим проблемам, разбивку по классам и потенциальным угрозам, а также динамику в течение дня.

Здесь вы можете увидеть, какие события являются регулярными, а какие произошли впервые.

Набор данных для обучения модели был собран следующим образом:

  1. Мы взяли из системы 130 000 логов (это цифра за 5 дней)
  2. Мы с помощью скрипта выбрали из них около 3500 уникальных логов с похожими сообщениями.

  3. Мы сгруппировали их в 37 файлов по уровню сходства.

  4. Заполненные описания, согласно которым модель относит ошибку к конкретному кластеру и конкретной группе.



Машинное обучение в технической поддержке True Engineering

ПДП в нашей практике В прошлом году команда поддержки нашей высоконагруженной системы продаж начала работу с прототипом продукта.

Уже в первые недели благодаря PDP служба поддержки обнаружила несколько ошибок и технических проблем.

В том числе ошибка, затронувшая критический бизнес-процесс.

Первые месяцы работа была рутинной – нужно было обучать модель.

Для этого инженеры вручную отмечали ошибки во входящих логах.

Мы проработали десятки тысяч журналов, чтобы PDP научился выявлять в них ошибки.

И со временем результаты становились все более очевидными.

Главное, что стало возможным эффективно работать с большим объемом записей журнала.

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

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

Это очень ценная информация для поддержки.

Например, вы можете видеть, что несколько десятков ошибок могут быть более серьезными, чем тысяча инцидентов.

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

А вот пик небольшого количества ошибок за короткое время может указывать на угрозу.

На практике это означает, что команда не узнает о проблемах от заказчика или пользователей, а выпускает исправление буквально в течение получаса после релиза (реальная цифра).



Что мы планируем дальше?

На данный момент сервис находится на стадии прототипа.

Конечная цель — сделать настоящие MLOps с автоматическими и непрерывными процессами сбора данных для обучения, дополнительного обучения модели и ее публикации.

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

Для сокращения ручной работы поддержки и участия специалистов в работе PDP необходимо более точно определять критичность событий и правильно относить ее к одному из классов.

В теории машинного обучения работа по выявлению новых функций называется Feature Engineering. В результате PDP подаст сигнал тревоги только в тех случаях, когда поддержке действительно необходимо обратить внимание на ошибки.

Еще одно важное направление — обработка ошибок средней критичности, если их количество начинает резко возрастать.

Иногда плотный поток не самых значимых сбоев указывает на серьезные проблемы – такие случаи могут не тревожить НДП, но их нужно ловить.

Для реализации этой качественно новой функции в систему будет добавлена дополнительная модель.

Давайте не будем забывать о UX. Теперь служба поддержки смотрит логи в Kibana, а анализ событий и дополнительное обучение модели происходит через Excel. В финальной версии PDP будет единое окно для просмотра сводной информации об ошибках в конкретном классе, перемаркировки событий и отправки данных для дополнительного обучения.

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

Однако, по отзывам службы поддержки, PDP уже доказал свою полезность на стадии прототипа: «Картина критичности и частоты возникающих проблем выглядит объективной.

Уже в нынешнем виде инструмент стал обязательным при запуске после релизов, благодаря тому, что можно мгновенно заметить ошибки».

Теги: #Машинное обучение #Управление продуктом #техническая поддержка #логи

Вместе с данным постом часто просматривают: