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

المحتويات
لماذا يدرّب استوديو ألعاب نموذجًا لغويًا
تصنع NETBYTE ألعابًا وتطبيقات ومواقع ويب. وتزداد النماذج اللغوية حضورًا داخل هذه المنتجات: شخصيات تردّ، ومساعدة تفهم السؤال، وأدوات تنجز شيئًا. معظم النماذج المفتوحة تفكر بالإنجليزية أولًا، وتأتي الإستونية أو الأيرلندية أو المالطية في الهامش. أردنا أن نفهم السلسلة كلها بأنفسنا – البيانات والمُرمِّز والبنية والتدريب – وأن نعرف أين يذهب المال فعلًا.
- مُعامِل
- 320 مليون
- لغة رسمية في الاتحاد الأوروبي
- 24
- رمز تدريب
- 6.5 مليار
- لوحدات GPU المستأجرة
- ≈ 12 دولارًا
بدأ Helix نموذجًا أوليًا للبحث. كل ما يلي قرار شكّله، وكل قرار مدعوم بقياس – ومعه الأخطاء التي كلّفتنا أكثر وقت.
أربع أفكار، وواحدة صمدت
استهدف النموذج الأولي أربع نقاط ضعف معروفة في مولّدات النصوص الحالية. فهو يكتب في كتل من 16 رمزًا بدلًا من رمز واحد في كل مرة، ويمكنه المرور على نواة مشتركة من الطبقات عدة مرات، ويتنبأ لكل كتلة بـ«خطة» مدمجة، ويمزج انتباهًا محليًا رخيصًا مع انتباه خطي للمسافات الطويلة.
نجحت الكتابة بالكتل فورًا: كتب نموذج اختبار صغير 64 رمزًا في 13 تمريرة عبر الشبكة، بينما يحتاج النموذج التقليدي إلى تمريرة لكل رمز – أي نحو خُمس العمل. أما الأفكار الثلاث الأخرى فسقطت في اختبار أصعب. بنينا مهام تقع فيها الإجابة بعيدًا خارج النافذة المحلية، فيضطر النموذج إلى النظر إلى الوراء عبر النص كله.
عرض البيانات
| الصيغة | صحيح |
|---|---|
| النافذة المحلية فقط | 23.1% |
| + انتباه خطي وخطة وحلقات | 23.1% |
| + رأسان عامّان دقيقان | 49.4% |
| انتباه كامل (للمقارنة) | 49.0% |
| الصدفة (25%) | 25.0% |
لم يحلّها إلا الانتباه الدقيق عبر المسافة كلها. بقي الانتباه الخطي والخطة والحلقات عند مستوى الصدفة، بل إن المُحسِّن خفّض الذاكرة الخطية إلى عمر نصف أقل من رمز واحد. وكفى رأسان عامّان دقيقان لمجاراة الانتباه الكامل.
لذلك يحتفظ النموذج النهائي في كل طبقة بثمانية رؤوس محلية بنافذة من 256 رمزًا، ويضيف رأسين عامّين دقيقين في كل طبقة ثانية، بينما تحتفظ الطبقات التي بينها برأسين للانتباه الخطي ذي البوابة. الخطة والحلقات معطّلتان. ما زالتا في الشيفرة ومختبرتين، لكنهما لم تبرّرا كلفتهما على النصوص الحقيقية.
- محلي، نافذة من 256 رمزًا
- انتباه عام دقيق
- انتباه خطي ذو بوابة
عرض البيانات
| نوع الرأس | الطبقات | الرؤوس لكل طبقة |
|---|---|---|
| محلي، نافذة من 256 رمزًا | 1–12 | 8 |
| انتباه عام دقيق | 1, 3, 5, 7, 9, 11 | 2 |
| انتباه خطي ذو بوابة | 2, 4, 6, 8, 10, 12 | 2 |
قِس ولا تفترض
اختبرنا كل حيلة تدريب على نموذج من 94 مليون مُعامِل بالميزانية نفسها لكل تشغيل: 29.5 مليون رمز، والبذرة نفسها، وترتيب البيانات نفسه. يختلف تشغيلان للإعداد نفسه بمقدار ±0.03، فكل ما هو أصغر من ذلك ضجيج.
عرض البيانات
| التغيير | Δ الخسارة (نات) |
|---|---|
| Muon + جدول WSD | -0.587 |
| مُحسِّن Muon | -0.347 |
| شبكة أعمق وأنحف | -0.099 |
| جدول WSD | -0.080 |
| بقايا القيم | -0.007 |
| z-loss | +0.029 |
| انتباه بالاستعلامات المجمّعة | +0.088 |
كان مُحسِّن Muon الرافعة الكبيرة الوحيدة، ويتكامل مع جدول لمعدل التعلّم من نوع warmup-stable-decay. وإعادة طبقة التضمين وطبقة الإخراج إلى AdamW، كما يوصي مؤلفو Muon، أضافت 0.12 أخرى وجعلت التدريب أسرع بنسبة 5%. التركيبات لا تُجمع ببساطة: الشبكة الأعمق والأنحف ساعدت مع AdamW وأضرّت مع Muon. لهذا حصلت كل تركيبة واعدة على تشغيل خاص بها.
24 لغة و6.5 مليار رمز
يقرأ Helix نصوص الويب من FineWeb-Edu للإنجليزية ومن FineWeb-2 للغات الثلاث والعشرين الأخرى – وللغات الأكبر من العُشر الأعلى المُرشَّح حسب الجودة. وتكمل الشيفرة والرياضيات وتيار صغير من المحادثات الاصطناعية المزيج. تحصل الإنجليزية على الثلث. وتُوزن اللغات الأخرى بحسب كمية النصوص المتاحة، مع تنعيم يمنع غرق الأيرلندية والمالطية، ولا يتكرر أي مصدر أكثر من أربع مرات – فحتى هذا الحد يكون التكرار قريبًا من جودة البيانات الجديدة.
عرض البيانات
| المصدر | الحصة |
|---|---|
| 23 لغة أخرى في الاتحاد الأوروبي | 51.6% |
| الإنجليزية | 33.0% |
| الشيفرة ولغات الترميز | 10.0% |
| الرياضيات | 3.0% |
| محادثات وأدوات اصطناعية | 2.4% |
تيار المحادثة استخلاصي: تُنسخ الإجابات من فقرات حقيقية، وتُحسب نتائج الأدوات بدل أن تُختلق. إنه يعلّم الصيغة لا المعرفة. المُرمِّز هو BPE على مستوى البايت بـ64,000 مدخل، ويضع بين 3.3 و4 بايتات من النص في رمز واحد لكل لغة تُكتب بالحروف اللاتينية.
ثلاثة أخطاء تستحق أن تُروى
- النموذج الذي قرأ الإجابة. في أحد مسارات الشيفرة تجاهلت الرؤوس العامة القناع السببي وصار بإمكانها رؤية الرموز المستقبلية. هبطت الخسارة من 6.85 إلى 1.71 في 75 خطوة، وذهب تشغيل استمر 16 ساعة سدى. الخسارة الجيدة على نحو مريب تقرير عن خطأ، واختبار انحدار يحرس هذه الحالة تحديدًا الآن.
- الأحرف ليست بايتات. كان الضغط يُحسب بالأحرف بدل بايتات UTF-8. اختلق ذلك «ضعفًا» في الصينية وجعل اليونانية والبلغارية تبدوان أسوأ بنحو الضعف مما هما عليه.
- مستندات مقطوعة عند كل سطر فارغ. كان المُشفِّر يفصل المستندات عند كل سطر فارغ – والأسطر الفارغة موجودة في منتصف كل ملف شيفرة تقريبًا. ضاع ما يصل إلى 35% من نصوص الشيفرة والرياضيات. أصلحنا الفاصل وأعدنا بناء المدوّنة كلها في 31 أكتوبر، واستغرق ذلك ساعتين و12 دقيقة.
من المكتب إلى جهاز مستأجر
جرى أول 1.66 مليار رمز على بطاقة AMD Radeon RX 7800 XT واحدة. أمران جعلا ذلك ممكنًا: خيار في نواة الانتباه يكون معطّلًا افتراضيًا – ومن دونه كان الانتباه أبطأ 12 مرة – وتجميع كل طبقة باستخدام torch.compile. وبوسيط 11,800 رمز في الثانية كان الباقي سيستغرق قرابة خمسة أيام أخرى.
فكتبنا طيارًا آليًا. يستأجر وحدات GPU على Vast.ai، ويرفع الشيفرة والمدوّنة ونقطة الحفظ، ويدرّب، ويعيد نقطة حفظ إلى البيت كل ثلاث ساعات، ويتوقف قبل نفاد الرصيد. في 2 نوفمبر مرّ بثلاثة أجهزة لم يشغّلها مزوّدوها قط، ثم استقر على بطاقتي RTX 4070 Ti Super في ألمانيا مقابل 0.363 دولار في الساعة. استغرق رفع 15.4 GiB أربعين دقيقة.
عرض البيانات
| الإعداد | رمز/ثانية |
|---|---|
| محلي، قبل التحسين | 8,319 |
| محلي، بعد التجميع | 11,830 |
| مستأجر، وحدتا GPU | 41,367 |
41,400 رمز في الثانية تعادل 3.5 أضعاف المكتب. والجزء المستأجر – 4.8 مليار رمز في نحو 33 ساعة – يكلّف قرابة 12 دولارًا.
أين يقف Helix اليوم
- المحجوز
- التدريب
الخسارة (نات لكل رمز)
الرموز المقروءة بالمليارات
عرض البيانات
| الرموز المقروءة بالمليارات | المحجوز | التدريب |
|---|---|---|
| 0.06 | 4.571 | 4.261 |
| 0.55 | 3.776 | 3.574 |
| 1.04 | 3.694 | 3.469 |
| 1.54 | 3.596 | 3.421 |
| 2.03 | 3.426 | 3.238 |
| 2.52 | 3.329 | 3.143 |
| 3.01 | 3.291 | 3.113 |
| 3.50 | 3.263 | 3.076 |
| 3.99 | 3.225 | 3.079 |
| 4.49 | 3.244 | 3.076 |
| 4.98 | 3.218 | 3.036 |
| 5.35 | 3.123 | 2.884 |
حتى 3 نوفمبر 2026 قرأ Helix 5.35 من أصل 6.5 مليار رمز. ومنذ 5.2 مليار دخل مرحلة التبريد: ينخفض معدل التعلّم ويتحوّل المزيج نحو الرياضيات والشيفرة والمحادثة. وعلى نصوص محجوزة من كل التيارات تبلغ خسارته 3.12 نات لكل رمز.
عرض البيانات
| اللغة | بت لكل بايت |
|---|---|
| اليونانية | 0.721 |
| البلغارية | 0.844 |
| الفرنسية | 1.065 |
| الإنجليزية | 1.086 |
| الإسبانية | 1.135 |
| البرتغالية | 1.219 |
| الألمانية | 1.257 |
| الهولندية | 1.268 |
| الإيطالية | 1.277 |
| البولندية | 1.355 |
| الدانمركية | 1.364 |
| الهنغارية | 1.407 |
| السلوفاكية | 1.412 |
| المالطية | 1.415 |
| الرومانية | 1.416 |
| السويدية | 1.418 |
| الأيرلندية | 1.422 |
| السلوفانية | 1.431 |
| التشيكية | 1.444 |
| الليتوانية | 1.450 |
| اللاتفية | 1.451 |
| الكرواتية | 1.507 |
| الفنلندية | 1.508 |
| الإستونية | 1.727 |
يظهر معنى ذلك عمليًا على أفضل وجه في عيّنة غير معدّلة من نقطة حفظ عند نحو 4.9 مليار رمز. البداية منّا، والباقي من Helix:
بداية النص: The history of the printing press begins in the fifteenth century, when Johannes Gutenberg introduced movable type to Europe. Before that, books
مخرجات النموذج: for printing were usually in the form of texts, usually in the format of illustrations. In its introduction to the printing press, Gutenberg uses one line-of-action model to illustrate a series of printed pieces of a book.
القواعد واختيار الكلمات والموضوع صامدة، أما الحقائق فلا. وهذا تقريبًا ما يمكن توقّعه من 320 مليون مُعامِل و6.5 مليار رمز: نموذج طليق يختلق الأشياء.
ما الخطوة التالية
ينتهي التدريب المسبق خلال ساعات قليلة. بعد ذلك تأتي مرحلة السياق الطويل بكتب من Project Gutenberg ونصوص قانونية أوروبية من EUR-Lex، ثم ضبط دقيق للمحادثة واستخدام الأدوات، ونموذج مسودة صغير يسرّع التوليد.