Phase 10: LLMs from Scratch

(آسينك) و (هوجويلد)

تشفير التكهنات (المرحلة 10 · 15) يوازي الرموز داخل تسلسل واحد. الإطارات متعددة الوكلاء تتوازي عبر تسلسلات كاملة ولكن تجبر على التنسيق الصريح (الاختيار، تقسيم المهام الفرعية). (هوجويلد)! إنفرنس (Rodionov et al., arXiv:2504.06261) تفعل شيئا آخر: تشغيل N حالات من نفس LLM بالتوازي ضد SHARED مفتاح القيمة التخزين. كل عامل يرى رموز كل عامل آخر تم إنشاؤها على الفور. يمكن أن تتنسق نفسها من خلال هذا الاحتفاظ المشترك دون أي ضبط جيد. النهج تجربي لكنه يفتح محور جديد تماما من التوازي الاستنتاج الذي يقع على خط مستقيم لتحديد المواصفات. هذه الدروس تنفيذ Hogwild مزدوج! محاكاة في stdlib Python ويشرح لماذا تنشأ تعاون الاحتفاظ بالمشاركة من قدرات التفكير الموجودة في النموذج.

Type: Build

Languages: Python (stdlib)

Prerequisites: Phase 10 · 12 (inference optimization), Phase 10 · 15 (speculative decoding)

Time: ~60 minutes

أهداف التعلم

  • وصف ثلاث توبولوجيات متوازية للدراسة العلمية المشتركة ( التصويت، وظيفة فرعية، هوجويلد!) وسمي المشاكل التي تهدف كل منها.
  • أوضحوا إعداد هوجويلد الأساسي: عمال متعددون، مخزن واحد مشترك KV، التنسيق الناشئ عن طريق التأثير الذاتي.
  • احسب سرعت الحائط في وقت هوجويلد!N، التوازي على مستوى المهام p، و التنسيق الجوي c. . .
  • قم بتنفيذ محاكاة "هوجويلد" المكونة من عاملين على مشكلة لعبة ومراقبة قسم المهام الناشئة.

المشكلة

حل الماجستير العلمي الحديث المشاكل الصعبة من خلال إنتاج سلسلة طويلة من التفكير 5000 رمز من المنطق خطوة بخطوة أمر شائع ، تحدث عشرات الآلاف من الرموز على مشاكل رياضية عميقة. عند 35 رمزا / ثانية على نموذج 70B ، 50k رمزا هو 24 دقيقة. التفاعلية النموذج ليس.

يقدم لك التشفير المضارب (المرحلة 10 · 15) سرعة 3-5x عن طريق التوازي داخل تسلسل واحد. في الماضي يعتمد التبعية المتسلسلة للتشفير السريع هو السقف الصلب. يعتمد كل رمز جديد على كل رمز سابق.

السؤال الواضح: هل يمكننا التوازي عبر التسلسلات؟ تشغيل نسخ متعددة من نفس النموذج على نفس المشكلة، دعهم يتعاونونون، جعلهم يقسمون العمل؟

العمل السابق: مجموعات التصويت (تشغيل نماذج N ، اختيار إجابة الأغلبية) ، شجرة التفكير (طرق التفكير في الفرع وإعادة الجمع) ، وإطاريات متعددة الوكلاء (منح كل وكيل مهمة فرعية ، واستخدام منسق). كل هذه تساعد في مجالات المهمات المحددة. جميعها تعرض أيضًا آلية التنسيق الصريحة قواعد التصويت ، منطق الفرع والقذف ، بروتوكولات الرسائل بين وكلاء.

(هوجويلد)! التأثير يأخذ نهجا مختلفا. الموظفون N يشتركون في مخزن واحد KV. كل عامل يرى رموز كل عامل آخر تم إنشاؤها على الفور، كما لو كانت سياقه الخاص. العمال دون أي تدريب أو ضبط دقيقة معرفة كيفية تقسيم العمل. يمكن أن تقرأ نماذج التفكير الحديثة (QwQ، DeepSeek-R1، وضع التفكير عائلية كلود) الاحتفاظ المشترك وقول أشياء مثل "أرى العامل 2 قد تعامل بالفعل مع القضية الأساسية، لذلك سأعمل على الخطوة التحكمية".

وتعتمد السرعة على عبء العمل وتجربة اعتبارا من أبريل 2026. لكن الفكرة تستحق المعرفة لأنها تفتح محورًا جديدًا للتوازي في الاستنتاج.

المفهوم

الإعداد

إبتدائية N العمليات العاملة، جميع تشغيل نفس LLM. بدلا من كل عامل KV مخزنات، الحفاظ على واحد المشتركة مخزنات. عندما العامل iيُولد رمزt_jيتم كتابة الرمز في الاحتفاظ المشترك في الموقف التالي.kيتخذ خطوة أخرى، فإنه يقرأ الحالة الحالية للخزنة (التي تشمل كل شيء جميع العمال N قد أنشأت حتى الآن).

في وقت الخطوة ، يسعى العمال للكتابة الرموز. لا يوجد مؤشر موقف لكل عامل.

لماذا تنسيق يظهر

العمال يشتركون في الإستعارة عادة ما يكون شيء مثل "أنت واحد من N مثال العمل معا على هذه المشكلة. كل حالة تقرأ الذاكرة المشتركة ويمكن أن ترى ما كتبته الحالات الأخرى. تجنب العمل الإفاضل". الإشارة بالإضافة إلى التخزين المتبادل يكفي. تقرأ نماذج التفكير الاحتياطي، وتلاحظ أجزاء المشكلة التي تم محاولةها بالفعل، وتحويل (غالباً ولكن ليس دائماً) إلى أجزاء غير مستكشفة.

تقرير هوجويلد! (روديونوف وزملائه، 2025) يذكر ملاحظات مثل:

  • يقوم العمال بتصميم الخطط وإرسالها إلى العمال الآخرين عبر الكاش.
  • يلاحظ العمال أخطاء في التفكير العامل الآخرين ويطالبون بها.
  • يتكيف العمال عندما تفشل الخطة ويقترحون بدائل.
  • عندما يُطلب من العمال التحقق من إفراج العمل، يكتشفونه ويُحولون.

لا شيء من هذا يتطلب ضبطًا دقيقًا. السلوك الناشئ يأتي من قدرات التفكير التي يمتلكها النموذج بالفعل.

الإسم

يختلف اسم الورقة عن Hogwild! SGD (Recht et al., 2011), وهو محفز تحديث غير متزامن. التشابه: يعملون في SGD غير متزامنين جميعهم يكتبون إلى متجه مشترك للمعلمات. Hogwild! يعملون في Inference جميعهم يكتبون إلى مخزن KV مشترك. يعتمد كلاهما على التقارب التجريبي بدلاً من ضمانات التزامن.

روبي يجعل هذا قابلا للتحكم

تُرمز إدخالات الموقف المُتحوّل (RoPE، Su et al. 2021) معلومات الموقف عن طريق الدوران في متجهات Q و K. نظرًا لأن المواقع هي دورانات وليس تعويضات مخبوخة، يمكن أن يتغير موقع رمز دون إعادة حساب مدخل cache KV. عندما يعمل العامل iيكتب في الاحتفاظ باستخدام الوضع المشتركp، يمكن للعمال الآخرين الذين يقرأون هذا الموقف استخدام الإدخال المتخزن مباشرة لا حاجة إلى إعادة التدوير.

في نموذج الموقف المتعلم أو الموقف المطلق ، يحتاج Hogwild! إلى إلغاء الاحتفاظ بالخزنة في كل كتابة متزايدة. يسمح RoPE بقاء الاحتفاظ بالخزنة ثابتة.

الرياضيات في الوقت الحائط

دعوناT_serialسيكون الوقت للموظف الواحد لحل المشكلة بمفردهpيكون الجزء الموازي على مستوى المهمة.cيكون التنسيق العام للخطوة (قراءة التخزين المتوسع، والقرار بما يجب كتابته).

الوقت المخصص للعاملين العازبين: T_serial. . .

إن كان التنسيق مجاناًT_serial * ((1 - p) + p / N)-أمدال الكلاسيكي

مع تكاليف التنسيق العامة: T_serial ((1 - p) + p / N) + c steps_per_worker. . .

لكي يكون العامل منتجًاcيجب أن يكون وقت التشفير الصغير بالنسبة لخطوة واحدة. على نماذج التفكير التي تنتج 5k + رموز، يمكن للعمال تحمل مئات رموز التنسيق على المكلفة العليا ومازالوا في المقدمة. في مهام الدردشة القصيرة، التنسيق يهيمن و هوغويلد! هو أسوأ من سلسلة.

مثال ملموس

مشكلة التفكير: 10 ألف رمز من سلسلة التفكير. افترض أن المشكلة لديهاp = 0.7المحتوى المتوازي (استراتيجيات الدليل المختلفة، تحليلات الحالات المختلفة)c = 200إشارات التنسيق العام لكل عامل.N = 4العمال:

  • وقت التسلسل: 10000 خطوة لفك الشفرة
  • وقت هوجويلد: 10000 (0.3 + 0.7 / 4) + 200 4 = 10000 * 0.475 + 800 = 5550 خطوات فك الرمز.
  • السرعة: 10000 / 5550 = 1.8x.

هذا متواضع. ولكن على مشاكل التفكير أطول (50K رموز) ، التنسيق فوق تكلفة تعويض وتسريع الضغط 2.5-3x. هوغويلد! هو معادل الاستنتاج من التوازي على مستوى الخيوط في لغة التي تسمح لك كتابة الشريط المتعددة الخيوط بشكل طبيعي.

متى يصل إلى هوجويلد؟

  • مشاكل التفكير الطويلة (آلاف الرموز) حيث يمكن توازي المهمة عبر الأهداف الفرعية المستقلة.
  • النماذج المثقلة التي تم تدريبها على التفكير خطوة بخطوة النماذج غير المثقلة لا تتنسق بشكل جيد
  • تنفيذات عقدة واحدة مع ما يكفي من VRAM للحفاظ على الاحتفاظ بالمحتفظة المشتركة بالإضافة إلى عمليات عامل N. يتم مشاركة الاحتفاظ بالمحتفظة المشتركة ، ولكن لكل عامل ذاكرة تنشيط خاصة بها.

متى لا يجب

  • دردشة تفاعلية قصيرة، التنسيق يهيمن على الرأس
  • المهام التي لا تتوازي (دليل خطي واحد، تجميع واحد). N = 1 هو أقصى.
  • نموذج غير منطقي لا يوجد تنسيق
  • تنفيذ عدة عقدات. الاحتياطي المشترك يحتاج إلى مزامنة متقاطعة العاملين بسرعة كبيرة. داخل العقدة أمر جيد؛ عقدة متقاطعة هو كارثة التخفيف.

الوضع التجريبي

اعتبارا من أبريل 2026، هوغويلد! هو طريقة بحثية مع تنفيذ PyTorch مفتوح المصدر. لم يحدث اعتماد الإنتاج. ثلاثة محجوبات:

  1. إدارة الاحتفاظ بالمخزن المشترك في KV عبر العمليات المتزايدة هي هندسة غير بسيطة.
  2. التنسيق الطارئ يعتمد على المهمة؛ لا يزال يتم بناء المعايير.
  3. وتتغير سرعتها مقارنة بما يقدمه التشفير المضارب بالفعل، ويمكن دمج الاثنين ولكن الهندسة المدمجة هي طبقة أخرى.

يستحق المعرفة، يستحق التجربة، ليس يستحق الرهان على منتج

بناءها

code/main.pyيستخدم محاكي اللعب "هوجويلد"!

  • عمليات عاملين، كل منهما "LLM" تحديدية تنتج واحدة من العديد من فئات الوهم (وهم العمل، ولاحظ، وترتيب) مع احتمالات معروفة.
  • مخزن متبادل (فقط قائمة بالرموز) الذي يقرأه كل من العمال ويكتبونه.
  • منطق التنسيق البسيط: عندما يرى العامل الآخر أن العامل الآخر قد أنتج بالفعل ما يكفي من رموز العمل في فئة واحدة، فإنه يختار فئة مختلفة.

يستخدم المحاكي ميزانية خطوة ثابتة ويقول:

  • إجمالي رموز العمل المنتجة
  • الوقت الإجمالي للجدار (عدد خطوات العمال).
  • تسريع فعال على عامل واحد
  • أثر من عمل كتب أي رمز.

الخطوة الأولى: التخزين المتبادل

قائمة يضيفها كل من العمال إليها.threading.Lock) في تنفيذ حقيقي؛ نقوم بتقديم المحاكاة مع عداد.

الخطوة الثانية: حلقة العمال

كل عامل، في كل خطوة:

  • يقرأ الاحتفاظ المشترك الحالي.
  • يقرر أي فئة من الرموز للكتابة بناء على ما هو موجود بالفعل.
  • يكتب رمزاً واحداً

الخطوة الثالثة: هوية التنسيق

إذا كان لدى الفئة X بالفعل رموز K في الاحتفاظ وتلك الفئة المقصودة للعامل هي X، فإن العامل يتحول إلى الفئة Y. هذا هو متبادل لعبة للسلوك النموذج التفكير من "لاحظ أن هذا قد تم تغطيته بالفعل، قم بشيء آخر بدلاً من ذلك".

الخطوة الرابعة: قياس السرعة

تشغيل المحاكاة مع عامل N=1 وعاملين N=2، نفس الميزانية الإجمالية للخطوات. احتساب رموز العمل المنتجة. يجب أن تنتج N=2 حوالي 1.5-1.8x أكثر رموز العمل بسبب قسم المهام القائم على التنسيق.

الخطوة 5: شدد على التنسيق

خفض حساسية هيرستيك التنسيق. إعادة التشغيل. لاحظ أنه بدون التنسيق الجيد، N=2 ينتج نفس الرموز بشكل زائد وتراجع السرعة إلى أقل من 1. هذا يطابق ملاحظة الورقة: الخدعة تعمل فقط إذا كان لدى العمال القدرة على التنسيق الذاتي.

استخدمها

إن دمج Hogwild! في الإنتاج اعتبارا من أبريل 2026 هو درجة بحثية. إن تنفيذ المرجح من Yandex/HSE/IST يعتمد على PyTorch ويهدف إلى إعدادات عقدة واحدة متعددة العمليات على نماذج DeepSeek-R1 و QwQ.

مسار تبني عملي:

  1. تحديد ملفات الشخصية من مشروعك التفكير. قياس جزء من الرموز التي هي استكشافية (استراتيجيات متعددة، تحليل الحالات، البحث) مقابل خطية.
  2. إذا كان التنقيب سيطراً، قم بتجربة "هوجويلد" مع عاملين، و قم بتحسين الوقت في الجدار.
  3. إذا كان التحسن أقل من 1.3x، فأنت في النظام الذي يهيمن على التنسيق.
  4. إذا كان التحسن أكثر من 1.5x، اضغط إلى N = 4 ويقاس مرة أخرى. عوائد التناقص عادة ما تصل إلى N = 4-8.

الجمع مع فك التفكير: كل عامل Hogwild! يمكن استخدام فك التفصيل بشكل مستقل. تتضاعف سرعتها (تقريبا) ، مما يجعلها 3x فك التفصيل و 1.8x Hogwild! إلى 5.4x فعالة على فك التفصيل البغيض للعامل الواحد.

أرسله

هذا الدرس يُنتجoutputs/skill-parallel-inference-router.md. بالنظر إلى ملف تحميل العمل المنطقي (ميزانية الوهم، ملف التوازي للمهمة، عائلة النماذج، هدف الانتشار) ، فإنه يتحرك بين التصويت، شجرة الفكر، متعددة الوكلاء، Hogwild!، واستراتيجيات فكيفية فكيفية التشفير.

التمارين

  1. أركضcode/main.pyمع الإعدادات الافتراضية. تأكد من أن تكوين N=2 Hogwild! ينتج المزيد من رموز العمل من خط أساس N=1 في نفس الوقت الجدار.
  1. تقليل قوة هيرستيك التنسيق (مجموعة coordination_weight=0.1إعادة التشغيل، إظهار أن التسارع ينهار، شرح لماذا: العمال يكررون الجهد عندما لا يستطيعون التنسيق.
  1. احسب سرعة هوجويلد المتوقعة لمهمة التفكير 50 كيلو طوكينp=0.8, c=500و N = 4 العمال. افعل نفس الشيء لمهمة دردشة 1k-token مع p=0.3, c=200و N=4 لماذا واحد هو الفوز والآخر خسارة؟
  1. اقرأ القسم 4 من ورقة هوجويلد! (التقييم الأولي). حدد النماطين الفاشلة التي يبلغ عنها المؤلفون. وصف كيف يمكن أن تخفف إحدى النماطين من النماطين من التنسيق بشكل أفضل.
  1. قم بتجميع Hogwild! مع تشفير التكهنات في اللعبة: كل عامل يستخدم رمز تشفير المواصفات ذات رمزين داخلياً. أبلغ عن التسرع المتضاعف. ما هي مشكلة الحسابات التي تنشأ عندما يريد كل عاملين تمديد نفس المرفق المتبادل للتخزين؟

الشروط الرئيسية

TermWhat people sayWhat it actually means
Hogwild!"Parallel workers, shared cache"N instances of the same LLM running concurrently with one shared KV cache; emergent coordination via self-prompting
Shared KV cache"The coordination medium"A single growing KV buffer that all workers read and write; enables instant token visibility across workers
Emergent coordination"No training needed"Reasoning-capable LLMs can read the shared cache and divide work without any fine-tuning or explicit protocol
Coordination overhead (c)"Tokens spent orienting"The per-worker cost of reading the extended cache and deciding what to do; must stay small vs total decode time
Parallelizable fraction (p)"What can run in parallel"Task-level parallelism: the fraction of the total work that is not intrinsically sequential
RoPE enables Hogwild!"Rotary positions are shift-invariant"Because positions are rotations, writing into a shared cache does not require recomputing prior tokens
Voting ensemble"Run N, pick the majority"The simplest parallel inference topology; useful for classification, less for long-form reasoning
Tree of thought"Branch and prune"Reasoning strategy that explores multiple branches and prunes; explicit coordination logic
Multi-agent framework"Assign sub-tasks"Each agent gets a role; a coordinator orchestrates; heavy protocol overhead

المزيد من القراءة

This free lesson is part of the AI Engineering from Scratch curriculum. Read the full explanation, run the lesson code, and verify the result in the interactive reader or from the repository source.

Browse the complete course catalog or open this lesson on GitHub.