نماذج اللغة2020متوسط12 دقيقة قراءة
DeBERTa: تعزيز BERT بفكّ ترميز مُحسَّن وانتباه مُفكَّك
DeBERTa: Decoding-Enhanced BERT with Disentangled Attention
He, P. · Liu, X. · Gao, J. · Chen, W. — ICLR
المشكلة
في BERT وRoBERTa، يُدمَج معنى الكلمة مع موقعها في متجه واحد منذ الطبقة الأولى. هذا الدمج يعني أن النموذج لا يملك طريقة للتفكير في المعنى بمعزل عن الموقع، ولا في الموقع بمعزل عن المعنى. المشكلة تزداد لأن تضمينات تُحقن مبكراً جداً — قبل أن يحصل النموذج على فرصة لتعلّم العلاقات المكانية النسبية بين الكلمات عبر طبقاته المتتالية. النتيجة أن معلومات الموقع ومعلومات المحتوى تتزاحم في نفس الفضاء التمثيلي، فتُقيّد قدرة النموذج التعبيرية وكفاءته في الاستفادة من البيانات.
الإسهام
يُقدّم DeBERTa فكرتين أساسيتين. الأولى هي آلية : كل كلمة تُمثَّل بمتجهين مستقلين — واحد للمحتوى وآخر — ودرجة الانتباه تُحسب من ثلاث تفاعلات منفصلة: محتوى مع محتوى، ومحتوى مع موضع، وموضع مع محتوى. الفكرة الثانية هي (EMD)، الذي يؤجّل إدخال الموضع المطلق إلى طبقة فكّ الترميز الأخيرة — قبل softmax مباشرة — بدلاً من حقنه مع المدخلات. بالإضافة إلى ذلك، تُطبَّق طريقة SiFT اضطرابات خصومية على التضمينات بعد تطبيعها، مما يُحسّن قدرة النموذج على التعميم. بحجم 1.5 مليار معامل، تجاوز DeBERTa الأداء البشري على معيار SuperGLUE لأول مرة (89.9 مقابل 89.8).
الأثر
أثبت DeBERTa أن التصميم المعماري الذكي قد يتفوّق على مجرد زيادة حجم البيانات: بنصف بيانات RoBERTa، حقّق نتائج أفضل باستمرار عبر معايير معالجة اللغة الطبيعية. أصبحت المُفكَّك تقنية أساسية تبنّتها نماذج لاحقة، وكانت نسخته ذات 1.5 مليار معامل أول نموذج منفرد يتجاوز الأداء البشري على SuperGLUE — وهو إنجاز كان يُعتقد أنه يحتاج نماذج أكبر بكثير كنموذج T5 من Google بـ11 مليار معامل. ولا يزال DeBERTa من أكثر نماذج استخداماً على Hugging Face لمهام .
تخيّل أنك في مؤتمر علمي. في عالم BERT، كل شخص يلبس بطاقة واحدة مكتوب عليها وظيفته ورقم مقعده مدموجَين في سطر واحد. لو أردت أن تعرف «هل هذا الشخص باحث؟» ستجد نفسك حتماً تفكّر أيضاً في «هل هو في الصف الثالث؟» — المعلومتان متلاصقتان ولا تستطيع فصلهما.
DeBERTa يتعامل مع الأمر بشكل مختلف: يمنح كل شخص بطاقتين مستقلتين — واحدة تحمل دوره (المحتوى) والثانية تحمل مقعده (الموضع). هذا الفصل يتيح لآلية الانتباه أن تطرح أسئلة نقية: «هل بحث هذا العالِم يتقاطع مع عمل ذاك المهندس؟» (محتوى × محتوى)، «هل قربهما في الجلوس يجعل موضوعَيهما أكثر تقاطعاً؟» (محتوى × موضع)، «هل هذا المقعد عادةً يجلس عليه المتحدثون الرئيسيون؟» (موضع × محتوى). وفي الخطوة الأخيرة فقط — حين يحين وقت الإعلان عن المتحدث المُقنَّع — يلجأ DeBERTa إلى خريطة القاعة (الموضع المطلق) ليُثبّت تخمينه.
المشكلة: دمج المحتوى بالموضع يُضعف قدرة النموذج التعبيرية
في BERT، كل عند المدخلات هو ببساطة مجموع ثلاثة تضمينات: (أي المحتوى)، المقطع، وتضمين الموضع. من الطبقة الأولى وصاعداً، يتعامل النموذج مع هذا المتجه المدمَج كوحدة واحدة. لا توجد آلية تتيح له أن يسأل: «ما معنى هذه الكلمة بغضّ النظر عن موقعها؟» ولا أن يسأل: «كم تبعد هاتان الكلمتان عن بعضهما بغضّ النظر عن محتواهما؟»
هذا الدمج يُسبّب مشكلتين عمليتين. المشكلة الأولى أن إشارة الموضع تتلاشى تدريجياً كلما صعدت عبر طبقات — فالموضع المطلق الذي حُقن في القاع يفقد قوته بحلول الطبقات العليا. المشكلة الثانية أن النموذج لا يستطيع تعلّم أنماط انتباه مستقلة لعلاقة المحتوى بالمحتوى وعلاقة المحتوى بالموضع، فيضطر إلى تعلّم نمط تسووي واحد يحاول التعامل مع الاثنين في آنٍ واحد.
لتوضيح الفكرة، خذ الجملة: «افتتح متجر جديد باباً جديداً.» كلمة «جديد» تظهر مرتين. في BERT، النسختان تحصلان على تمثيلات مختلفة لسبب واحد فقط: اختلاف تضمينات الموضع. لكن من حيث المحتوى، الكلمتان متطابقتان. الأفضل أن يتمكّن النموذج من اكتشاف تطابق المحتوى وفي الوقت نفسه يفكّر بشكل منفصل في اختلاف الموقع. الدمج الذي يفرضه BERT يجعل هذه المهمة أصعب مما ينبغي.
الابتكار الأول: الانتباه المُفكَّك
في القياسي لـالمُحوِّل، بين الرمز والرمز هي جداء نقطي واحد بين متجهَي الاستعلام والمفتاح. الفكرة المحورية في DeBERTa هي تفكيك هذا الجداء الواحد إلى ثلاثة جداءات نقطية مستقلة، وذلك من خلال الاحتفاظ بمتجهين منفصلين لكل رمز:
H — متجه المحتوى، يحمل معنى الكلمة. P — متجه الموضع النسبي، يحمل موقع الكلمة بالنسبة للكلمات الأخرى.
درجة الانتباه بين الرمز والرمز تصبح مجموع ثلاث تفاعلات، كل واحد منها يلتقط نوعاً مختلفاً من العلاقة. التفاعل الأول هو محتوى مع محتوى (): «هل معنى الكلمة مرتبط بمعنى الكلمة ؟» — ارتباط دلالي صرف، لا علاقة له بالموقع. التفاعل الثاني هو محتوى مع موضع (): «هل يهتمّ معنى الكلمة بالموضع النسبي للكلمة ؟» — مثلاً، الأفعال في كثير من اللغات تنتبه تحديداً للكلمة التي تليها مباشرة. التفاعل الثالث هو موضع مع محتوى (): «هل البُعد النسبي للكلمة يؤثّر على أهمية ما تحمله الكلمة من معنى؟» — فالكلمات المتجاورة غالباً ما تربطها علاقات نحوية أقوى.
ملاحظة مهمة: DeBERTa يحذف عمداً الحد الرابع موضع مع موضع ()، لأن معرفة المسافة النسبية وحدها بدون أي معلومة عن المحتوى لا تُفيد كثيراً.
الابتكار الثاني: فاكّ الترميز المُعزَّز للقناع (EMD)
الموضع النسبي وحده لا يكفي دائماً. خذ هذا المثال: «افتتح متجر جديد باباً جديداً.» الكلمتان «متجر» و«باب» محاطتان بنفس السياق المحلّي تماماً — كلتاهما تأتي بعد «جديد». الشيء الوحيد الذي يميّز بينهما هو الموضع المطلق: «متجر» هو الفاعل (موضع 3) و«باب» هو المفعول (موضع 7).
لكن لو حقنّا المواضع المطلقة من البداية عند المدخلات (كما يفعل BERT)، سيُضطر النموذج لحمل هذه المعلومة عبر كل طبقة، وهذا قد يُربك عملية تعلّم الأنماط النسبية. حلّ DeBERTa أنيق في بساطته: اجعل طبقات المُحوِّل كلها تعمل بالمواضع النسبية فقط، ثم أضِف المواضع المطلقة في الخطوة الأخيرة — قبل طبقة التي تتنبأ بالرموز المُقنَّعة مباشرة.
هذا هو فاكّ الترميز المُعزَّز للقناع. يأخذ الحالات المخفية النهائية من جميع طبقات المُحوِّل — وهي حالات غنية بمعلومات المحتوى والموضع النسبي — ويدمجها مع تضمينات الموضع المطلق في طبقة مُحوِّل إضافية واحدة، ثم يُمرّر الناتج إلى رأس التنبؤ. بهذا التصميم، تبقى طبقات المُحوِّل الأساسية حرّة لتعلّم أنماط نسبية قوية دون أن يُشوّش عليها الموضع المطلق، بينما تصل المواضع المطلقة في اللحظة التي يحتاجها فيها النموذج بالضبط.
تثبيت النماذج الكبيرة: الضبط الدقيق غير المتأثر بالمقياس (SiFT)
الافتراضي هو أسلوب تنظيم يُضيف اضطرابات صغيرة إلى تضمينات المدخلات بهدف جعل النموذج أكثر متانة. الفكرة بسيطة: إذا كان تعديل طفيف جداً على المدخلات يقلب المخرجات رأساً على عقب، فهذا دليل على أن النموذج هشّ ويعاني من .
المشكلة تظهر مع النماذج الكبيرة: كلمات مختلفة ينتهي بها الأمر بمتجهات تضمين بأطوال متفاوتة جداً. اضطراب بمقدار ثابت قد يكون ضخماً نسبةً لتضمين قصير، لكنه ضئيل لا يُذكر نسبةً لتضمين طويل. هذا التفاوت يُزعزع استقرار التدريب، خصوصاً حين يبلغ حجم النموذج مليارات المعاملات.
حلّ SiFT مباشر: قبل تطبيق الاضطراب، يُطبَّع كل متجه تضمين إلى طول وحدوي. بعد هذا التطبيع، كل كلمة تحصل على اضطراب بنفس النسبة، بصرف النظر عن حجم تضمينها الأصلي. الفكرة مشابهة تماماً لما يفعله لكن مُطبَّقة على التدريب الخصومي. النتيجة هي تدريب أكثر استقراراً بشكل ملحوظ، وهو ما أتاح توسيع DeBERTa بنجاح إلى 1.5 مليار معامل.
الصورة الكاملة: بنية DeBERTa
من حيث الهيكل العام، يتبع DeBERTa نفس بنية BERT — مكدّس من طبقات المُرمِّز في المُحوِّل يليها رأس مخصّص للمهمة — لكن مع التعديلات الجوهرية التي شرحناها. صدر النموذج بثلاثة أحجام:
- DeBERTa-Base: 12 طبقة، 768 بُعداً خفياً، 12 رأس انتباه — 100 مليون معامل
- DeBERTa-Large: 24 طبقة، 1024 بُعداً خفياً، 16 رأس انتباه — 350 مليون معامل
- DeBERTa-XLarge (1.5B): 48 طبقة، 1536 بُعداً خفياً، 24 رأس انتباه — 1.5 مليار معامل
في مرحلة ، يستخدم DeBERTa نفس هدف المعتمد في BERT، لكن مع تقنيع ديناميكي (كما في RoBERTa) وبنية فاكّ الترميز المُعزَّز. بيانات التدريب للحجمين الأساسي والكبير تبلغ 78 غيغابايت من النصوص (بنفس حجم بيانات RoBERTa)، ومع ذلك يحقّق DeBERTa نتائج أفضل حتى بنصف هذه البيانات.
الفكرة في الكود
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import numpy as np
def disentangled_attention(H, P_rel, W_q, W_k, W_qr, W_kr):
"""
آلية الانتباه المُفكَّك في DeBERTa.
H: تضمينات المحتوى (طول_التسلسل, d_model)
P_rel: تضمينات الموضع النسبي (2*k+1, d_model) للمسافات من -k إلى +k
"""
seq_len = H.shape[0]
# إسقاط متجهات المحتوى لتوليد الاستعلامات والمفاتيح
Q_c = H @ W_q # استعلامات المحتوى (طول_التسلسل, d_k)
K_c = H @ W_k # مفاتيح المحتوى (طول_التسلسل, d_k)
# الحد الأول: محتوى مع محتوى — ارتباط دلالي صرف
A_cc = Q_c @ K_c.T # (طول_التسلسل, طول_التسلسل)
# إسقاط تضمينات الموضع النسبي
Q_r = P_rel @ W_qr # استعلامات الموضع (2*k+1, d_k)
K_r = P_rel @ W_kr # مفاتيح الموضع (2*k+1, d_k)
# الحد الثاني: محتوى مع موضع — «هل تهتم الكلمة i ببُعد الكلمة j؟»
# لكل زوج (i,j)، نجلب تضمين المسافة النسبية delta = j - i
A_cp = np.zeros((seq_len, seq_len))
for i in range(seq_len):
for j in range(seq_len):
delta = clip(j - i, -k, k) # المسافة النسبية
A_cp[i, j] = Q_c[i] @ K_r[delta] # استعلام محتوى × مفتاح موضع
# الحد الثالث: موضع مع محتوى — «هل البُعد يؤثّر على أهمية الكلمة j؟»
A_pc = np.zeros((seq_len, seq_len))
for i in range(seq_len):
for j in range(seq_len):
delta = clip(j - i, -k, k)
A_pc[i, j] = Q_r[delta] @ K_c[j] # استعلام موضع × مفتاح محتوى
# نجمع الحدود الثلاثة (لا يوجد حد موضع مع موضع!)
A = (A_cc + A_cp + A_pc) / np.sqrt(3 * d_k)
return softmax(A, axis=-1)
# الفكرة الجوهرية: H وP لا يختلطان أبداً إلا عند حساب درجة الانتباه.
# كل حد يلتقط نوعاً مختلفاً من العلاقات.النتائج: أداء أعلى ببيانات أقل
ما يلفت في نتائج DeBERTa ليس جودتها فحسب، بل كفاءتها في استخدام البيانات. مقارنة بـRoBERTa-Large الذي تدرّب على 160 غيغابايت من النصوص، تدرّب DeBERTa-Large على 80 غيغابايت فقط — أي نصف الكمية — ومع ذلك تفوّق عليه باستمرار:
- MNLI: 91.1% مقابل 90.2% (+0.9%)
- SQuAD v2.0: دقة F1 بنسبة 90.7% مقابل 88.4% (+2.3%)
- RACE: 86.8% مقابل 83.2% (+3.6%)
وحين وُسِّع النموذج إلى 1.5 مليار معامل (DeBERTa-XLarge)، أصبح أول نموذج منفرد يتجاوز الأداء البشري على SuperGLUE: بنتيجة 89.9 مقابل 89.8 للأداء البشري المرجعي. النسخة التجميعية وصلت إلى 90.3. وهذا إنجاز لافت حين نعلم أن نموذج T5 من Google — الذي نافس هو أيضاً على SuperGLUE — يحتوي 11 مليار معامل، أي أكثر بسبعة أضعاف، للوصول إلى نتائج مقاربة.
دراسة الاستئصال: أيّ مكوّن يُحدث الفرق الأكبر؟
دراسة الاستئصال في الورقة تُظهر أن كل مكوّن يُضيف تحسيناً حقيقياً. لو بدأنا من خط مرجعي بنمط RoBERTa: إضافة الانتباه المُفكَّك وحده يرفع دقة MNLI بنسبة +0.7%. ثم إضافة فاكّ الترميز المُعزَّز فوقه يُعطي +0.3% إضافية. أما SiFT فيُقدّم مكاسب ملموسة تحديداً في أكبر الأحجام حيث يكون استقرار التدريب هو التحدي الأساسي.
النقطة المهمة أيضاً أن الدراسة قارنت طريقتين لإدخال المواضع المطلقة: حقنها عند المدخلات (على نمط BERT) أو تأجيلها إلى فاكّ الترميز (EMD). وفي كل التجارب، تفوّق نهج EMD بوضوح — وهذا يدعم الفرضية القائلة بأن حقن المواضع المطلقة مبكراً يُعيق قدرة النموذج على تعلّم أنماط الموضع النسبي.
الأثر الذي تركه DeBERTa
2018
BERT — موضع ومحتوى مدموجان
تضمينات الموضع المطلق تُجمع مع تضمينات الرمز عند المدخلات. انتباه ثنائي الاتجاه، لكن الموضع والمحتوى يبقيان ملتصقَين عبر جميع الطبقات ولا سبيل لفصلهما.
2019
RoBERTa — وصفة تدريب أفضل، نفس البنية
أثبت أن BERT لم يُدرَّب بالشكل الكافي. تقنيع ديناميكي، بيانات أكثر، تدريب أطول — لكن البنية نفسها، والموضع والمحتوى لا يزالان مدموجَين.
2020
ELECTRA — إشارة تدريب مسبق أكفأ
استبدل نمذجة اللغة المُقنَّعة بأسلوب كشف الرموز المُستبدَلة، فأصبح كل رمز يحصل على إشارة تدريبية وليس 15% فقط. لكنه لا يزال يدمج الموضع بالمحتوى.
2020
DeBERTa — انتباه مُفكَّك + فاكّ ترميز مُعزَّز
فصل المحتوى عن الموضع في متجهات مستقلة. فكّك درجة الانتباه إلى ثلاثة حدود. أجّل المواضع المطلقة إلى فاكّ الترميز المُعزَّز. أول نموذج يتجاوز الأداء البشري على SuperGLUE.
2021
DeBERTaV3 — تدريب بأسلوب ELECTRA
جمع بنية DeBERTa مع هدف كشف الرموز المُستبدَلة من ELECTRA. كفاءة أعلى في استخدام العيّنات، مع آلية مشاركة تضمينات تفصل التدرّجات بين المولّد والمميِّز.
الأثر المستمرّ لـDeBERTa يتلخّص في مبدأ واحد: فصل مسارات المعلومات يُحسّن التعلّم. بدلاً من ترك النموذج يحاول بنفسه فكّ تشابك المحتوى عن الموضع — وهي مهمة صعبة ومُكلفة — يمنحه DeBERTa هذا الفصل جاهزاً، فيتفرّغ الانتباه للتركيز على العلاقات التي تهمّ فعلاً. وهذه الفكرة تمتدّ لما هو أبعد من الموضع: في أي سياق يحتاج فيه النموذج إلى التفكير في جوانب مستقلة من مدخلاته، فإن إبقاء هذه الجوانب منفصلة إلى أن تحتاج فعلاً للتفاعل يمكن أن يُحسّن كفاءة استخدام البيانات والأداء معاً.
المرجعHe, Liu, Gao, Chen. DeBERTa: Decoding-Enhanced BERT with Disentangled Attention. ICLR, 2021.
مصطلحات هذه الورقة
- الانتباه المُفكَّكDisentangled Attention
- الموضع النسبيRelative Position
- الموضع المطلقAbsolute Position
- الترميز الموضعيPositional Encoding
- فاكّ الترميز المُعزَّز للقناعEnhanced Mask Decoder
- تضمين المحتوىContent Embedding
- الانتباه الذاتيSelf-Attention
- درجات الانتباه البينيةAttention Score
- وزن الانتباه البينيAttention Weight
- نمذجة اللغة المُقنَّعة (MLM)Masked Language Modeling (MLM)
- الضبط الدقيقFine-Tuning
- التدريب المسبقPretraining
- التسوية الطبقيةLayer Normalization
- التدريب التنافسيAdversarial Training
- سوفت ماكسSoftmax