Document AI Workbench — пользовательский экстрактор документов

1. Введение

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

С помощью Document AI Workbench вы можете добиться более высокой точности обработки документов, создавая полностью настраиваемые модели на основе собственных обучающих данных.

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

В этой лабораторной работе используется набор данных документов из поддельного набора данных W-2 (налоговая форма США) на Kaggle с лицензией CC0: Public Domain.

Предварительные требования

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

Перед продолжением рекомендуется выполнить следующие практические задания (Codelabs).

Что вы узнаете

  • Создайте собственный обработчик для извлечения документов.
  • Разметьте обучающие данные ИИ для документов с помощью инструмента аннотирования.
  • Обучите новую версию модели.
  • Оцените точность новой версии модели.

Что вам понадобится

  • Проект Google Cloud
  • Браузер, например Chrome или Firefox.

2. Настройка

В этом практическом занятии предполагается, что вы выполнили шаги по настройке Document AI, описанные во вводном практическом занятии .

Перед продолжением выполните следующие шаги:

3. Создайте процессор.

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

  1. В консоли перейдите на страницу «Обзор Document AI» .

DocAIOverviewConsole

  1. Нажмите «Создать пользовательский обработчик» и выберите «Пользовательский извлекатель документов» .

docai-custom-codelab-02

  1. Назовите его codelab-custom-extractor (или как-нибудь еще, что вы запомните) и выберите ближайший регион из списка.

docai-custom-codelab-03

  1. Нажмите «Создать» , чтобы создать свой процессор. После этого вы увидите страницу «Обзор процессора».

docai-custom-codelab-04

4. Создайте набор данных.

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

  1. На странице «Обзор процессора» нажмите «Настроить набор данных» .

docai-custom-codelab-04

  1. Теперь вы должны находиться на странице «Настройка набора данных» . Если вы хотите указать собственный сегмент для хранения обучающих документов и меток, нажмите « Показать дополнительные параметры» . В противном случае просто нажмите «Продолжить» .

docai-custom-codelab-05

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

docai-custom-codelab-07

5. Импорт тестового документа

Теперь давайте импортируем образец PDF-файла формы W2 в наш набор данных.

  1. Нажмите на кнопку «Импорт документов» .

docai-custom-codelab-08

  1. Для выполнения этой лабораторной работы вам будет предоставлен образец PDF-файла. Скопируйте и вставьте следующую ссылку в поле «Путь к источнику ». Пока оставьте поле «Разделение данных» в положении «Не назначено». Все остальные поля оставьте неотмеченными. Нажмите «Импорт» .
cloud-samples-data/documentai/codelabs/custom/extractor/pdfs

docai-custom-codelab-09

  1. Дождитесь импорта документа. Это займет менее 1 минуты.
  2. После завершения импорта вы должны увидеть документ на странице «Обучение» .

docai-custom-codelab-10

6. Создайте этикетки.

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

  1. Нажмите кнопку «Редактировать схему» в левом нижнем углу.

docai-custom-codelab-11

  1. Теперь вы должны находиться в консоли управления схемой.

docai-custom-codelab-12

  1. Создайте следующие метки, используя кнопку «Создать метку» .

Имя

Тип данных

Событие

CONTROL_NUMBER

Число

Требуется несколько

EMPL_SSN

Простой текст

Требуется несколько

EMPLR_ID_NUMBER

Простой текст

Требуется несколько

EMPLR_NAME_ADDRESS

Адрес

Требуется несколько

FEDERAL_INCOME_TAX_WH

Деньги

Требуется несколько

SS_TAX_WH

Деньги

Требуется несколько

SS_WAGES

Деньги

Требуется несколько

WAGES_TIPS_OTHER_COMP

Деньги

Требуется несколько

  1. После завершения консоль должна выглядеть примерно так. Нажмите «Сохранить» .

docai-custom-codelab-13

  1. Нажмите на стрелку «Назад», чтобы вернуться на страницу «Обучение» . Обратите внимание, что созданные нами метки отображаются в левом нижнем углу.

docai-custom-codelab-14

7. Подпишите тестовый документ.

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

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

docai-custom-codelab-15

  1. Щелкните инструмент «Ограничивающая рамка», затем выделите текст «1173038» и присвойте ему метку CONTROL_NUMBER . Вы можете использовать текстовый фильтр для поиска названий меток.

docai-custom-codelab-16

  1. Завершите настройку для другого экземпляра CONTROL_NUMBER После добавления метки должно получиться вот так.

docai-custom-codelab-17

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

Название этикетки

Текст

EMPLR_ID_NUMBER

24-3188810

FEDERAL_INCOME_TAX_WH

19127.2

SS_TAX_WH

5093.71

SS_WAGES

66584.46

WAGES_TIPS_OTHER_COMP

56081.18

EMPL_SSN

714-32-2105

EMPLR_NAME_ADDRESS

Adams, Chase and Gilbert Inc. 972 Gonzalez Dam South Katherine NC 95869-5178

  1. В результате работы документ с метками должен выглядеть следующим образом. Обратите внимание, что вы можете вносить изменения в эти метки, щелкая по ограничивающей рамке в документе или по имени/значению метки в меню слева. После завершения добавления меток нажмите «Пометить как помеченный» , затем вернитесь в консоль управления набором данных.

docai-custom-codelab-20

8. Присвойте документ обучающему набору.

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

docai-custom-codelab-21

  1. Нам нужно присвоить этот документ либо набору «Обучение», либо набору «Тестирование». Щелкните по документу, затем нажмите «Присвоить набору» , а затем нажмите «Обучение» .

docai-custom-codelab-22

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

docai-custom-codelab-23

9. Импорт предварительно размеченных данных

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

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

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

Вы можете импортировать предварительно размеченные файлы документов в формате Document.json . Это могут быть результаты вызова обработчика и проверки точности с использованием механизма "человек в цикле" (Human in the Loop, HITL) .

в сторону отрицательный

ПРИМЕЧАНИЕ: При импорте предварительно размеченных данных настоятельно рекомендуется вручную проверить аннотации перед обучением модели.

  1. Нажмите на кнопку «Импорт документов» .

docai-custom-codelab-24

  1. Скопируйте и вставьте следующий путь к облачному хранилищу и назначьте его обучающему набору данных.
cloud-samples-data/documentai/codelabs/custom/extractor/training
  1. Нажмите «Добавить другую папку» . Затем скопируйте и вставьте следующий путь к облачному хранилищу и назначьте его тестовому набору.
cloud-samples-data/documentai/codelabs/custom/extractor/test

docai-custom-codelab-25

  1. Нажмите «Импорт» и дождитесь завершения импорта документов. Это займет больше времени, чем в прошлый раз, поскольку документов для обработки больше. В итоге это займет около 6 минут. Вы можете покинуть эту страницу и вернуться позже.

docai-custom-codelab-26

  1. После завершения вы увидите документы на странице «Обучение» .

docai-custom-codelab-27

10. Обучение модели

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

  1. Click Train New Version

docai-custom-codelab-28

  1. Дайте вашей версии запоминающееся имя, например, codelab-custom-1 . В поле «Метод обучения» выберите «Обучить с нуля».

docai-custom-codelab-29

  1. (Необязательно) Вы также можете выбрать «Просмотреть статистику меток» , чтобы увидеть показатели меток в вашем наборе данных.

docai-custom-codelab-30

  1. Нажмите «Начать обучение» , чтобы начать процесс обучения. Вы будете перенаправлены на страницу управления набором данных. Статус обучения можно посмотреть справа. Обучение займет несколько часов. Вы можете покинуть эту страницу и вернуться позже.

docai-custom-codelab-31

  1. При нажатии на название версии вы перейдете на страницу «Управление версиями» , где отображается идентификатор версии и текущий статус задания на обучение.

docai-custom-codelab-32

11. Протестируйте новую версию модели.

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

  1. Перейдите на страницу «Управление версиями» . Здесь вы можете увидеть текущий статус и оценку F1.

docai-custom-codelab-33

  1. Перед использованием этой версии модели необходимо её развернуть. Щёлкните по вертикальным точкам справа и выберите «Развернуть версию» .

docai-custom-codelab-34

  1. Выберите «Развернуть» во всплывающем окне и дождитесь завершения развертывания версии. Это займет несколько минут. После развертывания вы также можете установить эту версию в качестве версии по умолчанию.

docai-custom-codelab-35

  1. После завершения развертывания перейдите на вкладку «Оценка» . На этой странице вы можете просмотреть метрики оценки, включая F1-меру, точность и полноту для всего документа, а также для отдельных меток. Подробнее об этих метриках можно прочитать в документации AutoML .

docai-custom-codelab-36

  1. Скачайте PDF-файл по ссылке ниже. Это образец формы W2, который не был включен в обучающий или тестовый комплект.

  1. Нажмите «Загрузить тестовый документ» и выберите PDF-файл.
  2. Извлеченные объекты должны выглядеть примерно так.

docai-custom-codelab-37

12. Дополнительно: Автоматическая маркировка новых импортированных документов.

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

  1. На странице «Поезда» нажмите «Импорт документов» .
  2. Скопируйте и вставьте следующий путь . В этой директории находятся 5 PDF-файлов W2 без меток. В раскрывающемся списке «Разделение данных» выберите «Обучение» .
    cloud-samples-data/documentai/Custom/W2/AutoLabel
    
  3. В разделе «Автоматическая маркировка» установите флажок «Импорт с автоматической маркировкой» .
  4. Выберите существующую версию процессора для присвоения меток документам.
  • Например: 2af620b2fd4d1fcf
  1. Нажмите «Импорт» и дождитесь завершения импорта документов. Вы можете покинуть эту страницу и вернуться позже.
  • После завершения работы документы появятся на странице «Поезд» в разделе «Автоматически помеченные» .
  1. Вы не можете использовать документы с автоматической разметкой для обучения или тестирования, не пометив их как размеченные. Перейдите в раздел «Автоматическая разметка» , чтобы просмотреть документы с автоматической разметкой.
  2. Выберите первый документ, чтобы войти в консоль маркировки.
  3. Проверьте правильность подписей, ограничивающих рамок и значений. Укажите все пропущенные значения.
  4. После завершения выберите «Отметить как помеченное» .
  5. Повторите проверку меток для каждого автоматически размеченного документа, затем вернитесь на страницу «Обучение» , чтобы использовать данные для обучения.

13. Заключение

Поздравляем, вы успешно использовали Document AI для обучения пользовательского процессора извлечения документов. Теперь вы можете использовать этот процессор для анализа документов в этом формате так же, как и любой специализированный процессор.

Для повторного ознакомления с порядком обработки ответа на запрос вы можете обратиться к руководству по специализированным процессорам (Specialized Processors Codelab) .

Уборка

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

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

Ресурсы

Лицензия

Данная работа распространяется под лицензией Creative Commons Attribution 2.0 Generic.