تدريب نموذج مخصص باستخدام أداة وضع العلامات النموذجية

في هذه المقالة، ستستخدم واجهة برمجة تطبيقات REST للتعرف على النموذج مع أداة وضع العلامات النموذجية لتدريب نموذج مخصص ببيانات مصنفة يدويا.

المتطلبات الأساسية

لإكمال هذا التشغيل السريع، تحتاج إلى:

  • اشتراك Azure - ⁧⁩إنشاء اشتراك مجاني⁧
  • بمجرد حصولك على اشتراكك في Azure، قم بإنشاء مورد التعرف على النموذج في مدخل Azure للحصول على المفتاح ونقطة النهاية. بعد انتشاره، حدد Go to resource.
    • ستحتاج إلى المفتاح ونقطة النهاية من المورد الذي تنشئه؛ لتوصيل التطبيق الخاص بك بواجهة برمجة تطبيقات Form Recognizer. سوف تلصق المفتاح ونقطة النهاية في التعليمات البرمجية أدناه لاحقًا في التشغيل السريع.
    • يمكنك استخدام مستوى التسعير الحر (F0) لتجربة الخدمة، والترقية لاحقًا إلى مستوى مدفوع للإنتاج.
  • مجموعة من ستة أشكال على الأقل من نفس النوع. ستستخدم هذه البيانات لتدريب النموذج واختبار نموذج. يمكنك استخدام مجموعة بيانات نموذجية (تنزيل واستخراجsample_data.zip) لهذه البداية السريعة. Upload ملفات التدريب إلى جذر حاوية تخزين blob في حساب Azure Storage ذي مستوى الأداء القياسي.

إنشاء مورد Form Recognizer

انتقل إلى مدخل Azure وقم بإنشاء مورد جديد للتعرف على النموذج . في جزء إنشاء، قم بتوفير المعلومات التالية:

تفاصيل المشروع الوصف
الاشتراك حدد اشتراك Azure الذي تم منحه حق الوصول.
مجموعة الموارد مجموعة موارد Azure التي تحتوي على المورد الخاص بك. يمكنك إنشاء مجموعة جديدة أو إضافتها إلى مجموعة موجودة مسبقًا.
المنطقة موقع مثيل الخدمة المعرفية لديك. قد تقدم مواقع مختلفة زمن الانتقال، ولكن ليس لها تأثير على توفر وقت التشغيل الخاص بالمورد.
الاسم اسم وصفي للمورد الخاص بك. نوصي باستخدام اسم وصفي، على سبيل المثال MyNameFormRecognizer.
⁩مستوى التسعير⁧ تعتمد تكلفة المورد على مستوى التسعير الذي تختاره واستخدامك. لمزيد من المعلومات، راجع تفاصيل تسعير واجهة برمجة التطبيقات.

قم باسترداد المفتاح ونقطة النهاية

عند انتهاء المورد "التعرف على النموذج" الخاص بك من النشر، ابحث عنه وحدده من قائمة كافة الموارد في المدخل. سيتم تحديد موقعها في صفحة مفتاح المورد ونقطة النهاية، ضمن إدارة الموارد. احفظ كلاً من هذه إلى موقع مؤقت قبل المضي قدمًا.

عليك تجربة ذلك

جرب أداة وضع العلامات النموذجية للتعرف على النموذج عبر الإنترنت:

ستحتاج إلى الاشتراك في "Azure" ( إنشاء واحد مجاناً ) و نقطة نهاية "Form Recognizer" للمورّد ومفتاح لتجربة أداة "Form Recognizer".

إعداد أداة وضع العلامات النموذجية

ملاحظة

إذا كانت بيانات التخزين خلف VNet أو جدار حماية، فيجب عليك نشر أداة وضع العلامات النموذجية للتعرف على النموذج خلف VNet أو جدار الحماية ومنح حق الوصول عن طريق إنشاء هوية مدارة يتم تعيينها بواسطة النظام.

ستستخدم محرك Docker لتشغيل أداة وضع العلامات النموذجية. اتبع هذه الخطوات لإعداد حاوية Docker. للحصول على دليل تمهيدي لأساسيات Docker والحاويات، اطّلِع على ⁧⁩نظرة عامة حول Docker⁧⁩.

تلميح

تتوفر أداة وضع العلامات على نموذج التعرف الضوئي على الحروف أيضا كمشروع مصدر مفتوح على GitHub. الأداة عبارة عن تطبيق ويب TypeScript تم إنشاؤه باستخدام React + Redux. لمعرفة المزيد أو المساهمة، راجع إعادة تصميم أداة وضع العلامات على نموذج التعرف الضوئي على الحروف . لتجربة الأداة عبر الإنترنت، انتقل إلى موقع ويب أداة وضع العلامات النموذجية للتعرف على النماذج.

  1. أولا ، قم بتثبيت Docker على جهاز كمبيوتر مضيف. سيوضح لك هذا الدليل كيفية استخدام الكمبيوتر المحلي كمضيف. إذا كنت تريد استخدام خدمة استضافة Docker في Azure، فراجع الدليل الإرشادي لنشر أداة وضع العلامات النموذجية.

    يجب أن يفي الكمبيوتر المضيف بمتطلبات الأجهزة التالية:

    الحاوية الحدّ الأدنى المستحسنة
    أداة وضع العلامات على العينة 2 نواة، ذاكرة 4 جيجابايت 4 نواة، ذاكرة 8 جيجابايت

    قم بتثبيت Docker على جهازك باتباع الإرشادات المناسبة لنظام التشغيل الخاص بك:

  2. احصل على حاوية أداة وضع العلامات النموذجية باستخدام الأمر docker pull .

     docker pull mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1
    
  3. الآن أنت مستعد لتشغيل الحاوية مع docker run.

     docker run -it -p 3000:80 mcr.microsoft.com/azure-cognitive-services/custom-form/labeltool:latest-2.1 eula=accept
    

    سيجعل هذا الأمر أداة "وضع العلامات النموذجية" متاحة من خلال مستعرض ويب. انتقل إلى http://localhost:3000.

ملاحظة

يمكنك أيضا تسمية المستندات ونماذج التدريب باستخدام واجهة برمجة تطبيقات REST للتعرف على النماذج. للتدريب والتحليل باستخدام واجهة برمجة تطبيقات REST، راجع التدريب باستخدام التسميات باستخدام واجهة برمجة تطبيقات REST وPython.

إعداد بيانات الإدخال

أولاً، تأكد من أن تطابق تنسيق جميع مستندات التدريب. إذا كان لديك نماذج بتنسيقات متعددة، فقم بتنظيمها في مجلدات فرعية استنادًا إلى تنسيق شائع. عند التدريب، ستحتاج إلى توجيه واجهة برمجة التطبيقات إلى مجلد فرعي.

تكوين مشاركة الموارد عبر المجالات (CORS)

تمكين CORS على حساب التخزين الخاص بك. حدد حساب التخزين الخاص بك في مدخل Azure، ثم اختر علامة التبويب ⁧⁩CORS⁧⁩ في الجزء الأيسر. في السطر السفلي، قم بتعبئة القيم التالية. حدد ⁧⁩حفظ⁧⁩ في الأعلى.

  • الأصول المسموح بها = *
  • الطرق المسموح بها = [حدد الكل]
  • الرؤوس المسموح بها = *
  • الرؤوس المكشوفة = *
  • الحد الأقصى للعمر = 200

CORS setup in the Azure portal

الاتصال إلى أداة وضع العلامات النموذجية

تتصل أداة تسمية العينة بمصدر (النماذج الأصلية التي تم تحميلها) وهدف (تسميات تم إنشاؤها وبيانات إخراج).

يمكن إعداد الاتصالات ومشاركتها عبر المشاريع. وهي تستخدم نموذج موفر قابل للتوسعة؛ بحيث يمكنك بسهولة إضافة مصدر جديد/ موفرين مستهدفين جدد.

لإنشاء اتصال جديد، حدد أيقونة اتصالات جديدة (قابس)، في شريط التنقل الأيمن.

قم بتعبئة الحقول بالقيم التالية:

  • ⁩اسم العرض⁧⁩ - اسم عرض الاتصال.

  • ⁩الوصف⁧⁩ - وصف المشروع الخاص بك.

  • ⁩ عنوان URL لـ SAS⁧⁩ عنوان URL لتوقيع الوصول المشترك (SAS) لحاوية كائنات Azure الثنائية كبيرة الحجم. لاسترداد عنوان URL الخاص بـ SAS لبيانات تدريب النموذج المخصص، انتقل إلى مورد التخزين في مدخل Microsoft Azure وحدد علامة التبويب Storage Explorer. انتقل إلى الحاوية الخاصة بك، وانقر بزر الماوس الأيمن، وحدد Get shared access signature. من المهم الحصول على SAS لحاويتك، وليس لحساب التخزين نفسه. تأكد من اختيار الأذونات Read وWrite وDelete وList، ثم انقر فوق Create. ثم انسخ القيمة الموجودة في قسم URL إلى موقع مؤقت. يجب أن يكون بالشكل: https://<storage account>.blob.core.windows.net/<container name>?<SAS value>.

    SAS URL retrieval

Connection settings of Sample Labeling tool.

إنشاء مشروع جديد

في أداة وضع العلامات النموذجية، تخزن المشاريع التكوينات والإعدادات. قم بإنشاء مشروع جديد واملأ الحقول بالقيم التالية:

  • ⁩اسم العرض⁧⁩ - اسم عرض المشروع
  • رمز الأمان المميز - يمكن أن تتضمن بعض إعدادات المشروع قيما حساسة، مثل المفاتيح أو الأسرار المشتركة الأخرى. سيقوم كل مشروع بإنشاء رمز أمان يمكن استخدامه لتشفير/ فك تشفير إعدادات المشروع الحساسة. يمكنك العثور على رموز الأمان في تطبيق الإعدادات عن طريق تحديد رمز الترس في الجزء السفلي من شريط التنقل الأيسر.
  • اتصال المصدر - اتصال تخزين Azure Blob الذي قمت بإنشائه في الخطوة السابقة التي ترغب في استخدامها لهذا المشروع.
  • مسار المجلد - اختياري - إذا كانت النماذج المصدر موجودة في مجلد على حاوية blob ، فحدد اسم المجلد هنا
  • ⁩Uri خدمة Form Recognizer⁧⁩ - عنوان URL لنقطة النهاية الخاصة بـ Form Recognizer.
  • المفتاح - مفتاح التعرف على النموذج.
  • ⁩الوصف⁧⁩ - اختياري - وصف المشروع

New project page on Sample Labeling tool.

تسمية النماذج

عند إنشاء أو فتح مشروع، يتم فتح إطار محرر العلامة الرئيسي. يتكون محرر العلامة من ثلاثة أجزاء:

  • جزء معاينة متغير الحجم يحتوي على قائمة نماذج قابلة للتمرير من اتصال المصدر.
  • جزء المحرر الرئيسي الذي يسمح لك بتطبيق العلامات.
  • جزء محرر العلامات الذي يسمح للمستخدمين بتعديل العلامات وتأمينها، وإعادة ترتيبها وحذفها.

تحديد النص والجداول

حدد ⁧⁩تشغيل OCR على كافة الملفات⁧⁩ في الجزء الأيسر للحصول على معلومات تخطيط النص والجدول لكل مستند. ستقوم أداة التسمية برسم مربعات إحاطة حول كل عنصر نصي.

كما ستظهر أداة التسمية الجداول التي تم استخراجها تلقائيًا. حدد رمز الجدول/ الشبكة على يسار المستند لرؤية الجدول المستخرج. في هذا التشغيل السريع؛ لأنه يتم استخراج محتوى الجدول تلقائيًا، لن نقوم بتسمية محتوى الجدول؛ بل سنعتمد على الاستخراج التلقائي.

Table visualization in Sample Labeling tool.

في الإصدار 2.1، إذا لم يكن مستند التدريب الخاص بك يحتوي على قيمة مملوءة، فيمكنك رسم مربع حيث يجب أن تكون القيمة. استخدم رسم المنطقة في الزاوية العلوية اليمنى من النافذة لجعل المنطقة قابلة للتمييز.

تطبيق التسميات على النص

بعد ذلك، ستقوم بإنشاء علامات تمييز (تسميات) وتطبيقها على عناصر النص التي تريد أن يحللها النموذج.

  1. أولا، استخدم جزء محرر العلامات لإنشاء العلامات التي تريد تحديدها.
    1. حدد ⁧⁩⁧+⁩⁧⁩ لإنشاء علامة جديدة.
    2. أدخل اسم العلامة.
    3. اضغط على «إدخال» لحفظ العلامة.
  2. في المحرر الرئيسي، حدد كلمات من عناصر النص المميزة أو المنطقة التي رسمت فيها.
  3. حدد العلامة التي تريد تطبيقها، أو اضغط على مفتاح لوحة المفاتيح المقابل. يتم تعيين مفاتيح الأرقام كمفاتيح اختصار لأول 10 علامات. يمكنك إعادة ترتيب العلامات باستخدام رموز السهم لأعلى ولأسفل في جزء محرر العلامة.

    تلميح

    ضع النصائح التالية في الاعتبار عند تسمية نماذجك:

    • يمكنك تطبيق علامة واحدة فقط على كل عنصر نص محدد.
    • يمكن تطبيق كل علامة مرة واحدة فقط لكل صفحة. إذا ظهرت قيمة عدة مرات في نفس النموذج، فقم بإنشاء علامات مختلفة لكل مثيل. على سبيل المثال: "الفاتورة # 1" ، "الفاتورة # 2" وهلم جرًا.
    • لا يمكن أن تمتد العلامات عبر الصفحات.
    • قيم التسمية كما تظهر في النموذج، لا تحاول تقسيم قيمة إلى قسمين مع علامتين مختلفتين. على سبيل المثال، يجب تسمية حقل عنوان بعلامة واحدة حتى إذا كان يمتد عبر أسطر متعددة.
    • لا تقم بتضمين المفاتيح في الحقول التي تم وضع علامة عليها، بل القيم فقط.
    • يجب اكتشاف بيانات الجدول تلقائيا وستكون متاحة في ملف JSON للإخراج النهائي. ومع ذلك، إذا فشل النموذج في اكتشاف كافة بيانات الجدول، فيمكنك وضع علامة على هذه الحقول يدويا أيضا. ضع علامة على كل خلية في الجدول بتسمية مختلفة. إذا كانت النماذج تحتوي على جداول بأعداد مختلفة من الصفوف، فتأكد من وضع علامة على نموذج واحد على الأقل بأكبر جدول ممكن.
    • استخدم الأزرار الموجودة على يمين ⁧⁩⁧+⁩⁧⁩؛ للبحث عن العلامات، وإعادة تسميتها، وإعادة ترتيبها وحذفها.
    • لحذف علامة مطبقة دون حذف العلامة نفسها، حدد المستطيل المعلم في طريقة عرض المستند، واضغط على مفتاح الحذف.

Main editor window of Sample Labeling tool.

اتبع الخطوات المذكورة أعلاه لتسمية خمسة نماذج على الأقل.

تحديد أنواع قيم العلامات

يمكنك تعيين نوع البيانات المتوقع لكل علامة. افتح قائمة السياق على يسار العلامة وحدد نوعا من القائمة. تسمح هذه الميزة لخوارزمية الكشف بوضع افتراضات من شأنها تحسين دقة اكتشاف النص. كما يضمن إرجاع القيم المكتشفة بتنسيق موحد في إخراج JSON النهائي. يتم حفظ معلومات نوع القيمة في ملف fields.json في نفس المسار مثل ملفات التسمية.

Value type selection with Sample Labeling tool

يتم حاليا دعم أنواع القيم والاختلافات التالية:

  • string

    • افتراضي, , no-whitespacesalphanumeric
  • number

    • افتراضي currency
    • تم تنسيقها كقيمة نقطة عائمة.
    • مثال: سيتم تنسيق 1234.98 على المستند إلى 1234.98 على الإخراج
  • date

    • افتراضي, , , dmymdyymd
  • time

  • integer

    • تم تنسيقه كقيمة عدد صحيح.
    • مثال: سيتم تنسيق 1234.98 على المستند إلى 123498 على الإخراج
  • selectionMark

ملاحظة

راجع هذه القواعد لتنسيق التاريخ:

يجب تحديد تنسيق (dmy, , mdyymd) لكي يعمل تنسيق التاريخ.

يمكن استخدام الأحرف التالية كمحددات للتاريخ: , - / . \. لا يمكن استخدام المسافة البيضاء كمحدد. على سبيل المثال:

  • 01,01,2020
  • 01-01-2020
  • 01/01/2020

يمكن كتابة كل من اليوم والشهر كرقم واحد أو رقمين ، ويمكن أن تتكون السنة من رقمين أو أربعة أرقام:

  • 1-1-2020
  • 1-01-20

إذا كانت السلسلة الزمنية مكونة من ثمانية أرقام، يكون المحدد اختياريا:

  • 01012020
  • 01 01 2020

يمكن أيضا كتابة الشهر كاسمه الكامل أو القصير. إذا تم استخدام الاسم، تكون أحرف المحدد اختيارية. ومع ذلك ، قد يتم التعرف على هذا التنسيق بدقة أقل من غيره.

  • 01/يناير/2020
  • 01يناير2020
  • 01 يناير 2020

جداول التسميات (الإصدار 2.1 فقط)

في بعض الأحيان، قد تفسح بياناتك المجال بشكل أفضل لتصنيفها كجدول بدلا من أزواج القيم الرئيسية. في هذه الحالة ، يمكنك إنشاء علامة جدول بالنقر فوق "إضافة علامة جدول جديدة" ، وتحديد ما إذا كان الجدول سيحتوي على عدد ثابت من الصفوف أو عدد متغير من الصفوف اعتمادا على المستند ، وتحديد المخطط.

Configuring a table tag.

بمجرد تعريف علامة الجدول، ضع علامة على قيم الخلايا.

Labeling a table.

تدريب نموذج مخصص

اختر رمز التدريب في الجزء الأيسر لفتح صفحة التدريب. ثم حدد الزر ⁧⁩تدريب⁧⁩ لبدء تدريب النموذج. بعد انتهاء عملية التدريب، سترى المعلومات التالية:

  • ⁩معرف النموذج⁧⁩ - معرف النموذج الذي تم إنشاؤه وتدريبه. يعمل كل استدعاء للتدريب على إنشاء نموذج جديد مع المعرف الخاص به. نسخ هذه السلسلة إلى موقع آمن; ستحتاج إليها إذا كنت ترغب في إجراء مكالمات تنبؤ من خلال واجهة برمجة تطبيقات REST أو دليل مكتبة العميل.
  • ⁩متوسط الدقة⁧⁩ - متوسط دقة النموذج. يمكنك تحسين دقة النموذج عن طريق تسمية نماذج إضافية، وإعادة التدريب لإنشاء نموذج جديد. نوصي بالبدء بوضع علامات على خمسة نماذج وإضافة المزيد من النماذج حسب الحاجة.
  • قائمة العلامات، والدقة المقدرة لكل علامة.

Training view.

بعد انتهاء التدريب، افحص قيمة متوسط الدقة . إذا كان منخفضا ، فيجب عليك إضافة المزيد من مستندات الإدخال وتكرار الخطوات المذكورة أعلاه. ستبقى المستندات التي قمت بتصنيفها بالفعل في فهرس المشروع.

تلميح

يمكنك أيضا تشغيل عملية التدريب باستخدام مكالمة REST API. لمعرفة كيفية القيام بذلك، راجع التدريب باستخدام التصنيفات باستخدام Python.

إنشاء نماذج مدربة

باستخدام إنشاء النموذج، يمكنك إنشاء ما يصل إلى 100 نموذج إلى معرف طراز واحد. عند استدعاء تحليل باستخدام المكون modelID، سيقوم أداة التعرف على النموذج أولا بتصنيف النموذج الذي أرسلته ، واختيار أفضل نموذج مطابق ، ثم إرجاع النتائج لهذا النموذج. هذه العملية مفيدة عندما تكون النماذج الواردة تنتمي إلى أحد القوالب المتعددة.

لإنشاء نماذج في أداة وضع العلامات النموذجية، حدد أيقونة إنشاء النموذج (سهم الدمج) على اليمين. على اليسار ، حدد النماذج التي ترغب في تأليفها معا. النماذج التي تحتوي على رمز الأسهم هي نماذج مكونة بالفعل. اختر الزر إنشاء. في النافذة المنبثقة، قم بتسمية النموذج المكون الجديد وحدد إنشاء. عند اكتمال العملية، يجب أن يظهر النموذج المكون حديثا في القائمة.

Model compose UX view.

تحليل نموذج

حدد رمز التحليل (المصباح) على اليسار لاختبار النموذج. حدد المصدر 'ملف محلي'. استعرض بحثًا عن ملف، وحدد ملفًا من مجموعة بيانات العينة التي قمت بفكها في مجلد الاختبار. ثم اختر الزر ⁧⁩تشغيل التحليل⁧⁩ للحصول على أزواج المفاتيح/ القيم، وتوقعات النص والجداول للنموذج. ستقوم الأداة بتطبيق العلامات في مربعات الإحاطة، وستبلغ عن ثقة كل علامة.

Screenshot: analyze-a-custom-form window

تلميح

يمكنك أيضا تشغيل واجهة برمجة تطبيقات التحليل باستخدام مكالمة REST. لمعرفة كيفية القيام بذلك، راجع التدريب باستخدام التصنيفات باستخدام Python.

تحسين النتائج

اعتمادا على الدقة المبلغ عنها ، قد ترغب في إجراء مزيد من التدريب لتحسين النموذج. بعد الانتهاء من التنبؤ، افحص قيم الثقة لكل علامة من العلامات المطبقة. إذا كان متوسط قيمة التدريب على الدقة مرتفعا، ولكن درجات الثقة منخفضة (أو كانت النتائج غير دقيقة)، فيجب عليك إضافة ملف التنبؤ إلى مجموعة التدريب، وتسميته، والتدريب مرة أخرى.

يمكن أن يكون متوسط الدقة المبلغ عنه ودرجات الثقة والدقة الفعلية غير متناسق عندما تختلف المستندات التي تم تحليلها عن المستندات المستخدمة في التدريب. ضع في اعتبارك أن بعض المستندات تبدو متشابهة عند عرضها من قبل الأشخاص ولكن يمكن أن تبدو مميزة لنموذج الذكاء الاصطناعي. على سبيل المثال، يمكنك التدريب باستخدام نوع نموذج يحتوي على شكلين، حيث تتكون مجموعة التدريب من تباين A بنسبة 20٪ وتباين B بنسبة 80٪. أثناء التنبؤ، من المرجح أن تكون درجات الثقة لوثائق التباين A أقل.

حفظ مشروع واستئنافه لاحقا

لاستئناف مشروعك في وقت آخر أو في مستعرض آخر، تحتاج إلى حفظ الرمز المميز لأمان مشروعك وإعادة إدخاله لاحقا.

الحصول على بيانات اعتماد المشروع

انتقل إلى صفحة إعدادات المشروع (رمز شريط التمرير) ولاحظ اسم رمز الأمان. ثم انتقل إلى إعدادات التطبيق (رمز الترس) ، والذي يعرض جميع رموز الأمان في مثيل المتصفح الحالي. ابحث عن رمز أمان مشروعك وانسخ اسمه وقيمته الرئيسية إلى موقع آمن.

استعادة بيانات اعتماد المشروع

عندما تريد استئناف مشروعك، تحتاج أولا إلى إنشاء اتصال بنفس حاوية تخزين blob. للقيام بذلك، كرر الخطوات المذكورة أعلاه. بعد ذلك ، انتقل إلى صفحة إعدادات التطبيق (رمز الترس) ومعرفة ما إذا كان رمز أمان مشروعك موجودا. إذا لم يكن كذلك، فأضف رمزا مميزا جديدا للأمان وانسخه فوق اسم الرمز المميز والمفتاح من الخطوة السابقة. حدد حفظ للاحتفاظ بإعداداتك..

استئناف مشروع

أخيرا ، انتقل إلى الصفحة الرئيسية (رمز المنزل) وحدد فتح Project السحابة. ثم حدد اتصال تخزين blob ، وحدد ملف . fott الخاص بمشروعك. سيقوم التطبيق بتحميل جميع إعدادات المشروع لأنه يحتوي على رمز الأمان.

الخطوات التالية

في هذه البداية السريعة، تعلمت كيفية استخدام أداة وضع العلامات النموذجية للتعرف على النموذج لتدريب نموذج يحتوي على بيانات مصنفة يدويا. إذا كنت ترغب في إنشاء أداة مساعدة خاصة بك لتسمية بيانات التدريب، فاستخدم واجهات برمجة تطبيقات REST التي تتعامل مع تدريب البيانات المصنفة.