۱. مقدمه
هوش مصنوعی اسناد، یک راهکار درک اسناد است که دادههای بدون ساختار مانند اسناد، ایمیلها و غیره را دریافت کرده و درک، تجزیه و تحلیل و استفاده از دادهها را آسانتر میکند.
با استفاده از Document AI Workbench، میتوانید با ایجاد مدلهای کاملاً سفارشی با استفاده از دادههای آموزشی خود، به دقت پردازش اسناد بالاتری دست یابید.
در این آزمایش، شما یک پردازنده استخراج سند سفارشی ایجاد خواهید کرد، یک مجموعه داده را وارد خواهید کرد، اسناد نمونه را برچسبگذاری خواهید کرد و پردازنده را آموزش خواهید داد.
مجموعه داده سند مورد استفاده در این آزمایش از یک مجموعه داده جعلی W-2 (فرم مالیات ایالات متحده) در Kaggle با مجوز CC0: Public Domain گرفته شده است.
پیشنیازها
این آزمایشگاه کد بر اساس محتوای ارائه شده در سایر آزمایشگاههای کد هوش مصنوعی اسناد ساخته شده است.
توصیه میشود قبل از ادامه، Codelabs زیر را تکمیل کنید.
- تشخیص نوری کاراکتر (OCR) با هوش مصنوعی اسناد (پایتون)
- تجزیه فرم با هوش مصنوعی اسناد (پایتون)
- پردازندههای تخصصی با هوش مصنوعی اسناد (پایتون)
- مدیریت پردازندههای هوش مصنوعی اسناد با پایتون
- هوش مصنوعی سند: انسان در حلقه
- هوش مصنوعی سند: آموزش پیشرفته
آنچه یاد خواهید گرفت
- یک پردازنده استخراجکننده سند سفارشی ایجاد کنید.
- دادههای آموزشی هوش مصنوعی سند را با استفاده از ابزار حاشیهنویسی برچسبگذاری کنید.
- یک نسخه مدل جدید را آموزش دهید.
- دقت نسخه جدید مدل را ارزیابی کنید.
آنچه نیاز دارید
۲. راهاندازی
این آزمایشگاه کد فرض میکند که شما مراحل راهاندازی هوش مصنوعی سند که در آزمایشگاه کد مقدماتی ذکر شده است را تکمیل کردهاید.
لطفا قبل از ادامه مراحل زیر را انجام دهید:
۳. یک پردازنده ایجاد کنید
ابتدا باید یک پردازشگر Custom Document Extractor برای استفاده در این آزمایشگاه ایجاد کنید.
- در کنسول، به صفحه Document AI Overview بروید.

- روی «ایجاد پردازشگر سفارشی» کلیک کنید و «استخراجکننده سند سفارشی» را انتخاب کنید.

- نام آن را
codelab-custom-extractor(یا هر چیز دیگری که به خاطر خواهید سپرد) بگذارید و نزدیکترین ناحیه را در لیست انتخاب کنید.

- برای ایجاد پردازنده خود، روی «ایجاد» کلیک کنید. سپس باید صفحه «نمای کلی پردازنده» را مشاهده کنید.

۴. ایجاد یک مجموعه داده
برای آموزش پردازنده، باید یک مجموعه داده شامل دادههای آموزشی و آزمایشی ایجاد کنیم تا به پردازنده در شناسایی موجودیتهایی که میخواهیم استخراج کنیم، کمک کند.
- در صفحه مرور کلی پردازنده، روی پیکربندی مجموعه داده خود کلیک کنید.

- اکنون باید در صفحه پیکربندی مجموعه داده باشید. اگر میخواهید باکت خودتان را برای ذخیره اسناد آموزشی و برچسبها مشخص کنید، روی نمایش گزینههای پیشرفته کلیک کنید. در غیر این صورت، فقط روی ادامه کلیک کنید.

- صبر کنید تا مجموعه دادهها ایجاد شود، سپس باید شما را به صفحه آموزش هدایت کند.

۵. یک سند آزمایشی را وارد کنید
حالا، بیایید یک نمونه PDF از نوع W2 را به مجموعه دادههای خود وارد کنیم.
- روی وارد کردن اسناد کلیک کنید

- ما یک نمونه PDF برای استفاده شما در این آزمایش داریم. لینک زیر را کپی کرده و در کادر Source Path قرار دهید. فعلاً گزینه "Data split" را روی "Unassigned" بگذارید. سایر کادرها را بدون علامت بگذارید. روی Import کلیک کنید.
cloud-samples-data/documentai/codelabs/custom/extractor/pdfs

- صبر کنید تا سند وارد شود. این کار باید کمتر از ۱ دقیقه طول بکشد.
- وقتی وارد کردن تمام شد، باید سند را در صفحه آموزش مشاهده کنید.

۶. ایجاد برچسبها
از آنجایی که ما در حال ایجاد یک نوع پردازنده جدید هستیم، باید برچسبهای سفارشی ایجاد کنیم تا به Document AI بگوییم کدام فیلدها را میخواهیم استخراج کنیم.
- روی ویرایش طرحواره (Edit Schema) در گوشه پایین سمت چپ کلیک کنید.

- اکنون باید در کنسول مدیریت طرحواره (Schema Management) باشید.

- با استفاده از دکمهی «ایجاد برچسب» ، برچسبهای زیر را ایجاد کنید.
نام | نوع داده | وقوع |
| شماره | چندگانه مورد نیاز |
| متن ساده | چندگانه مورد نیاز |
| متن ساده | چندگانه مورد نیاز |
| آدرس | چندگانه مورد نیاز |
| پول | چندگانه مورد نیاز |
| پول | چندگانه مورد نیاز |
| پول | چندگانه مورد نیاز |
| پول | چندگانه مورد نیاز |
- کنسول پس از تکمیل باید به این شکل باشد. پس از اتمام، روی ذخیره کلیک کنید.

- برای بازگشت به صفحه آموزش ، روی پیکان برگشت کلیک کنید. توجه داشته باشید که برچسبهایی که ایجاد کردهایم در گوشه پایین سمت چپ نشان داده میشوند.

۷. سند آزمایشی را برچسبگذاری کنید
در مرحله بعد، عناصر متنی و برچسبها را برای موجودیتهایی که میخواهیم استخراج کنیم، شناسایی خواهیم کرد. این برچسبها برای آموزش مدل ما جهت تجزیه این ساختار سند خاص و شناسایی انواع صحیح استفاده میشوند.
- روی سندی که قبلاً وارد کردیم دوبار کلیک کنید تا وارد کنسول برچسبگذاری شوید. باید چیزی شبیه به این باشد.

- روی ابزار "Bounding Box" کلیک کنید، سپس متن "1173038" را هایلایت کنید و برچسب
CONTROL_NUMBERبه آن اختصاص دهید. میتوانید از فیلتر متن برای جستجوی نام برچسبها استفاده کنید.

- برای نمونهی دیگر
CONTROL_NUMBERکامل کنید. پس از برچسبگذاری، باید به این شکل باشد.

- تمام نمونههای مقادیر متنی زیر را هایلایت کنید و برچسبهای مناسب را به آنها اختصاص دهید.
نام برچسب | متن |
| ۲۴-۳۱۸۸۱۰ |
| ۱۹۱۲۷.۲ |
| ۵۰۹۳.۷۱ |
| ۶۶۵۸۴.۴۶ |
| ۵۶۰۸۱.۱۸ |
| ۷۱۴-۳۲-۲۱۰۵ |
| شرکت آدامز، چیس و گیلبرت، ۹۷۲، سد گونزالس، جنوب کاترین، کارولینای شمالی، ۹۵۸۶۹-۵۱۷۸ |
- سند برچسبگذاری شده پس از تکمیل باید به این شکل باشد. توجه داشته باشید که میتوانید با کلیک روی کادر محدوده در سند یا نام/مقدار برچسب در منوی سمت چپ، این برچسبها را تنظیم کنید. پس از اتمام برچسبگذاری، روی «علامتگذاری به عنوان برچسبگذاری شده» کلیک کنید، سپس به کنسول مدیریت مجموعه دادهها برگردید.

۸. اختصاص سند به مجموعه آموزشی
اکنون باید به کنسول مدیریت مجموعه دادهها (Dataset management console) برگشته باشید. توجه داشته باشید که تعداد اسناد دارای برچسب (Labeled documents) و بدون برچسب (Unlabeled documents) و تعداد نمونهها (instances) در هر برچسب تغییر کرده است.

- ما باید این سند را به مجموعه "آموزش" یا "آزمون" اختصاص دهیم. روی سند کلیک کنید، روی "اختصاص به مجموعه" کلیک کنید، سپس روی "آموزش" کلیک کنید.

- توجه کنید که اعداد مربوط به تقسیم دادهها تغییر کردهاند.

۹. وارد کردن دادههای از پیش برچسبگذاریشده
پردازندههای سفارشی هوش مصنوعی اسناد به حداقل ۱۰ سند در مجموعههای آموزشی و آزمایشی، به همراه ۱۰ نمونه از هر برچسب در هر مجموعه، نیاز دارند.
برای بهترین عملکرد، توصیه میشود حداقل ۵۰ سند در هر مجموعه با ۵۰ نمونه از هر برچسب داشته باشید. دادههای آموزشی بیشتر عموماً برابر با دقت بالاتر است.
برچسبگذاری دستی تمام اسناد زمان زیادی میبرد، بنابراین ما تعدادی سند از پیش برچسبگذاری شده داریم که میتوانید برای این آزمایشگاه وارد کنید.
شما میتوانید فایلهای سند از پیش برچسبگذاری شده را با فرمت Document.json وارد کنید. این فایلها میتوانند نتایج حاصل از فراخوانی یک پردازنده و تأیید صحت با استفاده از Human in the Loop (HITL) باشند.
کنار گذاشتن منفی
نکته: هنگام وارد کردن دادههای از پیش برچسبگذاری شده، اکیداً توصیه میشود که قبل از آموزش مدل، حاشیهنویسیها را به صورت دستی بررسی کنید.
- روی وارد کردن اسناد کلیک کنید.

- مسیر Cloud Storage زیر را کپی/پیست کنید و آن را به مجموعه آموزش اختصاص دهید.
cloud-samples-data/documentai/codelabs/custom/extractor/training
- روی «افزودن پوشه دیگر» کلیک کنید. سپس مسیر ذخیرهسازی ابری زیر را کپی/پیست کنید و آن را به مجموعه آزمایشی اختصاص دهید.
cloud-samples-data/documentai/codelabs/custom/extractor/test

- روی «وارد کردن» کلیک کنید و منتظر بمانید تا اسناد وارد شوند. این مرحله نسبت به دفعه قبل بیشتر طول خواهد کشید زیرا اسناد بیشتری برای پردازش وجود دارد. این مرحله حدود ۶ دقیقه طول خواهد کشید، میتوانید این صفحه را ترک کنید و بعداً برگردید.

- پس از تکمیل، باید مدارک را در صفحه آموزش مشاهده کنید.

۱۰. مدل را آموزش دهید
اکنون، ما آمادهایم تا آموزش استخراجکننده سند سفارشی خود را آغاز کنیم.
- نسخه جدید آموزش کلیک کنید

- به نسخه خود نامی بدهید که به خاطر بسپارید، مانند
codelab-custom-1. برای «روش آموزش»، «آموزش از ابتدا» را انتخاب کنید.

- (اختیاری) همچنین میتوانید برای مشاهده معیارهای مربوط به برچسبها در مجموعه دادههای خود، گزینه «مشاهده آمار برچسبها» را انتخاب کنید.

- برای شروع فرآیند آموزش، روی شروع آموزش کلیک کنید. شما باید به صفحه مدیریت مجموعه دادهها هدایت شوید. میتوانید وضعیت آموزش را در سمت راست مشاهده کنید. تکمیل آموزش چند ساعت طول میکشد. میتوانید این صفحه را ترک کرده و بعداً برگردید.

- اگر روی نام نسخه کلیک کنید، به صفحه مدیریت نسخهها هدایت میشوید که شناسه نسخه و وضعیت فعلی کار آموزشی را نشان میدهد.

۱۱. نسخه جدید مدل را آزمایش کنید
پس از اتمام کار آموزشی (در آزمایشهای من حدود ۱ ساعت طول کشید)، اکنون میتوانید نسخه جدید مدل را آزمایش کرده و از آن برای پیشبینیها استفاده کنید.
- به صفحه مدیریت نسخهها بروید. در اینجا میتوانید وضعیت فعلی و امتیاز F1 را مشاهده کنید.

- قبل از استفاده از این نسخه مدل، باید آن را مستقر کنیم. روی نقطههای عمودی در سمت راست کلیک کنید و گزینه Deploy Version را انتخاب کنید.

- هنگام انتظار برای استقرار نسخه، از پنجره بازشو، گزینه Deploy را انتخاب کنید. این کار چند دقیقه طول میکشد. پس از استقرار، میتوانید این نسخه را به عنوان نسخه پیشفرض نیز تنظیم کنید.

- پس از اتمام استقرار، به برگه ارزیابی (Evaluate Tab) بروید. در این صفحه، میتوانید معیارهای ارزیابی از جمله امتیاز F1، دقت (Precision) و فراخوانی (Recall) را برای کل سند و همچنین برچسبهای جداگانه مشاهده کنید. میتوانید اطلاعات بیشتر در مورد این معیارها را در مستندات AutoML بخوانید.

- فایل PDF لینکشده در زیر را دانلود کنید. این یک نمونه W2 است که در مجموعه آموزش یا آزمون گنجانده نشده است.
- روی «بارگذاری سند آزمون» کلیک کنید و فایل PDF را انتخاب کنید.
- موجودیتهای استخراجشده باید چیزی شبیه به این باشند.

۱۲. اختیاری: برچسبگذاری خودکار اسناد تازه وارد شده
پس از استقرار یک نسخه پردازنده آموزشدیده، میتوانید از برچسبگذاری خودکار برای صرفهجویی در زمان برچسبگذاری هنگام وارد کردن اسناد جدید استفاده کنید.
- در صفحه قطار ، روی وارد کردن اسناد کلیک کنید.
- مسیر زیر را کپی و جایگذاری کنید. این پوشه شامل ۵ فایل PDF بدون برچسب W2 است. از فهرست کشویی Data split ، گزینه Training را انتخاب کنید.
cloud-samples-data/documentai/Custom/W2/AutoLabel - در بخش برچسبگذاری خودکار ، کادر انتخاب «وارد کردن با برچسبگذاری خودکار» را علامت بزنید.
- یک نسخه پردازنده موجود را برای برچسبگذاری اسناد انتخاب کنید.
- برای مثال:
2af620b2fd4d1fcf
- روی «وارد کردن» کلیک کنید و منتظر بمانید تا اسناد وارد شوند. میتوانید این صفحه را ترک کنید و بعداً برگردید.
- پس از تکمیل، اسناد در صفحه قطار در بخش برچسبگذاری خودکار ظاهر میشوند.
- شما نمیتوانید از اسناد دارای برچسب خودکار برای آموزش یا آزمایش استفاده کنید، مگر اینکه آنها را به عنوان برچسبگذاری شده علامتگذاری کنید. برای مشاهده اسناد دارای برچسب خودکار، به بخش برچسبگذاری خودکار بروید.
- اولین سند را برای ورود به کنسول برچسبگذاری انتخاب کنید.
- برچسبها، کادرهای محصورکننده و مقادیر را بررسی کنید تا از صحت آنها اطمینان حاصل شود. هر مقداری را که از قلم افتاده است، برچسبگذاری کنید.
- پس از اتمام، علامتگذاری به عنوان برچسبگذاری شده را انتخاب کنید.
- تأیید برچسب را برای هر سند دارای برچسب خودکار تکرار کنید، سپس به صفحه آموزش برگردید تا از دادهها برای آموزش استفاده کنید.
۱۳. نتیجهگیری
تبریک میگوییم، شما با موفقیت از هوش مصنوعی اسناد برای آموزش یک پردازنده استخراجکننده سند سفارشی استفاده کردید. اکنون میتوانید از این پردازنده برای تجزیه اسناد در این قالب، درست مانند هر پردازنده تخصصی دیگری، استفاده کنید.
برای بررسی نحوه مدیریت پاسخ پردازش، میتوانید به آزمایشگاه کد پردازندههای تخصصی مراجعه کنید.
پاکسازی
برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع استفاده شده در این آموزش:
- در کنسول ابری، به صفحه مدیریت منابع بروید.
- در لیست پروژهها، پروژه خود را انتخاب کنید و سپس روی حذف کلیک کنید.
- در کادر محاورهای، شناسه پروژه را تایپ کنید و سپس برای حذف پروژه، روی خاموش کردن (Shut down) کلیک کنید.
منابع
- مستندات میز کار هوش مصنوعی
- آینده اسناد - لیست پخش یوتیوب
- مستندسازی هوش مصنوعی
- کتابخانه کلاینت پایتون برای مستندسازی هوش مصنوعی
- نمونههای هوش مصنوعی اسناد
مجوز
این اثر تحت مجوز عمومی Creative Commons Attribution 2.0 منتشر شده است.