Document AI Workbench – trenowanie wyższego poziomu

1. Wprowadzenie

Document AI to rozwiązanie do analizy dokumentów, które przetwarza dane nieustrukturyzowane, takie jak dokumenty, e-maile itp., i ułatwia ich zrozumienie, analizowanie i wykorzystywanie.

Dzięki dodatkowemu trenowaniu w Document AI Workbench możesz zwiększyć dokładność przetwarzania dokumentów, dostarczając dodatkowe oznaczone przykłady dla specjalistycznych typów dokumentów i tworząc nową wersję modelu.

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

Zbiór danych dokumentów użyty w tym module składa się z losowo wygenerowanych faktur dla fikcyjnej firmy zajmującej się rurami.

Wymagania wstępne

To ćwiczenie opiera się na treściach przedstawionych w innych ćwiczeniach Document AI.

Zanim przejdziesz dalej, zalecamy wykonanie tych ćwiczeń z programowania.

Czego się nauczysz

  • Skonfiguruj ulepszone trenowanie procesora Invoice Parser.
  • Oznaczanie danych treningowych Document AI etykietami za pomocą narzędzia do adnotacji.
  • Wytrenuj nową wersję modelu.
  • ocenić dokładność nowej wersji modelu,

Czego potrzebujesz

2. Przygotowania

W tym ćwiczeniu zakłada się, że masz już za sobą kroki konfiguracji Document AI wymienione w ćwiczeniu wprowadzającym.

Zanim przejdziesz dalej, wykonaj te czynności:

3. Tworzenie procesora

Aby wykonać to ćwiczenie, musisz najpierw utworzyć procesor Invoice Parser.

  1. W konsoli otwórz stronę Document AI – przegląd.

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 (lub inną, którą będziesz pamiętać) i wybierz z listy region, który znajduje się najbliżej Ciebie.

docai-uptraining-codelab-03

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

docai-uptraining-codelab-04

4. Tworzenie zbioru danych

Aby wytrenować nasz procesor, musimy utworzyć zbiór danych z danymi treningowymi i testowymi, dzięki czemu procesor nauczy się identyfikować encje, które chcemy wyodrębniać.

Aby przechowywać zbiór danych, musisz utworzyć nowy zasobnik w Cloud Storage. Uwaga: nie powinien to być ten sam zasobnik, w którym przechowujesz obecnie dokumenty.

  1. Otwórz Cloud Shell i uruchom te polecenia, aby utworzyć zasobnik. Możesz też utworzyć nowy zasobnik w konsoli Cloud. Zapisz nazwę tego zasobnika, ponieważ będzie Ci później potrzebna.
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. Wklej nazwę zasobnika utworzonego w kroku 1 do pola Ścieżka docelowa. (Nie uwzględniaj gs://)

docai-uptraining-codelab-06

  1. Poczekaj na utworzenie zbioru danych. Następnie powinna otworzyć się strona Zarządzanie zbiorem danych.

docai-uptraining-codelab-07

5. Importowanie dokumentu testowego

Teraz zaimportujmy 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 ten link i wklej go w polu Ścieżka źródła. Na razie pozostaw w polu „Podział danych” wartość „Nieprzypisane”. Kliknij Importuj.
cloud-samples-data/documentai/codelabs/uptraining/pdfs

docai-uptraining-codelab-09

  1. Poczekaj na zaimportowanie dokumentu. W moich testach zajęło to mniej niż minutę.

docai-uptraining-codelab-10

  1. Po zakończeniu importowania dokument powinien być widoczny w interfejsie zarządzania zbiorem danych. Kliknij go, aby przejść do konsoli do dodawania etykiet.

docai-uptraining-codelab-11

6. Oznaczanie dokumentu testowego etykietami

Następnie zidentyfikujemy elementy tekstowe i etykiety dla encji, które chcemy wyodrębnić. Te etykiety zostaną użyte do wytrenowania modelu, aby analizował on tę konkretną strukturę dokumentu i identyfikował prawidłowe typy.

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

docai-uptraining-codelab-12

  1. Kliknij narzędzie „Wybierz tekst”, a następnie wyróżnij tekst „McWilliam Piping International Piping Company” i przypisz 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 przypisz etykietę supplier_address.

docai-uptraining-codelab-14

  1. Zaznacz tekst „10001” i przypisz etykietę invoice_id.

docai-uptraining-codelab-15

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

docai-uptraining-codelab-16

  1. Przełącz się na narzędzie „Bounding Box” (Ramka ograniczająca). Zaznacz tekst „Knuckle Couplers” i przypisz mu etykietę line_item/description.

docai-uptraining-codelab-17

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

docai-uptraining-codelab-18

  1. Zaznacz tekst „74.43” i przypisz mu etykietę line_item/unit_price.

docai-uptraining-codelab-19

  1. Zaznacz tekst „669.87” i przypisz etykietę line_item/amount.

docai-uptraining-codelab-20

  1. Powtórz poprzednie 4 kroki w przypadku kolejnych 2 elementów zamówienia. Po zakończeniu pracy powinna wyglądać tak:

docai-uptraining-codelab-21

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

docai-uptraining-codelab-22

  1. Zaznacz tekst „113,57” (obok pozycji Podatek) i przypisz etykietę total_tax_amount.

docai-uptraining-codelab-23

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

docai-uptraining-codelab-24

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

docai-uptraining-codelab-25

  1. Po zakończeniu pracy dokument opatrzony etykietami powinien wyglądać następująco. Pamiętaj, że możesz dostosować te etykiety, klikając ramkę ograniczającą w dokumencie lub nazwę/wartość etykiety w bocznym menu po lewej stronie. Gdy skończysz dodawać etykiety, kliknij Zapisz.

docai-uptraining-codelab-26

  1. 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. Przypisywanie dokumentu do zbioru treningowego

Powinna się teraz otworzyć konsola zarządzania zbiorem 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 zbioru „Treningowy” lub „Testowy”. Kliknij dokument.

docai-uptraining-codelab-28

  1. Kliknij Przypisz do zbioru, a potem Trenowanie.

docai-uptraining-codelab-29

  1. Zwróć uwagę, że liczby w sekcji Podział danych uległy zmianie.

docai-uptraining-codelab-30

8. Importowanie wstępnie oznaczonych danych

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.

Dla uzyskania największej skuteczności zalecamy dodanie do każdego zbioru co najmniej 50 dokumentów oraz 50 wystąpień każdej etykiety. Więcej danych treningowych zwykle oznacza większą dokładność.

Ręczne oznaczanie etykietami 100 dokumentów zajmie dużo czasu, dlatego w tym module udostępniamy wstępnie oznaczone etykietami dokumenty, które możesz zaimportować.

Możesz importować wstępnie oznaczone etykietami pliki dokumentów w formacie Document.json. Mogą to być wyniki wywołania procesora i sprawdzenia dokładności za pomocą procesu z udziałem człowieka.

  1. Kliknij Importuj dokumenty.

docai-uptraining-codelab-30

  1. Skopiuj i wklej tę ścieżkę Cloud Storage i przypisz ją do zbioru Trenowanie.
cloud-samples-data/documentai/codelabs/uptraining/training
  1. Kliknij Dodaj kolejny koszyk. Następnie skopiuj i wklej tę ś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. Potrwa to dłużej niż ostatnim razem, ponieważ do przetworzenia jest więcej dokumentów. W moich testach 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. Gdy proces się zakończy, dokumenty powinny być widoczne 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 rozpoczęciem trenowania musimy oznaczyć etykiety, których nie używamy, jako nieaktywne. Możesz też wykonać podobne czynności, aby dodać etykietę niestandardową przed trenowaniem ulepszonym.

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

docai-uptraining-codelab-33

  1. Powinna się teraz otworzyć konsola zarządzania etykietami.

docai-uptraining-codelab-34

  1. Za pomocą pól wyboru i przycisków Wyłącz/Włącz oznacz TYLKO te 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: Gdy skończysz, kliknij Zapisz.

docai-uptraining-codelab-35

  1. Kliknij strzałkę wstecz, aby wrócić do konsoli zarządzania zbiorem danych. Zwróć uwagę, że etykiety z 0 wystąpień 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 Trenowanie kliknij Importuj dokumenty.
  2. Skopiuj i wklej tę ścieżkę . Katalog ten zawiera 5 plików PDF bez etykiet. Na liście Podział danych wybierz Trenowanie.
    cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
    
  3. W sekcji Automatyczne dodawanie etykiet zaznacz pole wyboru Import z automatycznym oznaczaniem etykietami.
  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. Aby wyświetlić dokumenty automatycznie oznaczone etykietami, przejdź do sekcji Automatycznie oznaczone 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. Gdy skończysz, kliknij Oznacz jako oznaczony etykietami.
  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 procesora Invoice Parser.

  1. Kliknij Wytrenuj nową wersję.

docai-uptraining-codelab-36

  1. Nadaj wersji nazwę, którą łatwo zapamiętasz, np. codelab-uptraining-test-1. Wersja podstawowa to wersja modelu, na podstawie której zostanie utworzona nowa wersja. Jeśli używasz nowego procesora, jedyną opcją powinna być Wstępnie wytrenowany model Google Next z dodatkowym trenowaniem.

docai-uptraining-codelab-37

  1. (Opcjonalnie) Możesz też kliknąć Wyświetl statystykę etykiet, aby zobaczyć dane o etykietach w zbiorze danych.

docai-uptraining-codelab-38

  1. Aby rozpocząć proces trenowania ulepszonej wersji, kliknij Rozpocznij trenowanie. Powinno nastąpić przekierowanie na stronę Zarządzanie zbiorami danych. Stan trenowania możesz sprawdzić po prawej stronie. Trenowanie potrwa 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ądzaj wersjami, na której znajdziesz identyfikator wersji i bieżący stan zadania trenowania.

docai-uptraining-codelab-40

12. Testowanie nowej wersji modelu

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

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

docai-uptraining-codelab-41

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

docai-uptraining-codelab-42

  1. W wyskakującym okienku kliknij Wdróż i poczekaj, aż wersja zostanie wdrożona. 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 danych znajdziesz w dokumentacji AutoML.
  2. Pobierz plik PDF, do którego link znajdziesz poniżej. Jest to dokument przykładowy, który nie został uwzględniony w zbiorze treningowym ani testowym.

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

docai-uptraining-codelab-45

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

docai-uptraining-codelab-46

13. Podsumowanie

Gratulacje! Udało Ci się wytrenować ulepszoną wersję parsera faktur za pomocą Document AI. Możesz teraz używać tego procesora do analizowania faktur tak samo jak w przypadku każdego procesora specjalistycznego.

Aby dowiedzieć się, jak obsługiwać odpowiedź przetwarzania, zapoznaj się z samouczkiem dotyczącym procesorów specjalistycznych.

Czyszczenie

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

  • W Cloud Console otwórz stronę Zarządzanie zasobami.
  • Na liście projektów wybierz projekt, a następnie 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.