Как Мы Выбирали Библиотеку Машинного Обучения Для Работы С Естественным Языком

В 2019 году ОТР открыл новый центр по работе с искусственным интеллектом (ИИ).

Изначально он создавался как своеобразный эксперимент по работе с новыми технологиями.

Однако довольно скоро я получил свое первое боевое задание по автоматизации технического обеспечения пользователей ГИИС «электронный бюджет».

Директор дирекции технологий и компетенций Анатолий Безрядин и сотрудники ИКС, принимавшие участие в амбициозном проекте, рассказали об этапах внедрения ИИ.

Запросы в техподдержку – это сложные технические запросы со множеством переменных – раздел, подсистема, нормативная документация, счет-фактура и так далее.

В некоторых случаях текст заявки может содержать до 20 строк текста.

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

Нашей задачей было научить искусственный интеллект «понимать» текст заявки для последующей категоризации.

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

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

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

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

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



Выбор типа нейронных сетей

Решить проблему обработки обращений в техподдержку ГИИС «электронный бюджет» мы начали с выбора соответствующего типа нейросети.

В качестве критериев были выбраны скорость обучения, масштабируемость и качество обработки текста.

Выберите один из следующих вариантов:

  • логистическая регрессия;
  • деревья решений;
  • Машина опорных векторов;
  • рекуррентные нейронные сети;
  • модели типа GPT;
  • Модели типа BERT.
Первые три модели не могли анализировать последовательности и сложные домены, имели низкую точность и не могли передавать знания между доменами.

Мы отказались от них на предварительном этапе обсуждений.



Как мы выбирали библиотеку машинного обучения для работы с естественным языком

Только такие модели, как GPT и BERT, показали требуемую точность.

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

Кроме того, такие модели, как BERT, уже хорошо известны в отрасли и используются, например, Google. Наличие развитого сообщества в будущем позволяет нам оперативно решать возникающие вопросы.



Поиск подходящих библиотек

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

В итоге у нас получился следующий список библиотек:
  • MATLAB + Deep Learning Toolbox;
  • Теано:
  • Факел;
  • ПиТорч:
  • ТензорФлоу/Керас.

МАТЛАБ — это известный пакет приложений для решения технических вычислительных задач от The MathWorks. Изначально он не содержит функционала для работы с нейронными сетями.

Однако проблему решает дополнение Deep Learning Toolbox. Он используется для проектирования, реализации и предварительного обучения нейронных сетей.

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

Кроме того, известны проблемы с масштабируемостью и промышленным использованием.

Теано — это библиотека для глубокого обучения и быстрых численных вычислений на Python. Он был разработан в Монреальском институте алгоритмов обучения.

Официально поддержка библиотеки закончилась, но создатели поддерживают продукт для сохранения функциональности.

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

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

Факел — библиотека для глубокого изучения нейронных сетей и научных расчетов.

Создан группой энтузиастов на языке Lua. Он также используется для проектов компьютерного зрения, обработки изображений и видеообработки.

Как и Теано, библиотека Факела в настоящее время находится в полузаброшенном состоянии.

Последние глобальные обновления кода проводились четыре года назад. Недостатки использования совпадают с предыдущим проектом.

PyTorch — библиотека для машинного и глубокого обучения от энтузиастов.

Как следует из названия, он основан на Torch. Однако он уже написан на Python, языке, понятном большинству разработчиков.

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

Но он еще не готов к промышленному использованию.

ТензорФлоу — это библиотека машинного обучения, разработанная Google. Он хорошо сочетается с надстройкой Keras, которая направлена на быструю работу с нейронными сетями глубокого обучения.

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

Комбинация TensorFlow и Keras оказалась идеальной для решения нашей задачи.

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

Поэтому мы начали реализацию проекта с помощью инструментов Google.

Как мы выбирали библиотеку машинного обучения для работы с естественным языком



ИИ в бою

Для работы с библиотеками Google TensorFlow и Keras у нас уже был готовый датасет из более миллиона обращений.

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

После первоначальной настройки мы добились 75% точности определения контекста запроса.

Для повышения точности в текстах был убран шум.

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

Мы оптимизировали архитектуру модели.

Все это позволило повысить точность до 85%.

ИИ ускорил работу с обращениями в службу технической поддержки ГИИС «электронный бюджет».

Пользователи оценили удобство и скорость ответа на запросы.

Специалисты по обслуживанию смогли сосредоточиться на более сложных проблемах.

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

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

Теги: #Машинное обучение #искусственный интеллект #искусственный интеллект #нейронная сеть

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

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.