Умные роботы — уже реальность: ищем печати на сканах с помощью ML
Искусственный интеллект и связанные с ним технологии плотно вошли в нашу жизнь: с его помощью музыкальные сервисы рекомендуют нам музыку, черно-белые фильмы становятся цветными, а на просторах интернета появляются deepfake-ролики и другой контент. И это только то, что, как говорится, лежит на поверхности. Вариантов использования ИИ для помощи человеку намного больше.
Если в сфере B2C искусственный интеллект уже давно и прочно занял свои позиции, то в последнее десятилетие он стал активно использоваться и в B2B-сегменте. Например, там ИИ всё чаще помогает оценивать контрагентов и риски или определяет вероятность увольнения сотрудника или ухода клиента.
Искусственный интеллект можно и нужно использовать, когда приходится иметь дело с высокой долей неопределенности, высокой вариативностью и неструктурированностью данных. Главным барьером тут оказывается отсутствие понимания с чего именно начинать, что делать, и где взять специалистов для решения конкретных задач. В этом посте рассказываем, как мы упрощаем использование ML с роботами, и как можно самостоятельно обучать модели и использовать их для автоматизации процессов. И всё это без специалистов по машинному обучению.
Статья написана при поддержке Кристины Виролайнен, технического эксперта компании UiPath.
Как устроен AI Centre
AI Center — решение, которое позволяет использовать ML-модели из коробки. Посмотрим подробнее, как всё это устроено.
AI Center предлагает несколько видов ML-моделей:
Преднастроенные модели UiPath;
Партнерские модели;
Клиентские модели.
Список готовых моделей представлен ниже. Модели, на которые стоит обратить внимание выделены красными прямоугольниками. Сегодня мы будем приводить пример на основе модели поиска объектов.
На основе данных моделей можно создавать ML-навыки, с которыми в свою очередь можно работать так же, как с другими активностями в UiPath. Важно, что AI Center можно развернуть не только в облаке, но и локально в вашем контуре.
Чтобы использовать ML-навык в процессе, нам нужна активность MLSkill: чтобы навык появился в списке доступных, он должен быть активным в вашем AI Center.
Как создать навык и сделать его активным?
Как мы уже говорили, навык базируется на ML-пакете. То есть для создания навыка ничего кроме ML-пакета не нужно.
В самом AI Center список навыков выглядит следующим образом: он содержит название навыка; название пакета, из которого этот навык создан; версию пакета и информацию о том, активен ли навык.
Что подразумевается под версией пакета?
Каждый раз, когда мы обучаем модель, мы получаем новую версию ML-пакета.
На схеме это выглядит так:
Для обучения нам нужен DataSet и наш пакет. Процесс обучения называется pipeline. Результатом выполнения будет ML-пакет версии +1.
Работа с моделью по идентификации объектов
Давайте посмотрим на конкретном примере, как обучать модель по идентификации объекта в документе. Изначально она обучена на известном датасете СОСО, в котором есть более 3 млн различных изображений для идентификации 80 объектов. Мы можем использовать этот пакет без обучения: если на его основе создадим навык, этот навык сможет находить на нашем изображении кошек, собак и другие 78 объектов. Но конкретную печать в документе он найти не сможет.
Для того, чтобы заточить его под нашу задачу, его нужно переобучить на идентификацию наших печатей с помощью своего датасета. Для этого нам нужен минимальный набор из десяти изображений на каждый объект.
Подробная инструкция по подготовке датасета есть на сайте UiPath — https://docs.uipath.com/ai-fabric/lang-es/v0/docs/object-detection.
Для подготовки изображения для датасета его нужно разметить в любом средстве аннотации. Для этого можно использовать опенсорсный бесплатный инструмент Label Img. В его интерфейсе мы указываем, где конкретно на документе находится наша печать. И инструмент автоматически создает XML-файл с разметкой.
Таким образом нужно разметить 10 разных изображений. Все изображения с соответствующей XML-разметкой размещаем в одной папке.
Теперь обучим нашу модель.
В AI Center нам нужно создать новый пакет — выберем его из доступных:
Теперь, когда мы создали наш пакет, нам нужно загрузить DataSet.
Для этого в меню Datasets нажимаем кнопку upload folder и выбираем папку с нашими изображениями и их разметкой.
После загрузки датасет выглядит так: он содержит изображения и файлы разметки.
Теперь нам нужно запустить обучение модели на нашем датасете. Для этого идем в меню Pipelines. И нажимаем Create new.
Тип pipeline — full pipeline run. В качестве пакета выбираем созданными нами пакет. В качестве датасета только что загруженный датасет. И запускаем обучение.
Каждое запущенное обучение создает новую версию для нашего пакета.
После успешного выполнения мы либо создаем новый навык, либо выбираем новую версию пакета в нашем уже существующем навыке.
Как это выглядит в RPA-процессе
В нашем процессе мы используем активность MLSkill, в котором в качестве параметров выбираем наш навык. На вход активности дается путь до изображения, на выходе мы получаем json с результатом.
Для отображения результатов мы используем Action Center — создаем задачу пользователю, и в этой задаче отображаем наше изображение и результат: найдена печать или нет.
Приведем несколько примеров результатов. Напомним, что эта модель обучалась на 10 примерах.
В случае, когда мы видим похожую круглую печать, модель определяет её с более низкой степенью уверенности, в данном случае — 39%:
И, конечно, если печати совсем нет на документе, модель способна это понять:
В заключение стоит отметить, что для работы в продуктиве модели нужно обучать на большем количестве документов, чем 10 штук. Тогда можно получить более точные результаты и можно отличать даже очень похожие печати от наших.
RPA и машинное обучение помогают работать с документами
В конечном счёте мы видим, что уже сейчас модели машинного обучения можно применять в бизнесе в сфере обработки входящей документации, причем для самых продвинутых задач. И это не требует больших усилий и серьезных затрат, а вот экономию времени и ресурсов обеспечивает значительную.