← voidwest    research notes

إيش يقيس اختبار الصرف؟ تقسيم الكلمات وطرق قراءة تمثيل النموذج

تجربة مدقّقة على 11 نموذجاً في Arabic morphology probing
محمد الثبيتي · 2026-08-27
Arabic NLP morphology probing evaluation reproducibility Qwen LLaMA

الاختبار الخطي ما يعطي رقماً عن النموذج لحاله. النتيجة تخص تمثيل النموذج تحت prompt والتقسيم وقاعدة محاذاة وقاعدة تجميع وطبقة مختارة ومقدّر محدد. في هذا التقييم خلّينا الواجهات واضحة وسألنا سؤالاً بسيطاً: إيش يصير للنتيجة لما نخلي الهويات المعجمية المألوفة خارج التدريب؟

مجموعة الاختبار فيها 4,701 مثالاً من العربية الفصحى الحديثة، مشتقة من Universal Dependencies Arabic-PADT ومعالجة CAMeL Tools. المهام هي POS والجنس والعدد. الفكرة هنا قياس قابلية الاسترجاع باستخدام مصنّف خطي تحت شروط واضحة؛ أما الكفاءة اللغوية في العربية أو سلوك النموذج فهذه أسئلة ثانية تحتاج تجاربها الخاصة.

إيش اللي قسناه؟

المصفوفة عندنا تجمع 11 نموذجاً decoder-only مع ثلاثة شروط للتقسيم وأربع واجهات للتمثيل. كل تركيبة تستخدم خمس outer folds. والاختبار الخطي نفسه ثابت:

StandardScaler + RidgeClassifier(alpha=1.0)

في كل outer fold، نختار الطبقة باستخدام بيانات التدريب والتقسيم development مأخوذ من جزء التدريب الخارجي. بعدها نعيد ملاءمة الطبقة المختارة على train + development ونقيسها مرة واحدة على test. مقاييس الاختبار ما تدخل في اختيار الطبقة ولا المعالجة ولا النموذج ولا قيمة hyperparameter. نعرض macro-F1 مع الدقة ومرجع الأغلبية المحسوب من تسميات التدريب بس.

الشروط الثلاثة تحط وحدات معجمية مختلفة على الجهة الثانية من الحد: random instance مرجع متفائل لو بنختبر التداخل بين أمثلة من مخزون معجمي مألوف؛ lemma-heldout يختبر الانتقال بين مجموعات اللمات؛ وroot-heldout يختبر الانتقال بين مجموعات الجذور، وهي قاعدة تجميع أوسع ومختلفة.

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

العشوائي مرجع متفائل

المقارنة المختصرة عندنا فيها صف لكل نموذج ومهمة وواجهة: 132 صفاً إجمالاً. والتعريفان هما:

delta_lemma = macro_f1_random - macro_f1_lemma_heldout
delta_root  = macro_f1_random - macro_f1_root_heldout

كل قيم delta_lemma الـ132 طلعت موجبة، وكل قيم delta_root الـ132 طلعت موجبة. عبر المصفوفة، فرق العشوائي ناقص lemma-heldout يمتد من +0.0127 إلى +0.2863، بمتوسط +0.1059. وفرق العشوائي ناقص root-heldout يمتد من +0.0255 إلى +0.2796، بمتوسط +0.1179.

متوسط فروق macro-F1 بين التقسيم العشوائي والتقسيمات المجمّعة في 11 نموذجاً، مع أشرطة lemma-heldout وroot-heldout متوسط فروق macro-F1 بين التقسيم العشوائي والتقسيمات المجمّعة في 11 نموذجاً، مع أشرطة lemma-heldout وroot-heldout
متوسط فرق macro-F1 بين التقسيم العشوائي والتقسيم المجمّع، بعد المتوسط عبر المهام الثلاث وواجهات التمثيل الأربع. الأشرطة تلخص متوسطات النماذج؛ أما نتيجة الإيجابية في كل الصفوف فتأتي من جدول المقارنة ذي الـ132 صفاً.

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

النموذج | random − lemma | random − root
ALLaM-7B+0.0637+0.0816
Gemma-4-E2B+0.1382+0.1518
Jais-13B+0.0711+0.0918
Llama-3.1-8B+0.0835+0.0895
Llama-3.2-1B+0.1881+0.2054
Llama-3.2-3B+0.1276+0.1279
Mistral-7B+0.0993+0.1117
Phi-3-mini+0.1036+0.1314
Qwen2.5-1.5B+0.1134+0.1188
Qwen3-0.6B+0.0977+0.1118
Qwen3-8B+0.0783+0.0750

هذه المتوسطات تساعدنا نشوف التفاوت. الهندسة وtokenizer وعدد المعاملات وخليط التدريب وحالة instruction tuning كلها تختلف مع بعض، فالمصفوفة ما تعزل أثر الحجم أو العائلة. ومن اللافت إن فجوة Qwen3-8B مع اللمات أكبر شوي من فجوتها مع الجذور، بينما أغلب الصفوف عكس ذلك.

الـprompt يغيّر الصورة

هذا هو الـprompt اللي فيه كل البيانات:

Arabic morphology token probe.
Surface: {surface_dediac}
Token: {target}
Lemma: {lemma}
Root: {root}
Pattern: {abstract_pattern}
Predict the token morphology.

وهذا الـprompt من غير metadata، بعد حذف الحقول المعجمية الصريحة:

Arabic morphology token probe.
Surface: {surface_dediac}
Token: {target}
Predict the token morphology.

full-metadata prompt-final وtarget-final يختلفان على محورين. الحالة النهائية للـprompt الكامل تقدر تستفيد من حقول lemma وroot وpattern اللي تجي بعد الهدف. أما target-final subtoken فتؤخذ من بادئة سببية تنتهي عند آخر توكن متداخل مع الهدف، فهذه الحقول اللاحقة ما تكون متاحة هناك. metadata-free prompt-final يضيّق فرق توفر المعلومات، لكنه يحتفظ بسياق نهاية الـprompt.

الحالة | full metadata | metadata-free | target-final | target-mean
Qwen3-0.6B · lemma-heldout POS 0.85650.78550.82130.8116
Jais-13B · lemma-heldout number 0.72490.8272n/an/a

الأمثلة هنا تروح في اتجاهين: Qwen يفضل الـprompt الكامل، بينما مثال العدد في Jais يفضل النسخة الخالية من البيانات. السبب أن الموقع وتوفر المعلومات يتحركان مع بعض، فهذه مقارنات لصلاحية البناء construct validity. نتيجة نهاية الـprompt تخص تلك النهاية وسياقها؛ أما سؤال كلمة الهدف فيستخدم واجهة مختلفة.

التجميع جزء من اللي نقيسه

حفظنا كل حالة توكن متداخلة مع الهدف. target-final subtoken يستخدم حالة آخر توكن يتداخل مع الهدف؛ وtarget-mean span يأخذ المتوسط الحسابي لكل حالات التوكن المتداخلة. الاثنان عمليتان محليتان على نفس الـspan.

ومتوسط فجوات التقسيم عبر المصفوفة كلها يطلع كذا:

الواجهة | random − lemma | random − root
target-final subtoken+0.1141+0.1179
target-mean span+0.1222+0.1337

التجميع يغيّر القيم المطلقة ومقدار الفجوة، ومع ذلك تظل كل مقارنات العشوائي ناقص المجمّع الـ132 موجبة في هذه المصفوفة. حفظ الـspan كاملاً خلّى الفحص متاحاً من دون تمريرة جديدة على النموذج.

المحاذاة أول شيء

موقع الهدف يجي من الـoffsets المتحقق منها، مو من فهرس ثابت مثل [-1] أو من ترتيب الصفوف أو تطابق نصي بالصدفة. كل سجل لكل مثال يحمل الـprompt المرمّز والنص الهدف، وامتدادي المحارف وUTF-8 byte span، ومعرّفات التوكن وقطعه، وفهارس توكنات الهدف وعددها، وآخر توكن متداخل تم اختياره.

المحاذاة لازم تغطي الـspan كاملاً وبشكل متصل. كل حزم النماذج والـprompt conditions الـ22 فيها 4,701 مثال و4,701 محاذاة ناجحة. خط الأنابيب ما يدخل التحليل إلا بعد فحوصات الهوية والترتيب والأشكال والقيم المنتهية.

نلتقط مرة ونحلّل محلياً

وقت الاستخراج نحفظ خرج التضمين، وحالة نهاية الـprompt لكل طبقة من طبقات المحوّل، وكل حالات توكنات target span لكل طبقة. تنشيطات التسلسل الكامل ما تدخل الحزمة. عقد التحليل بعد الالتقاط هو:

weights_required = false

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

الضوابط فحص للـpipeline

ضوابط التسميات الملخبطة تغطي النموذجين الأساسيين (Qwen3-0.6B وLlama-3.2-1B)، والواجهات الأربع، والمهام الثلاث، والتقسيمات الثلاثة، والخمس folds: 360 خلية إجمالاً. التسميات تتخلط بشكل مستقل داخل التدريب والتطوير والاختبار، وبعدها نعيد تشغيل خط اختيار الطبقة كامل. ولا تتجاوز أي خلية مرجع الأغلبية المحسوب من التدريب بس.

هذا فحص سلامة للـpipeline بسؤاله المحدود: لما نشيل العلاقة بين التسمية والبيانات، هل يطلع أداء مشابه؟ النتيجة هنا ما تتكلم عن استخدام سببي من النموذج؛ التسميات الملخبطة والاختبار على التسميات الأصلية كلاهما قياس للقابلية الخطية، مو تدخل.

إيش لازم نذكر مع النتيجة؟

عشان أي أحد يقدر يعيد بناء النتيجة، لازم نعطي تفاصيلها. السجل يذكر قاعدة التجميع المعجمي، ومعلومات الـprompt المتاحة عند موقع الاستخراج، ومحاذاة الهدف مع التوكن، وموقع التمثيل، وقاعدة تجميع القطع، والمصنّف الخطي، وطريقة اختيار الطبقة، وحد التطوير/الاختبار، والمقياس، ومرجع الأغلبية.

الصياغة الأدق تكون كذا:

under this prompt, lexical split, aligned token span,
pooling rule, selected layer, and linear estimator,
feature X is recoverable at score Y.

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

الملفات والحالة

الكود والبيانات الوصفية وجداول النتائج وتقارير التحقق وملفات قابلية إعادة الإنتاج تلقاها في مستودع arabic-morphology-probing-lre. اللقطات المجمّدة تحفظ الدليل المطلوب للتحليلات بعد الاستخراج؛ أما أوزان النماذج فمو ضمن حزمة الملفات العامة.

ورقة «Lexical Split Design and Representation-Interface Validity in Decoder-Only Morphology Probing: An Arabic Evaluation Study» حالياً في مرحلة التعيين التحريري في مجلة Language Resources and Evaluation.