1. บทนำ
Document AI เป็นโซลูชันความเข้าใจเอกสารที่ใช้ Unstructured Data เช่น เอกสาร อีเมล และอื่นๆ เพื่อให้ข้อมูลเข้าใจ วิเคราะห์ และนำไปใช้ได้ง่ายขึ้น
การใช้การฝึกเพิ่มเติมผ่าน Document AI Workbench จะช่วยให้คุณประมวลผลเอกสารได้แม่นยำยิ่งขึ้นด้วยการระบุตัวอย่างที่มีป้ายกำกับเพิ่มเติมสำหรับประเภทเอกสารเฉพาะทาง และสร้างโมเดลเวอร์ชันใหม่
ในแล็บนี้ คุณจะได้สร้างโปรเซสเซอร์ตัวแยกวิเคราะห์ใบแจ้งหนี้ กำหนดค่าโปรเซสเซอร์สำหรับการฝึกเพิ่มเติม ติดป้ายกำกับเอกสารตัวอย่าง และฝึกเพิ่มเติมโปรเซสเซอร์
ชุดข้อมูลเอกสารที่ใช้ในแล็บนี้ประกอบด้วยใบแจ้งหนี้ที่สร้างขึ้นแบบสุ่มสำหรับบริษัทท่อสมมติ
ข้อกำหนดเบื้องต้น
Codelab นี้สร้างขึ้นจากเนื้อหาที่นำเสนอใน Codelab อื่นๆ ของ Document AI
ขอแนะนำให้คุณทำ Codelab ต่อไปนี้ให้เสร็จก่อนดำเนินการต่อ
- การรู้จำอักขระด้วยภาพ (OCR) ด้วย Document AI (Python)
- การแยกวิเคราะห์แบบฟอร์มด้วย Document AI (Python)
- โปรเซสเซอร์เฉพาะทางด้วย Document AI (Python)
- การจัดการโปรเซสเซอร์ของ Document AI ด้วย Python
- Document AI: Human in the Loop
สิ่งที่คุณจะได้เรียนรู้
- กำหนดค่าการฝึกเพิ่มเติมสำหรับโปรเซสเซอร์ตัวแยกวิเคราะห์ใบแจ้งหนี้
- ติดป้ายกำกับข้อมูลการฝึก Document AI โดยใช้เครื่องมือประกอบ
- ฝึกโมเดลเวอร์ชันใหม่
- ประเมินความแม่นยำของโมเดลเวอร์ชันใหม่
สิ่งที่คุณต้องมี
2. การเริ่มตั้งค่า
Codelab นี้ถือว่าคุณได้ทำตามขั้นตอนการตั้งค่า Document AI ที่ระบุไว้ใน Codelab เบื้องต้นแล้ว
โปรดทำตามขั้นตอนต่อไปนี้ก่อนดำเนินการต่อ
3. สร้างโปรเซสเซอร์
คุณต้องสร้างโปรแกรมประมวลผล Invoice Parser ก่อนจึงจะใช้ใน Lab นี้ได้
- ในคอนโซล ให้ไปที่หน้าภาพรวมของ Document AI

- คลิกสร้างโปรเซสเซอร์ เลื่อนลงไปที่เฉพาะทาง (หรือพิมพ์ "Invoice Parser" ในแถบค้นหา) แล้วเลือก Invoice Parser

- ตั้งชื่อว่า
codelab-invoice-uptraining(หรือชื่ออื่นที่คุณจำได้) แล้วเลือกภูมิภาคที่ใกล้ที่สุดในรายการ

- คลิกสร้างเพื่อสร้างโปรเซสเซอร์ จากนั้นคุณจะเห็นหน้าภาพรวมของตัวประมวลผล

4. สร้างชุดข้อมูล
ในการฝึกโปรเซสเซอร์ เราจะต้องสร้างชุดข้อมูลที่มีข้อมูลการฝึกและการทดสอบเพื่อช่วยให้โปรเซสเซอร์ระบุเอนทิตีที่เราต้องการแยก
คุณจะต้องสร้าง Bucket ใหม่ใน Cloud Storage เพื่อจัดเก็บชุดข้อมูล หมายเหตุ: ไม่ควรเป็น Bucket เดียวกันกับที่จัดเก็บเอกสารในปัจจุบัน
- เปิด Cloud Shell แล้วเรียกใช้คำสั่งต่อไปนี้เพื่อสร้าง Bucket หรือจะสร้าง Bucket ใหม่ใน Cloud Console ก็ได้ บันทึกชื่อที่เก็บข้อมูลนี้ไว้ คุณจะต้องใช้ในภายหลัง
export PROJECT_ID=$(gcloud config get-value project)
gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
- ไปที่แท็บชุดข้อมูล แล้วคลิกสร้างชุดข้อมูล

- วางชื่อที่เก็บข้อมูลจากที่เก็บข้อมูลที่สร้างในขั้นตอนที่ 1 ลงในช่องเส้นทางปลายทาง (ไม่ต้องใส่
gs://)

- รอให้ระบบสร้างชุดข้อมูล จากนั้นระบบจะนำคุณไปยังหน้าการจัดการชุดข้อมูล

5. นำเข้าเอกสารทดสอบ
ตอนนี้เรามานำเข้า PDF ใบแจ้งหนี้ตัวอย่างลงในชุดข้อมูลกัน
- คลิกนำเข้าเอกสาร

- เรามีไฟล์ PDF ตัวอย่างให้คุณใช้ในแล็บนี้ คัดลอกและวางลิงก์ต่อไปนี้ลงในช่องเส้นทางแหล่งที่มา ปล่อยให้ "การแยกข้อมูล" เป็น "ไม่ได้กำหนด" ไว้ก่อน คลิกนำเข้า
cloud-samples-data/documentai/codelabs/uptraining/pdfs

- รอให้นำเข้าเอกสาร การทดสอบของฉันใช้เวลาไม่ถึง 1 นาที

- เมื่อการนำเข้าเสร็จสมบูรณ์แล้ว คุณควรเห็นเอกสารใน UI การจัดการชุดข้อมูล คลิกเพื่อเข้าสู่คอนโซลการติดป้ายกำกับ

6. ติดป้ายกำกับเอกสารทดสอบ
จากนั้น เราจะระบุองค์ประกอบข้อความและป้ายกำกับสำหรับเอนทิตีที่ต้องการแยก ระบบจะใช้ป้ายกำกับเหล่านี้เพื่อฝึกโมเดลให้แยกวิเคราะห์โครงสร้างเอกสารที่เฉพาะเจาะจงนี้และระบุประเภทที่ถูกต้อง
- ตอนนี้คุณควรอยู่ในคอนโซลการติดป้ายกำกับ ซึ่งจะมีลักษณะดังนี้

- คลิกเครื่องมือ "เลือกข้อความ" จากนั้นไฮไลต์ข้อความ "McWilliam Piping International Piping Company" แล้วกำหนดป้ายกำกับ
supplier_nameคุณสามารถใช้ตัวกรองข้อความเพื่อค้นหาชื่อป้ายกำกับได้

- ไฮไลต์ข้อความ "14368 Pipeline Ave Chino, CA 91710" แล้วกำหนดป้ายกำกับ
supplier_address

- ไฮไลต์ข้อความ "10001" แล้วกำหนดป้ายกำกับ
invoice_id

- ไฮไลต์ข้อความ "2020-01-02" แล้วกำหนดป้ายกำกับ
due_date

- เปลี่ยนไปใช้เครื่องมือ "กรอบล้อมรอบ" ไฮไลต์ข้อความ "Knuckle Couplers" แล้วกำหนดป้ายกำกับ
line_item/description

- ไฮไลต์ข้อความ "9" แล้วกำหนดป้ายกำกับ
line_item/quantity

- ไฮไลต์ข้อความ "74.43" แล้วกำหนดป้ายกำกับ
line_item/unit_price

- ไฮไลต์ข้อความ "669.87" แล้วกำหนดป้ายกำกับ
line_item/amount

- ทำซ้ำ 4 ขั้นตอนก่อนหน้าสำหรับรายการโฆษณาอีก 2 รายการ เมื่อเสร็จแล้ว ควรมีลักษณะดังนี้

- ไฮไลต์ข้อความ "1,419.57" (ข้างราคารวมย่อย) แล้วกำหนดป้ายกำกับ
net_amount

- ไฮไลต์ข้อความ "113.57" (ข้างภาษี) แล้วกำหนดป้ายกำกับ
total_tax_amount

- ไฮไลต์ข้อความ "1,533.14" (ข้าง "ทั้งหมด") แล้วกำหนดป้ายกำกับ
total_amount

- ไฮไลต์อักขระ "$" ตัวใดตัวหนึ่ง แล้วกำหนดป้ายกำกับ
currency

- เมื่อติดป้ายกำกับเสร็จแล้ว เอกสารควรมีลักษณะดังนี้ โปรดทราบว่าคุณปรับป้ายกำกับเหล่านี้ได้โดยคลิกช่องสี่เหลี่ยมล้อมรอบในเอกสาร หรือชื่อ/ค่าป้ายกำกับในเมนูด้านซ้าย คลิกบันทึกเมื่อติดป้ายกำกับเสร็จแล้ว

- รายการป้ายกำกับและค่าทั้งหมดมีดังนี้
ชื่อป้ายกำกับ | Text |
| McWilliam Piping International Piping Company |
| 14368 Pipeline Ave Chino, CA 91710 |
| 10001 |
| 2020-01-02 |
| ข้อต่อแบบสนับมือ |
| 9 |
| 74.43 |
| 669.87 |
| ท่อ PVC 12 นิ้ว |
| 7 |
| 15.90 |
| 111.30 |
| ท่อทองแดง |
| 7 |
| 91.20 |
| 638.40 |
| 1,419.57 |
| 113.57 |
| 1,533.14 |
| $ |
7. กำหนดเอกสารให้กับชุดการฝึก
ตอนนี้คุณควรจะกลับไปที่คอนโซลการจัดการชุดข้อมูลแล้ว โปรดสังเกตว่าจำนวนเอกสารที่มีป้ายกำกับและไม่มีป้ายกำกับ รวมถึงจำนวนป้ายกำกับที่ใช้งานอยู่มีการเปลี่ยนแปลง

- เราต้องกำหนดเอกสารนี้ให้กับชุด "การฝึก" หรือ "การทดสอบ" คลิกเอกสาร

- คลิกกำหนดให้กับชุด แล้วคลิกการฝึกอบรม

- โปรดสังเกตว่าตัวเลขการแยกข้อมูลมีการเปลี่ยนแปลง

8. นำเข้าข้อมูลที่ติดป้ายกำกับไว้ล่วงหน้า
การฝึกเพิ่มเติมของ Document AI ต้องมีเอกสารอย่างน้อย 10 รายการทั้งในชุดการฝึกและชุดการทดสอบ รวมถึงอินสแตนซ์ของแต่ละป้ายกำกับ 10 รายการในแต่ละชุด
เราขอแนะนำให้มีเอกสารอย่างน้อย 50 รายการในแต่ละชุดที่มีอินสแตนซ์ของป้ายกำกับแต่ละรายการ 50 รายการเพื่อให้ได้ประสิทธิภาพสูงสุด โดยทั่วไปแล้ว ข้อมูลการฝึกที่มากขึ้นจะทำให้ความแม่นยำสูงขึ้น
การติดป้ายกำกับเอกสาร 100 รายการด้วยตนเองจะใช้เวลานาน เราจึงมีเอกสารที่ติดป้ายกำกับไว้ล่วงหน้าซึ่งคุณสามารถนำเข้าไปใช้ในห้องทดลองนี้ได้
คุณสามารถนำเข้าไฟล์เอกสารที่ติดป้ายกำกับไว้ล่วงหน้าในรูปแบบ Document.json ซึ่งอาจเป็นผลลัพธ์จากการเรียกใช้โปรเซสเซอร์และยืนยันความถูกต้องโดยใช้การตรวจสอบโดยมนุษย์ (HITL)
- คลิกนำเข้าเอกสาร

- คัดลอก/วางเส้นทาง Cloud Storage ต่อไปนี้และกำหนดให้กับชุดการฝึก
cloud-samples-data/documentai/codelabs/uptraining/training
- คลิกเพิ่มที่เก็บข้อมูลอื่น จากนั้นคัดลอก/วางเส้นทาง Cloud Storage ต่อไปนี้และกำหนดให้กับชุดทดสอบ
cloud-samples-data/documentai/codelabs/uptraining/test

- คลิกนำเข้าและรอให้นำเข้าเอกสาร การดำเนินการนี้จะใช้เวลานานกว่าครั้งที่แล้วเนื่องจากมีเอกสารที่ต้องประมวลผลมากขึ้น ในการทดสอบของฉัน ขั้นตอนนี้ใช้เวลาประมาณ 6 นาที คุณออกจากหน้านี้และกลับมาใหม่ภายหลังได้

- เมื่อเสร็จแล้ว คุณควรเห็นเอกสารในหน้าการจัดการชุดข้อมูล

9. แก้ไขป้ายกำกับ
เอกสารตัวอย่างที่เราใช้ในตัวอย่างนี้ไม่ได้มีป้ายกำกับทั้งหมดที่ตัวแยกวิเคราะห์ใบแจ้งหนี้รองรับ เราจะต้องทำเครื่องหมายป้ายกำกับที่เราไม่ได้ใช้ว่าไม่ได้ใช้งานก่อนการฝึก นอกจากนี้ คุณยังทำตามขั้นตอนที่คล้ายกันเพื่อเพิ่มป้ายกำกับที่กำหนดเองก่อนการอัปเทรนได้ด้วย
- คลิกจัดการป้ายกำกับที่มุมซ้ายล่าง

- ตอนนี้คุณควรอยู่ในคอนโซลการจัดการป้ายกำกับแล้ว

- ใช้ช่องทำเครื่องหมายและปุ่มปิดใช้/เปิดใช้เพื่อทำเครื่องหมายเฉพาะป้ายกำกับต่อไปนี้เป็นเปิดใช้
currencydue_dateinvoice_idline_item/amountline_item/descriptionline_item/quantityline_item/unit_pricenet_amountsupplier_addresssupplier_nametotal_amounttotal_tax_amount
- เมื่อเสร็จแล้ว คอนโซลควรมีลักษณะดังนี้ จากนั้นคลิกบันทึก

- คลิกลูกศรย้อนกลับเพื่อกลับไปที่คอนโซลการจัดการชุดข้อมูล โปรดทราบว่าป้ายกำกับที่มีอินสแตนซ์เป็น 0 จะได้รับการทำเครื่องหมายว่าไม่ได้ใช้งาน

10. ไม่บังคับ: ติดป้ายกำกับเอกสารที่นำเข้าใหม่โดยอัตโนมัติ
เมื่อนำเข้าเอกสารที่ไม่มีป้ายกำกับสำหรับผู้ประมวลผลที่มีเวอร์ชันผู้ประมวลผลที่ใช้งานอยู่ คุณสามารถใช้การติดป้ายกำกับอัตโนมัติเพื่อประหยัดเวลาในการติดป้ายกำกับได้
- ในหน้าฝึก ให้คลิกนำเข้าเอกสาร
- คัดลอกและวางเส้นทาง ต่อไปนี้ ไดเรกทอรีนี้มี PDF ใบแจ้งหนี้ที่ไม่มีป้ายกำกับ 5 รายการ เลือกการฝึกจากรายการแบบเลื่อนลงการแยกข้อมูล
cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled - ในส่วนการติดป้ายกำกับอัตโนมัติ ให้เลือกช่องทําเครื่องหมายนําเข้าด้วยการติดป้ายกํากับอัตโนมัติ
- เลือกเวอร์ชันโปรเซสเซอร์ที่มีอยู่เพื่อติดป้ายกำกับเอกสาร
- เช่น
pretrained-invoice-v1.3-2022-07-15
- คลิกนำเข้าและรอให้นำเข้าเอกสาร คุณออกจากหน้านี้และกลับมาใหม่ภายหลังได้
- เมื่อดำเนินการเสร็จแล้ว เอกสารจะปรากฏในหน้าฝึกในส่วนติดป้ายกำกับอัตโนมัติ
- คุณไม่สามารถใช้เอกสารที่มีป้ายกำกับอัตโนมัติในการฝึกหรือทดสอบได้โดยไม่ทำเครื่องหมายว่ามีป้ายกำกับ ไปที่ส่วนติดป้ายกำกับอัตโนมัติเพื่อดูเอกสารที่ติดป้ายกำกับอัตโนมัติ
- เลือกเอกสารแรกเพื่อเข้าสู่คอนโซลการติดป้ายกำกับ
- ยืนยันป้ายกำกับ กรอบล้อม และค่าเพื่อให้แน่ใจว่าถูกต้อง ติดป้ายกำกับค่าที่ละไว้
- เลือกทำเครื่องหมายว่าติดป้ายกำกับแล้วเมื่อเสร็จแล้ว
- ทำซ้ำการยืนยันป้ายกำกับสำหรับเอกสารที่ติดป้ายกำกับอัตโนมัติแต่ละรายการ จากนั้นกลับไปที่หน้าฝึกเพื่อใช้ข้อมูลในการฝึก
11. ฝึกโมเดลเพิ่มเติม
ตอนนี้เราพร้อมที่จะเริ่มฝึกตัวแยกวิเคราะห์ใบแจ้งหนี้แล้ว
- คลิกฝึกเวอร์ชันใหม่

- ตั้งชื่อเวอร์ชันที่คุณจะจำได้ เช่น
codelab-uptraining-test-1เวอร์ชันฐานคือเวอร์ชันโมเดลที่ใช้สร้างเวอร์ชันใหม่นี้ หากใช้โปรเซสเซอร์ใหม่ ตัวเลือกเดียวที่ควรมีคือ Google Pretrained Next พร้อมการฝึกเพิ่มเติม

- (ไม่บังคับ) คุณยังเลือกดูสถิติป้ายกำกับเพื่อดูเมตริกเกี่ยวกับป้ายกำกับในชุดข้อมูลได้ด้วย

- คลิกเริ่มการฝึกอบรมเพื่อเริ่มกระบวนการฝึกอบรมเพิ่มเติม ระบบควรเปลี่ยนเส้นทางคุณไปยังหน้าการจัดการชุดข้อมูล คุณดูสถานะการฝึกได้ทางด้านขวา การฝึกจะใช้เวลา 2-3 ชั่วโมงจึงจะเสร็จสิ้น คุณออกจากหน้านี้และกลับมาใหม่ภายหลังได้

- หากคลิกชื่อเวอร์ชัน ระบบจะนำคุณไปยังหน้าจัดการเวอร์ชัน ซึ่งจะแสดงรหัสเวอร์ชันและสถานะปัจจุบันของงานการฝึก

12. ทดสอบโมเดลเวอร์ชันใหม่
เมื่อ Training Job เสร็จสมบูรณ์ (ใช้เวลาประมาณ 1 ชั่วโมงในการทดสอบของฉัน) คุณจะทดสอบโมเดลเวอร์ชันใหม่และเริ่มใช้เพื่อการคาดการณ์ได้
- ไปที่หน้าจัดการเวอร์ชัน คุณดูสถานะปัจจุบันและคะแนน F1 ได้ที่นี่

- เราจะต้องติดตั้งใช้งานโมเดลเวอร์ชันนี้ก่อนจึงจะใช้งานได้ คลิกจุดแนวตั้งทางด้านขวา แล้วเลือกติดตั้งใช้งานเวอร์ชัน

- เลือกติดตั้งใช้งานจากหน้าต่างป๊อปอัปเมื่อรอให้เวอร์ชันติดตั้งใช้งาน ซึ่งอาจใช้เวลาดำเนินการสักครู่ หลังจากที่ติดตั้งใช้งานแล้ว คุณยังตั้งค่าเวอร์ชันนี้เป็นเวอร์ชันเริ่มต้นได้ด้วย

- เมื่อติดตั้งใช้งานเสร็จแล้ว ให้ไปที่แท็บประเมิน จากนั้นคลิกเมนูแบบเลื่อนลงของเวอร์ชัน แล้วเลือกเวอร์ชันที่เราเพิ่งสร้าง

- ในหน้านี้ คุณสามารถดูเมตริกการประเมิน รวมถึงคะแนน F1, ความแม่นยำ และการเรียกคืนสำหรับทั้งเอกสารและป้ายกำกับแต่ละรายการ อ่านข้อมูลเพิ่มเติมเกี่ยวกับเมตริกเหล่านี้ได้ในเอกสารประกอบของ AutoML
- ดาวน์โหลดไฟล์ PDF ที่ลิงก์ไว้ด้านล่าง นี่คือเอกสารตัวอย่างที่ไม่ได้รวมอยู่ในชุดการฝึกหรือชุดทดสอบ
- คลิกอัปโหลดเอกสารทดสอบ แล้วเลือกไฟล์ PDF

- เอนทิตีที่แยกออกมาควรมีลักษณะดังนี้

13. บทสรุป
ขอแสดงความยินดี คุณใช้ Document AI เพื่ออัปเทรน Invoice Parser เรียบร้อยแล้ว ตอนนี้คุณใช้โปรเซสเซอร์นี้เพื่อแยกวิเคราะห์ใบแจ้งหนี้ได้เช่นเดียวกับโปรเซสเซอร์เฉพาะทางอื่นๆ
คุณดูวิธีจัดการการตอบกลับการประมวลผลได้ใน Specialized Processors Codelab
การล้างข้อมูล
โปรดดำเนินการดังนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
- ใน Cloud Console ให้ไปที่หน้าจัดการทรัพยากร
- เลือกโปรเจ็กต์ในรายการโปรเจ็กต์ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์
แหล่งข้อมูล
- เอกสารประกอบเกี่ยวกับ Document AI Workbench
- อนาคตของเอกสาร - เพลย์ลิสต์ YouTube
- เอกสารประกอบเกี่ยวกับ Document AI
- ไลบรารีของไคลเอ็นต์ Python สำหรับ Document AI
- ตัวอย่าง Document AI
ใบอนุญาต
ผลงานนี้ได้รับอนุญาตภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์สำหรับยอมรับสิทธิของผู้สร้าง (Creative Commons Attribution License) 2.0 แบบทั่วไป