كيفية استخدام Hugging Face Transformers في Python

Kyfyt Astkhdam Hugging Face Transformers Fy Python



يُعرف Hugging Face على أنه مجتمع ذكاء اصطناعي مفتوح المصدر ويوفر جميع الأطر والأدوات والنماذج والبنى المهمة التي تساعد على التواصل أو التدريب مع نماذج اللغة (معالجة اللغة الطبيعية). Hugging Face Transformers هي بنية لغة تساعد في توفير نماذج معالجة اللغة المدربة مسبقًا في Python. توفر هذه المحولات من Hugging Face مجموعة واسعة من مجموعات البيانات وواجهات برمجة التطبيقات ذات الطبقات التي تساعد المبرمجين على إنشاء تفاعل بسهولة مع النماذج المدربة مسبقًا مع حزم المكتبة الخاصة بهم.

بناء الجملة

تحتوي محولات Hugging Face الحديثة على مجموعة كبيرة ومتنوعة من النماذج المدربة مسبقًا. يمكن تطبيق هذه النماذج على نماذج اللغات المختلفة المدرجة في ما يلي:

  • قد تعالج هذه المحولات النص بلغات مختلفة ويمكنها أداء مهام مختلفة على النص مثل تصنيف النص ، والتساؤل والإجابة ، وترجمة النص إلى لغات مختلفة ، وإنشاء النص.
  • قد نستخدم أيضًا هذه المحولات في Hugging Face لمهام التصنيف القائمة على الرؤية مثل اكتشاف الأشياء والمهام القائمة على الكلام ، على سبيل المثال تصنيف المتحدث أو التعرف على الكلام / التعرف عليه.

تشمل المحولات من Hugging Face TensorFlow و PyTorch و ONNX وما إلى ذلك. من أجل تركيب الحزمة لهذه المحولات ، نستخدم الأمر التالي:







محولات التثبيت بالدولار

الآن ، نحاول تجربة أمثلة مختلفة حيث نستخدم نماذج من محول Hugging Face لمهام معالجة لغة مختلفة.



مثال 1: إنشاء نص باستخدام محولات المعانقة للوجه

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



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





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

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



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

نعطي المدخلات 'هذا نموذج لغوي'. نصلح الحد الأقصى لطول الناتج إلى '30' وعدد الجمل في الناتج إلى '3'. الآن ، نقوم ببساطة باستدعاء وظيفة pprint () لعرض النتائج التي تم إنشاؤها من نموذجنا.

! نقطة تثبيت المحولات

من خط أنابيب استيراد المحولات
من pprint استيراد pprint

SELECTED_TASK = 'إنشاء نص'
الطراز = 'gpt2'
المهمة = خط الأنابيب (f '{SELECTED_TASK}' ، النموذج = MODEL)

INPUT = 'هذا نموذج لغة'
OUt_put = مهمة (INPUT ، max_length = 30 ، num_return_sequences = 3)

البصمة (OUt_put)

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

مثال 2: تصنيف النص باستخدام خطوط الأنابيب من المحولات

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

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

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

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

! نقطة تثبيت المحولات
من خط أنابيب استيراد المحولات
استيراد الباندا كما pd
المصنف = خط الأنابيب ('تصنيف النص' ، النموذج = 'textattack / distilbert-base-uncased-CoLA')
text = 'أنا رجل جيد'
النتيجة = المصنف (نص)
البصمة (نتيجة)
df = pd.DataFrame (نتيجة)

خاتمة

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