Document AI Workbench - Melakukan Pelatihan

1. Pengantar

Document AI adalah solusi pemahaman dokumen yang mengambil data tidak terstruktur seperti dokumen, email, dan lainnya, kemudian membuat data tersebut lebih mudah dipahami, dianalisis, serta digunakan.

Dengan menggunakan uptraining melalui Document AI Workbench, Anda dapat mencapai akurasi pemrosesan dokumen yang lebih tinggi dengan memberikan contoh berlabel tambahan untuk Jenis Dokumen Khusus dan membuat versi model baru.

Di lab ini, Anda akan membuat prosesor Parser Invoice, mengonfigurasi prosesor untuk melakukan uptraining, memberi label dokumen contoh, dan melatih prosesor.

Set data dokumen yang digunakan di lab ini terdiri dari invoice yang dibuat secara acak untuk sebuah perusahaan pemipaan fiktif.

Prasyarat

Codelab ini dibangun berdasarkan konten yang disajikan dalam Codelab Document AI lainnya.

Sebaiknya Anda menyelesaikan Codelab berikut sebelum melanjutkan.

Yang akan Anda pelajari

  • Mengonfigurasi Uptraining untuk pemroses Parser Invoice.
  • Melabeli data pelatihan Document AI menggunakan alat anotasi.
  • Melatih versi model baru.
  • Evaluasi keakuratan versi model baru.

Yang akan Anda butuhkan

2. Mempersiapkan

Codelab ini akan menganggap Anda telah menyelesaikan langkah-langkah Penyiapan Document AI yang tercantum di Codelab Pengantar.

Harap selesaikan langkah-langkah berikut sebelum melanjutkan:

3. Membuat Prosesor

Anda harus membuat prosesor Parser Invoice terlebih dahulu yang akan digunakan di lab ini.

  1. Di konsol, buka halaman Document AI Overview.

docai-uptraining-codelab-01

  1. Klik Buat Pemroses, scroll ke bawah ke bagian Khusus (atau ketik "Parser Invoice" di kotak penelusuran) dan pilih Parser Invoice.

docai-uptraining-codelab-02

  1. Beri nama codelab-invoice-uptraining (Atau hal lain yang akan Anda ingat) dan pilih region terdekat di daftar.

docai-uptraining-codelab-03

  1. Klik Create untuk membuat prosesor. Anda kemudian akan melihat halaman Processor Overview.

docai-uptraining-codelab-04

4. Membuat Set Data

Untuk melatih prosesor, kita harus membuat set data dengan data pelatihan dan pengujian untuk membantu prosesor mengidentifikasi entitas yang ingin kita ekstrak.

Anda harus membuat bucket baru di Cloud Storage untuk menyimpan set data. Catatan: Bucket ini tidak boleh sama dengan bucket tempat dokumen Anda disimpan saat ini.

  1. Buka Cloud Shell dan jalankan perintah berikut untuk membuat bucket. Atau, buat bucket baru di Konsol Cloud. Simpan nama bucket ini karena Anda akan membutuhkannya nanti.
export PROJECT_ID=$(gcloud config get-value project)

gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
  1. Buka tab Dataset dan klik Create Dataset

docai-uptraining-codelab-05

  1. Tempelkan nama bucket dari bucket yang Anda buat di langkah pertama ke kolom Destination Path. (Jangan menyertakan gs://)

docai-uptraining-codelab-06

  1. Tunggu hingga set data dibuat, lalu Anda akan diarahkan ke halaman Dataset management.

docai-uptraining-codelab-07

5. Mengimpor Dokumen Uji

Sekarang, impor contoh pdf faktur ke dalam kumpulan data kita.

  1. Klik Import Documents

docai-uptraining-codelab-08

  1. Kami memiliki PDF sampel untuk Anda gunakan di lab ini. Salin dan tempel link berikut ke kotak Source Path. Biarkan "Data split" sebagai "Unassigned" untuk saat ini. Klik Import.
cloud-samples-data/documentai/codelabs/uptraining/pdfs

docai-uptraining-codelab-09

  1. Tunggu hingga dokumen selesai diimpor. Dalam pengujian yang saya lakukan, waktunya kurang dari 1 menit.

docai-uptraining-codelab-10

  1. Saat impor selesai, Anda akan melihat dokumen ini di UI pengelolaan set data. Klik tombol tersebut untuk masuk ke konsol pelabelan.

docai-uptraining-codelab-11

6. Melabeli Dokumen Uji

Selanjutnya, kita akan mengidentifikasi elemen teks dan label untuk entitas yang akan diekstrak. Label-label ini akan digunakan untuk melatih model kita untuk mengurai struktur dokumen khusus ini dan mengidentifikasi jenis yang benar.

  1. Anda sekarang seharusnya berada di konsol pelabelan, yang akan terlihat seperti ini.

docai-uptraining-codelab-12

  1. Klik "Select Text" Tool, lalu tandai teks "McWilliam Piping International Piping Company" dan beri label supplier_name. Anda dapat menggunakan filter teks untuk mencari nama label.

docai-uptraining-codelab-13

  1. Soroti teks "14368 Pipeline Ave Chino, CA 91710" dan beri label supplier_address.

docai-uptraining-codelab-14

  1. Menyoroti teks "10001" dan beri label invoice_id.

docai-uptraining-codelab-15

  1. Soroti teks "2020-01-02" dan beri label due_date.

docai-uptraining-codelab-16

  1. Beralih ke "Kotak Pembatas" menyediakan alat command line gcloud. Soroti teks "Knuckle Couplers" dan beri label line_item/description.

docai-uptraining-codelab-17

  1. Tandai teks "9" dan beri label line_item/quantity.

docai-uptraining-codelab-18

  1. Tandai teks "74.43" dan beri label line_item/unit_price.

docai-uptraining-codelab-19

  1. Soroti teks "669.87" dan beri label line_item/amount.

docai-uptraining-codelab-20

  1. Ulangi 4 langkah sebelumnya untuk dua item baris berikutnya. Hasilnya akan terlihat seperti ini setelah selesai.

docai-uptraining-codelab-21

  1. Sorot teks "1,419.57" (di samping Subtotal) dan tetapkan label net_amount.

docai-uptraining-codelab-22

  1. Soroti teks "113.57" (di samping Pajak) dan beri label total_tax_amount.

docai-uptraining-codelab-23

  1. Sorot teks "1,533.14" (di samping Total), lalu beri label total_amount.

docai-uptraining-codelab-24

  1. Sorot salah satu dari "$" karakter, lalu beri label currency.

docai-uptraining-codelab-25

  1. Dokumen berlabel akan terlihat seperti ini setelah selesai. Perlu diperhatikan bahwa Anda dapat melakukan penyesuaian pada label ini dengan mengklik kotak pembatas di dokumen atau nama/nilai label di menu sebelah kiri. Klik Simpan setelah selesai memberi label.

docai-uptraining-codelab-26

  1. Berikut adalah daftar lengkap label dan nilai

Nama Label

Teks

supplier_name

Perusahaan Piping Internasional McWilliam Piping

supplier_address

14368 Pipeline Ave Chino, CA 91710

invoice_id

10001

due_date

2020-01-02

line_item/description

Coupler Knuckle

line_item/quantity

9

line_item/unit_price

74,43

line_item/amount

669,87

line_item/description

Pipa PVC 12 Inci

line_item/quantity

7

line_item/unit_price

15,90

line_item/amount

111,30

line_item/description

Pipa Tembaga

line_item/quantity

7

line_item/unit_price

91,20

line_item/amount

638,40

net_amount

1.419,57

total_tax_amount

113,57

total_amount

1.533,14

currency

$

7. Menetapkan Dokumen ke Set Pelatihan

Anda sekarang akan kembali ke konsol Dataset management. Perhatikan bahwa jumlah dokumen Berlabel dan Tidak Berlabel telah berubah, begitu juga jumlah label aktif.

docai-uptraining-codelab-27

  1. Kita perlu menetapkan dokumen ini ke set "Pelatihan"/"Training" atau "Uji"/"Test". Klik Dokumen.

docai-uptraining-codelab-28

  1. Klik Tetapkan untuk Set, lalu klik Pelatihan.

docai-uptraining-codelab-29

  1. Perhatikan bahwa angka Data Split telah berubah.

docai-uptraining-codelab-30

8. Mengimpor Data Pra-Label

Uptraining Document AI memerlukan minimal 10 dokumen dalam set pelatihan dan pengujian, bersama dengan 10 instance dari setiap label di setiap set.

Anda sebaiknya memiliki minimal 50 dokumen di setiap set dengan 50 instance dari setiap label untuk mendapatkan performa terbaik. Makin banyak data pelatihan, umumnya makin tinggi akurasinya.

Perlu waktu lama untuk melabeli 100 dokumen secara manual. Jadi ada beberapa dokumen yang telah diberi label sebelumnya yang dapat Anda impor untuk lab ini.

Anda dapat mengimpor file dokumen yang telah diberi label sebelumnya dalam format Document.json. Ini bisa merupakan hasil dari memanggil prosesor dan memverifikasi keakuratan menggunakan Human in the Loop (HITL).

  1. Klik Import Document.

docai-uptraining-codelab-30

  1. Salin/Tempel jalur Cloud Storage berikut dan tetapkan ke set Training.
cloud-samples-data/documentai/codelabs/uptraining/training
  1. Klik Add Another Bucket. Kemudian Salin/Tempel jalur Cloud Storage berikut dan tetapkan ke set Test.
cloud-samples-data/documentai/codelabs/uptraining/test

docai-uptraining-codelab-31

  1. Klik Import dan tunggu hingga dokumen selesai diimpor. Prosesnya memakan waktu lebih lama daripada sebelumnya karena ada lebih banyak dokumen yang harus diproses. Dalam pengujian yang saya lakukan, waktunya sekitar 6 menit. Anda dapat meninggalkan halaman ini dan kembali lagi nanti.

docai-uptraining-codelab-32

  1. Setelah selesai, Anda akan melihat dokumen di halaman Dataset management.

docai-uptraining-codelab-33

9. Edit Label

Dokumen contoh yang kami gunakan untuk contoh ini tidak berisi setiap label yang didukung oleh Parser Invoice. Sebelum pelatihan, kita harus menandai label yang tidak digunakan sebagai tidak aktif. Anda juga dapat mengikuti langkah-langkah serupa untuk menambahkan label khusus sebelum Uptraining.

  1. Klik Manage Labels di sudut kiri bawah.

docai-uptraining-codelab-33

  1. Anda sekarang seharusnya berada di konsol Label Management.

docai-uptraining-codelab-34

  1. Gunakan Kotak centang dan tombol Disable/Enable untuk menandai HANYA label berikut sebagai Enabled.
    • 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. Konsol akan terlihat seperti ini setelah selesai. Klik Save setelah selesai.

docai-uptraining-codelab-35

  1. Klik panah Back untuk kembali ke konsol Dataset management. Perhatikan bahwa label dengan 0 instance telah ditandai sebagai Tidak Aktif.

docai-uptraining-codelab-36

10. Opsional: Otomatis melabeli dokumen yang baru diimpor

Saat mengimpor dokumen tidak berlabel untuk prosesor dengan versi prosesor yang sudah di-deploy, Anda dapat menggunakan Pelabelan otomatis untuk menghemat waktu pelabelan.

  1. Di halaman Train, klik Import Document.
  2. Salin dan tempel jalur berikut. Direktori ini berisi 5 PDF faktur tanpa label. Dari daftar dropdown Data split, pilih Training.
    cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
    
  3. Di bagian Auto-labeling, pilih kotak centang Import with auto-labeling.
  4. Pilih versi prosesor yang ada untuk melabeli dokumen.
  • Contoh: pretrained-invoice-v1.3-2022-07-15
  1. Klik Import dan tunggu hingga dokumen selesai diimpor. Anda dapat meninggalkan halaman ini dan kembali lagi nanti.
  • Setelah selesai, dokumen akan muncul di halaman Train di bagian Auto-labeled.
  1. Anda tidak dapat menggunakan dokumen berlabel otomatis untuk pelatihan atau pengujian tanpa menandainya sebagai berlabel. Buka bagian Auto-labeled untuk melihat dokumen berlabel otomatis.
  2. Pilih dokumen pertama untuk masuk ke konsol pelabelan.
  3. Verifikasikan label, kotak pembatas, dan nilai untuk memastikan semuanya benar. Beri label pada nilai apa pun yang dihilangkan.
  4. Pilih Mark as labeled setelah selesai.
  5. Ulangi verifikasi label untuk setiap dokumen yang diberi label otomatis, lalu kembali ke halaman Train untuk menggunakan data tersebut untuk pelatihan.

11. Melatih Model

Sekarang, kita siap untuk mulai melatih Parser Invoice kita.

  1. Klik Train New Version

docai-uptraining-codelab-36

  1. Beri nama pada versi Anda dengan nama yang mudah diingat, seperti codelab-uptraining-test-1. Versi Dasar adalah versi model yang akan membuat versi baru ini. Jika Anda menggunakan prosesor baru, satu-satunya opsi adalah Google Pretrained Next with Uptraining

docai-uptraining-codelab-37

  1. (Opsional) Anda juga dapat memilih View Label Stats untuk melihat metrik terkait label tersebut di set data Anda.

docai-uptraining-codelab-38

  1. Klik Start Training untuk memulai proses Uptraining. Anda akan diarahkan ke halaman Dataset management. Anda dapat melihat status pelatihan di sisi kanan. Diperlukan waktu beberapa jam untuk menyelesaikan pelatihan. Anda dapat meninggalkan halaman ini dan kembali lagi nanti.

docai-uptraining-codelab-39

  1. Jika Anda mengklik nama versi, Anda akan diarahkan ke halaman Manage Version, yang menunjukkan ID Versi dan status Tugas Pelatihan saat ini.

docai-uptraining-codelab-40

12. Menguji Versi Model Baru

Setelah Tugas Pelatihan selesai (perlu waktu sekitar 1 jam dalam pengujian saya), Anda sekarang dapat menguji versi model baru dan mulai menggunakannya untuk melakukan prediksi.

  1. Buka halaman Manage Versions. Di sini Anda dapat melihat status terkini dan Skor F1.

docai-uptraining-codelab-41

  1. Kita perlu men-deploy versi model ini sebelum dapat digunakan. Klik titik vertikal di sisi kanan lalu pilih Deploy Version.

docai-uptraining-codelab-42

  1. Pilih Deploy dari jendela pop-up, lalu tunggu hingga versi di-deploy. Prosesnya perlu waktu beberapa menit sampai selesai. Setelah di-deploy, Anda juga dapat menetapkan versi ini sebagai Versi Default.

docai-uptraining-codelab-43

  1. Setelah selesai di-deploy, buka Tab Evaluate. Kemudian klik pada {i>dropdown<i} {i>Version<i} dan pilih versi yang baru dibuat.

docai-uptraining-codelab-44

  1. Di halaman ini, Anda dapat melihat metrik evaluasi termasuk skor F1, Presisi, dan Recall untuk dokumen lengkap serta masing-masing label. Anda dapat membaca info selengkapnya tentang metrik ini di Dokumentasi AutoML.
  2. Download file PDF yang link-nya ada di bawah ini. Ini adalah contoh dokumen yang tidak disertakan dalam set Pelatihan atau Pengujian.

  1. Klik Upload Test Document dan pilih file PDF.

docai-uptraining-codelab-45

  1. Entitas yang diekstrak akan terlihat seperti ini.

docai-uptraining-codelab-46

13. Kesimpulan

Selamat, Anda telah berhasil menggunakan Document AI untuk melatih Parser Invoice. Anda sekarang dapat menggunakan prosesor ini untuk mengurai invoice seperti yang Anda lakukan untuk Prosesor Khusus mana pun.

Anda dapat merujuk ke Codelab Prosesor Khusus untuk meninjau cara menangani respons pemrosesan.

Pembersihan

Agar tidak menimbulkan tagihan ke akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini:

  • Di Cloud Console, buka halaman Mengelola resource.
  • Dalam daftar project, pilih project Anda lalu klik Hapus.
  • Pada dialog, ketik project ID, lalu klik Shut Down untuk menghapus project.

Referensi

Lisensi

Karya ini dilisensikan berdasarkan Lisensi Umum Creative Commons Attribution 2.0.