GPT
D

donut-base

קוד פתוח

naver-clova-ixmit2022-07-19

  • transformers
  • pytorch
  • vision-encoder-decoder
  • image-text-to-text
  • donut

קורא מסמכים ישירות מתמונה בלי מנוע OCR נפרד בדרך. הוא שוקל פחות מגיגהבייט ומיועד למי שרוצה בסיס לאימון על טפסים או חשבוניות משלו.

  • 777 MBמשקל הקבצים
  • 42,676הורדות בחודש
  • 254לייקים

מה זה

במקום לחבר מנוע OCR שמוציא תיבות טקסט ואז מודל שפה שמנסה לחבר את השברים, המודל הזה לוקח תמונה ומייצר ישירות טקסט. הוא משלב בין Swin Transformer שמנתח את הפיקסלים לבין מפענח BART שמייצר את המחרוזת הרצויה מילה אחרי מילה. המבנה הזה פותר את הבלגן של צינורות עיבוד כפולים, שבהם טעות זיהוי ראשונית הורסת את כל הניתוח בהמשך.

המשקל שלו הוא 777 מגהבייט בלבד, כך שמדובר בכלי קומפקטי מאוד ביחס לעולם הראייה הממוחשבת של ימינו. הוא לא מגיע מוכן לעבודה מהקופסה עם מסמך ספציפי, אלא משמש נקודת מוצא גולמית שעברה אימון מקדים בלבד. כדי להפיק ממנו ערך אמיתי תצטרכו לאמן אותו על דאטה משלכם, או לחפש גרסה שכבר עברה התאמה למשימה מוגדרת כמו קריאת קבלות או מיון טפסים.

מתאים ל

  • אימון לחילוץ חשבוניות

    בסיס מצוין לאימון ייעודי שממיר צילומי חשבוניות למבנה נתונים מסודר בלי צורך ב־OCR חיצוני.

  • סיווג תמונות מסמכים

    התאמת המודל לזיהוי מהיר של סוג הטופס מתוך התמונה ישירות, בלי לפענח קודם את כל המלל.

  • מענה לשאלות על מסמכים

    אימון לשליפת תשובות מתוך פריסות ויזואליות מורכבות כמו טבלאות ודוחות כספיים.

איפה זה נופל

הבעיה המרכזית היא שמדובר במודל שעבר אימון מקדים בלבד. אם תתנו לו מסמך מחר בבוקר, הוא לא יחלץ לכם שדות מסודרים בלי שתאמנו אותו קודם על המבנה המבוקש. בנוסף, מפענחי טקסט שמייצרים פלט מילה אחרי מילה עלולים לסבול מהזיות או מדילוג על שורות שלמות, בעיקר אם המסמך צפוף מדי או חורג מהסגנון שהוא ראה באימון.

שאלות
נפוצות

אפשר להשתמש בו ישירות לחילוץ טקסט מטפסים בעברית?

לא מומלץ ישר מהקופסה. המודל מגיע ברמת אימון מקדים בלבד ולא יודע לחלץ מפתחות מוגדרים בלי אימון נוסף. מעבר לזה, תצטרכו לבדוק בעצמכם את התמיכה בגופנים בעברית על גבי תמונות, כי ברירת המחדל שלו אומנה על דאטה זר.

האם אני חייב מנוע OCR כמו Tesseract כדי שהוא יעבוד?

לא, וזה כל הרעיון של הארכיטקטורה הזו. המודל מקבל את קובץ התמונה ומייצר את הטקסט בעצמו ישירות דרך מפענח השפה הפנימי שלו, בלי תלות בשום ספריית OCR חיצונית בדרך.

איך מריצים

אתם טוענים אותו דרך ספריית transformers הרגילה בפייתון, תחת הארכיטקטורה של VisionEncoderDecoderModel. עם משקל של פחות מגיגהבייט ודיוק float32, הוא נכנס בקלות לכל כרטיס מסך ביתי בסיסי, ואפילו על מעבד רגיל אפשר להריץ איתו בדיקות בלי בעיה מיוחדת.

להריץ אותו לבד זה זול ומהיר, אבל זכרו שהמשקל הנוכחי הוא רק בסיס לאימון. אם אתם לא מתכננים תהליך fine-tuning עצמאי ואין לכם מאגר מתויג, עדיף להשתמש בגרסאות מאומנות מהמאגר הציבורי או בשירות ענן קיים למסמכים.

from transformers import pipeline

pipe = pipeline("image-to-text", model="naver-clova-ix/donut-base")
print(pipe("שלום"))

הרישיון

הוא מופץ תחת רישיון MIT. מותר לכם להשתמש בו לצרכים מסחריים, לשנות אותו, לאמן אותו מחדש ולשלב אותו במוצר סגור. הדרישה היחידה היא לשמור על הצהרת זכויות היוצרים המקורית והטקסט של הרישיון בתוך הקוד.

  • שימוש מסחרי
  • שינוי הקוד
  • הפצה מחדש

הרישיון המלא בעמוד המודל ↗