Document AI Workbench — Обучение

1. Введение

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

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

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

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

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

Эта лаборатория кода основана на контенте, представленном в других лабораториях Document AI Codelabs.

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

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

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

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

  • Облачный проект Google
  • Браузер, например Chrome или Firefox.

2. Приступаем к настройке

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

Прежде чем продолжить, выполните следующие действия:

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

Сначала необходимо создать процессор Invoice Parser для использования в этой лабораторной работе.

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

docai-uptraining-codelab-01

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

docai-uptraining-codelab-02

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

docai-uptraining-codelab-03

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

docai-uptraining-codelab-04

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

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

Вам нужно будет создать новую корзину в Cloud Storage для хранения набора данных. Примечание. Это не должна быть та же корзина, в которой сейчас хранятся ваши документы.

  1. Откройте Cloud Shell и выполните следующие команды, чтобы создать корзину. Альтернативно создайте новый сегмент в Cloud Console. Сохраните это имя сегмента, оно понадобится вам позже.
export PROJECT_ID=$(gcloud config get-value project)

gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
  1. Перейдите на вкладку «Набор данных» и нажмите « Создать набор данных» .

docai-uptraining-codelab-05

  1. Вставьте имя корзины, созданной на первом шаге, в поле «Путь назначения» . (Не включайте gs:// )

docai-uptraining-codelab-06

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

docai-uptraining-codelab-07

5. Импортируйте тестовый документ

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

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

docai-uptraining-codelab-08

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

docai-uptraining-codelab-09

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

docai-uptraining-codelab-10

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

docai-uptraining-codelab-11

6. Промаркируйте тестовый документ.

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

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

docai-uptraining-codelab-12

  1. Нажмите на инструмент «Выбрать текст», затем выделите текст «McWilliam Piping International Piping Company» и присвойте метку supplier_name . Вы можете использовать текстовый фильтр для поиска названий меток.

docai-uptraining-codelab-13

  1. Выделите текст «14368 Pipeline Ave Chino, CA 91710» и присвойте метку supplier_address .

docai-uptraining-codelab-14

  1. Выделите текст «10001» и присвойте метке invoice_id .

docai-uptraining-codelab-15

  1. Выделите текст «2020-01-02» и присвойте метку due_date .

docai-uptraining-codelab-16

  1. Переключитесь на инструмент «Ограничивающая рамка». Выделите текст «Кулачковые муфты» и присвойте метку line_item/description .

docai-uptraining-codelab-17

  1. Выделите текст «9» и присвойте метку line_item/quantity .

docai-uptraining-codelab-18

  1. Выделите текст «74,43» и присвойте метку line_item/unit_price .

docai-uptraining-codelab-19

  1. Выделите текст «669,87» и присвойте метку line_item/amount .

docai-uptraining-codelab-20

  1. Повторите предыдущие 4 шага для следующих двух позиций. Когда все будет готово, это должно выглядеть так.

docai-uptraining-codelab-21

  1. Выделите текст «1,419,57» (рядом с «Промежуточный итог») и присвойте метку net_amount .

docai-uptraining-codelab-22

  1. Выделите текст «113,57» (рядом с надписью «Налог») и присвойте метку total_tax_amount .

docai-uptraining-codelab-23

  1. Выделите текст «1533,14» (рядом с «Итого») и присвойте метку total_amount .

docai-uptraining-codelab-24

  1. Выделите один из символов «$» и назначьте currency метки.

docai-uptraining-codelab-25

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

docai-uptraining-codelab-26

  1. Вот полный список меток и значений.

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

Текст

supplier_name

Международная трубопроводная компания McWilliam Piping

supplier_address

14368 Пайплайн Авеню Чино, Калифорния 91710

invoice_id

10001

due_date

2020-01-02

line_item/description

Поворотные муфты

line_item/quantity

9

line_item/unit_price

74,43

line_item/amount

669,87

line_item/description

Труба ПВХ 12 дюймов

line_item/quantity

7

line_item/unit_price

15.90

line_item/amount

111.30

line_item/description

Медная труба

line_item/quantity

7

line_item/unit_price

91,20

line_item/amount

638,40

net_amount

1419,57

total_tax_amount

113,57

total_amount

1533,14

currency

$

7. Назначьте документ обучающему набору.

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

docai-uptraining-codelab-27

  1. Нам нужно отнести этот документ к набору «Обучающий» или «Тестовый». Нажмите на документ.

docai-uptraining-codelab-28

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

docai-uptraining-codelab-29

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

docai-uptraining-codelab-30

8. Импортируйте предварительно размеченные данные

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

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

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

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

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

docai-uptraining-codelab-30

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

docai-uptraining-codelab-31

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

docai-uptraining-codelab-32

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

docai-uptraining-codelab-33

9. Редактировать метки

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

  1. Нажмите «Управление метками» в левом нижнем углу.

docai-uptraining-codelab-33

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

docai-uptraining-codelab-34

  1. Используйте флажки и кнопки « Отключить / Включить» , чтобы отметить ТОЛЬКО следующие метки как «Включено» .
    • currency
    • due_date
    • invoice_id
    • line_item/amount
    • line_item/description
    • line_item/quantity
    • line_item/unit_price
    • net_amount
    • supplier_address
    • supplier_name
    • total_amount
    • total_tax_amount
  2. После завершения консоль должна выглядеть так. Нажмите «Сохранить» , когда закончите.

docai-uptraining-codelab-35

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

docai-uptraining-codelab-36

10. Необязательно: автоматически маркируйте новые импортированные документы.

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

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

11. Обновите модель

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

  1. Нажмите «Обучить новую версию».

docai-uptraining-codelab-36

  1. Дайте вашей версии имя, которое вы запомните, например codelab-uptraining-test-1 . Базовая версия — это версия модели, на основе которой будет создана новая версия. Если вы используете новый процессор, единственным вариантом должен быть Google Pretrained Next с Uptraining.

docai-uptraining-codelab-37

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

docai-uptraining-codelab-38

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

docai-uptraining-codelab-39

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

docai-uptraining-codelab-40

12. Проверьте новую версию модели.

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

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

docai-uptraining-codelab-41

  1. Нам нужно будет развернуть эту версию модели, прежде чем ее можно будет использовать. Нажмите на вертикальные точки справа и выберите «Развернуть версию» .

docai-uptraining-codelab-42

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

docai-uptraining-codelab-43

  1. После завершения развертывания перейдите на вкладку «Оценка» . Затем щелкните раскрывающийся список «Версия» и выберите нашу недавно созданную версию.

docai-uptraining-codelab-44

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

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

docai-uptraining-codelab-45

  1. Извлеченные объекты должны выглядеть примерно так.

docai-uptraining-codelab-46

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

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

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

Очистка

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

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

Ресурсы

Лицензия

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