1. מבוא
Document AI הוא פתרון להבנת מסמכים שלוקח נתונים לא מובנים, כמו מסמכים, אימיילים וכו', כדי שיהיה קל יותר להבין, לנתח ולצרוך את הנתונים.
שימוש באימון משופר (uptraining) דרך Document AI Workbench יאפשר לך לעבד מסמכים מדויקים יותר באמצעות דוגמאות נוספות לתוויות עבור סוגי מסמכים מיוחדים ויצירת גרסה חדשה של המודל.
בשיעור ה-Lab הזה תצרו מעבד חשבוניות לניתוח חשבוניות, תגדירו את המעבד לשיפור האימון, תתייגו מסמכים לדוגמה ותשפרו את המעבד.
מערך הנתונים של המסמכים המשמש בשיעור ה-Lab הזה מורכב מחשבוניות שמופקות באופן אקראי של חברה בדיונית.
דרישות מוקדמות
ה-Codelab הזה מתבסס על תוכן שמוצג ב-Document AI Codelabs אחרים.
מומלץ לבצע את הפעולות הבאות ב-Codelabs לפני שממשיכים.
- זיהוי תווים אופטי (OCR) עם Document AI (Python)
- ניתוח טפסים באמצעות Document AI (Python)
- מעבדים מומחים עם Document AI (Python)
- ניהול מעבדים של Document AI באמצעות Python
- Document AI: אדם במרכז
מה תלמדו
- הגדרת Uptraining למעבד חשבוניות,
- אפשר להוסיף תוויות לנתוני אימון של Document AI באמצעות כלי ההערות.
- אימון גרסה חדשה של מודל.
- להעריך את מידת הדיוק של גרסת המודל החדשה.
מה צריך להכין
2. בתהליך ההגדרה
פלטפורמת ה-Codelab הזו מבוססת על ההנחה שהשלמת את השלבים להגדרת Document AI שמפורטים ב-Introductionory Codelab.
לפני שממשיכים, צריך לבצע את הפעולות הבאות:
3. יצירת מעבד
כדי להשתמש בשיעור ה-Lab הזה, תצטרכו קודם ליצור מעבד חשבוניות.
- נכנסים לדף Document AI Overview במסוף.
- לוחצים על CreateProcess (יצירת מעבד), גוללים למטה אל Specialized (או מקלידים "Invoice Parser" בסרגל החיפוש) ובוחרים באפשרות Invoice Parser.
- נותנים לאזור את השם
codelab-invoice-uptraining
(או משהו אחר שתזכרו) ובוחרים את האזור הקרוב ביותר מהרשימה.
- לוחצים על יצירה כדי ליצור את המעבד. בשלב זה אמור להופיע הדף 'סקירה כללית של מעבד המידע'.
4. יצירת מערך נתונים
כדי לאמן את המעבד, נצטרך ליצור מערך נתונים עם נתוני אימון ובדיקה שיעזרו למעבד לזהות את הישויות שרוצים לחלץ.
תצטרכו ליצור קטגוריה חדשה ב-Cloud Storage כדי לאחסן את מערך הנתונים. הערה: זו לא צריכה להיות אותה קטגוריה שבה המסמכים שלכם מאוחסנים כרגע.
- פותחים את Cloud Shell ומריצים את הפקודות הבאות כדי ליצור קטגוריה. לחלופין, אפשר ליצור קטגוריה חדשה במסוף Cloud. שומרים את שם הקטגוריה, יהיה צורך בו מאוחר יותר.
export PROJECT_ID=$(gcloud config get-value project)
gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
- עוברים לכרטיסייה Dataset ולוחצים על Create Dataset (יצירת מערך נתונים).
- מדביקים את שם הקטגוריה מהקטגוריה שיצרתם בשלב 1 בשדה Destination Path. (אין לכלול
gs://
)
- ממתינים ליצירת מערך הנתונים ואז הוא יפנה אתכם לדף ניהול מערך הנתונים.
5. ייבוא מסמך בדיקה
עכשיו נייבא למערך הנתונים שלנו קובץ PDF של חשבונית לדוגמה.
- לוחצים על ייבוא מסמכים.
- יש לנו קובץ PDF לדוגמה לשימוש בשיעור ה-Lab הזה. מעתיקים את הקישור הבא ומדביקים אותו בתיבה נתיב המקור. עזיבת 'חלוקת הנתונים' בתור 'לא הוקצה' בינתיים. לוחצים על Import.
cloud-samples-data/documentai/codelabs/uptraining/pdfs
- ממתינים לייבוא המסמך. הבדיקות שלי נמשכו פחות מדקה.
- כשהייבוא יסתיים, המסמך אמור להופיע בממשק המשתמש של ניהול מערך הנתונים. לוחצים עליו כדי להיכנס למסוף התיוג.
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 השלבים הקודמים בשני הפריטים הבאים. כך היא אמורה להיראות בסיום התהליך.
- הדגשת הטקסט "1,419.57" (לצד 'סיכום ביניים') ומקצים את התווית
net_amount
.
- הדגשת הטקסט "113.57" (לצד 'מס') ומקצים את התווית
total_tax_amount
.
- הדגשת הטקסט "1,533.14" (לצד 'סה"כ') ומקצים את התווית
total_amount
.
- הדגשה של אחד מ-"$" תווים ולהקצות את התווית
currency
.
- המסמך עם התווית אמור להיראות כך בסיום התהליך. הערה: אפשר לבצע שינויים בתוויות האלה על ידי לחיצה על התיבה התוחמת במסמך או על השם/הערך של התווית בתפריט בצד ימין. כשמסיימים להוסיף את התווית, לוחצים על שמירה.
- כאן מופיעה הרשימה המלאה של התוויות והערכים
שם התווית | טקסט |
| חברת McWilliam Piping International |
| 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 מסמכים יימשך זמן רב, כך שיש לנו כמה מסמכים מתויגים מראש שתוכלו לייבא לשיעור ה-Lab הזה.
ניתן לייבא קובצי מסמכים מתויגים מראש בפורמט Document.json
. התוצאות האלה יכולות להיות תוצאה של קריאה למעבד ואימות של רמת הדיוק באמצעות Human in the Loop (HITL).
- לוחצים על ייבוא מסמכים.
- מעתיקים/מדביקים את הנתיב הבא של Cloud Storage ומקצים אותו לקבוצה ההדרכה.
cloud-samples-data/documentai/codelabs/uptraining/training
- לוחצים על Add another Bucket. לאחר מכן מעתיקים/מדביקים את הנתיב הבא של Cloud Storage ומקצים אותו לקבוצה Test.
cloud-samples-data/documentai/codelabs/uptraining/test
- לוחצים על ייבוא וממתינים לייבוא המסמכים. התהליך יימשך יותר זמן מהפעם הקודמת כי יש יותר מסמכים לעיבוד. בבדיקות שלי זה נמשך כ-6 דקות. אפשר לצאת מהדף הזה ולחזור אליו מאוחר יותר.
- בסיום התהליך, המסמכים אמורים להופיע בדף הניהול של מערך הנתונים.
9. עריכת התוויות
המסמכים לדוגמה שבהם אנחנו משתמשים בדוגמה הזו לא מכילים את כל התוויות שנתמכות על ידי מנתח החשבוניות. לפני האימון, נצטרך לסמן את התוויות שאנחנו לא משתמשים בהן כתוויות לא פעילות. אפשר גם לבצע פעולות דומות כדי להוסיף תווית מותאמת אישית לפני Uptraining.
- בפינה הימנית התחתונה, לוחצים על Manage Labels (ניהול תוויות).
- עכשיו אתם אמורים להיות במסוף Label Management.
- השתמשו בתיבות הסימון ובלחצנים השבתה/הפעלה כדי לסמן רק את התוויות הבאות כמופעלות.
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. אופציונלי: הוספת תווית אוטומטית למסמכים שיובאו לאחרונה
כשמייבאים מסמכים ללא תווית עבור מעבד מידע עם גרסה קיימת של מעבד פרוסה, אפשר להשתמש בתיוג אוטומטי כדי לחסוך זמן ביצירת תוויות.
- בדף רכבת, לוחצים על ייבוא מסמכים.
- מעתיקים ומדביקים את הנתיב הבא של . ספרייה זו מכילה 5 קובצי PDF של חשבוניות ללא תווית. מהרשימה הנפתחת חלוקת נתונים, בוחרים באפשרות אימון.
cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
- בקטע תיוג אוטומטי, מסמנים את התיבה ייבוא עם תיוג אוטומטי.
- בוחרים גרסה קיימת של מעבד כדי להוסיף תוויות למסמכים.
- לדוגמה:
pretrained-invoice-v1.3-2022-07-15
- לוחצים על ייבוא וממתינים לייבוא המסמכים. אפשר לצאת מהדף הזה ולחזור אליו מאוחר יותר.
- בסיום, המסמכים יופיעו בדף רכבת בקטע תיוג אוטומטי.
- אי אפשר להשתמש במסמכים שתויגו באופן אוטומטי לאימון או לבדיקה בלי לסמן אותם בתווית. עוברים לקטע תיוג אוטומטי כדי לראות את המסמכים שתויגו באופן אוטומטי.
- בוחרים את המסמך הראשון כדי להיכנס למסוף התוויות.
- בודקים את התוויות, התיבות התוחמות והערכים כדי לוודא שהם נכונים. מוסיפים תוויות לערכים שהושמטו.
- כשמסיימים, בוחרים באפשרות סימון בתווית.
- חוזרים על אימות התווית לכל מסמך שתויג באופן אוטומטי, ואז חוזרים לדף אימון כדי להשתמש בנתונים לאימון.
11. מאמנים את המודל
עכשיו אנחנו מוכנים להתחיל בהדרכה של מנתח החשבוניות.
- לוחצים על אימון גרסה חדשה.
- נותנים לגרסה שם שתוכלו לזכור, למשל
codelab-uptraining-test-1
. גרסת הבסיס היא גרסת המודל שממנה תיבנה הגרסה החדשה. אם אתם משתמשים במעבד חדש, האפשרות היחידה צריכה להיות Google Pretrained Next עם Uptraining
- (אופציונלי) אפשר גם לבחור באפשרות הצגת נתונים סטטיסטיים של תוויות כדי לראות מדדים לגבי התוויות במערך הנתונים.
- לוחצים על התחלת ההדרכה כדי להתחיל את תהליך האימון. המערכת תפנה אתכם לדף הניהול של מערך הנתונים. סטטוס האימון מופיע בצד שמאל. ההדרכה תימשך כמה שעות. אפשר לצאת מהדף הזה ולחזור אליו מאוחר יותר.
- אם תלחצו על שם הגרסה, תופנו לדף ניהול גרסאות, שבו מוצגים מזהה הגרסה והסטטוס הנוכחי של משימת האימון.
12. בדיקה של גרסת המודל החדשה
לאחר השלמת משימת האימון (הבדיקות ארכה כשעה), עכשיו תוכלו לבדוק את גרסת המודל החדשה ולהתחיל להשתמש בה ליצירת חיזויים.
- עוברים לדף ניהול גרסאות. כאן ניתן לראות את הסטטוס הנוכחי ואת הציון של F1.
- נצטרך לפרוס את גרסת המודל הזו כדי שאפשר יהיה להשתמש בה. לוחצים על הנקודות האנכיות בצד ימין ובוחרים באפשרות Deploy Version (פריסת גרסה).
- בחלון הקופץ, בוחרים באפשרות Deploy (פריסה) וממתינים לפריסת הגרסה. הפעולה הזאת עשויה להימשך כמה דקות. לאחר הפריסה, תוכלו גם להגדיר את הגרסה הזו כגרסת ברירת המחדל.
- בסיום הפריסה, עוברים לכרטיסייה הערכה. לאחר מכן לוחצים על התפריט הנפתח 'גרסה' ובוחרים את הגרסה החדשה שנוצרה.
- בדף הזה אפשר להציג מדדי הערכה, כולל ציון F1, 'דיוק' ו'אחזור' עבור המסמך המלא וגם תוויות בודדות. מידע נוסף על המדדים האלה זמין במסמכי התיעוד של AutoML.
- אפשר להוריד את קובץ ה-PDF בקישור שלמטה. זהו מסמך לדוגמה שלא נכלל בערכת האימון או בערכת הבדיקה.
- לוחצים על Upload Test Document (העלאת מסמך הבדיקה) ובוחרים את קובץ ה-PDF.
- הישויות שחולצו אמורות להיראות כך.
13. סיכום
מזל טוב! השתמשת בהצלחה ב-Document AI כדי לאמן מנתח חשבוניות. עכשיו אפשר להשתמש במעבד המידע הזה כדי לנתח חשבוניות, בדיוק כמו שעושים עם כל מעבד מידע מומחה.
כדי להבין איך לטפל בתגובה לעיבוד של התגובה, אפשר לעיין ב-Specialized Processors Codelab.
ניקוי
כדי להימנע מצבירת חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם במדריך הזה:
- במסוף Cloud, עוברים לדף Manage resources.
- ברשימת הפרויקטים, בוחרים את הפרויקט הרלוונטי ולוחצים על 'מחיקה'.
- כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.
מקורות מידע
- מסמכי תיעוד של Document AI Workbench
- עתיד המסמכים – פלייליסט ב-YouTube
- מסמכי תיעוד מבוססי-AI של מסמכים
- ספריית הלקוח של Document AI Python
- דוגמאות AI למסמכים
רישיון
היצירה הזו בשימוש ברישיון Creative Commons Attribution 2.0 גנרי.