DeepPavlov للمطورين: # 2 الإعداد والنشر

جميع مقالات الدورة:

1. DeepPavlov للمطورين: # 1 أدوات البرمجة اللغوية العصبية وإنشاء روبوتات الدردشة
2. DeepPavlov للمطورين: # 2 الإعداد والنشر

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

نحن نوافق على تنفيذ جميع البرامج النصية لبدء تشغيل المكتبة في بيئة Python مع تثبيت مكتبة DeepPavlov (للتثبيت ، راجع المقالة الأولى ، للحصول على virtualenv ، اقرأ هنا ). لا تتطلب الأمثلة في هذه المقالة معرفة بناء جملة Python.



طرق التفاعل مع نماذج البرمجة اللغوية العصبية DeepPavlov


يدعم DeepPavlov حاليًا 4 طرق للتفاعل مع نماذج البرمجة اللغوية العصبية (سواء المدربة مسبقًا أو التي أنشأها المستخدمون):

  • خادم REST (وضع riseapi ) هو الأداة الرئيسية لدمج النماذج ، وقد تم وصفه بالتفصيل في مقال سابق (وثائق) .
  • خادم مقبس TCP أو UNIX (وضع risesocket ) - إذا كان التكامل منخفض المستوى (التوثيق) مطلوبًا.
  • Bot في Telegram (وضع telegram ) - وضع العرض التوضيحي ، يتيح لك التفاعل مع النموذج من خلال Telegram (الوثائق) .
  • سطر الأوامر (وضع التفاعل ) - وضع العرض التوضيحي والتصحيح ، يتيح لك التفاعل مع النموذج من خلال سطر الأوامر. تتم تهيئة النموذج في وضع التفاعل عبر سطر الأوامر باستخدام الأمر التالي:
    python -m deeppavlov interact 


يمكن أن تأخذ المعلمة <config_path> (المطلوبة في جميع الأوضاع الأربعة) المسار الكامل لملف تهيئة النموذج أو اسم ملف التكوين دون امتداد. في الحالة الأخيرة ، يجب أن يتم تسجيل تكوين النموذج في المكتبة.

يتم تسجيل Configs من جميع الطرز المتوفرة مع DeepPavlov في المكتبة. يمكن العثور على قائمة الطرز المتوفرة في قسم MODELS في وثائق DeepPavlov ، ويمكن العثور على التكوينات الخاصة بها هنا .

استخدام GPU


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

ملفات إعدادات المكتبة


جميع إعدادات المكتبة موجودة في ثلاثة ملفات:

  • server_config.json - إعدادات لخوادم REST ومآخذ التوصيل ، وكذلك موصل Telegram
  • dialog_logger_config.json - إعدادات لتسجيل طلبات النماذج
  • log_config.json - إعدادات تسجيل المكتبة

بشكل افتراضي ، توجد ملفات التكوين في <deep_pavlov_root> / utils / settings ، حيث <deep_pavlov_root> هو دليل تثبيت DeepPavlov (عادةً ما يكون هذا lib / python <XX> / site-package / deeppavlov في بيئة افتراضية). باستخدام القيادة

 python -m deeppavlov.settings 

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

 python -m deeppavlov.settings -d 

إعادة تعيين الإعدادات عن طريق نسخ ملفات الإعدادات من الدليل الافتراضي الموجود أعلى الملفات إلى DP_SETTINGS_PATH .

من إعدادات DeepPavlov ، يجب الانتباه إلى:

  • server_config.json ، المعلمة model_args_names:
    من المقال الأخير نتذكر:
    - الحجج إلى REST API DeepPavlov اسمه ؛
    - يتم تحديد أي نموذج في DeepPavlov بواسطة اسم التكوين الخاص به.
    لذلك ، يتم أخذ أسماء الوسائط الافتراضية لكل نموذج من التكوين الخاص به.

    سنقوم بتحليل بنية التكوينات النموذجية بالتفصيل في المقالات التالية ؛ والآن نلاحظ أنه يمكن إعادة تعريف أسماء الوسائط في واجهة برمجة تطبيقات REST على النحو التالي:

     model_args_names: [“arg_1_name”, ..., “arg_n_name”] 

    يتوافق تسلسل أسماء الوسائط مع التسلسل الذي يتم فيه تعريف الوسائط في تكوين النموذج ، والسلسلة الفارغة كقيمة معلمة model_args_names تتوافق مع الأسماء الافتراضية.
  • log_config.json:
    يرجى ملاحظة أنه لتسجيل الأشجار فوق البنفسجية يتم استخدام مسجل ، والذي تم تكوينه بشكل منفصل. يمكنك أن تقرأ عن بنية التكوين لوحدة تسجيل بيثون هنا .

تشغيل نماذج مدربة مسبقًا في Docker


يمكن إطلاق أي نموذج DeepPavlov تم تدريبه مسبقًا في حاوية Docker في وضع خدمة REST. التعليمات التفصيلية موجودة في مستودعاتنا على DockerHub: هنا لوحدة المعالجة المركزية ، هنا من أجل وحدة معالجة الرسومات. تتوافق نماذج API في الحاويات تمامًا مع الوصف الوارد في المقالة السابقة.

سحابة Deeppavlov


لتسهيل العمل مع طرز NLP المدربة مسبقًا من DeepPavlov ، بدأنا توفيرها في وضع SaaS. لاستخدام الطرز ، تحتاج إلى التسجيل في خدمتنا والحصول على رمز مميز في قسم الرموز في حسابك الشخصي. وثائق API في قسم المعلومات. تحت رمز واحد ، يمكنك إرسال ما يصل إلى 1000 طلب إلى النموذج.

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

النماذج التالية متاحة الآن في DeepPavlov Cloud:

  • التعرف على الكيانات المسماة (متعدد اللغات) - التعرف على الكيانات المسماة ؛
  • المشاعر (RU) - تصنيف لونية النص ؛
  • SQuAD (متعدد اللغات) - الإجابة على سؤال للنص كجزء من هذا النص.

استنتاج


في هذه المقالة ، تعرفنا على ميزات التكوين والنشر لنماذج DeepPavlov ، وتعرفنا على صور Docker DP وإمكانية الوصول المجاني إلى نماذج DP كـ SaaS.

في المقالة التالية ، سنقوم بتدريب نموذج DeepPavlov بسيط على مجموعة البيانات الخاصة بنا. ولا تنس أن DeepPavlov لديه منتدى - اطرح أسئلتك بخصوص المكتبة والموديلات. شكرا لاهتمامكم!

Source: https://habr.com/ru/post/ar476772/


All Articles