تحديد النص المعاد صياغته له قيمة تجارية في العديد من حالات الاستخدام. على سبيل المثال ، من خلال تحديد إعادة صياغة الجملة ، يمكن لنظام تلخيص النص إزالة المعلومات الزائدة عن الحاجة. تطبيق آخر هو تحديد الوثائق المسروقة. في هذا المنشور ، نقوم بضبط ملف وجه يعانق محول على الأمازون SageMaker لتحديد أزواج الجمل المعاد صياغتها في بضع خطوات.
يمكن للنموذج القوي حقًا تحديد النص المعاد صياغته عندما تكون اللغة المستخدمة مختلفة تمامًا ، وكذلك تحديد الاختلافات عندما تحتوي اللغة المستخدمة على تداخل معجمي مرتفع. في هذا المنشور ، نركز على الجانب الأخير. على وجه التحديد ، ننظر إلى ما إذا كان بإمكاننا تدريب نموذج يمكنه تحديد الفرق بين جملتين لهما تداخل معجمي عالٍ ومعاني مختلفة جدًا أو معاكسة. على سبيل المثال ، الجمل التالية لها نفس الكلمات بالضبط ولكن معاني متناقضة:
- أخذت رحلة من نيويورك إلى باريس
- أخذت رحلة من باريس إلى نيويورك
حل نظرة عامة
نوجهك عبر الخطوات عالية المستوى التالية:
- هيئ البيئة.
- تحضير البيانات.
- قم بترميز مجموعة البيانات.
- صقل النموذج.
- انشر النموذج وقم بإجراء الاستدلال.
- تقييم أداء النموذج.
إذا كنت تريد تخطي إعداد البيئة ، يمكنك استخدام الكمبيوتر الدفتري التالي GitHub جيثب: وقم بتشغيل الكود في SageMaker.
أعلنت Hugging Face و AWS عن شراكة في وقت سابق في عام 2022 تجعل من الأسهل تدريب نماذج Hugging Face على SageMaker. هذه الوظيفة متاحة من خلال تطوير Hugging Face حاويات التعلم العميق (DLC) من AWS. تتضمن هذه الحاويات Hugging Face Transformers و Tokenizers ومكتبة Datasets ، والتي تتيح لنا استخدام هذه الموارد في وظائف التدريب والاستدلال. للحصول على قائمة بصور DLC المتاحة ، راجع صور حاويات التعلم العميق المتاحة. يتم صيانتها وتحديثها بانتظام مع تصحيحات الأمان. يمكنك العثور على العديد من الأمثلة حول كيفية تدريب نماذج Hugging Face باستخدام DLCs و تعانق الوجه Python SDK في التالي جيثب ريبو.
مجموعة بيانات PAWS
إدراك عدم وجود مجموعات بيانات أزواج جمل فعالة تظهر تداخلًا معجميًا عاليًا دون إعادة صياغة ، الأصل الكفوف تهدف مجموعة البيانات التي تم إصدارها في عام 2019 إلى تزويد مجتمع معالجة اللغة الطبيعية (NLP) بمورد جديد للتدريب وتقييم نماذج اكتشاف إعادة الصياغة. يتم إنشاء أزواج جمل PAWS في خطوتين باستخدام ويكيبيديا و أزواج أسئلة Quora (QQP) مجموعة البيانات. يقوم النموذج اللغوي أولاً بتبديل الكلمات في زوج جمل مع نفس حقيبة الكلمات (BOW) لتوليد زوج جمل. تقوم خطوة الترجمة الخلفية بعد ذلك بإنشاء إعادة صياغة مع تداخل BOW مرتفع ولكن باستخدام ترتيب كلمات مختلف. تحتوي مجموعة بيانات PAWS النهائية على ما مجموعه 108,000 من المسمى بشريًا و 656,000 زوجًا من الأزواج ذات العلامات الصاخبة.
في هذا المنشور ، نستخدم ملف PAWS-Wiki المسمى (نهائي) مجموعة بيانات من Hugging Face. لقد أجرى Hugging Face بالفعل تقسيم البيانات بالنسبة لنا ، مما أدى إلى 49,000 زوج من الجمل في مجموعة بيانات التدريب ، و 8,000 زوج جملة لكل من مجموعات بيانات التحقق من الصحة والاختبار. يتم عرض مثالين لزوج الجمل من مجموعة بيانات التدريب في المثال التالي. يشير التصنيف 1 إلى أن الجملتين عبارة عن إعادة صياغة لبعضهما البعض.
الجملة 1 | الجملة 2 | تُشير |
على الرغم من أنها قابلة للتبديل ، إلا أن قطع الجسم في السيارتين ليست متشابهة. | على الرغم من تشابه أجزاء الجسم في السيارتين ، إلا أنها غير قابلة للتبديل. | 0 |
ولد كاتس في السويد عام 1947 وانتقل إلى مدينة نيويورك في سن 1. | ولد كاتس عام 1947 في السويد وانتقل إلى نيويورك وهو في سن الواحدة. | 1 |
المتطلبات الأساسية المسبقة
تحتاج إلى إكمال المتطلبات الأساسية التالية:
- قم بالتسجيل للحصول على حساب AWS إذا لم يكن لديك حساب. لمزيد من المعلومات، راجع إعداد المتطلبات الأساسية لـ Amazon SageMaker.
- ابدأ في استخدام مثيلات دفتر SageMaker.
- نصب الحق إدارة الهوية والوصول AWS (IAM) أذونات. لمزيد من المعلومات، راجع أدوار SageMaker.
هيئ البيئة
قبل أن نبدأ في فحص وإعداد بياناتنا من أجل ضبط النموذج ، نحتاج إلى إعداد بيئتنا. لنبدأ بتدوير مثيل دفتر ملاحظات SageMaker. اختر منطقة AWS في حساب AWS الخاص بك واتبع التعليمات إنشاء مثيل دفتر ملاحظات SageMaker. قد يستغرق مثيل الكمبيوتر الدفتري بضع دقائق حتى يتم تدويره.
عند تشغيل مثيل دفتر الملاحظات ، اختر conda_pytorch_p38
كنوع النواة الخاصة بك. لاستخدام مجموعة بيانات Hugging Face ، نحتاج أولاً إلى تثبيت واستيراد مكتبة Hugging Face:
بعد ذلك ، دعنا ننشئ جلسة SageMaker. نحن نستخدم الافتراضي خدمة تخزين أمازون البسيطة حاوية (Amazon S3) المرتبطة بجلسة SageMaker لتخزين مجموعة بيانات PAWS ونماذج التحف:
تحضير البيانات
يمكننا تحميل إصدار Hugging Face من مجموعة بيانات PAWS به load_dataset()
أمر. تقوم هذه المكالمة بتنزيل واستيراد البرنامج النصي لمعالجة PAWS Python من مستودع Hugging Face GitHub ، والذي يقوم بعد ذلك بتنزيل مجموعة بيانات PAWS من عنوان URL الأصلي المخزن في البرنامج النصي وتخزين البيانات مؤقتًا كجدول سهم على محرك الأقراص. انظر الكود التالي:
قبل أن نبدأ في ضبط نموذج BERT المدربين مسبقًا ، دعنا نلقي نظرة على توزيع الفئة المستهدفة. بالنسبة لحالة الاستخدام الخاصة بنا ، تحتوي مجموعة بيانات PAWS على تسميات ثنائية (يشير 0 إلى أن زوج الجملة ليس إعادة صياغة ، ويشير الرقم 1 إلى أنه كذلك). لنقم بإنشاء مخطط عمودي لعرض توزيع الفئة ، كما هو موضح في الكود التالي. نلاحظ وجود مشكلة طفيفة في عدم توازن الفئة في مجموعة التدريب لدينا (56٪ عينات سلبية مقابل 44٪ عينات إيجابية). ومع ذلك ، فإن الخلل صغير بما يكفي لتجنب استخدام تقنيات التخفيف من اختلال التوازن.
قم بترميز مجموعة البيانات
قبل أن نبدأ في الضبط الدقيق ، نحتاج إلى ترميز مجموعة البيانات الخاصة بنا. كنقطة بداية ، لنفترض أننا نريد ضبط وتقييم roberta-base
محول. اخترنا roberta-base
لأنه محول متعدد الأغراض تم تدريبه مسبقًا على مجموعة كبيرة من بيانات اللغة الإنجليزية وقد أظهر بشكل متكرر أداءً عاليًا في مجموعة متنوعة من مهام البرمجة اللغوية العصبية. تم تقديم النموذج في الأصل في الورقة RoBERTa: نهج BERT مُحسَّن بقوة قبل التدريب المسبق.
نقوم بعملية الترميز على الجمل بامتداد roberta-base
tokenizer من Hugging Face ، والذي يستخدم تشفير زوج البايت على مستوى البايت لتقسيم المستند إلى رموز مميزة. لمزيد من التفاصيل حول رمز RoBERTa المميز ، يرجى الرجوع إلى روبرتا توكنيزر. نظرًا لأن مدخلاتنا عبارة عن أزواج من الجمل ، فنحن بحاجة إلى ترميز كلتا الجملتين في وقت واحد. نظرًا لأن معظم طرز BERT تتطلب أن يكون للإدخال طول إدخال رمزي ثابت ، فإننا نضبط المعلمات التالية: max_len=128
و truncation=True
. انظر الكود التالي:
تتمثل الخطوة الأخيرة للمعالجة المسبقة لضبط نموذج BERT الخاص بنا في تحويل مجموعات بيانات القطار والتحقق من الصحة إلى موترات PyTorch وتحميلها إلى دلو S3 الخاص بنا:
صقل النموذج
الآن بعد أن انتهينا من إعداد البيانات ، نحن جاهزون لضبط ما لدينا من تدريب مسبق roberta-base
نموذج في مهمة تحديد إعادة الصياغة. يمكننا استخدام فئة SageMaker Hugging Face Estimator لبدء عملية الضبط الدقيق في خطوتين. تتمثل الخطوة الأولى في تحديد معلمات التدريب التشعبية وتعريفات المترية. يخبر متغير تعريفات المقاييس "مُقدِّر الوجه المعانق" بأنواع المقاييس المطلوب استخلاصها من سجلات تدريب النموذج. هنا ، نحن مهتمون بشكل أساسي باستخراج مقاييس مجموعة التحقق في كل فترة تدريب.
تتمثل الخطوة الثانية في إنشاء مثيل لـ Hugging Face Estimator وبدء عملية الضبط الدقيق باستخدام ملف .fit()
الأسلوب:
تستغرق عملية الضبط حوالي 30 دقيقة باستخدام المعلمات الفائقة المحددة.
انشر النموذج وقم بإجراء الاستدلال
يقدم SageMaker خيارات نشر متعددة بناءً على حالة الاستخدام الخاصة بك. بالنسبة لنقاط النهاية المستمرة في الوقت الفعلي التي تقدم تنبؤًا واحدًا في كل مرة ، نوصي باستخدام خدمات الاستضافة في الوقت الحقيقي من SageMaker. إذا كان لديك أعباء عمل بها فترات خمول بين فترات الازدحام المروري ويمكن أن تتحمل البدايات الباردة ، فإننا نوصي باستخدام الاستدلال بدون خادم. تقوم نقاط النهاية التي لا تحتوي على خادم تلقائيًا بتشغيل موارد الحوسبة وتوسيع نطاقها وفقًا لحركة المرور ، مما يلغي الحاجة إلى اختيار أنواع المثيلات أو إدارة سياسات التوسع. نوضح كيفية نشر نموذج Hugging Face الذي تم ضبطه بدقة على كل من نقطة نهاية الاستدلال في الوقت الفعلي ونقطة نهاية الاستدلال بدون خادم.
انشر إلى نقطة نهاية للاستدلال في الوقت الفعلي
يمكنك نشر كائن تدريب على استضافة الاستدلال في الوقت الفعلي داخل SageMaker باستخدام .deploy()
طريقة. للحصول على قائمة كاملة بالمعلمات المقبولة ، يرجى الرجوع إلى نموذج الوجه المعانقة. للبدء ، دعنا ننشر النموذج على مثيل واحد ، عن طريق تمرير المعلمات التالية: initial_instance_count
, instance_type
و endpoint_name
. انظر الكود التالي:
يستغرق النموذج بضع دقائق للنشر. بعد نشر النموذج ، يمكننا إرسال عينة من السجلات من مجموعة بيانات الاختبار غير المرئية إلى نقطة النهاية للاستدلال.
انشر إلى نقطة نهاية للاستدلال بدون خادم
لنشر كائن التدريب الخاص بنا على نقطة نهاية بدون خادم ، نحتاج أولاً إلى تحديد ملف التكوين بدون خادم memory_size_in_mb
و max_concurrency
الحجج:
memory_size_in_mb
يحدد الحجم الإجمالي لذاكرة الوصول العشوائي لنقطة النهاية التي لا تحتوي على خادم ؛ الحد الأدنى لحجم ذاكرة الوصول العشوائي هو 1024 ميجابايت (1 جيجابايت) ويمكن أن يصل حجمه إلى 6144 ميجابايت (6 جيجابايت). بشكل عام ، يجب أن تهدف إلى اختيار حجم ذاكرة يكون على الأقل بحجم نموذجك. max_concurrency
يحدد الحصة النسبية لعدد الاستدعاءات المتزامنة التي يمكن معالجتها في نفس الوقت (حتى 50 طلبًا متزامنًا) لنقطة نهاية واحدة.
نحتاج أيضًا إلى توفير URI لصورة Hugging Face inference ، والتي يمكنك استردادها باستخدام الكود التالي:
الآن بعد أن أصبح لدينا ملف التكوين بدون خادم ، يمكننا إنشاء نقطة نهاية بدون خادم بنفس طريقة نقطة نهاية الاستدلال في الوقت الفعلي ، باستخدام .deploy()
الأسلوب:
يجب إنشاء نقطة النهاية في غضون بضع دقائق.
نفذ الاستدلال النموذجي
لعمل تنبؤات ، نحتاج إلى إنشاء زوج الجمل عن طريق إضافة [CLS]
و [SEP]
الرموز المميزة الخاصة ثم إرسال المدخلات لاحقًا إلى نقاط نهاية النموذج. صيغة الاستدلال في الوقت الفعلي والاستدلال بدون خادم هي نفسها:
في الأمثلة التالية ، يمكننا أن نرى أن النموذج قادر على تصنيف ما إذا كان زوج جملة الإدخال يحتوي على جمل معاد صياغتها.
فيما يلي مثال على الاستدلال في الوقت الفعلي.
ما يلي هو مثال على الاستدلال Serverless.
تقييم أداء النموذج
لتقييم النموذج ، دعنا نوسع الشفرة السابقة ونرسل جميع سجلات الاختبار غير المرئية البالغ عددها 8,000 إلى نقطة النهاية في الوقت الفعلي:
بعد ذلك ، يمكننا إنشاء تقرير تصنيف باستخدام التنبؤات المستخرجة:
نحصل على درجات الاختبار التالية.
يمكننا ملاحظة ذلك roberta-base
حصل على مجموع متوسط ماكرو F1 بنسبة 92٪ وأداء أفضل قليلاً في اكتشاف الجمل المعاد صياغتها. ال roberta-base
يعمل النموذج جيدًا ، ولكن من الممارسات الجيدة حساب أداء النموذج باستخدام نموذج واحد آخر على الأقل.
يقارن الجدول التالي roberta-base
نتائج الأداء في نفس الاختبار مجموعة ضد محول آخر مضبوط بدقة يسمى paraphrase-mpnet-base-v2
، محول جمل تم تدريبه مسبقًا خصيصًا لمهمة تحديد إعادة الصياغة. تم تدريب كلا النموذجين على مثيل ml.p3.8xlarge.
تظهر النتائج أن roberta-base
حصل على درجة F1 أعلى بنسبة 1٪ مع أوقات تدريب واستدلال متشابهة جدًا باستخدام استضافة الاستدلال في الوقت الفعلي على SageMaker. فرق الأداء بين النماذج طفيف نسبيًا ، ومع ذلك ، roberta-base
هو الفائز في النهاية لأنه يحتوي على مقاييس أداء أفضل بشكل هامشي وأوقات تدريب واستدلال متطابقة تقريبًا.
دقة | تذكر | درجة F1 | وقت التدريب (مدفوعة) | وقت الاستدلال (مجموعة اختبار كاملة) | |
روبرتا قاعدة | 0.92 | 0.93 | 0.92 | 18 دقيقة | 2 دقيقة |
إعادة صياغة- mpnet- القاعدة v2 |
0.92 | 0.91 | 0.91 | 17 دقيقة | 2 دقيقة |
تنظيف
عند الانتهاء من استخدام نقاط نهاية النموذج ، يمكنك حذفها لتجنب تكبد رسوم مستقبلية:
وفي الختام
في هذا المنشور ، ناقشنا كيفية بناء نموذج تعريف معاد الصياغة بسرعة باستخدام محولات Hugging Face على SageMaker. قمنا بضبط محولين مدربين مسبقًا ، roberta-base
و paraphrase-mpnet-base-v2
، باستخدام مجموعة بيانات PAWS (التي تحتوي على أزواج الجمل ذات التداخل المعجمي العالي). لقد أوضحنا وناقشنا فوائد الاستدلال في الوقت الفعلي مقابل نشر الاستدلال بدون خادم ، وهذه الأخيرة هي ميزة جديدة تستهدف أعباء العمل الشائكة وتلغي الحاجة إلى إدارة سياسات التوسع. في اختبار غير مرئي مع 8,000 سجل ، أظهرنا أن كلا النموذجين قد حققا درجة F1 أكبر من 90٪.
للتوسع في هذا الحل ، ضع في اعتبارك ما يلي:
- حاول إجراء الضبط الدقيق باستخدام مجموعة البيانات المخصصة الخاصة بك. إذا لم يكن لديك ملصقات تدريب كافية ، فيمكنك تقييم أداء نموذج مضبوط بدقة مثل النموذج الموضح في هذا المنشور على مجموعة بيانات اختبار مخصصة.
- قم بدمج هذا النموذج الدقيق في تطبيق متلقٍ يتطلب معلومات حول ما إذا كانت جملتان (أو كتل نصية) تعيد صياغة بعضهما البعض.
مبنى سعيد!
حول المؤلف
بالا كريشنامورثي هو عالم بيانات مع خدمات AWS الاحترافية ، حيث يستمتع بتطبيق التعلم الآلي لحل مشاكل عمل العملاء. وهو متخصص في حالات استخدام معالجة اللغة الطبيعية وعمل مع العملاء في صناعات مثل البرمجيات والتمويل والرعاية الصحية. في أوقات فراغه ، يستمتع بتجربة طعام جديد ، ومشاهدة الأفلام الكوميدية والأفلام الوثائقية ، والتمرن في Orange Theory ، والخروج على الماء (التجديف ، والغطس ، ونأمل أن نغطس قريبًا).
إيفان كوي هو عالم بيانات مع خدمات AWS الاحترافية ، حيث يساعد العملاء على بناء الحلول ونشرها باستخدام التعلم الآلي على AWS. لقد عمل مع عملاء من مختلف الصناعات ، بما في ذلك البرمجيات والتمويل والأدوية والرعاية الصحية. في أوقات فراغه ، يستمتع بالقراءة وقضاء الوقت مع عائلته وتعظيم محفظته المالية.
- '
- "
- 000
- 10
- 100
- 2019
- 2022
- 84
- من نحن
- الوصول
- حسابي
- تحقق
- في
- الكل
- سابقا
- أمازون
- أعلن
- آخر
- تطبيق
- تطبيق
- ما يقرب من
- الحجج
- متاح
- AWS
- يجري
- الفوائد
- الجسدي
- الحدود
- نساعدك في بناء
- الأعمال
- دعوة
- قادر على
- cars
- الحالات
- اسعارنا محددة من قبل وزارة العمل
- اختار
- المدينة
- فئة
- تصنيف
- الكود
- عمود
- الجمع بين
- مجتمع
- تماما
- إحصاء
- الثقة
- حاويات
- يحتوي
- استطاع
- خلق
- خلق
- على
- زبون
- العملاء
- البيانات
- عالم البيانات
- شرح
- تظاهر
- اعتمادا
- نشر
- نشر
- نشر
- تفاصيل
- كشف
- التطوير التجاري
- مختلف
- توزيع
- أفلام وثائقية
- وثائق
- التنزيلات
- قيادة
- فعال
- نقطة النهاية
- عربي
- البيئة
- إنشاء
- تقييم
- مثال
- عرض
- وسع
- الوجه
- للعائلات
- الميزات
- تمويل
- الاسم الأول
- طيران
- تركز
- اتباع
- متابعيك
- طعام
- مجانًا
- بالإضافة إلى
- وظيفة
- وظيفة
- مستقبل
- هدف عام
- على العموم
- توليد
- GitHub جيثب:
- خير
- أكبر
- الرعاية الصحية
- ارتفاع
- يساعد
- هنا
- مرتفع
- أعلى
- استضافة
- كيفية
- كيفية
- HTTPS
- هوية
- تحديد
- تحديد
- هوية
- صورة
- تتضمن
- بما فيه
- الصناعات
- معلومات
- إدخال
- تثبيت
- يستفد
- قضية
- IT
- المشــاريــع
- ملصقات
- لغة
- كبير
- إطلاق
- تعلم
- المكتبة
- قائمة
- تحميل
- آلة
- آلة التعلم
- يصنع
- إدارة
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- المقاييس
- ML
- نموذج
- عارضات ازياء
- الأكثر من ذلك
- أكثر
- متعدد
- طبيعي
- سلبي
- نيويورك
- مدينة نيويورك
- مفكرة
- عروض
- الأمثل
- مزيد من الخيارات
- طلب
- أخرى
- الخاصة
- ورق
- باريس
- الشراكة
- مرور
- بقع
- أداء
- فترات
- الأدوية
- البوينت
- سياسات الخصوصية والبيع
- محفظة
- إيجابي
- ممارسة
- تنبؤ
- تنبؤات
- مشاكل
- عملية المعالجة
- معالجة
- محترف
- تزود
- سؤال
- قرة
- رامات
- صف
- نادي القراءة
- في الوقت الحقيقي
- نوصي
- تسجيل
- صدر
- تقرير
- مستودع
- تطلب
- مورد
- الموارد
- النتائج
- عائد أعلى
- يجري
- تشغيل
- حجم
- التحجيم
- عالم
- أمن
- مختار
- Serverless
- خدمات
- طقم
- ضبط
- مماثل
- الاشارات
- مقاس
- صغير
- تطبيقات الكمبيوتر
- الصلبة
- حل
- الحلول
- حل
- تختص
- تتخصص
- على وجه التحديد
- الإنفاق
- غزل
- انقسم
- بداية
- بدأت
- يبدأ
- مخزون
- تخزين
- متجر
- بعد ذلك
- تزويد
- السويد
- نظام
- الهدف
- المهام
- تقنيات
- يروي
- تجربه بالعربي
- عبر
- الوقت
- Tokenization
- المرمز
- الرموز
- تيشرت
- شعلة
- حركة المرور
- قادة الإيمان
- خدمات ترجمة
- us
- تستخدم
- التحقق من صحة
- قيمنا
- تشكيلة
- المزيد
- مياه
- ابحث عن
- سواء
- ويكيبيديا
- في غضون
- بدون
- كلمات
- عمل
- عامل
- العمل بها