1. บทนำ
Document AI เป็นโซลูชันการทำความเข้าใจเอกสารซึ่งนำข้อมูลที่ไม่มีโครงสร้าง เช่น เอกสาร อีเมล และอื่นๆ รวมถึงช่วยให้เข้าใจ วิเคราะห์ และใช้ข้อมูลได้ง่ายขึ้น
เมื่อใช้ความเชี่ยวชาญพิเศษผ่าน Document AI Workbench คุณสามารถยกระดับความแม่นยำในการประมวลผลเอกสารได้ โดยการให้ตัวอย่างป้ายกำกับเพิ่มเติมสำหรับประเภทเอกสารเฉพาะทางและการสร้างเวอร์ชันใหม่ของโมเดล
ในห้องทดลองนี้ คุณจะสร้างเครื่องมือโปรแกรมแยกวิเคราะห์ใบแจ้งหนี้ กำหนดค่าผู้ประมวลผลสำหรับการฝึกขั้นสูง ติดป้ายกำกับเอกสารตัวอย่าง และฝึกอบรมผู้ประมวลผลข้อมูล
ชุดข้อมูลเอกสารที่ใช้ในห้องทดลองนี้ประกอบไปด้วยใบแจ้งหนี้ที่สร้างขึ้นแบบสุ่มสำหรับบริษัทท่อที่สมมติขึ้น
ข้อกำหนดเบื้องต้น
Codelab นี้สร้างขึ้นจากเนื้อหาที่แสดงใน Codelab อื่นๆ สำหรับ Document AI
เราขอแนะนำให้คุณทำ Codelab ต่อไปนี้ให้เสร็จก่อนดำเนินการต่อ
- การรู้จำอักขระด้วยภาพ (OCR) ด้วย Document AI (Python)
- การแยกวิเคราะห์แบบฟอร์มด้วย Document AI (Python)
- โปรเซสเซอร์เฉพาะทางที่มี Document AI (Python)
- การจัดการตัวประมวลผล Document AI ด้วย Python
- Document AI: การทำงานของมนุษย์
สิ่งที่คุณจะได้เรียนรู้
- กำหนดค่า Uptraining สำหรับโปรแกรมแยกวิเคราะห์ใบแจ้งหนี้
- ติดป้ายกำกับข้อมูลการฝึก AI ของเอกสารโดยใช้เครื่องมือคำอธิบายประกอบ
- ฝึกโมเดลเวอร์ชันใหม่
- ประเมินความแม่นยำของโมเดลเวอร์ชันใหม่
สิ่งที่คุณต้องมี
2. การตั้งค่า
Codelab นี้จะจะถือว่าคุณได้ทำตามขั้นตอนการตั้งค่า Document AI ใน Codelab เบื้องต้นเรียบร้อยแล้ว
โปรดทำตามขั้นตอนต่อไปนี้ก่อนดำเนินการต่อ
3. สร้างโปรเซสเซอร์
คุณต้องสร้างตัวประมวลผลโปรแกรมแยกวิเคราะห์ใบแจ้งหนี้เพื่อใช้กับห้องทดลองนี้ก่อน
- ในคอนโซล ให้ไปที่หน้าภาพรวมของ Document AI
- คลิกสร้างตัวประมวลผล เลื่อนลงไปที่เฉพาะทาง (หรือพิมพ์ "โปรแกรมแยกวิเคราะห์ใบแจ้งหนี้" ในแถบค้นหา) แล้วเลือกโปรแกรมแยกวิเคราะห์ใบแจ้งหนี้
- ตั้งชื่ออุปกรณ์เป็น
codelab-invoice-uptraining
(หรือชื่ออื่นที่คุณจำได้) แล้วเลือกภูมิภาคที่ใกล้เคียงที่สุดในรายการ
- คลิกสร้างเพื่อสร้างโปรเซสเซอร์ จากนั้นคุณจะเห็นหน้าภาพรวมโปรเซสเซอร์
4. สร้างชุดข้อมูล
ในการฝึกผู้ประมวลผลข้อมูล เราจะต้องสร้างชุดข้อมูลพร้อมข้อมูลการฝึกและการทดสอบเพื่อช่วยให้ผู้ประมวลผลข้อมูลระบุเอนทิตีที่ต้องการแยกได้
คุณจะต้องสร้างที่เก็บข้อมูลใหม่ใน Cloud Storage เพื่อจัดเก็บชุดข้อมูล หมายเหตุ: ข้อมูลนี้ไม่ควรเป็นที่เก็บข้อมูลเดียวกันกับที่จัดเก็บเอกสารของคุณในปัจจุบัน
- เปิด Cloud Shell แล้วเรียกใช้คำสั่งต่อไปนี้เพื่อสร้างที่เก็บข้อมูล หรือจะสร้างที่เก็บข้อมูลใหม่ใน 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
- เปลี่ยนเป็น "กล่องขอบเขต" ของ Google ไฮไลต์ข้อความ "ข้อต่อข้อนิ้วมือ" และกำหนดป้ายกำกับ
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 |
| บริษัทท่อนานาชาติแมควิลเลียมไปปิง |
| 14368 Pipeline Ave Chino, CA 91710 |
| 10001 |
| 2020-01-02 |
| ขั้วต่อแบบข้อต่ออ่อน |
| 9 |
| 74.43 |
| 669.87 |
| ท่อ PVC ขนาด 12 นิ้ว |
| 7 |
| 159.00 THB |
| 111.30 |
| ท่อทองแดง |
| 7 |
| 91.20 |
| 638.40 |
| 1,419.57 |
| 113.57 |
| 1,533.14 |
| $ |
7. มอบหมายเอกสารให้กับชุดการฝึก
จากนั้น คุณควรกลับมาที่คอนโซลการจัดการชุดข้อมูล โปรดสังเกตว่าจำนวนเอกสารที่ติดป้ายกำกับและไม่ได้ติดป้ายกำกับมีการเปลี่ยนแปลง รวมถึงจำนวนป้ายกำกับที่ใช้งานอยู่
- เราจำเป็นต้องมอบหมายเอกสารนี้ให้กับฝ่าย "การฝึกอบรม" หรือ "Test" ตั้งค่า คลิกที่เอกสาร
- คลิกมอบหมายให้กับชุด แล้วคลิกการฝึก
- โปรดทราบว่าตัวเลขการแยกข้อมูลมีการเปลี่ยนแปลง
8. นำเข้าข้อมูลที่ติดป้ายกำกับล่วงหน้า
Document AI Uptraining กำหนดให้มีเอกสารอย่างน้อย 10 รายการทั้งในชุดการฝึกและชุดทดสอบ โดยมี 10 อินสแตนซ์ของแต่ละป้ายกำกับในแต่ละชุด
แต่ละชุดควรมีเอกสารอย่างน้อย 50 ฉบับ โดยแต่ละป้ายมี 50 อินสแตนซ์เพื่อประสิทธิภาพที่ดีที่สุด โดยทั่วไปแล้ว ข้อมูลการฝึกที่มากขึ้นจะหมายถึงความแม่นยำที่สูงขึ้น
การติดป้ายกำกับเอกสาร 100 ฉบับด้วยตนเองนั้นใช้เวลานาน ดังนั้นเราจึงมีเอกสารที่ติดป้ายกำกับไว้ล่วงหน้าซึ่งคุณสามารถนำเข้าสำหรับห้องทดลองนี้ได้
คุณสามารถนำเข้าไฟล์เอกสารที่ติดป้ายกำกับไว้ล่วงหน้าในรูปแบบ Document.json
ซึ่งอาจเกิดจากการเรียกใช้โปรเซสเซอร์และยืนยันความถูกต้องโดยใช้ Human in the Loop (HITL)
- คลิกนำเข้าเอกสาร
- คัดลอก/วางเส้นทาง Cloud Storage ต่อไปนี้และกำหนดเส้นทางดังกล่าวให้กับชุดการฝึก
cloud-samples-data/documentai/codelabs/uptraining/training
- คลิกเพิ่มที่เก็บข้อมูลอื่น จากนั้นคัดลอก/วางเส้นทาง Cloud Storage ต่อไปนี้ และกำหนดเส้นทางดังกล่าวให้กับชุดทดสอบ
cloud-samples-data/documentai/codelabs/uptraining/test
- คลิกนำเข้าและรอให้เอกสารนำเข้า การดำเนินการนี้จะใช้เวลานานกว่าครั้งที่แล้วเนื่องจากมีเอกสารให้ประมวลผลมากขึ้น ในการทดสอบ ขั้นตอนนี้ใช้เวลาประมาณ 6 นาที คุณออกจากหน้านี้และกลับมาได้ในภายหลัง
- เมื่อดําเนินการเสร็จแล้ว คุณควรเห็นเอกสารในหน้าการจัดการชุดข้อมูล
9. แก้ไขป้ายกำกับ
เอกสารตัวอย่างที่เราใช้สำหรับตัวอย่างนี้ไม่มีป้ายกำกับทั้งหมดที่โปรแกรมแยกวิเคราะห์ใบแจ้งหนี้รองรับ เราจะต้องทำเครื่องหมายป้ายกำกับที่เราไม่ได้ใช้ว่าไม่ใช้งานก่อนการฝึก นอกจากนี้ คุณยังทำตามขั้นตอนที่คล้ายกันเพื่อเพิ่มป้ายกำกับที่กำหนดเองก่อนเพิ่มการฝึกอบรมได้ด้วย
- คลิกจัดการป้ายกำกับที่มุมล่างซ้าย
- ตอนนี้คุณควรอยู่ในคอนโซลการจัดการป้ายกำกับแล้ว
- เลือกช่องทำเครื่องหมายและปุ่มปิดใช้/เปิดใช้เพื่อทำเครื่องหมายเฉพาะป้ายกำกับต่อไปนี้เป็นเปิดใช้
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
- คอนโซลควรมีลักษณะดังนี้เมื่อเสร็จสมบูรณ์แล้ว คลิกบันทึกเมื่อเสร็จสิ้น
- คลิกลูกศรกลับเพื่อกลับไปที่คอนโซลการจัดการชุดข้อมูล โปรดทราบว่าระบบได้ทำเครื่องหมายป้ายกำกับที่มีอินสแตนซ์ 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 with Uptraining
- (ไม่บังคับ) คุณยังเลือกดูสถิติป้ายกำกับเพื่อดูเมตริกเกี่ยวกับป้ายกำกับในชุดข้อมูลได้ด้วย
- คลิกที่เริ่มการฝึกอบรมเพื่อเริ่มต้นกระบวนการฝึกสอน ระบบควรเปลี่ยนเส้นทางไปยังหน้าการจัดการชุดข้อมูล คุณสามารถดูสถานะการฝึกอบรมได้ทางด้านขวา การฝึกจะใช้เวลา 2-3 ชั่วโมงจึงจะเสร็จสมบูรณ์ คุณออกจากหน้านี้และกลับมาได้ในภายหลัง
- หากคุณคลิกที่ชื่อเวอร์ชัน ระบบจะนำคุณไปยังหน้าจัดการเวอร์ชัน ซึ่งแสดงรหัสเวอร์ชันและสถานะปัจจุบันของงานการฝึก
12. ทดสอบเวอร์ชันใหม่
เมื่องานการฝึกเสร็จสิ้น (การทดสอบใช้เวลาประมาณ 1 ชั่วโมง) คุณก็จะทดสอบโมเดลเวอร์ชันใหม่และเริ่มใช้งานคาดการณ์ได้แล้ว
- ไปที่หน้าจัดการเวอร์ชัน ดูสถานะปัจจุบันและคะแนน F1 ได้ที่นี่
- เราจะต้องทำให้โมเดลเวอร์ชันนี้ใช้งานได้ก่อนจึงจะใช้งานได้ คลิกที่จุดแนวตั้งทางด้านขวา แล้วเลือกทำให้เวอร์ชันใช้งานได้
- เลือกติดตั้งใช้งานจากหน้าต่างป๊อปอัป เมื่อรอให้เวอร์ชันใช้งานได้ ซึ่งอาจใช้เวลาดำเนินการสักครู่ หลังจากติดตั้งใช้งานแล้ว คุณยังตั้งค่าเวอร์ชันนี้เป็นเวอร์ชันเริ่มต้นได้ด้วย
- เมื่อติดตั้งใช้งานเสร็จแล้ว ให้ไปที่แท็บประเมิน จากนั้นคลิกที่เมนูแบบเลื่อนลง เวอร์ชัน และเลือกเวอร์ชันที่เราสร้างขึ้นใหม่
- ในหน้านี้ คุณจะดูเมตริกการประเมินรวมถึงคะแนน F1, ความแม่นยำ และความอ่อนไหวของเอกสารฉบับเต็ม รวมถึงป้ายกำกับแต่ละรายการได้ อ่านข้อมูลเพิ่มเติมเกี่ยวกับเมตริกเหล่านี้ได้ในเอกสารประกอบ AutoML
- ดาวน์โหลดไฟล์ PDF ที่ลิงก์ไว้ด้านล่าง นี่คือเอกสารตัวอย่างที่ไม่รวมอยู่ในชุดการฝึกหรือการทดสอบ
- คลิกอัปโหลดเอกสารทดสอบ และเลือกไฟล์ PDF
- เอนทิตีที่ดึงมาควรมีลักษณะดังนี้
13. บทสรุป
ขอแสดงความยินดี คุณได้ใช้ Document AI เพื่อฝึกโปรแกรมแยกวิเคราะห์ใบแจ้งหนี้เรียบร้อยแล้ว ตอนนี้คุณสามารถใช้ตัวประมวลผลนี้เพื่อแยกวิเคราะห์ใบแจ้งหนี้ได้เช่นเดียวกับที่ผู้ประมวลผลข้อมูลเฉพาะทางใดๆ ก็ตาม
โปรดดู Codelab ผู้ประมวลผลข้อมูลเฉพาะทางเพื่อดูวิธีจัดการคำตอบในการประมวลผล
ล้างข้อมูล
โปรดทำดังนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
- ใน Cloud Console ให้ไปที่หน้าจัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ของคุณ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์แล้วคลิกปิดเครื่องเพื่อลบโปรเจ็กต์
แหล่งข้อมูล
- เอกสารประกอบเกี่ยวกับ Workbench ของ Document AI
- อนาคตของเอกสาร - เพลย์ลิสต์ YouTube
- เอกสารประกอบสำหรับ Document AI
- ไลบรารีของไคลเอ็นต์ Python สำหรับ Document AI
- ตัวอย่าง Document AI
ใบอนุญาต
ผลงานนี้ได้รับอนุญาตภายใต้ใบอนุญาตทั่วไปครีเอทีฟคอมมอนส์แบบระบุแหล่งที่มา 2.0