Как стать автором
Обновить
0
Content AI
Решения для интеллектуальной обработки информации

Что такое ABBYY Vantage и как мы придумали платформу для тех, кто не умеет кодить

Время на прочтение9 мин
Количество просмотров9.1K

ABBYY представила Vantage – low-code/no-code платформу нового поколения для интеллектуальной обработки документов с набором готовых обученных когнитивных сервисов (навыков или скиллов) для распознавания, классификации и извлечения данных из документов любой сложности.

Это значимое событие по ряду причин. Во-первых, в разработке мы использовали самый современный стек технологий (REST API, Cloud-native, микросервисная архитектура с Docker-контейнерами, которые управляются с помощью Kubernetes). Во-вторых, запустили Marketplace – онлайн-площадку, на которой клиенты могут приобретать готовые навыки для обработки документов и обмениваться ими с другими компаниями. В-третьих, добавили в продукт машинное обучение на стороне клиента. То есть система сама постоянно дообучается и повышает качество работы сервисов на основании того, как с ней взаимодействует клиент. Например, когда вносит исправления в результаты распознавания. Но обо всем по порядку.

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

От AI для продвинутых пользователей к low-code/no-code

Времена меняются, как меняются и запросы наших клиентов. Все больше компаний хотят использовать готовые решения «из коробки», которые не требуют сложных доработок и обучения моделей, а также навыков программирования у сотрудников и армии опытных разработчиков. Именно таким low-code решением и стала платформа ABBYY Vantage.

Vantage вобрала в себя лучшие передовые технологии искусственного интеллекта для распознавания текста, извлечения информации и классификации документов, но при этом он значительно проще для пользователя, чем существующие на рынке решения. Так, в составе Vantage – большой набор уже готовых навыков (микросервисов, упакованных в контейнеры Kubernetes, которые позволяют технологии автоматически обрабатывать информацию из разных источников), рассчитанных под различные потребности компаний. Например, это могут быть такие скиллы, как распознавание определенного типа документа: счета-фактуры, паспорта, транспортной накладной. Или скилл классификации, когда система определяет тип документа. При этом, для того чтобы начать использовать эти навыки, знания программирования клиенту не нужны. Достаточно подключить нужные микросервисы и обрабатывать документы так, как это нужно сотруднику для решения его задачи.

Концепция Vantage чем-то напоминает кубики в конструкторе. Сначала пользователь определяет источник, из которого документы – сканы или фотографии – поступают на обработку в платформу. Каждый кубик в процессе – это активность, то есть действие, которое Vantage должен совершить: классифицировать, извлечь те или иные поля, обучить систему на этих документах и так далее. Из этих кубиков складывается skill, или когнитивный навык. Мы используем этот термин, потому что skills работают с информацией из любых носителей так, как это бы сделал человек.

Когнитивные навыки, в том числе разработанные заказчиками и партнерами ABBYY, собраны на онлайн-площадке ABBYY Marketplace. На текущий момент на ней доступно 30 навыков для документов на различных языках. Таким образом, каждый пользователь Vantage может делиться собственными скиллами или выбирать те, которые ему нужны, и, если нужно, докупить новые, как дополнения в компьютерных играх.

Пользовательский интерфейс

Vantage – cloud-native решение, все его сервисы доступны в облаке. Для работы сотруднику нужно ввести логин и пароль на сайте продукта, загрузить файлы (счета-фактуры, акты, накладные или другие документы из горячей папки, хранилища или электронной почты), и через несколько секунд технология уже покажет первые результаты извлечения полей.

Ниже наглядно расскажем, как работать с интерфейсом Vantage (по ссылке – видео, где рассказывается подробнее).

 

Рисунок 1
Рисунок 1

Для старта работы пользователю необходимо нажать на большую синюю кнопку в центре поля и загрузить документы, информацию из которых нужно извлечь (Рисунок 1).

Во время загрузки система, еще даже до каких-либо настроек, уже начала обрабатывать файл и самостоятельно выделять главные поля (Рисунок 2, №1).

Рисунок 2
Рисунок 2

Если система не смогла определить тип загруженного документа, то пользователь может его выбрать из предложенного списка, кликнув по кнопке №2, Рисунок 2.

Если для таких типов документов в изначальные настройки Vantage не загружены нужные навыки, то пользователь может их найти на ABBYY Marketplace, кликнув по кнопке №3, Рисунок 2.

Если же нужный навык отсутствует и в Marketplace, то пользователь может самостоятельно его создать (Рисунок 2, №4) за пару минут, разметив лишь один файл – для начала обучения системы этого будет достаточно. При этом скилл создается без какого-либо кодинга – на загруженном документе пользователю нужно выделить необходимые для извлечения поля и назвать их (Рисунок 3, № 4). Далее он нажимает кнопку Train (Рисунок 3, № 5), и система готова работать с новым типом файлов в полном объеме.

Рисунок 3
Рисунок 3

Магазин когнитивных навыков

ABBYY Marketplace – одна из важных составляющих Vantage. Это универсальный «магазин», с помощью которого продукт можно постоянно совершенствовать и дополнять – актуальная информация автоматически подгружается в профиль каждого пользователя.

Кроме того, любой пользователь может создать свой собственный навык, которого еще нет в системе, и по желанию опубликовать его на Marketplace. После того, как навык пройдет предварительную проверку, им смогут пользоваться другие клиенты Vantage. Чем больше страниц они обработают с помощью этого скилла, тем больше будет гонорар пользователя, который его опубликовал. Стоит отметить, что для создания нового скилла также не требуются углубленные знания программирования. По нашей оценке, Citizen Developer сможет справиться с этой задачей.

Рабочий стол бизнес-процесса

Каждый пользователь может построить из скиллов свой бизнес-процесс. Это можно сделать на рабочем столе Process Skill с помощью блок-схем, каждая из которых в свою очередь тоже настраивается (Рисунок 4).

Рисунок 4
Рисунок 4

Вначале нужно настроить порядок обработки документа (например, Input-Classify-Extract-Review-Output).

К примеру, в блоке Input можно настроить Shared Folder, которая будет содержать файлы для извлечения информации. В блоках классификации и экстракции пользователь выбирает нужные документные скиллы (их может быть больше одного). А с помощью Review можно определить, в каких случаях необходима проверка документов.

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

Технологии в Vantage

С пользовательской частью Vantage немного разобрались, теперь расскажем о ее главных технологических составляющих. Обзор будет краткий, поскольку про каждую фичу мы расскажем на Хабре чуть позже отдельным постом. Так что stay tuned 😉

Движок Workflow

В Vantage используется движок бизнес-процессов на основе Workflow Core – технологии с открытым кодом, реализованной на платформе .NET на языке программирования C#. Анализ лицензий, возможностей и их соответствия нашим задачам других движков на Java и C#, а затем и нагрузочное тестирование показали, что Workflow Core лучше всего подходит для быстрой параллельной обработки документов от большого количества пользователей в облаке. Сейчас производительность движка составляет 50 wf/s. Мы выбрали Workflow Core не случайно, так как это позволило дорабатывать исходный код под наши нужды. Если коротко, то вот что мы переделали:

  • Перенесли хранилище Definitions из Workflow Core в Redis (Workflow Definition - это описание схемы выполнения Workflow. Мы его перенесли в SQL, добавив также in-memory cache для ускорения доступа к definition'ам).

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

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

  • Добавили ограничения на количество шагов в Workflow Core, чтобы избежать бесконечного выполнения заданий.

  • Изменили структуру хранения данных Workflow в системе, чтобы избежать ошибки Out of memory при создании Workflow с большим числом шагов (до 10 тыс.).

  • Оптимизировали использование блокировок и перевели ее на RedLock.net.

  • «Окультурили» код и начали приводить его к стандартам Resharper.

Дополнительно разработчики ABBYY создали для Workflow-движка уникальный алгоритм для справедливого распределения вычислительных мощностей между пользователями, который позволяет раскладывать задания каждого тенанта (каждый клиент, который может настраивать некоторые части продукта без внесения изменений в исходный код) по отдельным очередям и равномерно брать задания в работу. Если кто-то из тенантов прислал слишком много заданий, то они копятся в его очереди. Поскольку алгоритм проходит по каждой очереди последовательно и из каждой берет одинаковое количество заданий, то большая очередь заданий от одного тенанта будет висеть дольше, а остальным клиентам не придется долго ждать. Это базовый принцип, который позволяет в момент пиковой нагрузки платформы сделать так, чтобы все документы клиентов были обработаны в соответствии с их Service level agreement.

Архитектура

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

Одна из ключевых особенностей архитектуры Vantage – ее автоматическое масштабирование. Неважно, сколько документов надо обработать в единицу времени, мощности выделяются по запросу. И если вдруг у заказчика появилась срочная задача – скажем, распознать и извлечь данные из 100 тысяч многостраничных кредитных договоров, то платформа справится и просто выделит под это больше виртуальных машин и столько нод в Kubernetes, сколько необходимо.

Разработана Vantage под Linux, но сам код кросс-платформенный и может так же эффективно работать на Windows. Кроссплатформенность кода в Vantage обеспечивает платформа .NET Core.

FastML

Еще одна важная составляющая Vantage – алгоритмы машинного обучения следующего поколения. Как правило, в продуктах машинное обучение бывает двух типов: то, которое быстро обучается делать какую-то простую задачу и то, которое долго обучается сложным моделям. Vantage использует оба вида моделей, благодаря чему одновременно достигаются высокие показатели качества и скорости. Эту технологию мы создали специально для Vantage и назвали FastML.

Как это работает? В Vantage зашита предобученная глубокая нейросетевая модель, которая уже многое знает о документах различного типа (Рисунок 5). Поэтому нейросетевая модель способна даже на основе одного примера нового размеченного документа определить нужные для извлечения поля.

 

Рисунок 5
Рисунок 5

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

Рисунок 6
Рисунок 6

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

OnlineML

OnlineML – это сервис в составе Vantage, который позволяет системе учиться распознавать и извлекать данные, опираясь на обратную связь от пользователей, и делать это в режиме реального времени. Онлайн-обучение вызывается в Vantage дополнительной настройкой. Всякий раз, когда документ отправляется на обработку, платформа записывает исправления пользователя, и запоминает, если что-то извлеклось неправильно. Когда накопится определенное количество таких правок, автоматически запустится переобучение. 

Сейчас работу OnlineML можно описать с помощью следующей схемы (Рисунок 7):

Рисунок 7
Рисунок 7

В начале работы системы OnlineML идет этап накопления документов, на которых система будет обучаться. Технология сохраняет результаты работы с каждым документом и фиксирует изменения, внесенные пользователем. Документы, которые поступают на обработку, OnlineML случайным образом разделяет по двум выборкам. Примерно 25% попадают в тестовую выборку, а 75% – в обучающую.

После того, как система запустила обучение, набрав 10% новых документов, она проверяет работу новой модели по тестовой выборке, получает статистику, запускает старую модель, обученную на той же выборке, и сравнивает старую и новую статистику распознавания. Если данные стали извлекаться лучше, то модель автоматически обновляется. Таким образом, с Online ML мы можем постоянно улучшать распознавание и настраивать его под задачи конкретного пользователя. Также отметим, что система не запускает два одновременных обучения.

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

Что дальше?

Мы продолжим улучшать качество распознавания и классификации, добавляя новые документы, в том числе русскоязычные. В наших планах и постепенное внедрение в Vantage новых OCR и NLP-технологий.

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

На этом пока все. Совсем скоро вернемся с новыми подробностями и о технологической составляющей Vantage. So stand by 😉  

Знаете, как можно улучшить наш продукт? Делитесь в комментариях!

А если хотите развивать новый продукт вместе с нами, то в команде Vantage есть открытые вакансии: Senior C# Developer, Frontend Team Lead, Frontend Developer, Senior C# Developer, Technical Project Manager, Senior UX designer, QA Engineer (Cloud, Auto).

Теги:
Хабы:
+17
Комментарии9

Публикации

Информация

Сайт
www.contentai.ru
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия

Истории