Document AI Workbench - การฝึกปรับปรุง

1. บทนำ

Document AI เป็นโซลูชันความเข้าใจเอกสารที่ใช้ Unstructured Data เช่น เอกสาร อีเมล และอื่นๆ เพื่อให้ข้อมูลเข้าใจ วิเคราะห์ และนำไปใช้ได้ง่ายขึ้น

การใช้การฝึกเพิ่มเติมผ่าน Document AI Workbench จะช่วยให้คุณประมวลผลเอกสารได้แม่นยำยิ่งขึ้นด้วยการระบุตัวอย่างที่มีป้ายกำกับเพิ่มเติมสำหรับประเภทเอกสารเฉพาะทาง และสร้างโมเดลเวอร์ชันใหม่

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

ชุดข้อมูลเอกสารที่ใช้ในแล็บนี้ประกอบด้วยใบแจ้งหนี้ที่สร้างขึ้นแบบสุ่มสำหรับบริษัทท่อสมมติ

ข้อกำหนดเบื้องต้น

Codelab นี้สร้างขึ้นจากเนื้อหาที่นำเสนอใน Codelab อื่นๆ ของ Document AI

ขอแนะนำให้คุณทำ Codelab ต่อไปนี้ให้เสร็จก่อนดำเนินการต่อ

สิ่งที่คุณจะได้เรียนรู้

  • กำหนดค่าการฝึกเพิ่มเติมสำหรับโปรเซสเซอร์ตัวแยกวิเคราะห์ใบแจ้งหนี้
  • ติดป้ายกำกับข้อมูลการฝึก Document AI โดยใช้เครื่องมือประกอบ
  • ฝึกโมเดลเวอร์ชันใหม่
  • ประเมินความแม่นยำของโมเดลเวอร์ชันใหม่

สิ่งที่คุณต้องมี

  • โปรเจ็กต์ Google Cloud
  • เบราว์เซอร์ เช่น Chrome หรือ Firefox

2. การเริ่มตั้งค่า

Codelab นี้ถือว่าคุณได้ทำตามขั้นตอนการตั้งค่า Document AI ที่ระบุไว้ใน Codelab เบื้องต้นแล้ว

โปรดทำตามขั้นตอนต่อไปนี้ก่อนดำเนินการต่อ

3. สร้างโปรเซสเซอร์

คุณต้องสร้างโปรแกรมประมวลผล Invoice Parser ก่อนจึงจะใช้ใน Lab นี้ได้

  1. ในคอนโซล ให้ไปที่หน้าภาพรวมของ Document AI

docai-uptraining-codelab-01

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

docai-uptraining-codelab-02

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

docai-uptraining-codelab-03

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

docai-uptraining-codelab-04

4. สร้างชุดข้อมูล

ในการฝึกโปรเซสเซอร์ เราจะต้องสร้างชุดข้อมูลที่มีข้อมูลการฝึกและการทดสอบเพื่อช่วยให้โปรเซสเซอร์ระบุเอนทิตีที่เราต้องการแยก

คุณจะต้องสร้าง Bucket ใหม่ใน Cloud Storage เพื่อจัดเก็บชุดข้อมูล หมายเหตุ: ไม่ควรเป็น Bucket เดียวกันกับที่จัดเก็บเอกสารในปัจจุบัน

  1. เปิด 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. ไปที่แท็บชุดข้อมูล แล้วคลิกสร้างชุดข้อมูล

docai-uptraining-codelab-05

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

docai-uptraining-codelab-06

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

docai-uptraining-codelab-07

5. นำเข้าเอกสารทดสอบ

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

  1. คลิกนำเข้าเอกสาร

docai-uptraining-codelab-08

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

docai-uptraining-codelab-09

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

docai-uptraining-codelab-10

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

docai-uptraining-codelab-11

6. ติดป้ายกำกับเอกสารทดสอบ

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

  1. ตอนนี้คุณควรอยู่ในคอนโซลการติดป้ายกำกับ ซึ่งจะมีลักษณะดังนี้

docai-uptraining-codelab-12

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

docai-uptraining-codelab-13

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

docai-uptraining-codelab-14

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

docai-uptraining-codelab-15

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

docai-uptraining-codelab-16

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

docai-uptraining-codelab-17

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

docai-uptraining-codelab-18

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

docai-uptraining-codelab-19

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

docai-uptraining-codelab-20

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

docai-uptraining-codelab-21

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

docai-uptraining-codelab-22

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

docai-uptraining-codelab-23

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

docai-uptraining-codelab-24

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

docai-uptraining-codelab-25

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

docai-uptraining-codelab-26

  1. รายการป้ายกำกับและค่าทั้งหมดมีดังนี้

ชื่อป้ายกำกับ

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

ข้อต่อแบบสนับมือ

line_item/quantity

9

line_item/unit_price

74.43

line_item/amount

669.87

line_item/description

ท่อ PVC 12 นิ้ว

line_item/quantity

7

line_item/unit_price

15.90

line_item/amount

111.30

line_item/description

ท่อทองแดง

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. กำหนดเอกสารให้กับชุดการฝึก

ตอนนี้คุณควรจะกลับไปที่คอนโซลการจัดการชุดข้อมูลแล้ว โปรดสังเกตว่าจำนวนเอกสารที่มีป้ายกำกับและไม่มีป้ายกำกับ รวมถึงจำนวนป้ายกำกับที่ใช้งานอยู่มีการเปลี่ยนแปลง

docai-uptraining-codelab-27

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

docai-uptraining-codelab-28

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

docai-uptraining-codelab-29

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

docai-uptraining-codelab-30

8. นำเข้าข้อมูลที่ติดป้ายกำกับไว้ล่วงหน้า

การฝึกเพิ่มเติมของ Document AI ต้องมีเอกสารอย่างน้อย 10 รายการทั้งในชุดการฝึกและชุดการทดสอบ รวมถึงอินสแตนซ์ของแต่ละป้ายกำกับ 10 รายการในแต่ละชุด

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

การติดป้ายกำกับเอกสาร 100 รายการด้วยตนเองจะใช้เวลานาน เราจึงมีเอกสารที่ติดป้ายกำกับไว้ล่วงหน้าซึ่งคุณสามารถนำเข้าไปใช้ในห้องทดลองนี้ได้

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

  1. คลิกนำเข้าเอกสาร

docai-uptraining-codelab-30

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

docai-uptraining-codelab-31

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

docai-uptraining-codelab-32

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

docai-uptraining-codelab-33

9. แก้ไขป้ายกำกับ

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

  1. คลิกจัดการป้ายกำกับที่มุมซ้ายล่าง

docai-uptraining-codelab-33

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

docai-uptraining-codelab-34

  1. ใช้ช่องทำเครื่องหมายและปุ่มปิดใช้/เปิดใช้เพื่อทำเครื่องหมายเฉพาะป้ายกำกับต่อไปนี้เป็นเปิดใช้
    • 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. เมื่อเสร็จแล้ว คอนโซลควรมีลักษณะดังนี้ จากนั้นคลิกบันทึก

docai-uptraining-codelab-35

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

docai-uptraining-codelab-36

10. ไม่บังคับ: ติดป้ายกำกับเอกสารที่นำเข้าใหม่โดยอัตโนมัติ

เมื่อนำเข้าเอกสารที่ไม่มีป้ายกำกับสำหรับผู้ประมวลผลที่มีเวอร์ชันผู้ประมวลผลที่ใช้งานอยู่ คุณสามารถใช้การติดป้ายกำกับอัตโนมัติเพื่อประหยัดเวลาในการติดป้ายกำกับได้

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

11. ฝึกโมเดลเพิ่มเติม

ตอนนี้เราพร้อมที่จะเริ่มฝึกตัวแยกวิเคราะห์ใบแจ้งหนี้แล้ว

  1. คลิกฝึกเวอร์ชันใหม่

docai-uptraining-codelab-36

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

docai-uptraining-codelab-37

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

docai-uptraining-codelab-38

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

docai-uptraining-codelab-39

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

docai-uptraining-codelab-40

12. ทดสอบโมเดลเวอร์ชันใหม่

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

  1. ไปที่หน้าจัดการเวอร์ชัน คุณดูสถานะปัจจุบันและคะแนน F1 ได้ที่นี่

docai-uptraining-codelab-41

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

docai-uptraining-codelab-42

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

docai-uptraining-codelab-43

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

docai-uptraining-codelab-44

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

  1. คลิกอัปโหลดเอกสารทดสอบ แล้วเลือกไฟล์ PDF

docai-uptraining-codelab-45

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

docai-uptraining-codelab-46

13. บทสรุป

ขอแสดงความยินดี คุณใช้ Document AI เพื่ออัปเทรน Invoice Parser เรียบร้อยแล้ว ตอนนี้คุณใช้โปรเซสเซอร์นี้เพื่อแยกวิเคราะห์ใบแจ้งหนี้ได้เช่นเดียวกับโปรเซสเซอร์เฉพาะทางอื่นๆ

คุณดูวิธีจัดการการตอบกลับการประมวลผลได้ใน Specialized Processors Codelab

การล้างข้อมูล

โปรดดำเนินการดังนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้

  • ใน Cloud Console ให้ไปที่หน้าจัดการทรัพยากร
  • เลือกโปรเจ็กต์ในรายการโปรเจ็กต์ แล้วคลิกลบ
  • ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์

แหล่งข้อมูล

ใบอนุญาต

ผลงานนี้ได้รับอนุญาตภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์สำหรับยอมรับสิทธิของผู้สร้าง (Creative Commons Attribution License) 2.0 แบบทั่วไป