Path: blob/main/transformers_doc/ar/tensorflow/sequence_classification.ipynb
4544 views
تصنيف النص(Text classification)
تصنيف النص هو مهمة NLP شائعة حيث يُعيّن تصنيفًا أو فئة للنص. تستخدم بعض أكبر الشركات تصنيف النصوص في الإنتاج لمجموعة واسعة من التطبيقات العملية. أحد أكثر أشكال تصنيف النص شيوعًا هو تحليل المشاعر، والذي يقوم بتعيين تسمية مثل 🙂 إيجابية، 🙁 سلبية، أو 😐 محايدة لتسلسل نصي.
سيوضح لك هذا الدليل كيفية:
ضبط DistilBERT على مجموعة بيانات IMDb لتحديد ما إذا كانت مراجعة الفيلم إيجابية أو سلبية.
استخدام نموذج الضبط الدقيق للتنبؤ.
لرؤية جميع البنى ونقاط التحقق المتوافقة مع هذه المهمة، نوصي بالتحقق من صفحة المهمة.
قبل أن تبدأ، تأكد من تثبيت جميع المكتبات الضرورية:
نحن نشجعك على تسجيل الدخول إلى حساب Hugging Face الخاص بك حتى تتمكن من تحميل ومشاركة نموذجك مع المجتمع. عند المطالبة، أدخل رمزك لتسجيل الدخول:
تحميل مجموعة بيانات IMDb
ابدأ بتحميل مجموعة بيانات IMDb من مكتبة 🤗 Datasets:
ثم ألق نظرة على مثال:
هناك حقولان في هذه المجموعة من البيانات:
text
: نص مراجعة الفيلم.label
: قيمة إما0
لمراجعة سلبية أو1
لمراجعة إيجابية.
المعالجة المسبقة(Preprocess)
الخطوة التالية هي تحميل المُجزِّئ النص DistilBERT لتهيئة لحقل text
:
أنشئ دالة لتهيئة حقل text
وتقصير السلاسل النصية بحيث لا يتجاوز طولها الحد الأقصى لإدخالات DistilBERT:
لتطبيق دالة التهيئة على مجموعة البيانات بأكملها، استخدم دالة 🤗 Datasets map
. يمكنك تسريع map
باستخدام batched=True
لمعالجة دفعات من البيانات:
الآن قم بإنشاء دفعة من الأمثلة باستخدام DataCollatorWithPadding
. الأكثر كفاءة هو استخدام الحشو الديناميكي لجعل الجمل متساوية في الطول داخل كل دفعة، بدلًا من حشو كامل البيانات إلى الحد الأقصى للطول.
التقييم(Evaluate)
ثم أنشئ دالة تقوم بتمرير تنبؤاتك وتصنيفاتك إلى compute
لحساب الدقة:
دالة compute_metrics
جاهزة الآن، وستعود إليها عند إعداد التدريب.
التدريب(Train)
قبل أن تبدأ في تدريب نموذجك، قم بإنشاء خريطة من المعرفات المتوقعة إلى تسمياتها باستخدام id2label
و label2id
:
إذا لم تكن على دراية بضبط نموذج باستخدام Keras، قم بالاطلاع على البرنامج التعليمي الأساسي هنا!
ثم يمكنك تحميل DistilBERT مع TFAutoModelForSequenceClassification
بالإضافة إلى عدد التصنيفات المتوقعة، وتعيينات التسميات:
قم بتحويل مجموعات بياناتك إلى تنسيق tf.data.Dataset
باستخدام prepare_tf_dataset()
:
قم بتهيئة النموذج للتدريب باستخدام compile
. لاحظ أن جميع نماذج Transformers لديها دالة خسارة ذات صلة بالمهمة بشكل افتراضي، لذلك لا تحتاج إلى تحديد واحدة ما لم ترغب في ذلك:
آخر أمرين يجب إعدادهما قبل بدء التدريب هو حساب الدقة من التوقعات، وتوفير طريقة لدفع نموذجك إلى Hub. يتم ذلك باستخدام Keras callbacks.
قم بتمرير دالة compute_metrics
الخاصة بك إلى KerasMetricCallback
:
حدد مكان دفع نموذجك والمجزئ اللغوي في PushToHubCallback
:
ثم اجمع الاستدعاءات معًا:
أخيرًا، أنت مستعد لبدء تدريب نموذجك! قم باستدعاء fit
مع مجموعات بيانات التدريب والتحقق، وعدد الحقبات، واستدعاءاتك لضبط النموذج:
بمجرد اكتمال التدريب، يتم تحميل نموذجك تلقائيًا إلى Hub حتى يتمكن الجميع من استخدامه!
للحصول على مثال أكثر عمقًا حول كيفية ضبط نموذج لتصنيف النصوص، قم بالاطلاع على الدفتر المقابل دفتر PyTorch أو دفتر TensorFlow.
الاستدلال(Inference)
رائع، الآن بعد أن قمت بضبط نموذج، يمكنك استخدامه للاستدلال!
احصل على بعض النصوص التي ترغب في إجراء الاستدلال عليها:
أسهل طريقة لتجربة النموذج المضبوط للاستدلال هي استخدامه ضمن pipeline()
. قم بإنشاء pipeline
لتحليل المشاعر مع نموذجك، ومرر نصك إليه:
يمكنك أيضًا تكرار نتائج pipeline
يدويًا إذا أردت:
قم بتحليل النص وإرجاع تنسيقات TensorFlow:
قم بتمرير مدخلاتك إلى النموذج وإرجاع logits
:
استخرج الفئة ذات الاحتمالية الأعلى، واستخدم id2label
لتحويلها إلى تصنيف نصي: