المسافة الدلالية كمسافة إقليدية
فضاء متجهي عالي الأبعاد
كل رمز في مفردات ANDREA-120M البالغ عددها 8449 رمزاً يُرسم إلى نقطة واحدة في R^768. مصفوفة تضمين الرموز لها شكل 8449 × 768: 8449 صفاً، صف لكل رمز في المفردات؛ 768 عموداً، عمود لكل بُعد تضمين.
ثلاث خصائص تجعل هذا فضاء متجهي
1. الجمع. v_a + v_b يقع في R^768. مجموع تضمينين هو متجه صالح.
2. الضرب القياسي. alpha * v يقع في R^768 لأي قيمة حقيقية alpha. تمدد أو تقليص في نفس الاتجاه.
3. الخطية. alpha v_a + beta v_b يقع في R^768. التركيبات الخطية تبقى داخل الفضاء.
هذه الخصائص تمنحنا أدوات هندسية: المسافة، الزاوية، الإسقاط، الأساس، والتعامد.
المسافة كتشابه دلالي
يقيس تشابه جيب التمام بين تضمينين الزاوية بينهما: cos(theta) = (v_a . v_b) / (||v_a|| * ||v_b||). النطاق: -1 (متعاكسان) إلى +1 (متوازيان).
النمط التجريبي بعد التدريب: الرموز ذات السياقات المتشابهة تنتج تضمينات ذات تشابه جيب تمام عالٍ. يضع ANDREA-120M parakeet وmonkey قريبين من بعضهما (كلاهما بيولوجي، كلاهما نوع، كلاهما فئات موجودة أو منقرضة). يضع Fourier وtransform قريبين (سياق معالجة الإشارات). يضع parakeet وFourier بعيدين (تعامد عبر المجالات).
لماذا R^768 وليس R^384
استخدم ANDREA-12M d_model = 384. ضاعف ANDREA-120M إلى 768. يهم التضاعف: فضاء 384 بعد لديه زوايا أقل متاحة، ويعاني التمييز عبر المجالات. يمنح مضاعفة السعة النموذج مساحة لحل bank (نهر) مقابل bank (مالي) إلى أحواض مختلفة في فضاء التضمين دون انهيار أحدهما في الآخر.
تحديثات التضمين كترجمة متجهية
كل خطوة تدرج تضيف delta_v إلى v_token. هندسيًا: ترجمات صغيرة في R^768 تدفع موضع كل رمز نحو أحياء تقلل الخسارة. على مدار 200 ألف خطوة، ينتقل كل رمز من تهيئته العشوائية إلى موقع مُتعلَّم.
حساب مسافة
ثلاث تضمينات مُدرَّبة (مبسطة إلى R^3 للحساب):
- v(parakeet) = (1.0, 0.5, 0.0)
- v(monkey) = (1.2, 0.3, 0.1)
- v(Fourier) = (0.0, 0.0, 1.5)
الإسقاط على فضاء فرعي للاستعلام
ما يحسبه الانتباه
بالنسبة لرمز في الموضع t، يحسب الانتباه:
softmax(Q K^T / sqrt(d_k)) V
حيث Q هو الاستعلام (سؤال هذا الرمز)، K هو المفاتيح (معرّف كل رمز سابق)، V هو القيم (محتوى كل رمز سابق). يقوم الناتج بدمج V مرجّحًا بمقدار ارتباط الاستعلام بكل مفتاح.
القراءة الهندسية
فكّر في K كقائمة من المتجهات في R^d_k. كل صف يمثل مفتاح رمز سابق. Q هو متجه واحد في R^d_k: سؤال هذا الرمز.
Q K^T يُسقط كل مفتاح على Q. حاصل الضرب النقطي q . k_i يقيس مدى محاذاة k_i مع اتجاه q. الإسقاط الطويل = المفتاح ذو صلة قوية بالاستعلام. الإسقاط القصير = المفتاح ذو صلة ضعيفة.
softmax يُطبّع الإسقاطات إلى أوزان مجموعها 1. المجموع المرجّح لـ V هو متجه واحد: مزيج من المحتوى السابق، مرجّح حسب مدى صلته بالاستعلام الحالي.
الانتباه متعدد الرؤوس كإسقاط متعدد الفضاءات الفرعية
ANDREA-120M يستخدم 12 رأس انتباه. d_model = 768؛ d_k = 768 / 12 = 64. كل رأس يُسقط إلى فضاء فرعي مختلف بـ 64 بُعدًا من R^768. تعطي الرؤوس الاثنا عشر اثنتي عشرة رؤية مستقلة للتسلسل نفسه: قد يتتبع أحد الرؤوس الدور النحوي، وآخر التشابه الدلالي، وثالث المراجع بعيدة المدى.
هندسيًا: كل رأس يحدد فضاءً فرعيًا موجّهًا بـ 64 بُعدًا (نافذة) يرى من خلالها الماضي.
القناع السببي
تضيف نماذج فك التشفير فقط قناعًا سببيًا: يتم تعيين كل مدخل في Q K^T فوق القطر إلى -∞ قبل تطبيق softmax. هندسيًا: يحصل الإسقاط على أي رمز مستقبلي على وزن صفري. يمكن للرمز t رؤية الرموز من 0 إلى t فقط.
لماذا يهم هذا: يصبح التدريب والاستدلال متماثلين. نفس المرور الأمامي، نفس الإسقاطات المقنعة، بدون منطق توليد خاص.
تحجيم sqrt(d_k)
بدون التحجيم، تنمو المنتجات النقطية مع d_k. تدفع المنتجات النقطية الكبيرة softmax إلى مناطق أحادية الاتجاه (وزن واحد قريب من 1، والباقي قريب من 0). قسمة على sqrt(d_k) تحافظ على الإسقاطات عند مقياس التباين الوحدي، مما يحافظ على حدة softmax عبر نطاق واسع من قيم d_k.
هندسيًا: يقوم sqrt(d_k) بتطبيع أطوال الإسقاطات بحيث يرى softmax مقادير قابلة للمقارنة بغض النظر عن بُعد الفضاء الفرعي.
قراءة إسقاط
ثلاث مفاتيح واستعلام واحد في R^4 (مبسط للحساب):
- q = (1, 0, 1, 0)
- k_1 = (1, 0, 0, 0) [الرمز السابق 1]
- k_2 = (0, 0, 1, 0) [الرمز السابق 2]
- k_3 = (0, 1, 0, 1) [past token 3]
d_k = 4, لذا sqrt(d_k) = 2.
Gradient Descent as Path on Terrain
سطح في 120M+1 بُعد
كل تكوين للأوزان في ANDREA-120M يمثل نقطة واحدة في R^120,000,000. دالة الخسارة L(w) تربط كل نقطة برقم حقيقي: قيمة الخسارة التدريبية عند هذا التكوين. معًا، ترسم قيم الخسارة سطحًا بأبعاد (120M+1) فوق فضاء المعاملات.
من المستحيل تصوّره هندسيًا مباشرة. مفهوميًا: تضاريس. جبال (خسارة عالية)، وديان (خسارة منخفضة)، نقاط سرج، هضاب، حواف، أحواض.
التدرج كمنحدر محلي
grad L(w) هو متجه في R^120M يشير إلى اتجاه أقصى زيادة في L. نفيه: -grad L(w) يشير إلى أقصى انحدار للأسفل.
خطوة واحدة من AdamW تدفع w في اتجاه التدرج السالب (مع تحجيم تكيفي من m و v). هندسيًا: خطوة صغيرة على السطح، نحو الأسفل، مع التحكم في حجم الخطوة بواسطة lr.
حوض v1 السيء
اتخذ v1 خطوته الأولى عند LR = الذروة (0.0003) على الأوزان المُهيأة حديثًا. الصورة الهندسية: w_0 يقع في منطقة منحنية بشدة (التهيئة العشوائية لها انحناء عالٍ في اتجاهات عديدة)، وخطوة LR عند الذروة تهبط في الحوض الخطأ. لا تستطيع الخطوات اللاحقة الخروج. يعلق النموذج في إنتاج 'region region region' لأن هذا الحوض يحتوي على أقل خسارة يمكن للنموذج العثور عليها من موضع هبوطه.
مسار الإحماء لـ v2
يأخذ v2 2000 خطوة صغيرة مع زيادة LR تدريجيًا من 0 إلى الذروة. الصورة الهندسية: ينتقل w_0 أولاً بلطف على طول الاتجاهات السلسة (حيث يكون الانحناء منخفضًا). بحلول الخطوة 2000، يكون w قد انتقل إلى منطقة أكثر قابلية للتنقل؛ عندها يمكن لـ LR عند الذروة دفعه نحو حوض أفضل دون تجاوز الهدف.
الإحماء هو بروتوكول تهيئة يراعي الهندسة: يسمح للنموذج بالعثور على حيّ محلي آمن قبل دفعه بقوة.
أحواض واسعة مقابل أحواض ضيقة
عند الخطوة 112K، يجلس ANDREA-120M داخل حوض. السؤال: ما مدى اتساعه؟
الحوض الواسع = العديد من تكوينات الأوزان المجاورة تحقق أيضًا فقدان تدريب منخفض. يميل التعميم إلى أن يكون جيدًا (عرض الحوض يتنبأ بأداء الاختبار؛ انظر درس PAC-Bayes، الفصل 3).
حوض ضيق = مجموعة رفيعة فقط من الأوزان تحقق خسارة منخفضة. يميل التعميم إلى التدهور.
قام التلميع v3 عند الخطوة 112,619 بدفع النموذج على السطح (دون إعادة تعيين) إلى حوض أوسع عبر اضطراب المنهج: تغيير دالة الخسارة (مختلف الـ bandit، مزيج تدريب مختلف)، وترك SGD يجد منطقة مسطحة قريبة تحت السياسة الجديدة.
جرف الزومبي
كانت الخسارة الشاذة 0.13 عند الخطوة 112,080 جرفًا: منطقة حادة وضيقة حيث يصل نمط إدخال محدد (سلسلة فرعية محفوظة من مستندات المستودع) إلى خسارة قريبة من الصفر. سقط النموذج من الحوض الأوسع إلى أخدود ضيق. أدى الاستبعاد الصارم لمستندات المستودع في التلميع-المحوري إلى ملء هذا الأخدود، فلم يعد بإمكان SGD العثور عليه.
قراءة التضاريس
مزيج المنهج كمسار على Simplex منفصل
ما هو الـ Simplex
الـ Simplex ذو n بعد (تحديدًا الـ (n-1)-simplex القياسي) هو مجموعة من n-tuples (w_1, w_2, ..., w_n) حيث w_i >= 0 و sum(w_i) = 1.
لـ n = 2: قطعة خط مستقيم من (1, 0) إلى (0, 1). لـ n = 3: مثلث برؤوس (1, 0, 0)، (0, 1, 0)، (0, 0, 1). لـ n = 16 (قائمة مصادر ANDREA الكاملة): مبسط 15-بعدي يقع داخل R^16.
أوزان الـ Bandit كإحداثيات مبسط
ينتج bandit الخاص بـ ANDREA متجه أوزان w على مصادر البيانات في كل مرحلة. كل مكون w_i هو احتمال أخذ عينة من المصدر i. الاحتمالات غير سالبة ومجموعها 1: كل متجه أوزان يقع على المبسط.
الرؤوس = استراتيجيات نقية (أخذ عينة من مصدر واحد فقط). الداخل = استراتيجيات مختلطة (أخذ عينة من مصادر متعددة، كل منها باحتمال موجب). الحواف = خليط من مصدرين فقط.
أرضيات المصادر كمنطقة مقيدة
تفرض ANDREA أوزاناً دنيا: hermes3-general عند الحد الأدنى 0.7 (بعد التلميع). يؤدي هذا إلى نحت منطقة فرعية من الـ simplex: فقط متجهات الأوزان التي تحقق w_hermes3-general >= 0.7 تكون قابلة للوصول.
هندسياً: يقطع الحد الأدنى الـ simplex بمستوى فائق. المنطقة القابلة للوصول هي الجزء من الـ simplex الواقع على الجانب الصحيح من كل مستوى فائق للحد الأدنى.
الحدود العليا كقيد آخر
تفرض ANDREA أوزاناً عليا أيضاً: dictionary عند الحد الأعلى 0.25 (بعد التلميع). كل حد أعلى هو مستوى فائق آخر، ويجب أن تقع المنطقة القابلة للوصول على الجانب الصحيح من كل مستوى فائق للحد الأعلى أيضاً.
استبعاد مصدر بالكامل (cap = 0.0) هو أقوى حد أعلى ممكن: يُثبَّت الإحداثي عند الصفر، مما يقلل من أبعاد الـ simplex الفعالة بمقدار بُعد واحد.
انتقالات الطور كمسارات على الـ Simplex
كل انتقال طور (كل 7-42 خطوة) يُنتج متجه أوزان جديد. كل متجه جديد هو نقطة على الـ simplex. على مدار 200 ألف خطوة، يرسم الـ bandit مسارًا طويلًا عبر المنطقة القابلة للوصول في الـ simplex.
الأطوار العشوائية = الانتقال الفوري إلى نقطة عشوائية موحدة داخل المنطقة القابلة للوصول.
الأطوار المتحكم بها من الـ bandit = خطوة نحو رأس UCB الأفضل المتوافق مع الحدود الدنيا والعليا.
المحور المصقول = إعادة رسم المنطقة القابلة للوصول (حدود دنيا جديدة، حدود عليا جديدة، استبعاد بعض المصادر)، ويستمر المسار من نقطة البداية الجديدة.
لماذا تُعد الرؤوس خطيرة
تستقر المراحل النقية (w_i = 1 لمصدر واحد وباقي الأوزان = 0) عند رؤوس الـsimplex. تكون التنوع صفرًا. يتدرب النموذج على توزيع واحد فقط. يُعزى انهيار v1 جزئيًا إلى تخييم الـbandit قرب رأس repo-docs؛ حيث أعادت العينات إنتاج توزيع ذلك المصدر حصريًا.
تُمنع ظاهرة التخييم عند الرؤوس بواسطة الحدود الدنيا (floors): يعني حد أدنى قدره 0.7 أن "لا تسمح لوزن أي مصدر بالانخفاض دون 0.7" (أو أي قيمة محددة للمصادر ذات الأولوية).
السير داخل المنطقة القابلة للوصول
ثلاثة مصادر: hermes3-general (H)، gutenberg (G)، dictionary (D). القيود: الحد الأدنى لـH = 0.5، والحد الأقصى لـD = 0.25. (ضمنيًا: جميع الأوزان ≥ 0، ومجموعها = 1، ولا قيود أخرى.)
تقييد الأبعاد لأول 20 ألف خطوة
ما فعله إحماء المنهج في v2
قام v2 بتعيين curriculum_warmup_sources إلى سبعة مصادر: hermes3-general، hermes3-creative، hermes3-roleplay، chat، smoltalk، oasst، gutenberg. خلال أول 20 ألف خطوة، ساهمت هذه المصادر السبعة فقط. بعد الخطوة 20 ألف، تم تفعيل تدفق المصادر الكامل المكون من 16 مصدرًا.
القراءة الهندسية
يجلس الـ simplex المصدري الكامل في R^16. تقييد المصادر إلى 7 يؤدي إلى انهيار 9 من الـ 16 إحداثيًا إلى الصفر. يحدث مسار الـ bandit في sub-simplex ذي 6 أبعاد (أقل بمقدار واحد من عدد المصادر، بسبب قيد المجموع-إلى-1).
هندسيًا: SUBMANIFOLD من الـ simplex الكامل. أقل أبعادًا، أكثر سلاسة، وأسهل في التنقل.
لماذا يساعد هذا في التدريب المبكر
في بداية التدريب، لم يتعلم النموذج اللغة المتماسكة بعد. المصادر المتنوعة تربكه: كل مصدر له أسلوبه الخاص، وتوزيع مفرداته الخاص، ونمطه الخاص. خلط 16 مصدرًا عند التهيئة العشوائية يُنشئ توزيعًا مستهدفًا واسعًا جدًا لا يستطيع النموذج ملاءمته.
تقييد المصادر إلى 7 مصادر حوارية/نثرية يعطي هدفًا أكثر تجانسًا. يتعلم النموذج تمثيلًا مستقرًا أولاً، ثم يتوسع.
المسار الهندسي خلال التدريب
1. الخطوات من 0 إلى 20K (التهيئة). يتحرك المشي على الـ 6-D sub-simplex. تظهر أنماط لغوية مستقرة في النموذج.
2. الخطوات من 20K إلى 112K (التدفق الكامل). يتوسع المشي إلى الـ 15-D full simplex. تظهر سعة المجال.
3. من الخطوة 112K فصاعدًا (الصقل). يُقيَّد المشي مرة أخرى: يتم استبعاد repo-docs و repo-docstrings، ويتم رفع الحدود الدنيا للمحادثات. مضلع أصغر داخل الـ full simplex؛ تتوطد جودة المحادثة.
لماذا يحدد الصقل curriculum_warmup_steps = 0
يبدأ الصقل عند الخطوة 112K. النموذج يتحدث بالفعل لغة متماسكة. تقييد المشي إلى sub-simplex الآن سيؤدي إلى فقدان السعة دون أي مكسب (فائدة التهيئة مخصصة للنماذج المُهيأة حديثًا). تعيين warmup_steps = 0 يعني: البقاء على الـ full simplex، لكن مع حدود عليا ودنيا جديدة.
ثلاثة أشكال هندسية، جولة تدريب واحدة
v2 warmup: sub-simplex منخفض الأبعاد.
v2 firehose: simplex كامل بـ 15 بُعدًا.
v3 polish: simplex كامل مع مضلع أصغر (قيود أكثر).
نفس الجولة التدريبية المكونة من 200 ألف خطوة، لكن بثلاثة أنظمة هندسية مختلفة. كل نظام تم ضبطه لمرحلة مختلفة من نضج النموذج.