إسماعيل بن علا

ملاحظات المختبر

تجارب قصيرة ومؤرَّخة: سؤال واحد، نتيجة واحدة، درس واحد.

  1. Flash Attention كان مكسبًا مباشرًا وسهل الإدماج في نموذج GPT الذي بنيته من الصفر

    السؤال. هل يستحق ربط scaled_dot_product_attention من PyTorch بنموذج GPT مكتوب يدويًا العناء، مقارنةً بالقناع السببي (causal mask) الذي كتبته بنفسي؟

    النتيجة. استبدال الانتباه المقنّع اليدوي بـ scaled_dot_product_attention (Flash) أبقى المخرجات متطابقة تمامًا مع تقليص الذاكرة وزمن كل خطوة، مع الاحتفاظ بمسار يدوي بديل لإصدارات PyTorch الأقدم.

    الدرس. حين تفهم آلية الانتباه (attention) جيدًا بما يكفي لكتابتها يدويًا، تكون قد اكتسبت أيضًا حق استخدام النواة السريعة دون أن تبقى صندوقًا أسود.

    الكود: Flash Attention كان مكسبًا مباشرًا وسهل الإدماج في نموذج GPT الذي بنيته من الصفرtransformers, gpt, efficiency

  2. ثلاث استراتيجيات لتضمين الرقع (patch embedding)، ثلاثة نماذج ViT مختلفة

    السؤال. هل يهم ما إذا كانت رقع ViT تُضمَّن عبر Conv2D، أو عبر LayerNorm على رقع مسطّحة، أو بمجرد إعادة تشكيل (reshape)؟

    النتيجة. نفّذت الاستراتيجيات الثلاث في مصنّف الصور ViT الخاص بي. تضمين Conv2D كان الأكثر استقرارًا في التدريب؛ ونسخة reshape كانت الأوضح لأغراض التعليم؛ بينما جاءت نسخة LayerNorm بينهما.

    الدرس. الترميز إلى وحدات (tokenization) ليس تفصيلًا: فالطبقة الأولى، التي تحوّل البكسلات إلى وحدات، تحدّد كل ما يمكن للمحوّل (transformer) أن يتعلمه.

    الكود: ثلاث استراتيجيات لتضمين الرقع (patch embedding)، ثلاثة نماذج ViT مختلفةvit, vision, from-scratch

  3. استراتيجية فك الترميز غيّرت جودة الترجمة أكثر مما غيّرها النموذج

    السؤال. في الترجمة بين الإنجليزية والدارجة، من أين تأتي جودة المخرجات فعلًا: من الأوزان المدرَّبة أم من استراتيجية فك الترميز (decoding)؟

    النتيجة. مع تثبيت النموذج، أدّى الانتقال من فك الترميز الجشع (greedy) إلى البحث الشعاعي (beam search) مع تطبيع الطول، ثم ضبط top-p، إلى تغيير الجودة المحسوسة أكثر من جولة إعادة تدريب كاملة.

    الدرس. عند الاستدلال، يهم البحث بقدر ما يهم النموذج. استكشف إعدادات فك الترميز دائمًا قبل أن تلقي اللوم على الأوزان.

    الكود: استراتيجية فك الترميز غيّرت جودة الترجمة أكثر مما غيّرها النموذجnlp, decoding, transformers

  4. زمن الاستجابة أعاد تشكيل البنية بالكامل في تحويل الصوت في الزمن الحقيقي

    السؤال. إلى أي حد تغيّر ميزانية صارمة لزمن الاستجابة (latency) في الزمن الحقيقي تصميم نموذج تحويل الصوت؟

    النتيجة. تصميم NatVC حول قيد زمن الاستجابة المباشر استبعد الكتل التي تعتمد بكثافة على الاستباق (lookahead)، ودفع خط المعالجة بالكامل نحو مكوّنات متدفقة وسببية ومنخفضة التكلفة.

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

    audio, voice-conversion, latency

  5. بناء الاشتقاق الآلي (autograd) من الصفر أزال الغموض عن الانتشار الخلفي نهائيًا

    السؤال. هل أفهم الانتشار الخلفي (backpropagation) فعلًا، أم أنني أثق فقط في loss.backward()؟

    النتيجة. كتابة الرسم البياني الموجّه اللادوري (DAG) في MyTorcha والمرور الخلفي بقاعدة السلسلة يدويًا جعلت التدرجات ملموسة؛ وأكّد فحص تدرج عددي صغير صحة التدرجات المشتقة يدويًا.

    الدرس. الانتشار الخلفي ليس سوى قاعدة السلسلة مطبَّقة على رسم بياني. تنفيذه مرة واحدة يحوّل الصندوق الأسود إلى شيء يمكنك تصحيح أخطائه.

    الكود: بناء الاشتقاق الآلي (autograd) من الصفر أزال الغموض عن الانتشار الخلفي نهائيًاbackprop, from-scratch, fundamentals

  6. مقارنة Transformer وLSTM وRNN على بيانات موسيقية متطابقة

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

    النتيجة. في MusicGen، أظهر تدريب النماذج الثلاثة على المتن نفسه مع منحنيات خسارة موثّقة تفوّق Transformer، وحدود RNN، بوضوح لم يكن نموذج واحد مضبوط ليحققه أبدًا.

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

    الكود: مقارنة Transformer وLSTM وRNN على بيانات موسيقية متطابقةsequence-models, experiments, generative