الرؤية الحاسوبية2021متوسط12 دقيقة قراءة

BEiT: التدريب المسبق بأسلوب BERT لمحوِّلات الصور

BEiT: BERT Pre-Training of Image Transformers

Bao, H. · Dong, L. · Piao, S. · Wei, F. — ICLR

المشكلة

غيّر BERT قواعد اللعبة في معالجة اللغة الطبيعية بفكرة بسيطة: أخفِ بعض الكلمات من الجملة ودرِّب النموذج على استنتاجها من السياق المحيط. لكن تطبيق الفكرة ذاتها على الصور ليس مباشراً. في النصوص، الكلمات تأتي من قائمة محدّدة — يمكنك التنبؤ بكلمة «قطة» من بين 30,000 رمز. أما رقع الصورة فلا تملك قائمة مكافئة: كل رقعة بحجم 16×16 بكسل ليست سوى مصفوفة متصلة من قيم البكسلات. الحل الساذج هو التنبؤ بالبكسلات مباشرةً، لكن المشكلة أن الانحدار على مستوى البكسلات يستنزف قدرة النموذج في تعلّم تفاصيل سطحية كالنسيج والحواف، بدلاً من أن يتعلّم فهم المحتوى الدلالي للصورة. قبل BEiT لم تنجح أي طريقة في نقل أسلوب BERT إلى تدريب محوِّلات الرؤية تدريباً ذاتي الإشراف يتفوّق على بالإشراف التقليدي.

الإسهام

يطرح BEiT (التمثيل من محوِّلات الصور) فكرة نمذجة الصور المُقنَّعة (MIM)، وهي النظير البصري لنمذجة اللغة المُقنَّعة في BERT. الفكرة المحورية هي النظر إلى كل صورة من زاويتين: رقع خام تُدخَل إلى ، منفصلة تُستخدم كأهداف للتنبؤ عبر مُرمِّز dVAE مُدرَّب مسبقاً يملك قاموس رموز من 8,192 مُدخَلاً. أثناء تُقنَّع نحو 40% من الرقع بأسلوب كتلي، ويتعلّم النموذج التنبؤ بالرموز البصرية المناظرة. حقّق BEiT-Base دقة 83.2% على ImageNet-1K مقابل 81.8% لـ DeiT المُدرَّب من الصفر، بينما بلغ BEiT-Large دقة 86.3% متجاوزاً ViT-L المُدرَّب بإشراف على ImageNet-22K (85.2%). وفي التقطيع الدلالي على ADE20K حقّق BEiT-Large نتيجة 47.7 mIoU مع ضبط دقيق وسيط.

الأثر

أثبت BEiT أن التدريب المسبق ذاتي الإشراف بأسلوب BERT قابلٌ للتطبيق في الرؤية الحاسوبية، وفتح بذلك الباب أمام موجة كاملة من أبحاث نمذجة الصور المُقنَّعة. ألهم بشكل مباشر MAE الذي استغنى عن وتنبّأ بالبكسلات الخام مع نسبة تقنيع أعلى بكثير، إضافةً إلى SimMIM وiBOT وBEiT v2/v3. أما فكرة تحويل الصور إلى مفردات منفصلة — لتقريب الرؤية من اللغة — فقد صارت ركيزة أساسية للنماذج متعددة الوسائط. الرسالة الأهم التي حملها BEiT لمجتمع الرؤية الحاسوبية هي أن المحوِّلات المُدرَّبة ذاتياً قادرة على منافسة التدريب بالإشراف أو التفوّق عليه، مما أسقط الافتراض السائد بأن البيانات المُعنونة شرط لا غنى عنه.

تخيّل أنك تتعلم لغة جديدة من خلال تمارين «أكمل الفراغ»: تُحذف كلمة من الجملة وعليك استنتاجها من السياق. هذا ما يفعله BERT مع النصوص. لكن ماذا لو أردنا تطبيق الحيلة نفسها على الصور؟ لا يمكنك «تخمين بكسل» كما تخمّن كلمة، ببساطة لأنه لا يوجد «قاموس» للبكسلات.

هنا تأتي فكرة BEiT الذكية: ابدأ أولاً ببناء قاموس بصري. نموذج مستقل — متغيّر منفصل (dVAE) — يتعلّم ضغط كل رقعة من الصورة وتمثيلها بواحدة من 8,192 «كلمة بصرية». بهذه الطريقة أصبح لدينا مفردات للصور! الآن أخفِ مجموعة من الرقع، وبدلاً من تخمين البكسلات الخام، خمِّن أيّ كلمة بصرية تصف كل رقعة مخفية. الأمر أشبه بوصف قطعة محجوبة من أحجية باختيار ملصق من مجموعة ثابتة — وهو أجدى بكثير من محاولة تخمين كل نقطة على حدة.

المشكلة: الصور لا تملك مفردات

نمذجة اللغة المُقنَّعة في BERT تعمل بسلاسة لسبب جوهري: اللغة بطبيعتها تتألف من مفردات محدّدة. حين تُخفي كلمة «قطة» من جملة، يستطيع النموذج اختيار الكلمة الصحيحة من توزيع على نحو 30,000 رمز. هدف التنبؤ هنا واضح ومحدّد: بين فئات معروفة.

الصور لا تتمتع بهذه الخاصية. يُقسِّم الصورة إلى رُقع (مثلاً 16×16 بكسل)، لكن كل رقعة ليست سوى متجه متصل من 768 قيمة (16 × 16 × 3 قنوات لونية). لو أخفيت بعض الرقع وحاولت التنبؤ بقيم بكسلاتها مباشرةً، فأنت أمام مسألة انحدار — والنتيجة أن النموذج يصرف معظم طاقته على تعلّم تفاصيل سطحية كالأنسجة والحواف والتدرّجات اللونية، بدلاً من فهم ماذا يوجد فعلاً في الصورة.

هذا هو السؤال المحوري: كيف نبني «مفردات» لرقع الصور بحيث يتعلّم النموذج من التنبؤ المُقنَّع فهماً بصرياً عالي المستوى، لا مجرّد حفظ للبكسلات؟

افتح في المختبر
الإطار ثنائي الزاوية: رقع الصورة هي المدخل، والرموز البصرية هي هدف التنبؤ. فعِّل التقنيع لترى كيف تسير العملية.
تستيقظ التجربة عند وصولك…

الخطوة الأولى: بناء مفردات بصرية عبر مرمِّز تلقائي متغيّر منفصل

قبل أن يبدأ التدريب المسبق لـالمُحوِّل البصري، يحتاج BEiT إلى تجهيز «قاموس بصري». لهذا الغرض يُدرَّب نموذج منفصل — مرمِّز تلقائي متغيّر منفصل (dVAE) مستعار من مُرمِّز DALL-E.

فكرة الـ dVAE شبيهة بدليل ضغط: يأخذ صورة بحجم 224×224 بكسل ويُحوِّلها إلى شبكة 14×14 من السمات المتصلة، ثم يُطبِّق على كل موقع في الشبكة فيربطه بأقرب مُدخَل في قابل للتعلّم يضم 8,192 رمزاً بصرياً. بعدها يُعيد بناء الصورة من هذه الرموز. حين ينتهي التدريب يصبح قاموس الرموز بمثابة مفردات الصور — كل مُدخَل من المُدخَلات الـ 8,192 يلتقط نمطاً بصرياً متكرراً: نوع معيّن من النسيج أو الحافة أو المنطقة اللونية أو جزء من كائن.

النقطة الجوهرية: الـ dVAE يُدرَّب مرة واحدة فقط ثم يُجمَّد. خلال التدريب المسبق لـ BEiT لا يتعلّم سوى المُحوِّل البصري نفسه، أما المُرمِّز فدوره يقتصر على توفير أهداف التنبؤ.

افتح في المختبر
شاهد كيف يضغط مُرمِّز dVAE رقعَ الصورة إلى رموز بصرية منفصلة مختارة من قاموس رموز يضم 8,192 مُدخَلاً.
تستيقظ التجربة عند وصولك…

الخطوة الثانية: نمذجة الصور المُقنَّعة — المهمة الأساسية للتدريب المسبق

بعد تجهيز المفردات البصرية، يبدأ BEiT بتدريب محوِّل رؤية قياسي باستخدام نمذجة الصور المُقنَّعة (MIM). العملية تمرّ بثلاث مراحل:

1. تقطيع الصورة إلى رُقع: تُقسَم صورة بحجم 224×224 إلى شبكة 14×14 من رقع بحجم 16×16 بكسل (أي 196 رقعة). كل رقعة تُسقَط خطياً إلى بأبعاد d.

2. إخفاء مجموعة من الرقع: تُختار عشوائياً نحو 40% من الرقع وتُستبدل بتضمين [MASK] قابل للتعلّم. يعتمد BEiT هنا على : بدلاً من إخفاء رقع متناثرة عشوائياً، يُقنِّع كتلاً مستطيلة متجاورة. الهدف هو منع النموذج من «الغش» عبر الاستيفاء البسيط من الرقع المجاورة.

3. التنبؤ بالرموز البصرية: تُمرَّر سلسلة الرقع المُشوَّهة عبر المُرمِّز. في كل موضع مُقنَّع، يتنبأ مُصنِّف softmax بحجم قاموس الرموز (8,192 مُدخَلاً) بالرمز البصري المناظر للرقعة الأصلية. دالة الخسارة هي محسوبة في المواضع المُقنَّعة فقط — بالضبط كما في نمذجة اللغة المُقنَّعة عند BERT.

افتح في المختبر
قارن بين التقنيع الكتلي (BEiT) والتقنيع العشوائي. لاحظ كيف تُزيل الكتل مناطق مكانية بأكملها.
تستيقظ التجربة عند وصولك…
LMIM=iMlogp(zixM)\mathcal{L}_{\text{MIM}} = -\sum_{i \in \mathcal{M}} \log p(z_i \mid \mathbf{x}_{\setminus\mathcal{M}})
خسارة نمذجة الصور المُقنَّعةلكل موضع مُقنَّع i ضمن المجموعة M، يتنبأ النموذج بالرمز البصري z_i بناءً على جميع الرقع غير المُقنَّعة. الخسارة هي سالب لوغاريتم الاحتمال مجموعاً على المواضع المُقنَّعة، وهي مطابقة في صيغتها لخسارة نمذجة اللغة المُقنَّعة في BERT مع استبدال رموز الكلمات برموز بصرية.

البنية المعمارية: محوِّل رؤية قياسي دون أي تعديل

بنية BEiT المعمارية هي المُحوِّل البصري (ViT) القياسي كما هو. لا طبقات جديدة، لا تعديلات على آلية ، لا إضافات معمارية من أي نوع. الابتكار بأكمله يكمن في مهمة التدريب المسبق.

يأتي النموذج بحجمين:

  • BEiT-Base: 12 طبقة، 768 بُعداً خفياً، 12 رأس انتباه — 86 مليون معامل
  • BEiT-Large: 24 طبقة، 1024 بُعداً خفياً، 16 رأس انتباه — 304 مليون معامل

المدخل عبارة عن سلسلة من 196 (شبكة 14×14 ناتجة عن صورة 224×224 برقع 16×16) يُضاف إليها رمز قابل للتعلّم. تضمينات الموضع مُتعلَّمة هي الأخرى. أثناء التدريب المسبق، تُستبدل الرقع المُقنَّعة بتضمين [MASK] واحد مشترك، ويُطبَّق رأس softmax خطي بحجم قاموس الرموز (8,192 مُدخَلاً) على كل موضع مُقنَّع.

h0=[e[CLS];  x1E;  ;  xNE]+Epos\mathbf{h}_0 = [\mathbf{e}_{\text{[CLS]}};\; \mathbf{x}_1\mathbf{E};\; \ldots;\; \mathbf{x}_N\mathbf{E}] + \mathbf{E}_{\text{pos}}
تمثيل مدخلات BEiTكل رقعة x_i تُسقَط خطياً بالمصفوفة E إلى تضمين بأبعاد d، ثم تُضاف تضمينات الموضع E_pos عنصراً بعنصر. يُلحَق رمز [CLS] في مقدمة السلسلة. أثناء التدريب المسبق تستخدم المواضع المُقنَّعة تضمين [MASK] مشتركاً بدلاً من إسقاط الرقعة الأصلية.

التوازي بين BERT وBEiT: مقارنة مباشرة

صمّم فريق BEiT نظامهم بحيث يحاكي فلسفة BERT خطوة بخطوة. فهم هذا التوازي يجعل الإسهام واضحاً بلا لبس:

في BERT: وحدات الإدخال هي رموز كلمات مسحوبة من مفردات ثابتة (WordPiece، نحو 30,000 مُدخَل). مهمة التدريب المسبق هي نمذجة اللغة المُقنَّعة: أخفِ 15% من الرموز وتنبّأ بها من السياق ثنائي الاتجاه. هدف التنبؤ هو توزيع softmax على مفردات الكلمات.

في BEiT: وحدات الإدخال هي رقع صورة (16×16 بكسل)، وهذه الرقع لا تملك مفردات طبيعية بطبيعة الحال. مهمة التدريب المسبق هي نمذجة الصور المُقنَّعة: أخفِ نحو 40% من الرقع وتنبّأ بـالرموز البصرية المقابلة من الرقع المتبقية. هدف التنبؤ هو توزيع softmax على المفردات البصرية (8,192 مُدخَلاً من قاموس رموز dVAE).

الفرق الجوهري: مفردات BERT جاهزة سلفاً لأن الكلمات منفصلة بطبعها. أما BEiT فعليه بناء مفرداته أولاً بتدريب مُرمِّز dVAE. هذه الخطوة الإضافية هي ما يفتح الجسر بين عالم اللغة وعالم الرؤية.

افتح في المختبر
انقر على كل مرحلة لترى كيف يعالج BERT وBEiT المشكلة نفسها في النصوص مقابل الصور.
تستيقظ التجربة عند وصولك…

الفكرة في شيفرة برمجية

نمذجة الصور المُقنَّعة في BEiT — حلقة التدريب المسبق الأساسيةpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import numpy as np

def tokenize_image(image, dvae_encoder, codebook):
    """استخدم dVAE المُجمَّد لتحويل رقع الصورة إلى رموز بصرية."""
    features = dvae_encoder(image)          # (14, 14, d)
    # كمِّم: جد أقرب مُدخَل في قاموس الرموز لكل موقع
    tokens = np.argmin(
        np.linalg.norm(features[:,:,None] - codebook[None,None,:], axis=-1),
        axis=-1
    )                                        # (14, 14) أعداد صحيحة في [0, 8191]
    return tokens

def blockwise_mask(grid_h, grid_w, mask_ratio=0.4):
    """أنشئ قناعاً كتلياً — مستطيلات متجاورة وليس نقاطاً متناثرة."""
    num_patches = grid_h * grid_w
    num_masked = int(num_patches * mask_ratio)
    mask = np.zeros(num_patches, dtype=bool)

    while mask.sum() < num_masked:
        # أبعاد كتلة عشوائية
        bh = np.random.randint(2, grid_h // 2)
        bw = np.random.randint(2, grid_w // 2)
        top = np.random.randint(0, grid_h - bh + 1)
        left = np.random.randint(0, grid_w - bw + 1)
        for r in range(top, top + bh):
            for c in range(left, left + bw):
                mask[r * grid_w + c] = True
    return mask

def beit_mim_loss(vit, image, dvae_encoder, codebook):
    """خطوة تدريب واحدة لنمذجة الصور المُقنَّعة في BEiT."""
    # الخطوة 1: استخرج الرموز البصرية (dVAE مُجمَّد)
    visual_tokens = tokenize_image(image, dvae_encoder, codebook)  # (14,14)

    # الخطوة 2: أنشئ قناعاً كتلياً
    mask = blockwise_mask(14, 14, mask_ratio=0.4)  # ~40% مُقنَّعة

    # الخطوة 3: تمرير أمامي — الرقع المُقنَّعة تستخدم تضمين [MASK]
    hidden = vit.encode(image, mask)  # (196, d_model)

    # الخطوة 4: تنبّأ بالرموز البصرية في المواضع المُقنَّعة فقط
    loss = 0
    count = 0
    for i in range(196):
        if mask[i]:
            logits = hidden[i] @ vit.token_head.T   # (8192,)
            target = visual_tokens.flatten()[i]
            loss += cross_entropy(logits, target)
            count += 1
    return loss / count

# بعد التدريب المسبق: اضبط النموذج بدقة مع رأس مخصص للمهمة،
# تماماً كما في BERT — النموذج ذاته، طبقة الإخراج وحدها تتغيّر.

الضبط الدقيق: نموذج واحد مُدرَّب مسبقاً لمهام رؤية متعددة

بعد انتهاء التدريب المسبق، يُضبط BEiT بدقة بالطريقة ذاتها التي اعتدنا عليها مع BERT: نحتفظ بـالمُرمِّز المُدرَّب مسبقاً ونُضيف فوقه رأس إخراج مناسباً للمهمة المطلوبة.

في على ImageNet: يُؤخذ التمثيل النهائي لرمز [CLS] ويُمرَّر عبر على تمثيلات جميع الرقع، ثم مُصنِّف خطي. يُضبط النموذج بالكامل من الطرف إلى الطرف.

في التقطيع الدلالي على ADE20K: يلعب BEiT دور للمُرمِّز، ويُضاف فوقه فاكّ ترميز مخصص للمهمة (مثل UperNet). خطوة وسيطة — ضبط أولاً على تصنيف ImageNet ثم نقل الأوزان إلى مهمة التقطيع — ترفع الأداء أكثر.

لا يتغيّر أي شيء في البنية المعمارية بين المهام. الأوزان المُدرَّبة مسبقاً نفسها تشكّل الأساس، ورأس الإخراج وحده هو ما يختلف. هذه هي منهجية «درِّب مسبقاً ثم اضبط بدقة» التي أرساها BERT للغة، وأثبت BEiT أنها فعّالة بالقدر ذاته في الرؤية.

النتائج: التعلّم الذاتي يتفوّق على التعلّم بالإشراف

أثبت BEiT أن قادر على التفوّق على التدريب بالإشراف التقليدي في تدريب محوِّلات الرؤية — وهي نتيجة تُعدّ نقطة تحوّل:

  • BEiT-Base على ImageNet-1K: دقة 83.2%، مقابل 81.8% لـ DeiT المُدرَّب من الصفر بالبنية ذاتها. تحسّن بمقدار 1.4 نقطة مئوية بفضل التدريب المسبق وحده.
  • BEiT-Large على ImageNet-1K: دقة 86.3%، متجاوزاً ViT-L المُدرَّب بإشراف على مجموعة ImageNet-22K الأكبر (85.2%) — رغم أن BEiT-Large دُرِّب مسبقاً على ImageNet-1K دون أي تسميات.
  • التقطيع الدلالي على ADE20K: حقّق BEiT-Large نتيجة 47.7 mIoU مع ضبط دقيق وسيط (ضبط أولاً على ImageNet ثم على ADE20K)، متقدّماً على الطرق ذاتية الإشراف السابقة.

دراسات الاستئصال كانت كاشفة بالقدر نفسه: التنبؤ بـالرموز البصرية تفوّق على الانحدار البكسلي، والتقنيع الكتلي تفوّق على التقنيع العشوائي — لا سيما في التقطيع الدلالي حيث يكون الفهم المكاني هو العامل الحاسم.

افتح في المختبر
قارن أداء BEiT مع الأساليب الإشرافية والطرق ذاتية الإشراف الأخرى.
تستيقظ التجربة عند وصولك…

ماذا فتح BEiT من آفاق

  1. 2021

    BEiT — نمذجة الصور المُقنَّعة بالرموز البصرية

    أول طريقة ذاتية إشراف بأسلوب BERT تتفوّق على التدريب المسبق الإشرافي لمحوِّلات الرؤية. اعتمدت على مُرمِّز dVAE وتقنيع كتلي بنسبة 40%.

  2. 2021

    MAE — الاستغناء عن المُرمِّز والتنبؤ بالبكسلات عند تقنيع 75%

    تخلّت المرمّزات التلقائية المُقنَّعة عن الـ dVAE كلياً، وأثبتت أن التنبؤ بالبكسلات الخام ينجح إذا رفعت نسبة التقنيع إلى 75% واستخدمت مُرمِّزاً وفاكّ ترميز غير متماثلين. النتيجة أنبوبة أبسط دون الحاجة إلى تدريب مُرمِّز منفصل.

  3. 2022

    SimMIM — تبسيط التقنيع والتنبؤ بالبكسلات برأس خطي

    أظهر أن التقنيع العشوائي البسيط مع تنبؤ بكسلي مباشر ورأس خفيف يكفي لمجاراة BEiT، مما طرح تساؤلات حول ضرورة استخدام مُرمِّزات منفصلة أصلاً.

  4. 2022

    BEiT v2 — مُرمِّز دلالي عبر تقطير المعرفة الكمّي المتجهي

    استُبدل dVAE بمُرمِّز متوافق مع CLIP مُدرَّب عبر تقطير المعرفة الكمّي المتجهي. حقّق BEiT v2-Base دقة 85.5% على ImageNet، مما أكّد أن الرموز على المستوى الدلالي أقوى أثراً.

التأثير الأعمق لـ BEiT هو تأثير منهجي بامتياز. قبل BEiT كان النهج السائد لتدريب محوِّلات الرؤية يعتمد على تدريب مسبق بالإشراف فوق مجموعات بيانات مُعنونة ضخمة مثل ImageNet-22K أو JFT-300M. ما أظهره BEiT هو أن هدفاً تدريبياً ذاتي الإشراف — لا يحتاج أي تسميات — قادر على إنتاج تمثيلات أفضل. هذا فتح الباب أمام التدريب على كميات غير محدودة من الصور غير المُعنونة، وهو التحوّل ذاته الذي أحدثه BERT في معالجة اللغة الطبيعية.

كذلك، فإن فكرة تحويل الصور إلى رموز منفصلة مهّدت الطريق للنماذج الموحّدة التي تجمع بين الرؤية واللغة. إذا كانت الصور والنصوص تعيش كلتاهما في فضاء رموز منفصلة، فبالإمكان أن تتشارك بنية المُحوِّل نفسها وأهداف التدريب المسبق ذاتها — وهذا بالضبط الاتجاه الذي سلكه BEiT-3 وغيره من النماذج التأسيسية متعددة الوسائط.

المرجعBao, Dong, Piao, Wei. BEiT: BERT Pre-Training of Image Transformers. ICLR, 2022.

مصطلحات هذه الورقة