Document AI Workbench – trenowanie wyższego poziomu

1. Wprowadzenie

Document AI to rozwiązanie do rozumienia dokumentów, które wykorzystuje nieuporządkowane dane, takie jak dokumenty czy e-maile, i ułatwia ich analizowanie, analizowanie i wykorzystywanie.

Używając trenowania ulepszonego za pomocą Document AI Workbench, możesz uzyskać większą dokładność przetwarzania dokumentów przez udostępnienie dodatkowych etykiet z przykładami dla specjalnych typów dokumentów i utworzenie nowej wersji modelu.

W tym module utworzysz procesor Invoice Parser, skonfigurujesz go do trenowania nowej wersji, oznaczysz etykietami przykładowe dokumenty i dotrenujesz go.

Zbiór danych dokumentów użyty w tym module zawiera losowo wygenerowane faktury dla fikcyjnej firmy zajmującej się potokami.

Wymagania wstępne

To ćwiczenie w Codelabs opiera się na materiałach prezentowanych w innych ćwiczeniach z programowania Document AI.

Przed kontynuowaniem zalecamy ukończenie poniższych ćwiczeń z programowania.

Czego się nauczysz

  • Skonfiguruj trenowanie ulepszone na potrzeby procesora Invoice Parser.
  • Oznacz dane treningowe Document AI za pomocą narzędzia do dodawania adnotacji.
  • Wytrenuj nową wersję modelu.
  • Oceń dokładność nowej wersji modelu.

Czego potrzebujesz

2. Przygotowanie

W tym ćwiczeniu w programowaniu zakładamy, że masz już za sobą kroki konfiguracji Document AI wymienione w podstawowych ćwiczeniach z programowania.

Zanim przejdziesz dalej, wykonaj te czynności:

3. Utwórz procesor

Najpierw musisz utworzyć procesor Invoice Parser do użycia w tym module.

  1. W konsoli przejdź na stronę Omówienie Document AI.

docai-uptraining-codelab-01

  1. Kliknij Utwórz procesor, przewiń w dół do sekcji Specjalistyczne (lub wpisz „Parser faktur” na pasku wyszukiwania) i wybierz Parser faktur.

docai-uptraining-codelab-02

  1. Nadaj mu nazwę codelab-invoice-uptraining (albo coś innego, co zapamiętasz) i wybierz na liście najbliższy region.

docai-uptraining-codelab-03

  1. Kliknij Utwórz, aby utworzyć procesor. Powinna wyświetlić się strona przeglądu procesora.

docai-uptraining-codelab-04

4. Tworzenie zbioru danych

Aby wytrenować procesor, będziemy musieli utworzyć zbiór danych z danymi treningowymi i testowymi, co pomoże mu w identyfikacji encji, które chcemy wyodrębnić.

Musisz utworzyć nowy zasobnik w Cloud Storage, w którym będzie przechowywany zbiór danych. Uwaga: nie powinien to być ten sam zasobnik, w którym są obecnie przechowywane Twoje dokumenty.

  1. Otwórz Cloud Shell i uruchom te polecenia, aby utworzyć zasobnik. Możesz też utworzyć nowy zasobnik w Cloud Console. Zapisz tę nazwę zasobnika – będzie potrzebna później.
export PROJECT_ID=$(gcloud config get-value project)

gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
  1. Otwórz kartę Zbiór danych i kliknij Utwórz zbiór danych.

docai-uptraining-codelab-05

  1. W polu Ścieżka docelowa wklej nazwę zasobnika z zasobnika utworzonego w kroku 1. (Nie uwzględniaj słowa gs://)

docai-uptraining-codelab-06

  1. Poczekaj na utworzenie zbioru danych. Spowoduje to przekierowanie na stronę zarządzania zbiorem danych.

docai-uptraining-codelab-07

5. Importuj dokument testowy

Zaimportujmy teraz do zbioru danych przykładowy plik PDF z fakturą.

  1. Kliknij Importuj dokumenty.

docai-uptraining-codelab-08

  1. Przygotowaliśmy przykładowy plik PDF, którego możesz użyć w tym module. Skopiuj poniższy link i wklej go w polu Ścieżka źródła. Pozostaw „Podział danych”. jako „Unassigned” (Nieprzypisane) na razie. Kliknij Importuj.
cloud-samples-data/documentai/codelabs/uptraining/pdfs

docai-uptraining-codelab-09

  1. Poczekaj na zaimportowanie dokumentu. Zajęło mi to niecałą minutę z testów.

docai-uptraining-codelab-10

  1. Po zakończeniu importu dokument powinien pojawić się w interfejsie zarządzania zbiorem danych. Kliknij ją, aby otworzyć konsolę etykietowania.

docai-uptraining-codelab-11

6. Oznacz dokument testowy

Następnie wskażemy elementy tekstowe i etykiety encji, które chcemy wyodrębnić. Te etykiety zostaną użyte do wytrenowania naszego modelu pod kątem analizowania konkretnej struktury dokumentu i identyfikowania właściwych typów.

  1. Powinna się teraz wyświetlić konsola oznaczania etykietami, która będzie wyglądać mniej więcej tak.

docai-uptraining-codelab-12

  1. Kliknij przycisk „Wybierz tekst”. Narzędzie i zaznacz tekst „McWilliam Piping International Piping Company”. i przypisać etykietę supplier_name. Aby wyszukać nazwy etykiet, możesz użyć filtra tekstowego.

docai-uptraining-codelab-13

  1. Zaznacz tekst „14368 Pipeline Ave Chino, CA 91710”. i przypisać etykietę supplier_address.

docai-uptraining-codelab-14

  1. Zaznacz tekst „10001”. i przypisać etykietę invoice_id.

docai-uptraining-codelab-15

  1. Zaznacz tekst „2020-01-02”. i przypisać etykietę due_date.

docai-uptraining-codelab-16

  1. Przełącz na opcję „Ramka ograniczająca”. . Wyróżnij tekst „Knuckle Couplers”. i przypisać etykietę line_item/description.

docai-uptraining-codelab-17

  1. Zaznacz tekst „9”. i przypisać etykietę line_item/quantity.

docai-uptraining-codelab-18

  1. Zaznacz tekst „74,43”. i przypisać etykietę line_item/unit_price.

docai-uptraining-codelab-19

  1. Zaznacz tekst „669,87”. i przypisać etykietę line_item/amount.

docai-uptraining-codelab-20

  1. Powtórz ostatnie 4 kroki dla kolejnych 2 elementów zamówienia. Po zakończeniu powinno ono wyglądać tak.

docai-uptraining-codelab-21

  1. Zaznacz tekst „1419,57”. (obok Suma częściowa) i przypisz etykietę net_amount.

docai-uptraining-codelab-22

  1. Zaznacz tekst „113.57”. (obok Podatek) i przypisz etykietę total_tax_amount.

docai-uptraining-codelab-23

  1. Zaznacz tekst „1533,14”. (obok Łącznie) i przypisz etykietę total_amount.

docai-uptraining-codelab-24

  1. Zaznacz jeden ze znaków „$” i przypisz etykietę currency.

docai-uptraining-codelab-25

  1. Gotowy dokument powinien wyglądać tak: Aby dostosować te etykiety, kliknij ramkę ograniczającą w dokumencie lub nazwę/wartość etykiety w menu po lewej stronie. Gdy skończysz oznaczać etykietami, kliknij Zapisz.

docai-uptraining-codelab-26

  1. Oto pełna lista etykiet i wartości

Nazwa etykiety

Text

supplier_name

McWilliam Piping International Piping Company

supplier_address

14368 Pipeline Ave Chino, CA 91710

invoice_id

10001

due_date

2020-01-02

line_item/description

Sprzęgi przegubowe

line_item/quantity

9

line_item/unit_price

74,43

line_item/amount

669,87

line_item/description

Rura PVC 12"

line_item/quantity

7

line_item/unit_price

15,90

line_item/amount

111,30

line_item/description

Rura miedziana

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. Przypisz dokument do zestawu treningowego

Jesteś z powrotem w konsoli zarządzania zbiorami danych. Zwróć uwagę, że zmieniła się liczba dokumentów z etykietami i bez etykiet, a także liczba aktywnych etykiet.

docai-uptraining-codelab-27

  1. Musimy przypisać ten dokument do grupy lub „Test” ustawiony. Kliknij dokument.

docai-uptraining-codelab-28

  1. Kliknij Assign to Set (Przypisz do zestawu), a następnie kliknij Training (Szkolenie).

docai-uptraining-codelab-29

  1. Zwróć uwagę, że zmieniły się wartości podziału danych.

docai-uptraining-codelab-30

8. Importuj dane z etykietami

Trenowanie ulepszonych procesorów Document AI wymaga co najmniej po 10 dokumentów w zbiorach treningowych i testowych oraz po 10 wystąpień każdej etykiety w każdym zbiorze.

Aby uzyskać najlepszą wydajność, zalecamy dodanie co najmniej 50 dokumentów w każdym zestawie po 50 instancji każdej etykiety. Więcej danych treningowych zwykle oznacza większą dokładność.

Ręczne oznaczenie 100 dokumentów etykietami może zająć dużo czasu, dlatego mamy wstępnie oznaczone dokumenty, które możesz zaimportować do tego modułu.

Możesz importować pliki dokumentów oznaczone wstępnie etykietami w formacie Document.json. Mogą one wynikać z wywołania procesora i weryfikacji dokładności za pomocą narzędzia Human in the Loop (HITL).

  1. Kliknij Importuj dokumenty.

docai-uptraining-codelab-30

  1. Skopiuj i wklej poniższą ścieżkę Cloud Storage i przypisz ją do zbioru Training.
cloud-samples-data/documentai/codelabs/uptraining/training
  1. Kliknij Dodaj kolejny zasobnik. Następnie skopiuj/wklej poniższą ścieżkę Cloud Storage i przypisz ją do zbioru Test.
cloud-samples-data/documentai/codelabs/uptraining/test

docai-uptraining-codelab-31

  1. Kliknij Importuj i poczekaj na zaimportowanie dokumentów. To potrwa dłużej niż ostatnim razem, ponieważ do przetworzenia jest więcej dokumentów. Z moich testów zajęło to około 6 minut. Możesz opuścić tę stronę i wrócić na nią później.

docai-uptraining-codelab-32

  1. Po zakończeniu weryfikacji dokumenty powinny pojawić się na stronie zarządzania zbiorem danych.

docai-uptraining-codelab-33

9. Edytuj etykiety

Przykładowe dokumenty, których używamy w tym przykładzie, nie zawierają wszystkich etykiet obsługiwanych przez parser faktur. Przed trenowaniem będziemy musieli oznaczyć etykiety, których nie używamy jako nieaktywne. Możesz też wykonać podobne czynności, aby dodać etykietę własną przed trenowaniem ulepszonego modelu.

  1. W lewym dolnym rogu kliknij Zarządzaj etykietami.

docai-uptraining-codelab-33

  1. Powinna być teraz otwarta konsola zarządzania etykietami.

docai-uptraining-codelab-34

  1. Za pomocą pól wyboru oraz przycisków Wyłącz/Włącz możesz oznaczyć TYLKO poniższe etykiety jako Włączone.
    • 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. Po zakończeniu konsola powinna wyglądać tak. Po zakończeniu kliknij Zapisz.

docai-uptraining-codelab-35

  1. Kliknij strzałkę wstecz, aby wrócić do konsoli zarządzania zbiorami danych. Zwróć uwagę, że etykiety mające 0 instancji zostały oznaczone jako nieaktywne.

docai-uptraining-codelab-36

10. Opcjonalnie: automatyczne dodawanie etykiet do nowo importowanych dokumentów

Jeśli importujesz dokumenty nieoznaczone etykietami i chcesz wykorzystać je na potrzeby wdrożonej już wersji procesora, możesz użyć automatycznego dodawania etykiet, aby usprawnić oznaczanie etykietami.

  1. Na stronie Trenuj kliknij Importuj dokumenty.
  2. Skopiuj i wklej tę ścieżkę . Katalog ten zawiera 5 plików PDF bez etykiet. Z listy Podział danych wybierz Trenowanie.
    cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
    
  3. W sekcji Automatyczne dodawanie etykiet zaznacz pole wyboru Importuj z automatycznym dodawaniem etykiet.
  4. Wybierz istniejącą wersję procesora, aby oznaczyć dokumenty etykietami.
  • Na przykład: pretrained-invoice-v1.3-2022-07-15
  1. Kliknij Importuj i poczekaj na zaimportowanie dokumentów. Możesz opuścić tę stronę i wrócić na nią później.
  • Gdy proces się zakończy, dokumenty pojawią się na stronie Trenowanie w sekcji Automatycznie oznaczone etykietami.
  1. Dokumentów automatycznie oznaczonych etykietami nie można używać do trenowania lub testowania, jeśli nie są oznaczone jako dokumenty z etykietami. Przejdź do sekcji Automatycznie oznaczone etykietami, aby wyświetlić dokumenty oznaczone automatycznie etykietami.
  2. Wybierz pierwszy dokument, aby przejść do konsoli do dodawania etykiet.
  3. Sprawdź, czy etykiety, ramki ograniczające i wartości są prawidłowe. Dodaj etykiety do wszystkich pominiętych wartości.
  4. Po zakończeniu wybierz opcję Oznacz jako etykietę.
  5. Powtórz weryfikację etykiet dla każdego dokumentu automatycznie oznaczonego etykietami, a następnie wróć na stronę Trenowanie, aby wykorzystać dane do trenowania.

11. Dotrenuj model

Teraz możemy rozpocząć trenowanie parsera faktur.

  1. Kliknij Wytrenuj nową wersję.

docai-uptraining-codelab-36

  1. Nadaj wersji nazwę, którą zapamiętasz, np. codelab-uptraining-test-1. Wersja podstawowa to model, na podstawie którego zostanie skompilowana nowa wersja. Jeśli używasz nowego procesora, jedyną opcją powinna być wytrenowanie Google po wytrenowaniu.

docai-uptraining-codelab-37

  1. (Opcjonalnie) Możesz też wybrać Wyświetl statystyki etykiet, aby zobaczyć wskaźniki dotyczące etykiet w zbiorze danych.

docai-uptraining-codelab-38

  1. Kliknij Start Training (Rozpocznij trenowanie), aby rozpocząć proces trenowania. Powinno nastąpić przekierowanie na stronę zarządzania zbiorem danych. Stan trenowania możesz sprawdzić po prawej stronie. Szkolenie zajmie kilka godzin. Możesz opuścić tę stronę i wrócić na nią później.

docai-uptraining-codelab-39

  1. Jeśli klikniesz nazwę wersji, otworzy się strona Zarządzanie wersjami, na której znajdziesz identyfikator wersji i bieżący stan zadania treningowego.

docai-uptraining-codelab-40

12. Testowanie nowej wersji modelu

Po zakończeniu zadania trenowania (testy trwają około godziny) możesz przetestować nową wersję modelu i zacząć jej używać do prognozowania.

  1. Otwórz stronę Zarządzanie wersjami. Tutaj możesz sprawdzić bieżący stan i wynik F1.

docai-uptraining-codelab-41

  1. Aby móc używać tej wersji modelu, musimy ją wdrożyć. Kliknij pionowe kropki po prawej stronie i wybierz Wdróż wersję.

docai-uptraining-codelab-42

  1. Czekając na wdrożenie wersji, w wyskakującym okienku wybierz Deploy (Wdróż). Ich wykonanie może potrwać kilka minut. Po wdrożeniu możesz też ustawić tę wersję jako wersję domyślną.

docai-uptraining-codelab-43

  1. Po zakończeniu wdrażania otwórz kartę Ocena. Następnie kliknij menu Wersja i wybierz nowo utworzoną wersję.

docai-uptraining-codelab-44

  1. Na tej stronie możesz wyświetlić wskaźniki oceny, w tym wynik F1, precyzję i czułość dla całego dokumentu oraz dla poszczególnych etykiet. Więcej informacji o tych wskaźnikach znajdziesz w dokumentacji AutoML.
  2. Pobierz plik PDF, do którego link znajdziesz poniżej. Ten przykładowy dokument nie został uwzględniony w zestawie treningowym ani testowym.

  1. Kliknij Prześlij dokument testowy i wybierz plik PDF.

docai-uptraining-codelab-45

  1. Wyodrębnione encje powinny wyglądać mniej więcej tak.

docai-uptraining-codelab-46

13. Podsumowanie

Udało Ci się dotrenować parser faktury za pomocą Document AI. Możesz teraz używać tego procesora do analizowania faktur tak samo jak w przypadku dowolnego podmiotu przetwarzającego dane specjalistyczne.

Aby dowiedzieć się, jak postępować z odpowiedzią na przetwarzanie danych, zapoznaj się z ćwiczeniami z programowania dla specjalnych procesorów.

Czyszczenie

Aby uniknąć obciążenia konta Google Cloud opłatami za zasoby zużyte w tym samouczku:

  • W konsoli Cloud otwórz stronę Zarządzanie zasobami.
  • Na liście projektów wybierz swój projekt i kliknij Usuń.
  • W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.

Materiały

Licencja

To zadanie jest licencjonowane na podstawie ogólnej licencji Creative Commons Attribution 2.0.