![](https://habrastorage.org/getpro/habr/upload_files/7f4/912/0f5/7f49120f5b42c807fc0a564cd3f2de52.png)
Искусственный интеллект и связанные с ним технологии плотно вошли в нашу жизнь: с его помощью музыкальные сервисы рекомендуют нам музыку, черно-белые фильмы становятся цветными, а на просторах интернета появляются deepfake-ролики и другой контент. И это только то, что, как говорится, лежит на поверхности. Вариантов использования ИИ для помощи человеку намного больше.
Если в сфере B2C искусственный интеллект уже давно и прочно занял свои позиции, то в последнее десятилетие он стал активно использоваться и в B2B-сегменте. Например, там ИИ всё чаще помогает оценивать контрагентов и риски или определяет вероятность увольнения сотрудника или ухода клиента.
Искусственный интеллект можно и нужно использовать, когда приходится иметь дело с высокой долей неопределенности, высокой вариативностью и неструктурированностью данных. Главным барьером тут оказывается отсутствие понимания с чего именно начинать, что делать, и где взять специалистов для решения конкретных задач. В этом посте рассказываем, как мы упрощаем использование ML с роботами, и как можно самостоятельно обучать модели и использовать их для автоматизации процессов. И всё это без специалистов по машинному обучению.
Статья написана при поддержке Кристины Виролайнен, технического эксперта компании UiPath.
Как устроен AI Centre
AI Center — решение, которое позволяет использовать ML-модели из коробки. Посмотрим подробнее, как всё это устроено.
AI Center предлагает несколько видов ML-моделей:
Преднастроенные модели UiPath;
Партнерские модели;
Клиентские модели.
Список готовых моделей представлен ниже. Модели, на которые стоит обратить внимание выделены красными прямоугольниками. Сегодня мы будем приводить пример на основе модели поиска объектов.
![](https://habrastorage.org/getpro/habr/upload_files/7ac/2c8/65e/7ac2c865e5bfabfde3042cd3efc3ad14.png)
На основе данных моделей можно создавать ML-навыки, с которыми в свою очередь можно работать так же, как с другими активностями в UiPath. Важно, что AI Center можно развернуть не только в облаке, но и локально в вашем контуре.
Чтобы использовать ML-навык в процессе, нам нужна активность MLSkill: чтобы навык появился в списке доступных, он должен быть активным в вашем AI Center.
![](https://habrastorage.org/getpro/habr/upload_files/a23/fbf/543/a23fbf543d750b422a3d74b1e6bf45b2.png)
Как создать навык и сделать его активным?
Как мы уже говорили, навык базируется на ML-пакете. То есть для создания навыка ничего кроме ML-пакета не нужно.
В самом AI Center список навыков выглядит следующим образом: он содержит название навыка; название пакета, из которого этот навык создан; версию пакета и информацию о том, активен ли навык.
![](https://habrastorage.org/getpro/habr/upload_files/5b5/f5f/fef/5b5f5ffef0b1db23827b22cf540731bb.png)
Что подразумевается под версией пакета?
Каждый раз, когда мы обучаем модель, мы получаем новую версию ML-пакета.
На схеме это выглядит так:
![](https://habrastorage.org/getpro/habr/upload_files/a6a/a9a/7d1/a6aa9a7d1c130b0018e2ffc77adf9870.png)
Для обучения нам нужен DataSet и наш пакет. Процесс обучения называется pipeline. Результатом выполнения будет ML-пакет версии +1.
Работа с моделью по идентификации объектов
Давайте посмотрим на конкретном примере, как обучать модель по идентификации объекта в документе. Изначально она обучена на известном датасете СОСО, в котором есть более 3 млн различных изображений для идентификации 80 объектов. Мы можем использовать этот пакет без обучения: если на его основе создадим навык, этот навык сможет находить на нашем изображении кошек, собак и другие 78 объектов. Но конкретную печать в документе он найти не сможет.
Для того, чтобы заточить его под нашу задачу, его нужно переобучить на идентификацию наших печатей с помощью своего датасета. Для этого нам нужен минимальный набор из десяти изображений на каждый объект.
Подробная инструкция по подготовке датасета есть на сайте UiPath — https://docs.uipath.com/ai-fabric/lang-es/v0/docs/object-detection.
Для подготовки изображения для датасета его нужно разметить в любом средстве аннотации. Для этого можно использовать опенсорсный бесплатный инструмент Label Img. В его интерфейсе мы указываем, где конкретно на документе находится наша печать. И инструмент автоматически создает XML-файл с разметкой.
![](https://habrastorage.org/getpro/habr/upload_files/a8e/7c2/d7c/a8e7c2d7ceb89d22f0acafac9a578aa7.png)
Таким образом нужно разметить 10 разных изображений. Все изображения с соответствующей XML-разметкой размещаем в одной папке.
Теперь обучим нашу модель.
В AI Center нам нужно создать новый пакет — выберем его из доступных:
![](https://habrastorage.org/getpro/habr/upload_files/7b9/e07/dfb/7b9e07dfb15bf2f105824346e502fc6e.png)
![](https://habrastorage.org/getpro/habr/upload_files/e55/f56/007/e55f560074a588c70bfd2909ff1cc108.png)
![](https://habrastorage.org/getpro/habr/upload_files/ee6/92e/919/ee692e91989f2ee7e1c761e016627110.png)
![](https://habrastorage.org/getpro/habr/upload_files/db9/8ab/aa3/db98abaa35ad425b13dd336453a1474e.png)
Теперь, когда мы создали наш пакет, нам нужно загрузить DataSet.
Для этого в меню Datasets нажимаем кнопку upload folder и выбираем папку с нашими изображениями и их разметкой.
![](https://habrastorage.org/getpro/habr/upload_files/d5d/7c3/2b2/d5d7c32b25695f30107d5bc06ea380ce.png)
После загрузки датасет выглядит так: он содержит изображения и файлы разметки.
![](https://habrastorage.org/getpro/habr/upload_files/c2c/80a/166/c2c80a1666d8606271ecef82a377fa43.png)
Теперь нам нужно запустить обучение модели на нашем датасете. Для этого идем в меню Pipelines. И нажимаем Create new.
![](https://habrastorage.org/getpro/habr/upload_files/4b9/1e4/fcb/4b91e4fcbf8bab57dc6793927e84a63b.png)
Тип pipeline — full pipeline run. В качестве пакета выбираем созданными нами пакет. В качестве датасета только что загруженный датасет. И запускаем обучение.
![](https://habrastorage.org/getpro/habr/upload_files/647/0de/e74/6470dee74efdce429042fe561c25cae9.png)
Каждое запущенное обучение создает новую версию для нашего пакета.
После успешного выполнения мы либо создаем новый навык, либо выбираем новую версию пакета в нашем уже существующем навыке.
Как это выглядит в RPA-процессе
В нашем процессе мы используем активность MLSkill, в котором в качестве параметров выбираем наш навык. На вход активности дается путь до изображения, на выходе мы получаем json с результатом.
![](https://habrastorage.org/getpro/habr/upload_files/5ce/2cf/b1c/5ce2cfb1c77e75b85748e2fbfb21f383.png)
Для отображения результатов мы используем Action Center — создаем задачу пользователю, и в этой задаче отображаем наше изображение и результат: найдена печать или нет.
Приведем несколько примеров результатов. Напомним, что эта модель обучалась на 10 примерах.
![](https://habrastorage.org/getpro/habr/upload_files/bed/698/647/bed6986473c1402df7c9f96eed6ff5d9.png)
![](https://habrastorage.org/getpro/habr/upload_files/eb7/ca4/ab1/eb7ca4ab1764fcc705065b8405e1fb84.png)
![](https://habrastorage.org/getpro/habr/upload_files/1e1/f39/fe1/1e1f39fe12738b29040ec2881389d23f.png)
В случае, когда мы видим похожую круглую печать, модель определяет её с более низкой степенью уверенности, в данном случае — 39%:
![](https://habrastorage.org/getpro/habr/upload_files/9c7/eb7/57c/9c7eb757c2d6495b980a397d62b060b6.png)
И, конечно, если печати совсем нет на документе, модель способна это понять:
![](https://habrastorage.org/getpro/habr/upload_files/535/fd1/113/535fd111309edda3cacc01ed8604d6b2.png)
В заключение стоит отметить, что для работы в продуктиве модели нужно обучать на большем количестве документов, чем 10 штук. Тогда можно получить более точные результаты и можно отличать даже очень похожие печати от наших.
RPA и машинное обучение помогают работать с документами
В конечном счёте мы видим, что уже сейчас модели машинного обучения можно применять в бизнесе в сфере обработки входящей документации, причем для самых продвинутых задач. И это не требует больших усилий и серьезных затрат, а вот экономию времени и ресурсов обеспечивает значительную.