آسنک و هوگ ويلد!
Type: Build
Languages: Python (stdlib)
Prerequisites: Phase 10 · 12 (inference optimization), Phase 10 · 15 (speculative decoding)
Time: ~60 minutes
اهداف یادگیری
- سه توپولوژی مشترک LLM موازی (تصویر، زیرکار، Hogwild!) و نام مشکلات هر یک از اهداف را توصیف کنید.
- تنظیمات اصلی Hogwild را بیان کنید: چندین کارگر، یک حافظه KV مشترک، هماهنگی جدید از طریق خودکشی.
- سرعت زمان ديواري هاگويلد را به عنوان تابع شمارش کارگران محاسبه کن
N, موازی در سطح وظایفp، و هزینه های عمومی هماهنگیc. . - یک شبیه ساز دو کارگر Hogwild! را روی یک مشکل اسباب بازی اجرا کنید و بخش کار جدید را مشاهده کنید.
مشکل
LLM های مدرن با تولید زنجیره های طولانی استدلال مشکلات سخت را حل می کنند. 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 نمونه های کار با هم در این مشکل هستید. هر نمونه حافظه مشترک را می خواند و می تواند ببیند که نمونه های دیگر چه چیزی را نوشته اند. از کار های اضافی اجتناب کنید". مدل های استدلال کننده حافظه را می خوانند، متوجه می شوند که کدام بخش از مشکل قبلاً تلاش شده است و ( اغلب اما همیشه) به بخش های ناشناخته می پردازند.
مقاله Hogwild! (Rodionov et al., 2025) گزارش مشاهدات مانند:
- کارگران برنامه ها را شکل می دهند و از طریق حافظه کش آن ها را به سایر کارگران می رسانند.
- کارگران اشتباهات استدلال کارگران دیگر را می بینند و آنها را به صدا می زنند.
- کارگران وقتی یک برنامه شکست می خورد، تعدیل می کنند و جایگزین هایی را پیشنهاد می کنند.
- وقتی به دنبال تخلیه شدن کار می شوند، کارکن ها آن را تشخیص می دهند و حرکت می کنند.
هیچ یک از این موارد نیاز به تنظیم دقیق ندارد. رفتار جدید از توانایی های استدلال مدل است که قبلاً دارد.
نامگذاری
نام مقاله بر Hogwild! SGD (Recht et al., 2011) ، یک بهینه ساز بروزرسانی غیرمسلح است. مقایسه: کارگران غیرمسلح SGD همه به یک متغیر پارامتر مشترک می نویسند؛ Hogwild! کارگران Inference همه به یک کش KV مشترک می نویسند. هر دو به تقارب تجربی به جای تضمین های همگام سازی متکی هستند.
روپی این را قابل کنترل می کند
در این حالت، یک تکه می تواند بدون محاسبه مجدد ورودی کیش 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+ توکن تولید می کنند، کارگران می توانند صدها توکن هماهنگی را در هزینه های بالا داشته باشند و هنوز هم جلوتر می روند. در کارهای کوتاه چت، هماهنگی تسلط دارد و Hogwild! بدتر از سریال است.
مثال مشخصی
مشکل استدلال: 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
این بسیار متواضع است. اما در مشکلات استدلال طولانی تر (50 هزار توکن) ، هزینه های هماهنگی کاهش می یابد و سرعت افزایش 2.5-3x افزایش می یابد. Hogwild! معادل نتیجه گیری موازی سطح رشته در یک زبان است که به شما اجازه می دهد کد چند رشته را به طور طبیعی بنویسید.
چه وقت بايد به هگويلد برسيم؟
- مشکلات استدلال طولانی (هزار ها توکن) که در آن می توان وظیفه را در میان زیرهدف های مستقل موازی کرد.
- مدل های استدلال که آموزش دیده اند تا قدم به قدم فکر کنند. مدل های غیر منطقی خود را به خوبی هماهنگ نمی کنند.
- پیاده سازی های یک گره با VRAM کافی برای نگه داشتن حافظه کش مشترک و همچنین فرآیندهای N کارکن. حافظه کش به اشتراک گذاشته شده است، اما هر کارکن حافظه فعال سازی خود را دارد.
چه وقت نباید
- چت چند ساعته، هماهنگي بر سر ميزان
- وظایف که موازی نمی شوند (دليل خطی واحد، مجموعه ی واحد). N=1 حداکثر است.
- مدل های غیر منطقی، هیچ هماهنگی ای وجود ندارد.
- تعینات چند گره. حافظه پنهان مشترک نیاز به همگام سازی بسیار سریع بین کارکنان دارد. داخل گره خوب است؛ گره های مختلف فاجعه باری تاخیر است.
وضعیت آزمایش
از آوریل 2026، Hogwild! یک روش تحقیقاتی با یک پیاده سازی PyTorch منبع باز است. پذیرش تولید اتفاق نیفتاده است. سه مانع:
- مدیریت مشترک KV در میان فرآیندهای همزمان مهندسی غیر معمولی است.
- هماهنگی فوری به وظایف بستگی دارد؛ معیارها هنوز در حال ساخت هستند.
- سرعت افزونه ها در مقایسه با آنچه که کدگذاری حدس زده ای در حال حاضر ارائه می دهد، بسیار اندک هستند و این دو می توانند ترکیب شوند اما مهندسی ترکیبی یک لایه دیگر است.
ارزش دانستن ارزش آزمایش کردن هنوز ارزش شرط بندی کردن بر روی محصول نیست
آن را بسازید
code/main.pyیک شبیه ساز بازی Hogwild! را اجرا می کند:
- دو فرآیند کارکن، هر یک یک "LLM" تعیین کننده ای که یکی از چندین دسته از توکن ها (توکن کار، توکن مشاهده، توکن هماهنگی) را با احتمال های شناخته شده تولید می کند.
- یک کش مشترک (فقط یک لیست از توکن ها) که هر دو کارکن می خوانند و می نویسند.
- منطق هماهنگی ساده: وقتی یک کارگر می بیند که دیگری قبلاً نمادهای کاری کافی را در یک دسته تولید کرده است، یک دسته دیگر را انتخاب می کند.
شبیه ساز با بودجه گام ثابت اجرا می شود و گزارش می دهد:
- کل توکن های کاری تولید شده
- زمان کل دیوار (عدد مراحل کارکن)
- سرعت موثر در برابر یک کارگر
- يه رد از اينکه چه کارگري چه علامتيه نوشته
مرحله اول: حافظه ذخیره شده مشترک
یک لیست که هر دو کارگر به آن اضافه می شوند. قفل ساده (Python threading.Lock) در یک پیاده سازی واقعی؛ ما با یک شمارنده شبیه سازی می کنیم.
مرحله دوم: حلقه کارکن
هر کارگر، در هر مرحله:
- حافظه حافظه مشترک فعلی را می خواند.
- بر اساس آنچه که قبلا وجود دارد، تعیین می کند که کدام دسته از نشانه ها را بنویسید.
- يه رمز نوشته
مرحله سوم: هماهنگی هوریستی
اگر دسته X قبلاً توکن های K را در حافظه پیش فرض داشته باشد و دسته ای که کارکن قصد دارد X باشد، کارکن به دسته Y می رود. این یک جایگزین بازی برای رفتار مدل استدلال "ببینید که این قبلاً پوشش داده شده است، در عوض کاری دیگر انجام دهید".
مرحله 4: سرعت اندازه گیری
شبیه ساز را با N=1 کارگر و با N=2 کارگر اجرا کنید، بودجه کل مراحل مشابه است. نمرات کاری تولید شده را بشمارید. N=2 باید به دلیل تقسیم کار هماهنگی، نمرات کاری تولید شده را حدود 1.5-1.8 برابر بیشتر کند.
مرحله 5: بر هماهنگی تاکید کنید
حساسیت هوریستیک هماهنگی را کاهش دهید. دوباره اجرا کنید. توجه کنید که بدون هماهنگی خوب، N=2 به طور اضافی نشان های مشابه را تولید می کند و سرعت پایین تر از 1. این با مشاهدات کاغذ مطابقت دارد: این ترفند تنها زمانی کار می کند که کارگران توانایی استدلال برای هماهنگی خود را دارند.
ازش استفاده کن
یکپارچه سازی Hogwild! در تولید از آوریل 2026 درجه تحقیقاتی است. پیاده سازی مرجع از Yandex / HSE /IST مبتنی بر PyTorch است و هدف از تنظیمات چند فرآیند یک گره در مدل های DeepSeek-R1 و QwQ است.
مسیر پذیرش عملی:
- بار کار استدلال خود را مشخص کنید. بخش از توکن هایی را که اکتشافی هستند (استراتژی های متعدد، تجزیه و تحلیل پرونده ها، جستجو) در مقابل خطی اندازه گیری کنید.
- اگه اکتشافات برتري داشته باشه، يه آزمايش دو نفري رو انجام بده
- اگر بهبود کمتر از 1.3x باشد، شما در رژیم هماهنگی غالب هستید. به کار تک نفره برگردید.
- اگر بهبود بیش از 1.5x باشد، به N=4 فشار دهید و دوباره اندازه گیری کنید. بازگشت های کاهش یافته معمولاً در حدود N=4-8 می رسد.
با رمزگذاری حدس زده ترکیب کنید: هر کارگر Hogwild! می تواند به طور مستقل از رمزگذاری مشخصات استفاده کند. دو سرعت افزایشی (تقریباً) چند برابر می شود، که باعث می شود یک رمزگذاری 3x مشخصات و 1.8x Hogwild! به 5.4x موثر نسبت به رمزگذاری ساده یک کارگر شود.
-باده
این درس به ما کمک می کندoutputs/skill-parallel-inference-router.md. با توجه به یک پروفایل کار کار استدلال (بودج توکن، پروفایل موازی وظیفه، خانواده مدل، هدف انتشار) ، این مسیر بین رای دادن، درخت فکر، چند عامل، Hogwild! و استراتژی های رمزگذاری حدس زده است.
تمرینات
- فرار کن
code/main.pyبا تنظیمات پیش فرض. تایید کن پیکربندی N=2 Hogwild! نشان های کار بیشتری نسبت به خط اصلی N=1 در همان زمان دیوار تولید می کند.
- کاهش قدرت هوریستیک هماهنگی (سیستم)
coordination_weight=0.1دوباره اجرا کنید. نشان دهید که سرعت گیری سقوط می کند. توضیح دهید چرا: کارگران تلاش را دو برابر می کنند وقتی نمی توانند هماهنگ شوند.
- سرعت انتظار شده Hogwild! را برای یک 50k-توکن استدلال با محاسبه کنید
p=0.8, c=500و N=4 کارکن. برای یک کار 1k-token chat باp=0.3, c=200و N=4 چرا یکی برنده و دیگری شکست است؟
- بخش ۴ (تقييم مقدماتي) مقاله هگ ويلد! را بخوانید. دو حالت شکست که نویسندگان گزارش می دهند را شناسایی کنید. شرح دهید که چگونه یک برنامه هماهنگی بهتر می تواند هر یک را کاهش دهد.
- ترکیب Hogwild! با رمزگذاری حدس زده در اسباب بازی: هر کارگر از یک رمزگذاری مشخصات 2 توکن در داخل استفاده می کند. گزارش سرعت افزایشی چندگانه. چه مشکل حسابداری زمانی ایجاد می شود که دو کارگر هر دو می خواهند پیش فرض ذخیره مشترک را گسترش دهند؟
اصطلاحات کلیدی
| Term | What people say | What 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 |
خواندن بیشتر
- Rodionov et al. — Hogwild! Inference: Parallel LLM Generation via Concurrent Attention (arXiv:2504.06261) مقاله Hogwild!، ارزیابی اولیه در مورد QwQ و DeepSeek-R1
- Recht, Re, Wright, Niu — Hogwild!: A Lock-Free Approach to Parallelizing Stochastic Gradient Descent (arXiv:1106.5730, NeurIPS 2011) اصلی هگویلد!، اصل نامگذاری
- Su et al. — RoFormer: Enhanced Transformer with Rotary Position Embedding (arXiv:2104.09864) RoPE، خواصی که نتیجه گیری ذخیره مشترک را قابل کنترل می کند
- Yao et al. — Tree of Thoughts: Deliberate Problem Solving with Large Language Models (arXiv:2305.10601) استراتژی استدلال درخت فکر Hogwild!
- Leviathan et al. — Fast Inference from Transformers via Speculative Decoding (arXiv:2211.17192) رمزگذاری مفکوری، موازیات درون دنباله Hogwild!
- Hogwild! reference PyTorch implementation تنها منبع حقیقت برای آزمایشات روزنامه
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.