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.
- Optyczne rozpoznawanie znaków (OCR) w Document AI (Python)
- Analiza formularzy przy użyciu Document AI (Python)
- Specjalne procesory z Document AI (Python)
- Zarządzanie procesorami Document AI w Pythonie
- Document AI: człowiek na zmianę
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.
- W konsoli przejdź na stronę Omówienie Document AI.
- Kliknij Utwórz procesor, przewiń w dół do sekcji Specjalistyczne (lub wpisz „Parser faktur” na pasku wyszukiwania) i wybierz Parser faktur.
- Nadaj mu nazwę
codelab-invoice-uptraining
(albo coś innego, co zapamiętasz) i wybierz na liście najbliższy region.
- Kliknij Utwórz, aby utworzyć procesor. Powinna wyświetlić się strona przeglądu procesora.
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.
- 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"
- Otwórz kartę Zbiór danych i kliknij Utwórz zbiór danych.
- W polu Ścieżka docelowa wklej nazwę zasobnika z zasobnika utworzonego w kroku 1. (Nie uwzględniaj słowa
gs://
)
- Poczekaj na utworzenie zbioru danych. Spowoduje to przekierowanie na stronę zarządzania zbiorem danych.
5. Importuj dokument testowy
Zaimportujmy teraz do zbioru danych przykładowy plik PDF z fakturą.
- Kliknij Importuj dokumenty.
- 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
- Poczekaj na zaimportowanie dokumentu. Zajęło mi to niecałą minutę z testów.
- Po zakończeniu importu dokument powinien pojawić się w interfejsie zarządzania zbiorem danych. Kliknij ją, aby otworzyć konsolę etykietowania.
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.
- Powinna się teraz wyświetlić konsola oznaczania etykietami, która będzie wyglądać mniej więcej tak.
- 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.
- Zaznacz tekst „14368 Pipeline Ave Chino, CA 91710”. i przypisać etykietę
supplier_address
.
- Zaznacz tekst „10001”. i przypisać etykietę
invoice_id
.
- Zaznacz tekst „2020-01-02”. i przypisać etykietę
due_date
.
- Przełącz na opcję „Ramka ograniczająca”. . Wyróżnij tekst „Knuckle Couplers”. i przypisać etykietę
line_item/description
.
- Zaznacz tekst „9”. i przypisać etykietę
line_item/quantity
.
- Zaznacz tekst „74,43”. i przypisać etykietę
line_item/unit_price
.
- Zaznacz tekst „669,87”. i przypisać etykietę
line_item/amount
.
- Powtórz ostatnie 4 kroki dla kolejnych 2 elementów zamówienia. Po zakończeniu powinno ono wyglądać tak.
- Zaznacz tekst „1419,57”. (obok Suma częściowa) i przypisz etykietę
net_amount
.
- Zaznacz tekst „113.57”. (obok Podatek) i przypisz etykietę
total_tax_amount
.
- Zaznacz tekst „1533,14”. (obok Łącznie) i przypisz etykietę
total_amount
.
- Zaznacz jeden ze znaków „$” i przypisz etykietę
currency
.
- 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.
- Oto pełna lista etykiet i wartości
Nazwa etykiety | Text |
| McWilliam Piping International Piping Company |
| 14368 Pipeline Ave Chino, CA 91710 |
| 10001 |
| 2020-01-02 |
| Sprzęgi przegubowe |
| 9 |
| 74,43 |
| 669,87 |
| Rura PVC 12" |
| 7 |
| 15,90 |
| 111,30 |
| Rura miedziana |
| 7 |
| 91,20 |
| 638,40 |
| 1419,57 |
| 113,57 |
| 1533,14 |
| $ |
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.
- Musimy przypisać ten dokument do grupy lub „Test” ustawiony. Kliknij dokument.
- Kliknij Assign to Set (Przypisz do zestawu), a następnie kliknij Training (Szkolenie).
- Zwróć uwagę, że zmieniły się wartości podziału danych.
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).
- Kliknij Importuj dokumenty.
- Skopiuj i wklej poniższą ścieżkę Cloud Storage i przypisz ją do zbioru Training.
cloud-samples-data/documentai/codelabs/uptraining/training
- 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
- 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.
- Po zakończeniu weryfikacji dokumenty powinny pojawić się na stronie zarządzania zbiorem danych.
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.
- W lewym dolnym rogu kliknij Zarządzaj etykietami.
- Powinna być teraz otwarta konsola zarządzania etykietami.
- 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
- Po zakończeniu konsola powinna wyglądać tak. Po zakończeniu kliknij Zapisz.
- 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.
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.
- Na stronie Trenuj kliknij Importuj dokumenty.
- 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
- W sekcji Automatyczne dodawanie etykiet zaznacz pole wyboru Importuj z automatycznym dodawaniem etykiet.
- Wybierz istniejącą wersję procesora, aby oznaczyć dokumenty etykietami.
- Na przykład:
pretrained-invoice-v1.3-2022-07-15
- 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.
- 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.
- Wybierz pierwszy dokument, aby przejść do konsoli do dodawania etykiet.
- Sprawdź, czy etykiety, ramki ograniczające i wartości są prawidłowe. Dodaj etykiety do wszystkich pominiętych wartości.
- Po zakończeniu wybierz opcję Oznacz jako etykietę.
- 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.
- Kliknij Wytrenuj nową wersję.
- 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.
- (Opcjonalnie) Możesz też wybrać Wyświetl statystyki etykiet, aby zobaczyć wskaźniki dotyczące etykiet w zbiorze danych.
- 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.
- Jeśli klikniesz nazwę wersji, otworzy się strona Zarządzanie wersjami, na której znajdziesz identyfikator wersji i bieżący stan zadania treningowego.
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.
- Otwórz stronę Zarządzanie wersjami. Tutaj możesz sprawdzić bieżący stan i wynik F1.
- Aby móc używać tej wersji modelu, musimy ją wdrożyć. Kliknij pionowe kropki po prawej stronie i wybierz Wdróż wersję.
- 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ą.
- Po zakończeniu wdrażania otwórz kartę Ocena. Następnie kliknij menu Wersja i wybierz nowo utworzoną wersję.
- 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.
- Pobierz plik PDF, do którego link znajdziesz poniżej. Ten przykładowy dokument nie został uwzględniony w zestawie treningowym ani testowym.
- Kliknij Prześlij dokument testowy i wybierz plik PDF.
- Wyodrębnione encje powinny wyglądać mniej więcej tak.
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
- Dokumentacja Document AI Workbench
- Przyszłość dokumentów – playlista w YouTube
- Dokumentacja Document AI
- Biblioteka klienta Document AI w Pythonie
- Przykłady Document AI
Licencja
To zadanie jest licencjonowane na podstawie ogólnej licencji Creative Commons Attribution 2.0.