النماذج التوليدية2023متقدم11 دقيقة قراءة

نماذج الاتّساق

Consistency Models

Song, Y. · Dhariwal, P. · Chen, M. · Sutskever, I. — ICML

المشكلة

نماذج الانتشار تُنتج صوراً وأصواتاً وفيديوهات مذهلة، لكنها تحتاج إلى عشرات أو آلاف الخطوات التكرارية عند التوليد. كل خطوة تُشغّل الشبكة العصبية بالكامل مرة واحدة، ما يجعل التطبيقات الآنية غير عملية. أساليب التسريع السابقة مثل DDIM وDPM-Solver تُقلّل عدد الخطوات لكنها لا تزال تحتاج 10–50 تمريرة. التدريجي يُنصّف عدد الخطوات في كل جولة لكنه يتطلب مراحل تدريب متعددة ولا يصل أبداً إلى فعلية. كان المجال بحاجة إلى طريقة مبدئية لتحويل الضجيج إلى بيانات مباشرة في تمريرة أمامية واحدة — دون تدريب خصومي ودون التضحية بالجودة.

الإسهام

عائلة جديدة من النماذج التوليدية مبنية على مبدأ بسيط: كل نقطة على مسار (PF-ODE) يجب أن تؤدي إلى الصورة النظيفة نفسها. خاصية «الاتّساق الذاتي» هذه تُفرَض أثناء التدريب فيتعلّم النموذج القفز من أي مستوى ضجيج مباشرة إلى البيانات بخطوة واحدة. يُقدَّم أسلوبان للتدريب: تقطير الاتّساق (CD) الذي يتعلم من مسارات ODE لنموذج انتشار مُدرَّب مسبقاً، وتدريب الاتّساق (CT) الذي يتدرّب من الصفر باستخدام مُقدِّر غير متحيّز لدالة النتيجة. يحقق النهج أفضل FID على الإطلاق بقيمة 3.55 على CIFAR-10 للتوليد بخطوة واحدة، ويدعم مهام تعديل الصور بدون تدريب مخصص كإكمال الأجزاء الناقصة والتلوين وزيادة الدقة.

الأثر

كسرت نماذج الاتّساق الافتراض القائل إن التوليد بجودة الانتشار يستلزم عملية أخذ عيّنات تكرارية. ألهمت مباشرة نماذج الاتّساق الكامنة (LCM) التي أتاحت توليد الصور في الوقت الحقيقي في أنابيب الانتشار الكامن مثل Stable Diffusion. أما النسخة المحسّنة من تدريب الاتّساق (iCT) والصياغات المستمرة زمنياً فقد دفعت جودة التدريب المستقل إلى أبعد. أصبح إطار الاتّساق أساساً للنماذج التوليدية السريعة في الصور والصوت والفيديو والأبعاد الثلاثية، ساداً الفجوة بين جودة نماذج الانتشار وسرعة .

تخيّل جبلاً تنحدر منه مسارات كثيرة تقود جميعها إلى القرية ذاتها في الأسفل. يُشبه متنزهاً يسير بعناية عبر كل منعطف في المسار — آمن لكنّه بطيء. أما فهو كطيّار شراعي يستطيع من أي نقطة على أي مسار أن يرى القرية ويحلّق نحوها مباشرة.

الفكرة الجوهرية: لست بحاجة إلى حفظ كل مسار. يكفي أن تتعلّم قاعدة واحدة — «كل نقطة على المسار نفسه تؤدي إلى القرية ذاتها». هذه هي خاصية الاتّساق الذاتي، وهي ما يتيح لك تجاوز المشي بالكامل.

عنق الزجاجة: لماذا نماذج الانتشار بطيئة

نماذج الانتشار المبنية على النتيجة تُولّد البيانات بعكس عملية حقن الضجيج. تبدأ من ضجيج غاوسي خالص ثم تُزيل الضجيج تدريجياً عبر دالة نتيجة مُتعلَّمة — أي مُتّجه ميل لوغاريتم كثافة الاحتمال. عملية العكس هذه تتبع معادلة تفاضلية عشوائية (SDE)، أو نظيرتها الحتمية: المعادلة التفاضلية العادية لتدفّق الاحتمال (PF-ODE).

المعادلة PF-ODE بالغة الأهمية لأنها تُعرّف مساراً حتمياً من أي عيّنة مُشوَّشة عودةً إلى نقطة بيانات نظيفة. لو استطعت حل هذه المعادلة بدقة لحصلت على عيّنة مثالية. لكن حلّها يتطلب خطوات صغيرة كثيرة، كل واحدة منها تستدعي الشبكة العصبية مرة. نموذج الانتشار النموذجي يحتاج 50 إلى 1000 تمريرة أمامية لتوليد صورة واحدة.

حلّالات ODE الأسرع مثل DDIM وDPM-Solver تُقلّص هذا العدد إلى 10–50 خطوة، لكن النزول تحت 10 خطوات يُضعف الجودة بحدّة. التقطير التدريجي يُدرّب نموذجاً طالباً ليُحاكي خطوتين من المعلم في خطوة واحدة، مُنصّفاً العدد في كل جولة. لكنه يتطلب جولات تدريب متعددة ويرث الأخطاء من كل مرحلة.

ماذا لو استطاع نموذج أن يتعلّم القفز من أي نقطة على مسار ODE مباشرة إلى نقطة النهاية — بخطوة واحدة؟

افتح في المختبر
يساراً: نماذج الانتشار تسير على مسار ODE خطوة بخطوة. يميناً: نموذج الاتّساق يقفز من أي نقطة إلى النهاية بخطوة واحدة.
تستيقظ التجربة عند وصولك…

الفكرة الجوهرية: خاصية الاتّساق الذاتي

المعادلة PF-ODE تُعرّف مساراً فريداً لكل نقطة بيانات. أعطِ صورة نظيفة x₀ وأضف إليها ضجيجاً بمستوى t فتحصل على x_t. مسار ODE يربط كل نسخة مُشوَّشة x_t بالصورة الأصلية نفسها x₀. هذا يعني أنه لأي مستويَي ضجيج t و t' على المسار ذاته، الوجهة واحدة.

دالة الاتّساق f تُجسّد هذا: f(x_t, t) = f(x_t', t') لكل t و t' على المسار نفسه. بعبارة أخرى، مُخرَج الدالة مُتّسق — لا يعتمد على الموضع الذي تُقيَّم عنده على طول المسار. هذه هي خاصية الاتّساق الذاتي.

إذا استطعنا تدريب شبكة عصبية على تحقيق هذه الخاصية، يمكننا عند التوليد أن نأخذ عيّنة ضجيج x_T ونُشغّل الشبكة مرة واحدة للحصول على f(x_T, T) — عيّنة نظيفة مباشرة. خطوة واحدة. لا تكرار.

افتح في المختبر
حرّك المؤشر لاختيار أي نقطة على المسار — المُخرَج يُشير دائماً إلى نقطة البيانات النظيفة ذاتها.
تستيقظ التجربة عند وصولك…

المُعامَلة البارامترية: تحقيق شرط الحدود

دالة الاتّساق الصحيحة يجب أن تستوفي قيداً صارماً: عند أدنى مستوى ضجيج ε (قريب من الصفر) يجب أن تُعيد الدالة المدخل نفسه — f(x, ε) = x. هذا هو شرط الحدود، وهو يضمن أن الدالة مُثبَّتة عند طرف البيانات النظيفة من المسار.

لتحقيق هذا الشرط بنيوياً، يُعامَل النموذج كتركيبة مُرجَّحة من المدخل ومُخرَج الشبكة العصبية. دالتان عدديتان قابلتان للاشتقاق تتحكمان بالمزيج: c_skip(t) وc_out(t). عند t = ε يسيطر الاتصال القافز (c_skip(ε) = 1, c_out(ε) = 0) فيساوي المُخرَج المدخلَ. كلما كبُر t تولّت الشبكة العصبية القيادة.

fθ(xt,t)=cskip(t)xt+cout(t)Fθ(xt,t)f_\theta(\mathbf{x}_t, t) = c_{\text{skip}}(t)\,\mathbf{x}_t + c_{\text{out}}(t)\,F_\theta(\mathbf{x}_t, t)
المُعامَلة البارامترية لنموذج الاتّساقمُخرَج نموذج الاتّساق هو مجموع مُرجَّح من المدخل المُشوَّش x_t (عبر الاتصال القافز c_skip) ومُخرَج الشبكة العصبية F_θ (عبر c_out). عند t = ε يكون c_skip = 1 وc_out = 0، ما يضمن أن f_θ(x, ε) = x.
افتح في المختبر
عدّل t لترى كيف يمزج c_skip وc_out بين المدخل ومُخرَج الشبكة. عند t = ε يتطابق المُخرَج مع المدخل تماماً.
تستيقظ التجربة عند وصولك…

أسلوب التدريب الأول: تقطير الاتّساق (CD)

أسلوب التدريب الأول يستثمر نموذج انتشار مُدرَّب مسبقاً بوصفه معلماً. الفكرة مباشرة: خذ عيّنة مُشوَّشة عند الخطوة الزمنية t₍ₙ₊₁₎، واستخدم حلّال ODE الخاص بالمعلم لتقدير موضعها بعد خطوة واحدة إلى الخلف عند tₙ، ثم درِّب نموذج الاتّساق بحيث يتطابق مُخرَجه عند كلتا النقطتين.

بصورة ملموسة، دالة الخسارة تفرض أن مُخرَج اتّساق الطالب عند النقطة الأكثر ضجيجاً يُساوي تقريباً مُخرَج شبكة الهدف (المتوسط المتحرك الأُسّي) عند النقطة الأنظف. المعلم يوفر خطوة ODE التي تربط بينهما. شبكة الهدف θ⁻ — متوسط متحرك أُسّي لأوزان الطالب — تُعطي استقراراً للتدريب. الفكرة مشابهة لشبكات الهدف في التعلم المعزز العميق، حيث يمنع تحديث الهدف ببطء حدوث تذبذبات في التدريب. شبكة الهدف تُعطي استقراراً للتدريب، بطريقة مشابهة لعمل شبكات الهدف في التعلم المعزز العميق.

كلما أصبح تقسيم الزمن أدقّ (N → ∞) تتقارب خسارة التقطير نحو الصفر لدالة اتّساق مثالية. عملياً يُزاد N تدريجياً أثناء التدريب — منهج يبدأ بخطوات زمنية غليظة ويزداد دقة تدريجياً.

LCDN(θ,θ)=E[λ(tn)d ⁣(fθ(xtn+1,tn+1),  fθ(x^tnϕ,tn))]\mathcal{L}_{\text{CD}}^N(\theta, \theta^-) = \mathbb{E}\bigl[\lambda(t_n)\, d\!\bigl(f_\theta(\mathbf{x}_{t_{n+1}}, t_{n+1}),\; f_{\theta^-}(\hat{\mathbf{x}}_{t_n}^{\phi}, t_n)\bigr)\bigr]
خسارة تقطير الاتّساقتقيس الخسارة المسافة d بين مُخرَج الطالب عند الخطوة الزمنية الأكثر ضجيجاً ومُخرَج شبكة الهدف (المتوسط المتحرك الأُسّي) عند الخطوة الزمنية المجاورة الأنظف، حيث تُحسَب القفزة بينهما بواسطة حلّال ODE الخاص بالمعلم. λ دالة ترجيح موجبة.
افتح في المختبر
تصوير لعملية التقطير: المعلم يحلّ خطوة ODE واحدة، والطالب يتعلّم إنتاج نقطة النهاية ذاتها من مدخل أكثر ضجيجاً.
تستيقظ التجربة عند وصولك…

أسلوب التدريب الثاني: تدريب الاتّساق (CT) — دون الحاجة إلى معلم

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

تذكّر أن دالة النتيجة ∇ log p_t(x_t) يمكن تقديرها من عيّنة تدريب واحدة: فهي تساوي −(x_t − x₀) / t². هذا يعني أننا نستطيع بناء نقاط متجاورة على مسار ODE باستخدام البيانات الحقيقية والضجيج العشوائي فقط — لا حاجة إلى معلم.

خسارة تدريب الاتّساق لها البنية نفسها التي لخسارة التقطير، لكن بدلاً من الاعتماد على حلّال ODE الخاص بالمعلم، تستخدم العلاقة التحليلية بين x₀ والضجيج ε وعملية الانتشار الأمامية. كلما زادت دقة التقسيم (N → ∞) يتقارب هدف التدريب بشكل مُبرهَن نحو صيغة يكون مُصغِّرها هو دالة الاتّساق الحقيقية.

هذا ذو دلالة كبيرة: نماذج الاتّساق ليست مجرد حيلة تقطير — بل هي عائلة مستقلة من النماذج التوليدية بهدف تدريبي خاص بها.

LCTN(θ,θ)=E[λ(tn)d ⁣(fθ(xtn+1,tn+1),  fθ(xtn,tn))]\mathcal{L}_{\text{CT}}^N(\theta, \theta^-) = \mathbb{E}\bigl[\lambda(t_n)\, d\!\bigl(f_\theta(\mathbf{x}_{t_{n+1}}, t_{n+1}),\; f_{\theta^-}(\mathbf{x}_{t_n}, t_n)\bigr)\bigr]
خسارة تدريب الاتّساقمشابهة لخسارة التقطير لكن كلتا العيّنتين المُشوَّشتين تُحسَبان بإضافة ضجيج عند مستويين متجاورين إلى العيّنة النظيفة ذاتها — دون الحاجة إلى حلّال ODE من المعلم. الضجيج مُشترك، ما يضمن أن النقطتين تقعان على مسار الانتشار الأمامي ذاته.

ما بعد الخطوة الواحدة: أخذ العيّنات متعدد الخطوات والتعديل بدون تدريب

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

الآلية ذاتها تُتيح تعديل الصور بدون تدريب مخصص. في إكمال الأجزاء الناقصة: أخفِ منطقة من الصورة وأضف ضجيجاً ثم أزل الضجيج — فيملأ نموذج الاتّساق المنطقة المخفية بتناسق. في التلوين: ابدأ بصورة بالتدرج الرمادي كمعلومات جزئية واترك النموذج يتخيّل الألوان. في زيادة الدقة: ابدأ بصورة منخفضة الدقة وأضف ضجيجاً ثم أزله عند دقة أعلى. كل هذه الاستخدامات تعمل بالنموذج المُدرَّب ذاته دون أي ضبط دقيق.

افتح في المختبر
بدّل بين أخذ العيّنات بخطوة واحدة وخطوتين وثلاث خطوات لترى كيف تتحسن الجودة مع دورات إزالة-وإعادة الضجيج الإضافية.
تستيقظ التجربة عند وصولك…

النتائج: جودة الخطوة الواحدة والمقاييس المرجعية

حقق تقطير الاتّساق FID بقيمة 3.55 على CIFAR-10 و6.20 على ImageNet 64×64 للتوليد بخطوة واحدة — رقم قياسي جديد بين أساليب التقطير. بخطوتين انخفض FID على CIFAR-10 إلى 2.93، مُقترباً من جودة النموذج المعلم الذي يحتاج أكثر من 100 خطوة.

تدريب الاتّساق (بدون أي معلم) حقق FID بقيمة 7.5 على CIFAR-10 للتوليد بخطوة واحدة، متفوقاً على جميع المولّدات غير الخصومية الحالية في خطوة واحدة. على مجموعتَي LSUN لغرف النوم والقطط بدقة 256×256، أنتجت نماذج الاتّساق عيّنات مقنعة بخطوة إلى ثلاث خطوات.

المهم أن النموذج ذاته يتولى التوليد والتعديل. إكمال الأجزاء الناقصة والتلوين وزيادة الدقة كلها عملت بدون تدريب مخصص للمهمة، باستخدام إجراء أخذ العيّنات متعدد الخطوات وحسب.

افتح في المختبر
مقارنة FID: تقطير الاتّساق (CD) وتدريب الاتّساق (CT) مقابل الأساليب السابقة بخطوة واحدة وعدة خطوات على CIFAR-10.
تستيقظ التجربة عند وصولك…

البنية وتفاصيل التدريب

تستخدم نماذج الاتّساق العمود الفقري ذاته من شبكة U-Net المستخدمة في نموذج الانتشار المعلم — لا حاجة إلى تغييرات في البنية. مدخل تكييف الزمن يُشير ببساطة إلى مستوى الضجيج. القرارات التدريبية الأساسية هي:

مقياس المسافة d(·,·): استكشفت الورقة L2 وL1 وLPIPS (تشابه رُقَع الصورة الإدراكي المُتعلَّم). LPIPS أعطى أفضل النتائج باستمرار لأنه يقيس التشابه الإدراكي وليس الخطأ بكسلاً ببكسل — وهذا مهم لأن التحويل من الضجيج إلى البيانات هو تحويل من واحد إلى كثير.

معدل انحلال المتوسط المتحرك الأُسّي μ: شبكة الهدف θ⁻ هي متوسط متحرك أُسّي لـ θ. جدول يزيد μ ببطء نحو 1 أثناء التدريب أعطى أفضل النتائج.

دالة الجدولة N(k): يُزاد عدد خطوات التقسيم N أثناء التدريب وفق جدول. البدء بخطوات غليظة ثم التنقيح يتجنب عدم الاستقرار المبكر مع ضمان اتّساق دقيق عند التقارب.

اختيار حلّال ODE (للتقطير): حلّالا أويلر وهوين كلاهما يعملان. هوين (حلّال من الرتبة الثانية) يُعطي نتائج أفضل قليلاً عند التقسيم ذاته.

الشيفرة الوهمية: تقطير الاتّساق وتدريبه

تقطير الاتّساق — الشيفرة الوهمية لحلقة التدريبpython

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

# تقطير الاتّساق (CD) — شيفرة وهمية مُبسَّطة
# المُعطيات: نموذج نتيجة المعلم s_phi, معدل EMA mu, جدول N(k)
for each training step k:
    N = schedule(k)                    # زِد N عبر التدريب
    n = randint(1, N-1)                # اختر فهرس زمني عشوائي
    x_0 = sample_data()                # صورة نظيفة من مجموعة البيانات
    eps = randn_like(x_0)              # ضجيج غاوسي
    x_tn1 = x_0 + t[n+1] * eps        # عيّنة مُشوَّشة عند t_{n+1}

    # خطوة ODE للمعلم: تقدير x عند t_n
    x_tn_hat = ode_step(x_tn1, t[n+1], t[n], s_phi)

    # مُخرَجات اتّساق الطالب
    pred_student = f_theta(x_tn1, t[n+1])
    pred_target  = f_theta_ema(x_tn_hat, t[n])  # شبكة EMA

    loss = d(pred_student, pred_target.detach())
    loss.backward()
    optimizer.step()
    theta_ema = mu * theta_ema + (1 - mu) * theta
تدريب الاتّساق — الشيفرة الوهمية لحلقة التدريب (بدون معلم)python

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

# تدريب الاتّساق (CT) — شيفرة وهمية مُبسَّطة
# لا حاجة إلى معلم مُدرَّب مسبقاً — يستخدم مُقدِّر نتيجة غير متحيّز
for each training step k:
    N = schedule(k)                    # زِد N عبر التدريب
    n = randint(1, N-1)                # اختر فهرس زمني عشوائي
    x_0 = sample_data()                # صورة نظيفة من مجموعة البيانات
    eps = randn_like(x_0)              # ضجيج واحد لكلا المستويين

    x_tn  = x_0 + t[n]   * eps        # عيّنة مُشوَّشة عند t_n
    x_tn1 = x_0 + t[n+1] * eps        # عيّنة مُشوَّشة عند t_{n+1}

    # كلاهما يستخدم الضجيج eps ذاته — يضمن المسار نفسه
    pred_student = f_theta(x_tn1, t[n+1])
    pred_target  = f_theta_ema(x_tn, t[n])    # شبكة EMA

    loss = d(pred_student, pred_target.detach())
    loss.backward()
    optimizer.step()
    theta_ema = mu * theta_ema + (1 - mu) * theta

الخط الزمني: من الانتشار إلى التوليد الآني

  1. 2020

    المعادلات التفاضلية العشوائية القائمة على النتيجة تُوحّد نماذج الانتشار

    أظهر سونغ وآخرون أن DDPM ومطابقة النتيجة حالتان خاصتان من إطار SDE عام، وقدّموا المعادلة التفاضلية العادية لتدفّق الاحتمال كمسار توليد حتمي.

  2. 2021

    DDIM يُتيح أخذ العيّنات الحتمي

    اقترح سونغ ومِنغ وإيرمون DDIM — عملية أخذ عيّنات غير ماركوفية تُقلّص الخطوات من 1000 إلى 50–100 بتتبّع مسار PF-ODE بكفاءة أعلى.

  3. 2022

    التقطير التدريجي يُنصّف الخطوات مراراً

    يُدرّب ساليمانز وهو طالباً ليحاكي خطوتين من المعلم في خطوة واحدة، مُنصّفاً تكرارياً من 1024 إلى 4 خطوات. لا يزال يتطلب مراحل تدريب متعددة.

  4. 2023

    نماذج الاتّساق تحقق التوليد بخطوة واحدة

    يُقدّم سونغ وآخرون خاصية الاتّساق الذاتي ويُدرّبون نماذج تُحوّل أي مستوى ضجيج مباشرة إلى بيانات. أفضل FID للتوليد بخطوة واحدة على CIFAR-10 (3.55) وImageNet 64×64 (6.20).

  5. 2023

    نماذج الاتّساق الكامنة (LCM) تُتيح الانتشار الآني

    يُطبّق لوو وآخرون تقطير الاتّساق في الفضاء الكامن، مُمكّنين Stable Diffusion من توليد الصور في 1–4 خطوات. يصبح التوليد الآني عملياً.

  6. 2024

    تدريب اتّساق مُحسَّن ومستمر زمنياً

    يدفع سونغ ودهاريوال (iCT) ولو وسونغ (sCT) جودة التدريب المستقل لتقترب من التقطير، بأهداف مُبسَّطة وجداول أفضل وحدود مستمرة زمنياً.

أحدثت نماذج الاتّساق تحولاً جذرياً: من «نماذج الانتشار بطيئة لكنها عالية الجودة» إلى «التوليد بجودة الانتشار يمكن أن يكون سريعاً». أثبت مبدأ الاتّساق الذاتي أنه أكثر من حيلة ذكية — إنه نموذج تصميمي أساسي للنماذج التوليدية التي تستبدل التحسين التكراري بالتنبؤ المباشر.

المرجعSong, Dhariwal, Chen, Sutskever. Consistency Models. ICML, 2023.

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