توثيق مشروع التخرّج

الرحلة التجريبية — كشف الأخبار الزائفة العربية

مساران تجريبيان منفصلان تماماً: محوّل مبني من الصفر (ستّ تجارب) وضبط AraBERT الدقيق (سبع تجارب). كل قيمة معروضة هنا منقولة حرفياً من مستندات المشروع، دون إعادة حساب أو تقريب أو دمج بين المسارين. الحقول غير المذكورة في المصدر تُعرض كما هي: «غير مذكور في المستند المصدر».

All_Trials_Report_2.pptx
A_full_comprehensive_comparison.docx
Trial_6_fixed.ipynb
Fifth_Trail_Arabic_Fake_News_Detection_Trail_5.ipynb

أفضل دقة اختبار

84.37%

التجربة 6 · فجوة val→test 0.16 pp

أعلى دقة تحقق مفردة

85.15%

التجربة 5

إجمالي المقالات المزحوفة

606,912

134 مجلد مصدر · زحف كامل

أفضل Macro F1

0.839

التجربة 6

مجموعة البيانات والمنهجية والإعداد التجريبي

مصادر هذا المسار: All_Trials_Report_2.pptx · Trial_6_fixed.ipynb

مجموعة البيانات

مجموعة البياناتDataset
AFND — Arabic Fake News Dataset
إجمالي مجلدات المصادرTotal source folders
134
إجمالي المقالات المزحوفةTotal articles crawled
606,912
الفئاتClasses
Credible / Not Credible / Undecided
البنية على القرصOn-disk layout
sources.json (خريطة {folder_name: label}) + 134 مجلد source_N يحوي scraped_articles.json

المنهجية

  • تنفيذ PyTorch أصيل لمصنّف Transformer Encoder لكشف الأخبار الزائفة العربية بثلاث فئات (Credible / Not Credible / Undecided).
  • لا تُستخدم أي نماذج مُدرّبة مسبقاً: المُرمِّز والمفردات والترميز الموضعي ومشفّر المحوّل — كلها مبنية من المبادئ الأولى.
  • التجارب 1–3 تعتمد تقسيم Cross-Source (folder) مع اختبار أعمى على 24 مجلداً محجوزاً؛ التجارب 4–6 تعتمد تقسيم Randomized (article) على الزحف الكامل.

الإعداد التجريبي

المفرداتVocabulary
Word-level · [CLS] tok… [SEP] [PAD] · MIN_WORD_FREQ = 1
البذرة العشوائيةRandom seed
42
العتادHardware
RTX 2000 (قيود VRAM: BATCH_SIZE=16، MAX_LENGTH=512)
معمارية الأساسBaseline architecture
d=128, h=4, L=4, ff=256
المعمارية الموسّعة (T5–T6)Scaled architecture
d=256, h=8, L=6, ff=512

الخط الزمني للتجارب

تسلسل التطوير كما ورد في مستندات المشروع — من التجربة الأولى إلى التهيئة التجريبية الأخيرة

  1. 1

    T1 — الأساس

    54K train, CE Loss

    Baseline — 54K train, CE Loss (كما ورد في مخطط التقرير).

  2. 2

    T2 — توسيع + إيقاف مبكر

    108K train

    توسيع بيانات التدريب إلى 108,000 مقال مع تفعيل الإيقاف المبكر (val_loss, patience=3).

  3. 3

    T3 — تنظيم متقدّم

    216K train, Focal Loss

    216,000 مقال تدريب · الانتقال إلى Focal Loss γ=2 مع الأوزان · Cosine Warmup · تجميد 3 طبقات لحقبتين · فصل قيم Dropout.

  4. 4

    T4 — تقسيم عشوائي

    425K train, 606K articles

    التجربة 4 تُدخل التقسيم العشوائي على مستوى المقال (Randomized article split) ويستمر حتى التجربتين 5–6 · الزحف الكامل 606,912 مقالاً بلا حجز مجلدات.

  5. 5

    T5 — Focal Loss + إذابة التجميد

    485K train, gradual unfreeze

    توسيع المعمارية إلى d=256, h=8, L=6, ff=512 · تقسيم 80/10/10 · خفض Dropout إلى 0.10 / 0.20 · إذابة التجميد بعد حقبتين.

  6. 6

    T6 — الضبط التمييزي

    mean-max pooling, label smoothing

    1) إذابة تجميد تدريجية طبقة/حقبة (ULMFiT-style) بدل إذابة 3 طبقات + التضمين دفعة واحدة · 2) معدلات تعلّم تمييزية مع اضمحلال وزن منفصل يستثني LayerNorm/bias · 3) إعادة إحماء محلية عند كل إذابة · 4) رفع التنظيم مجدداً (attn_dropout=0.15، hidden_dropout=0.30) · 5) تنعيم التسميات ε=0.05 داخل Focal Loss · 6) تجميع Mean+Max مُسقَط إلى d_model · 7) إعادة تصفير الصبر عند كل حدث إذابة تجميد.

بطاقات التجارب

كل تجربة بإعدادها ونتائجها وملاحظاتها كما وردت في المصدر — بلا حذف أو تبسيط

مقارنة النتائج

كل الرسوم تعرض القيم المُبلَّغ عنها في المصدر كما هي — لا قيم مشتقّة

الدقة حسب التجربة — تدريب / تحقق / اختبار

F1 حسب التجربة

Recall لكل فئة (×100)

حجم بيانات التدريب مقابل دقة الاختبار

جداول المقارنة الأصلية

منقولة حرفياً من مستندات المشروع

جدول 1 — كل المعاملات عبر التجارب الست

All Parameters Across Six Trials — All_Trials_Report_2.pptx

البندالتجربة 1التجربة 2التجربة 3التجربة 4التجربة 5التجربة 6
نمط التقسيمSplit paradigmCross-Source (folder)Cross-Source (folder)Cross-Source (folder)Randomized (article)Randomized (article)Randomized (article)
إجمالي مجلدات المصادرTotal source folders134134134134134134
مجلدات التطوير / الزحفDev / crawled folders110110110134 (all — no holdout)134 (all — no holdout)134 (all — no holdout)
المجلدات المحجوزةHeld-out folders24 (18%)24 (18%)24 (18%)N/A — no folder holdoutN/A — no folder holdoutN/A — no folder holdout
سقف المقالات لكل فئةArticles per class (cap)20,00040,000 ↑80,000 ↑↑None — full crawlNone — full crawlNone — full crawl
إجمالي مقالات التدريبTotal training articles54,000108,000 (2×)216,000 (4×)424,838 (~8×)485,529485,529
مقالات التحققValidation articles6,00012,00024,00091,03760,69160,691
مقالات الاختبار المحجوزةHeld-out test articles10,000 (Blind)10,000 (Blind)10,000 (Blind)91,037 (Random 15%)60,692 (Random 10%)60,692 (Random 10%)
إجمالي المقالات المزحوفةTotal articles crawled60,000120,000240,000606,912 (all)606,912 (all)606,912 (all)
عدد الحقب المنفّذةEpochs run10 (all)4 (early stop)7 (early stop)7 (early stop)6 (early stop)11 (early stop)
معيار التوقفStopping criterionval_acc, no patienceval_loss, patience=3val_loss, patience=3val_loss, patience=3val_loss, patience=3val_loss, patience=3
دالة الخسارةLoss functionCrossEntropy + weightsCrossEntropy + weightsFocal Loss γ=2 + weightsFocal Loss γ=2 + weightsFocal Loss γ=2 + weightsFocal Loss γ=2 + label smoothing 0.05
جدولة معدّل التعلّمLR schedulerStatic 1e-4Static 1e-4Cosine Warmup (1 epoch)Cosine Warmup (1 epoch)Cosine Warmup (1 epoch)Discriminative (base=1e-4, decay=0.85)
Dropout الانتباهAttention dropout0.10.30.15 (decoupled)0.20 (decoupled)0.100.15
Dropout الرأس / المخرجاتHead / output dropout0.10.30.300.300.200.30
التجميعPoolingCLSCLSCLSCLSCLSMean + Max concat (NEW)
تجميد الطبقاتLayer freezingNoneNoneFreeze 3 layers × 2 epFreeze 3 layers × 2 epFreeze 3 layers × 2 epGradual: 1 layer/epoch (2–5)
اضمحلال الوزنWeight decay0.010.0010.0010.0010.001Decoupled: 0.05 / 0.0
المعماريةArchitectured=128, h=4, L=4, ff=256samesamesamed=256, h=8, L=6, ff=512 ↑same

التجارب 1–3 تستخدم تقسيم Cross-Source (folder) · التجربة 4 تُدخل تقسيم Randomized (article) ويستمر حتى 5–6.

مصفوفات الالتباس

كما وردت في المستند المصدر — أعداد خام لكل تجربة

مصفوفات الالتباس — التجارب 1 و2 و3

Blind Test set · 10,000 مقال من 24 مصدراً غير مرئي إطلاقاً — نفس مجموعة الاختبار للتجارب الثلاث

التجربة 1 · 10,000 مقال اختبار

١٠٬٠٠٠ مقال

Blind Test · 24 مصدراً غير مرئي إطلاقاً — نفس مجموعة الاختبار للتجارب 1–3

حقيقي \ متوقّعموثوقغير موثوقغير محسوم
موثوق
١٬٤٧٢
٦٠٩
٢٬٨٩٠
غير موثوق
٨٢٧
١٬٠٦٠
٩٤٥
غير محسوم
١٦٤
٥٢٥
١٬٥٠٨

التجربة 2 · 10,000 مقال اختبار

١٠٬٠٠٠ مقال

Blind Test · نفس مجموعة الاختبار

حقيقي \ متوقّعموثوقغير موثوقغير محسوم
موثوق
١٬٠٥٩
٧٨٤
٣٬١٢٨
غير موثوق
٧٠٦
١٬٢٣٩
٨٨٧
غير محسوم
١١٥
٥٤٨
١٬٥٣٤

التجربة 3 · 10,000 مقال اختبار

١٠٬٠٠٠ مقال

Blind Test · نفس مجموعة الاختبار

حقيقي \ متوقّعموثوقغير موثوقغير محسوم
موثوق
١٬٠٧٧
٧٧٩
٣٬١١٥
غير موثوق
٨٤٣
١٬١٣٣
٨٥٦
غير محسوم
١٤٦
٥٩٢
١٬٤٥٩
  • Credible → Undecided يهيمن على التجارب الثلاث في الاختبار الأعمى: 58–63% من كل مقال Credible حقيقي (2,890–3,128 من 4,971) يُصنَّف Undecided — النموذج يلجأ إلى «غير محسوم» أمام أساليب المصادر غير المألوفة بدل التخمين الواثق.
  • recall فئة Undecided يبقى الأعلى (66–70%) في التجارب الثلاث، لكن بثمن precision منخفض جداً — تتحوّل إلى سلة تجميع للمصادر غير المعروفة.
  • هذا النمط ينقلب تماماً في التجارب 4–6، حيث تصبح Credible أقوى الفئات وأدقّها — ما يؤكد أن عنق الزجاجة هنا هو الانتقال عبر المصادر، لا قدرة النموذج على الفصل بين الفئات الثلاث.

مصفوفات الالتباس — التجارب 4 و5 و6

التجارب الثلاث تتشارك نمط التقسيم العشوائي ومنطق التقييم (أحجام مجموعات الاختبار تختلف: T4=91,037؛ T5/T6=60,692)

التجربة 4 · 91,037 مقال اختبار

٩١٬٠٣٧ مقال

Randomized split (15%)

حقيقي \ متوقّعموثوقغير موثوقغير محسوم
موثوق
٢٦٬٣٢١
٢٬٥٠٨
٢٬٢٦٨
غير موثوق
٢٬٠٣٤
١٩٬٤٠٠
٣٬٦٥١
غير محسوم
١٬٩٩٨
٣٬٨٤٠
٢٩٬٠١٧

التجربة 5 · 60,692 مقال اختبار

٦٠٬٦٩٢ مقال

Randomized split (10%)

حقيقي \ متوقّعموثوقغير موثوقغير محسوم
موثوق
١٧٬٧٨٩
١٬٨٣٣
١٬١٠٩
غير موثوق
١٬١٢١
١٤٬٠٠٢
١٬٦٠١
غير محسوم
١٬٠٤٧
٣٬٧٣٣
١٨٬٤٥٧

التجربة 6 · 60,692 مقال اختبار

٦٠٬٦٩٢ مقال

Randomized split (10%)

حقيقي \ متوقّعموثوقغير موثوقغير محسوم
موثوق
١٧٬٨٥٤
١٬٣٤٥
١٬٥٣٢
غير موثوق
١٬٠١٦
١٢٬٨٦٨
٢٬٨٤٠
غير محسوم
٩٠٤
١٬٨٥٣
٢٠٬٤٨٠
  • Not Credible → Undecided هو أكبر التباس في التجارب الثلاث — التجربة 6 تدفع مزيداً منه نحو Undecided (2,840 مقابل 1,601 في T5)، مقايضةً بعض recall فئة Not Credible مقابل الدقة الكلية.
  • Undecided → Not Credible ينخفض بحدّة من التجربة 5 إلى 6 (3,733 ← 1,853) — أكبر تقليص مفرد للأخطاء بين التجربتين.
  • Credible هي أكثر التسميات موثوقية في تصنيفها عبر تجارب التقسيم العشوائي الثلاث (F1 > 0.85 في كلها) — عكس نمط الاختبار الأعمى في الشريحة السابقة.

الملاحظات والاستنتاجات

نصوص منقولة من مستندات المشروع

المشكلة (التجربة 5)

Trial 5 (Focal Loss + freeze/unfreeze at epoch 2): reaches the highest raw validation accuracy (85.15%) but overfits sharply after unfreezing — val loss climbs from 0.161 to 0.223 over the last three epochs.

الإصلاح (التجربة 6)

Trial 6 (gradual per-layer unfreeze + discriminative LR + label smoothing): trades a little peak validation accuracy for a training curve that never diverges — and posts the best test accuracy of any trial (84.37%).

الاستنتاج الجوهري

The core finding: fine-tuning stability, not model capacity, was the remaining bottleneck after Trial 4 — and Trial 6’s training-dynamics fixes resolved it.

  • الخلاصة الجوهرية: استقرار الضبط الدقيق — لا سعة النموذج — هو عنق الزجاجة المتبقّي بعد التجربة 4، وقد حلّته إصلاحات ديناميكيات التدريب في التجربة 6.
  • التجارب 5 و6 تتشاركان التقسيم العشوائي 80/10/10 على 606,912 مقالاً؛ التجربة 6 تضيف الإذابة التدريجية لكل طبقة، ومعدلات التعلّم التمييزية، وتنعيم التسميات — فتكاد تُلغي فجوة التحقق ← الاختبار التي ظهرت في التجربة 5.
  • أفضل نتيجة في المسار A: التجربة 6 — 84.37% دقة اختبار، فجوة val→test = 0.16 نقطة مئوية.