1. مقدمه
Document AI راه حلی برای درک اسناد است که داده های بدون ساختار مانند اسناد، ایمیل ها و غیره را می گیرد و درک، تجزیه و تحلیل و مصرف داده ها را آسان تر می کند.
با استفاده از آموزش ارتقاء از طریق Document AI Workbench، می توانید با ارائه نمونه های برچسب دار اضافی برای انواع اسناد تخصصی و ایجاد یک نسخه مدل جدید، به دقت پردازش اسناد بالاتری دست یابید.
در این آزمایشگاه، شما یک پردازشگر تجزیه فاکتور ایجاد میکنید، پردازنده را برای آموزش بالا پیکربندی میکنید، اسناد نمونه را برچسبگذاری میکنید و پردازنده را ارتقا میدهید.
مجموعه داده سند مورد استفاده در این آزمایشگاه شامل فاکتورهایی است که به صورت تصادفی برای یک شرکت لوله کشی ساختگی تولید می شود.
پیش نیازها
این کد لبه بر محتوای ارائه شده در سایر Codelab های هوش مصنوعی سند ساخته شده است.
توصیه می شود قبل از ادامه، Codelabs زیر را تکمیل کنید.
- تشخیص نوری کاراکتر (OCR) با هوش مصنوعی سند (پایتون)
- تجزیه فرم با هوش مصنوعی سند (پایتون)
- پردازنده های تخصصی با Document AI (Python)
- مدیریت پردازشگرهای هوش مصنوعی سند با پایتون
- سند هوش مصنوعی: انسان در حلقه
چیزی که یاد خواهید گرفت
- پیکربندی Uptraining برای پردازشگر تجزیه فاکتور.
- با استفاده از ابزار حاشیه نویسی، داده های آموزش هوش مصنوعی سند را برچسب گذاری کنید.
- آموزش نسخه مدل جدید.
- دقت نسخه مدل جدید را ارزیابی کنید.
آنچه شما نیاز دارید
2. راه اندازی
این Codelab فرض می کند که شما مراحل تنظیم AI سند فهرست شده در Codelab مقدماتی را تکمیل کرده اید.
لطفا قبل از ادامه مراحل زیر را انجام دهید:
3. یک پردازنده ایجاد کنید
ابتدا باید یک پردازشگر تجزیه فاکتور برای استفاده در این آزمایشگاه ایجاد کنید.
- در کنسول، به صفحه نمای کلی Document AI بروید.
- روی Create Processor کلیک کنید، به قسمت Specialized بروید (یا «Invoice Parser» را در نوار جستجو تایپ کنید) و Invoice Parser را انتخاب کنید.
- نام
codelab-invoice-uptraining
را به آن بدهید (یا چیز دیگری که به خاطر خواهید آورد) و نزدیکترین منطقه را در لیست انتخاب کنید.
- برای ایجاد پردازنده خود روی Create کلیک کنید. سپس باید صفحه نمای کلی پردازنده را ببینید.
4. یک مجموعه داده ایجاد کنید
برای آموزش پردازنده خود، باید یک مجموعه داده با داده های آموزشی و آزمایشی ایجاد کنیم تا به پردازنده کمک کنیم تا موجودیت هایی را که می خواهیم استخراج کنیم شناسایی کند.
برای ذخیره مجموعه داده ها باید یک سطل جدید در فضای ذخیره سازی ابری ایجاد کنید. توجه: این نباید همان سطلی باشد که اسناد شما در حال حاضر در آن ذخیره می شود.
- Cloud Shell را باز کنید و دستورات زیر را برای ایجاد یک سطل اجرا کنید. از طرف دیگر، یک سطل جدید در Cloud Console ایجاد کنید . این نام سطل را ذخیره کنید، بعداً به آن نیاز خواهید داشت.
export PROJECT_ID=$(gcloud config get-value project)
gsutil mb -p $PROJECT_ID "gs://${PROJECT_ID}-uptraining-codelab"
- به تب Dataset رفته و روی Create Dataset کلیک کنید
- نام سطل را از سطلی که در مرحله اول ایجاد کردید در قسمت Destination Path قرار دهید. (
gs://
را درج نکنید)
- منتظر بمانید تا مجموعه داده ایجاد شود، سپس باید شما را به صفحه مدیریت Dataset هدایت کند.
5. یک سند آزمایشی را وارد کنید
اکنون، بیایید یک نمونه فاکتور pdf را به مجموعه داده خود وارد کنیم.
- روی Import Documents کلیک کنید
- ما یک نمونه PDF برای استفاده در این آزمایشگاه برای شما داریم. لینک زیر را کپی کرده و در کادر Source Path قرار دهید. فعلاً «تقسیم داده» را به عنوان «تخصیص نشده» بگذارید. روی Import کلیک کنید.
cloud-samples-data/documentai/codelabs/uptraining/pdfs
- صبر کنید تا سند وارد شود. این در تست های من کمتر از 1 دقیقه طول کشید.
- وقتی وارد کردن کامل شد، باید سند را در رابط کاربری مدیریت Dataset ببینید. روی آن کلیک کنید تا وارد کنسول برچسب زدن شوید.
6. سند آزمون را برچسب بزنید
در مرحله بعد، عناصر و برچسبهای متنی را برای موجودیتهایی که میخواهیم استخراج کنیم، شناسایی میکنیم. این برچسبها برای آموزش مدل ما برای تجزیه این ساختار سند خاص و شناسایی انواع صحیح استفاده خواهند شد.
- اکنون باید در کنسول برچسب زدن باشید که چیزی شبیه به این خواهد بود.
- بر روی ابزار "انتخاب متن" کلیک کنید، سپس متن "McWilliam Piping International Piping Company" را برجسته کنید و برچسب
supplier_name
را اختصاص دهید. می توانید از فیلتر متن برای جستجوی نام برچسب ها استفاده کنید.
- متن "14368 Pipeline Ave Chino, CA 91710" را برجسته کنید و برچسب
supplier_address
را اختصاص دهید.
- متن "10001" را برجسته کنید و برچسب
invoice_id
اختصاص دهید.
- متن "02-01-2020" را برجسته کنید و برچسب
due_date
اختصاص دهید.
- به ابزار "Bounding Box" بروید. متن "Knuckle Couplers" را برجسته کنید و برچسب
line_item/description
را اختصاص دهید.
- متن "9" را برجسته کنید و برچسب
line_item/quantity
را اختصاص دهید.
- متن "74.43" را برجسته کنید و برچسب
line_item/unit_price
را اختصاص دهید.
- متن "669.87" را برجسته کنید و برچسب
line_item/amount
را اختصاص دهید.
- 4 مرحله قبلی را برای دو خط بعدی تکرار کنید. پس از تکمیل باید به این شکل باشد.
- متن "1,419.57" (در کنار Subtotal) را برجسته کنید و برچسب
net_amount
اختصاص دهید.
- متن "113.57" (در کنار Tax) را برجسته کنید و برچسب
total_tax_amount
را اختصاص دهید.
- متن "1,533.14" (در کنار Total) را برجسته کنید و برچسب
total_amount
اختصاص دهید.
- یکی از کاراکترهای "$" را برجسته کنید و
currency
برچسب را اختصاص دهید.
- سند دارای برچسب پس از تکمیل باید به این شکل باشد. توجه داشته باشید، میتوانید با کلیک بر روی کادر محدود در سند یا نام/مقدار برچسب در منوی سمت چپ، تنظیمات این برچسبها را انجام دهید. پس از اتمام برچسب زدن روی ذخیره کلیک کنید.
- در اینجا لیست کامل برچسب ها و مقادیر آمده است
نام برچسب | متن |
| شرکت لوله کشی بین المللی مک ویلیام |
| 14368 Pipeline Ave Chino, CA 91710 |
| 10001 |
| 02-01-2020 |
| جفت بند انگشتی |
| 9 |
| 74.43 |
| 669.87 |
| لوله پی وی سی 12 اینچ |
| 7 |
| 15.90 |
| 111.30 |
| لوله مسی |
| 7 |
| 91.20 |
| 638.40 |
| 1,419.57 |
| 113.57 |
| 1,533.14 |
| $ |
7. تخصیص سند به مجموعه آموزشی
اکنون باید به کنسول مدیریت Dataset بازگردید. توجه داشته باشید که تعداد اسناد برچسب دار و بدون برچسب و همچنین تعداد برچسب های فعال تغییر کرده است.
- ما باید این سند را به مجموعه "آموزش" یا "تست" اختصاص دهیم. روی Document کلیک کنید.
- روی Assign to Set کلیک کنید، سپس روی Training کلیک کنید.
- توجه داشته باشید که اعداد تقسیم داده ها تغییر کرده اند.
8. داده های از پیش برچسب گذاری شده را وارد کنید
Document AI Uptraining به حداقل 10 مدرک در هر دو مجموعه آموزشی و آزمایشی به همراه 10 نمونه از هر برچسب در هر مجموعه نیاز دارد.
توصیه می شود حداقل 50 سند در هر مجموعه با 50 نمونه از هر برچسب برای بهترین عملکرد داشته باشید. داده های آموزشی بیشتر به طور کلی با دقت بالاتر برابر است.
برچسب گذاری دستی 100 سند زمان زیادی طول می کشد، بنابراین ما تعدادی سند از پیش برچسب گذاری شده داریم که می توانید برای این آزمایشگاه وارد کنید.
می توانید فایل های سند از پیش برچسب گذاری شده را در قالب Document.json
وارد کنید. اینها می توانند نتایج فراخوانی یک پردازنده و تأیید صحت با استفاده از Human in the Loop (HITL) باشند.
- روی Import Documents کلیک کنید.
- مسیر Cloud Storage زیر را کپی/پیست کنید و آن را به مجموعه آموزشی اختصاص دهید.
cloud-samples-data/documentai/codelabs/uptraining/training
- روی Add Another Bucket کلیک کنید. سپس مسیر Cloud Storage زیر را کپی/پیست کرده و آن را به مجموعه تست اختصاص دهید.
cloud-samples-data/documentai/codelabs/uptraining/test
- روی Import کلیک کنید و منتظر بمانید تا اسناد وارد شوند. این بیشتر از دفعه قبل طول می کشد زیرا اسناد بیشتری برای پردازش وجود دارد. در آزمایشات من، این حدود 6 دقیقه طول کشید. می توانید این صفحه را ترک کرده و بعداً برگردید.
- پس از تکمیل، باید اسناد را در صفحه مدیریت Dataset مشاهده کنید.
9. برچسب ها را ویرایش کنید
اسناد نمونه ای که ما برای این مثال استفاده می کنیم حاوی هر برچسبی نیست که توسط تجزیه کننده فاکتور پشتیبانی می شود. قبل از آموزش باید برچسب هایی را که استفاده نمی کنیم به عنوان غیرفعال علامت گذاری کنیم. همچنین میتوانید مراحل مشابهی را برای افزودن یک برچسب سفارشی قبل از Uptraining دنبال کنید.
- روی Manage Labels در گوشه سمت چپ پایین کلیک کنید.
- اکنون باید در کنسول مدیریت برچسب باشید.
- از کادرهای چک و دکمه های غیرفعال / فعال کردن استفاده کنید تا فقط برچسب های زیر را به عنوان فعال علامت گذاری کنید.
-
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
-
- پس از تکمیل، کنسول باید به این شکل باشد. پس از اتمام روی ذخیره کلیک کنید.
- برای بازگشت به کنسول مدیریت Dataset روی فلش Back کلیک کنید. توجه داشته باشید که برچسب هایی با 0 نمونه به عنوان غیرفعال علامت گذاری شده اند.
10. اختیاری: اسناد تازه وارد شده را به صورت خودکار برچسب گذاری کنید
هنگام وارد کردن اسناد بدون برچسب برای یک پردازنده با نسخه پردازنده موجود مستقر شده، می توانید از برچسب گذاری خودکار برای صرفه جویی در زمان در برچسب زدن استفاده کنید.
- در صفحه Train ، روی Import Documents کلیک کنید.
- مسیر زیر را کپی و جایگذاری کنید. این فهرست شامل 5 فایل پی دی اف فاکتور بدون برچسب است. از لیست کشویی تقسیم داده ، آموزش را انتخاب کنید.
cloud-samples-data/documentai/Custom/Invoices/PDF_Unlabeled
- در قسمت Auto-labeling ، چک باکس Import with auto-labeling را انتخاب کنید.
- یک نسخه پردازنده موجود را برای برچسب گذاری اسناد انتخاب کنید.
- به عنوان مثال:
pretrained-invoice-v1.3-2022-07-15
- روی Import کلیک کنید و منتظر بمانید تا اسناد وارد شوند. می توانید این صفحه را ترک کرده و بعداً برگردید.
- پس از تکمیل، اسناد در صفحه Train در بخش Auto-Labeled ظاهر می شوند.
- شما نمی توانید از اسناد دارای برچسب خودکار برای آموزش یا آزمایش بدون علامت گذاری آنها به عنوان برچسب استفاده کنید. برای مشاهده اسناد دارای برچسب خودکار به بخش Auto-Labeled بروید.
- اولین سند را برای ورود به کنسول برچسب گذاری انتخاب کنید.
- برچسب ها، جعبه های محدود کننده و مقادیر را بررسی کنید تا از درستی آنها اطمینان حاصل کنید. هر مقداری که حذف شده است را برچسب بزنید.
- پس از اتمام علامت گذاری به عنوان برچسب زده شده را انتخاب کنید.
- تأیید برچسب را برای هر سند دارای برچسب خودکار تکرار کنید، سپس به صفحه Train برگردید تا از داده ها برای آموزش استفاده کنید.
11. مدل را ارتقا دهید
اکنون، ما آماده ایم تا آموزش تجزیه کننده فاکتور خود را آغاز کنیم.
- روی Train New Version کلیک کنید
- به نسخه خود نامی بدهید که به خاطر بسپارید، مانند
codelab-uptraining-test-1
. نسخه پایه نسخه مدلی است که این نسخه جدید از آن ساخته خواهد شد. اگر از یک پردازنده جدید استفاده می کنید، تنها گزینه باید Google Pretrained Next with Uptraining باشد
- (اختیاری) همچنین میتوانید مشاهده آمار برچسبها را برای مشاهده معیارهای برچسبهای موجود در مجموعه داده خود انتخاب کنید.
- روی Start Training کلیک کنید تا فرآیند Uptraining شروع شود. شما باید به صفحه مدیریت Dataset هدایت شوید. می توانید وضعیت آموزش را در سمت راست مشاهده کنید. تکمیل آموزش چند ساعت طول می کشد. می توانید این صفحه را ترک کرده و بعداً برگردید.
- اگر روی نام نسخه کلیک کنید، به صفحه مدیریت نسخه ها هدایت می شوید که شناسه نسخه و وضعیت فعلی شغل آموزشی را نشان می دهد.
12. نسخه جدید مدل را تست کنید
پس از تکمیل کار آموزشی (در تست های من حدود 1 ساعت طول کشید)، اکنون می توانید نسخه مدل جدید را آزمایش کنید و شروع به استفاده از آن برای پیش بینی کنید.
- به صفحه مدیریت نسخه ها بروید. در اینجا می توانید وضعیت فعلی و امتیاز F1 را مشاهده کنید.
- ما باید این نسخه مدل را قبل از استفاده از آن مستقر کنیم. روی نقاط عمودی سمت راست کلیک کنید و Deploy Version را انتخاب کنید.
- هنگامی که منتظر بمانید تا نسخه گسترش یابد، از پنجره پاپ آپ Deploy را انتخاب کنید. چند دقیقه طول می کشد تا تکمیل شود. پس از استقرار، می توانید این نسخه را نیز به عنوان نسخه پیش فرض تنظیم کنید.
- پس از اتمام استقرار، به برگه ارزیابی بروید. سپس بر روی منوی کشویی Version کلیک کنید و نسخه جدید ایجاد شده ما را انتخاب کنید.
- در این صفحه، میتوانید معیارهای ارزیابی شامل امتیاز F1، Precision و Recall را برای سند کامل و همچنین برچسبهای فردی مشاهده کنید. میتوانید درباره این معیارها در AutoML Documentation بیشتر بخوانید.
- فایل پی دی اف را با لینک زیر دانلود کنید. این یک سند نمونه است که در مجموعه آموزشی یا آزمون گنجانده نشده است.
- بر روی Upload Test Document کلیک کنید و فایل PDF را انتخاب کنید.
- موجودیت های استخراج شده باید چیزی شبیه به این باشند.
13. نتیجه گیری
تبریک میگوییم، شما با موفقیت از Document AI برای ارتقای یک تجزیهکننده فاکتور استفاده کردهاید. اکنون می توانید از این پردازنده برای تجزیه فاکتورها استفاده کنید، همانطور که برای هر پردازنده تخصصی انجام می دهید.
برای بررسی نحوه رسیدگی به پاسخ پردازش می توانید به Codelab Processors Specialized مراجعه کنید.
پاکسازی
برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این آموزش:
- در Cloud Console، به صفحه مدیریت منابع بروید.
- در لیست پروژه، پروژه خود را انتخاب کنید و سپس روی Delete کلیک کنید.
- در گفتگو، ID پروژه را تایپ کنید و سپس بر روی Shut down کلیک کنید تا پروژه حذف شود.
منابع
- مستندات AI Workbench Document
- آینده اسناد - لیست پخش YouTube
- مستندات هوش مصنوعی
- کتابخانه مشتری پایتون AI سند
- نمونه های AI سند
مجوز
این اثر تحت مجوز Creative Commons Attribution 2.0 Generic مجوز دارد.