Async ve Hogwild!
Type: Build
Languages: Python (stdlib)
Prerequisites: Phase 10 · 12 (inference optimization), Phase 10 · 15 (speculative decoding)
Time: ~60 minutes
Öğrenme Hedefleri
- Üç ortak paralel LLM topolojisini (sayfalama, alt görev, Hogwild!) ve her birinin hedefleri olan sorunları tanımlayın.
- Hogwild'in temel kurulumunu belirtin: birden fazla işçi, bir KV önbelleği, kendini uyararak gelişen koordinasyon.
- Hogwild'in duvar-zaman hızlandırmasını işçi sayısının işlevi olarak hesaplayın.
N, görev düzeyinde paralellikp, koordinasyon genel maliyetleric- Evet . - Bir oyuncak sorunu üzerinde Hogwild! simülatörü uygulayın ve ortaya çıkan görev bölümü izleyin.
Sorun
Modern LLM'ler uzun mantık zincirleri üreterek zor sorunları çözüyor. 5000 tane adım adım mantık yaygın, derin matematik sorunlarında on binlerce tane olur. 70B modelinde 35 tane / saniye dekodda, 50k token 24 dakikadır.
Speküel dekodlama (Fase 10 · 15) bir dizi içinde paralelleştirerek 3-5x hızlandırma sağlar. Autoregressive dekodlamanın sıralı bağımlılığı sert tavan. Her yeni token önceki her token'a bağlıdır.
Açık bir soru: Seanslar arasında paralellik kurabilir miyiz? Aynı modelin birden fazla kopyasını aynı soruya çalıştırır, işbirliği yapsınlar, çalışmayı bölsünler mi?
Önceki çalışma: oylama grupları (N modelleri çalıştırın, çoğunluk cevabını seçin), düşünce ağacı (branch reasoning paths ve rekombine), ve çoklu ajan çerçeveleri (her ajanı bir alt görevlendirin, koordinatör kullanın). Bunlar, belirli görev alanlarında yardımcı olur.
Hogwild! İtiraf farklı bir yaklaşım kullanır. N çalışanları tek bir KV kaydını paylaşıyor. Her işçi, diğer işçinin oluşturduğu simgelerini hemen kendi bağlamı gibi görür. İşçiler hiçbir eğitim veya ince ayarlama olmadan işi nasıl bölüştüreceklerini bulurlar. Modern akıl yürütme modelleri (QwQ, DeepSeek-R1, Claude-aile akıl yürütme modu) paylaşılan önbellekleri okuyabilir ve "İşçi 2'nin temel vaka ile ilgilenmiş olduğunu görüyorum, bu yüzden induktif adım üzerinde çalışacağım" gibi şeyler söyleyebilirler.
Hızlandırma, iş yüküne bağlı ve Nisan 2026 itibariyle deneysel. Ama fikir bilmeye değer çünkü sonuç paralelliğinin yeni bir eksisini açar.
Anlaşım
Yapılandırma
N işçi işlemlerini başlatın, hepsi aynı LLM çalıştırıyor. İşçi başına KV önbelleği yerine, ONE paylaşılan önbelleği koruyun. İşçi iToken oluşturur .t_jİşçi, işçiyi bir sonraki pozisyonda paylaşılmış depoya yazar.kBir sonraki adımı atınca, bu depoya ait olan mevcut durumu okuyor (bu süre zarfında tüm N çalışanları tarafından oluşturulan her şeyi içerir).
Adım zamanında işçiler jeton yazmak için yarışırlar. İşçi başına konum endeksi yoktur önbelleği tek bir büyüyen dizidir.
Koordinasyon neden ortaya çıkıyor?
İşçiler bir uyarı paylaşırlar. Genellikle "Bu sorunda birlikte çalıştığınız N örneklerden biriysiniz. Her örnek paylaşılan hafızayı okuyor ve diğer örneklerin ne yazdığını görebiliyor. Fazla iş yapmaktan kaçının". Dönüşümsel modeller önbelleği okuyor, sorunun hangi bölümlerinin zaten denediğini fark ediyor ve (sık sık ama her zaman değil) keşfedilmemiş bölümlere dönüyor.
Hogwild! makalesinde (Rodionov et al., 2025) şunlar gibi gözlemler bildirilmiştir:
- İşçiler planları formüle eder ve onları diğer işçilere önbelleği aracılığıyla iletir.
- İşçiler diğer işçilerin mantıklarında hatalar fark eder ve onları çağırır.
- İşçiler bir plan başarısız olduğunda uyum sağlar ve alternatif öneriler sunar.
- İşçiler işten çıkarılmaya teşvik edildiğinde, işten çıkarıldıklarını fark eder ve döner.
Bu durumların hiçbirinde ince ayarlama gerekmez. Yeni gelişen davranış modelin zaten sahip olduğu mantık yeteneklerinden kaynaklanmaktadır.
Adlandırma
Makale adı, asinkron güncelleme optimizer olan Hogwild! SGD'ye (Recht et al., 2011) atfeder. Analogya: SGD'nin asinkron işçileri hepsi ortak bir parametrel vektörüne yazıyor; Hogwild! Inference işçileri hepsi ortak bir KV önbelleğe yazıyor. Her ikisi de senkronizasyon garantileri yerine empiriyel birleşmeye dayanıyor.
RoPE bu işlemleri kolaylaştırır.
Rotary Position Embeddings (RoPE, Su et al. 2021) pozisyon bilgileri Q ve K vektörlerinde dönüşüm yoluyla kodlar.iOrtak önbelleğe konumdaki yazılar pBu pozisyonu okuyan diğer çalışanlar önbelleğe kaydedilen girişleri doğrudan kullanabilir.
Hogwild! öğrenilmiş pozisyon veya mutlak pozisyon modelinde, her eşzamanlı yazıda önbelleği geçersiz kılmak gerekir. RoPE önbelleği istikrarlı kalmasına izin verir.
Duvar zamanı matematik
- Bırak .
T_serialBir işçinin tek başına sorunu çözmesi için zaman olsun.pGörev seviyesinde paralelleşebilir kesim.cAdımlardaki koordinasyon genel maliyeti (gelişmiş önbelleği okuyarak, ne yazılacağına karar vermek).
Tek çalışan için zaman: T_serial- Evet .
N-işçi Hogwild! zaman, eğer koordinasyon serbest: T_serial * ((1 - p) + p / N)Klasik Amdahl.
Koordinasyon genel maliyeti ile: T_serial ((1 - p) + p / N) + c steps_per_worker- Evet .
Bir işçinin verimli olması için,c5k+ token üreten mantık modelleri üzerinde çalışanlar yüzlerce koordinasyon tokenini ödemekle yetinir ve hala öne çıkırlar. Kısa sohbet görevlerinde koordinasyon baskın ve Hogwild! seriye daha kötüdür.
Konkrete bir örnek
Düşünce zinciri 10 bin tokeni.p = 0.7paralelleştirilebilir içerik (farklı kanıt stratejileri, farklı durum analizleri) ve c = 200İşçi başına koordinasyon genel maliyetleri belirtileri.N = 4İşçiler:
- Seri süresi: 10000 dekode adım.
- Hogwild! zaman: 10000 (0.3 + 0.7 / 4) + 200 4 = 10000 * 0.475 + 800 = 5550 dekode adımları.
- Hızlılık: 10000 / 5550 = 1.8x.
Bu çok küçük bir şey. Ama daha uzun düşünme sorunlarında (50k token) koordinasyon üstü maliyeti bozulur ve hızlanma 2.5-3x'e doğru ilerler. Hogwild! bir dilde doğal olarak çok ipli kod yazmanıza izin veren bir iplik seviyesindeki paralelliğin sonuç eşdeğeri.
Hogwild'e ne zaman ulaşmak!
- Uzun akıl yürütme sorunları (binlerce token), burada görev bağımsız alt hedefler arasında paralel hale gelebilir.
- Dolayısıyla, düşünen modeller adım adım düşünmeye eğitilmişlerdir.
- Paylaşılan önbelleği ekleyip N işçi süreçlerini tutmak için yeterli VRAM ile tek düğüm dağıtımları. Önbelleği paylaşılan, ancak her işçinin kendi etkinleştirme belleği vardır.
Ne zaman yapmamak
- Kısa interaktif sohbet, koordinasyon üst düzey baskın.
- Paralelleşmeyen görevler (tek çizgisi kanıt, tek bir kompili). N = 1 maksimum.
- Akılsızlık modelleri.
- Çoklu düğüm dağıtımları. Paylaşılan önbelleğin çok hızlı işçi çapraz sinkronizasyonuna ihtiyacı var. İç düğüm iyi; çapraz düğüm bir gecikme felaketidir.
Deneysel durum
Nisan 2026 itibariyle, Hogwild! açık kaynaklı PyTorch uygulaması ile bir araştırma yöntemi.
- Eş zamanlı süreçler boyunca paylaşılan KV önbelleği yönetimi önemsiz mühendisliktir.
- Çevre koordinasyonu görevden bağımsızdır; referans değerleri hala oluşturuluyor.
- Hızlı hızlandırmalar spekülasyonsal çözme ile karşılaştırıldığında çok azdır ve ikisi birleştirilebilir ama birleştirilen mühendislik başka bir katmadır.
Bilmeye değer, deney yapmaya değer, henüz bir ürünü bahis etmeye değmez.
Yapın
code/main.pyOyuncak Hogwild! simülatörü uyguluyor:
- Her biri bilinen olasılıklarla birkaç simge kategorisinden birini (iş simgesi, gözlem simgesi, koordinat simgesi) üreten belirleyici bir "LLM" olan iki işçi işlemidir.
- İki işçinin de okuduğu ve yazdığı ortak bir önbelleği (sadece bir token listesi).
- Basit bir koordinasyon mantığı: Bir işçi, diğerinin bir kategoride yeterince iş tokeni ürettiğini gördüğünde, farklı bir kategorisi seçer.
Simülatör sabit bir adım bütçesi ile çalışır ve raporlar:
- Üretilen toplam iş belirtileri.
- Toplam duvar süresi (işçi adımlarının sayısı).
- Tek bir işçi üzerinde etkili hızlandırma.
- Hangi işçinin hangi simgeyi yazdığı izini.
Adım 1: Paylaşılan önbelleği
İki işçinin de eklediği bir liste.threading.Lock) gerçek bir uygulamada simülasyon yaparken, bir hesaplayıcı ile simülasyon yaparız.
Adım 2: İşçi döngüsü
Her işçi, her adımda:
- Şu anki paylaşılan önbellek okur.
- Bu, zaten var olanlara göre hangi token kategorisini yazmaya karar verir.
- Bir tane işaret yazıyor.
Adım 3: Koordinasyon heuristikası
Eğer kategori X'de zaten K simgelerinin önbelleğinde bulunması ve işçinin amaçladığı kategorinin X olması durumunda, işçi kategorine geçiyor. Bu, "Bu zaten kapalı olduğunu fark et, bunun yerine başka bir şey yap" mantık modeli davranışının bir oyuncak yerine geçiyor.
Dördüncü adım: Ölçülen hızlandırma
N=1 çalışan ve N=2 çalışan ile simülatörü çalıştırın, aynı toplam adım bütçesi. üretilen iş işareti belirtilerini sayın. N=2 koordinasyon yönlendirilmiş görev bölümü nedeniyle yaklaşık 1,5-1,8 kat daha fazla iş iş belirti üretmelidir.
Adım 5: Koordinasyonu vurgulayın
Koordinasyon heuristiklerinin hassasiyetini azaltın. Tekrar çalışın. İyi bir koordinasyon olmadan N=2'nin aynı simgeleri fazladan ürettiğini ve hızlandırma 1'in altına düştüğünü gözlemleyin.
Kullan
Hogwild!'in Nisan 2026 itibariyle üretimdeki entegrasyonu araştırma derecesindedir. Yandex/HSE/IST'ten gelen referans uygulanması PyTorch tabanlı ve DeepSeek-R1 ve QwQ modellerinde tek düğümlü çok işlem kurulumlarını hedefliyor.
Pragmatik kabul yolu:
- Düşünme-iş yükünüzü profil edin. Araştırmacı (çoklu strateji, durum analizleri, arama) vs. doğrusal olan simgelerin bölümü ölçün.
- Eğer keşif üstünlük kazanırsa, iki işçi Hogwild deneyi yapın.
- Eğer gelişme 1,3 katın altında ise, koordinasyon baskın rejiminde olursun. Tek çalışanı tekrar.
- Eğer iyileşme 1,5x'den fazla ise, N=4'e doğru it ve tekrar ölç.
Speküel dekodlama ile birleştirin: Her Hogwild! çalışanı bağımsız olarak spesifik dekodlamayı kullanabilir. İki hızlandırma (kaykaykayla) katlanır ve 3x spesifik dekodlamayı ve 1.8x Hogwild!'ı naif tek çalışan dekodlamasına göre etkili 5.4x'e çıkarır.
Gönder
Bu ders bize çok yararlı .outputs/skill-parallel-inference-router.md. Bir akıl yürütme iş yükü profili (token bütçesi, görev paralelliği profili, model ailesi, dağıtım hedefi) göz önüne alındığında, oylama, düşünce ağacı, çoklu ajan, Hogwild! ve spekülatif dekodlama stratejileri arasında bir rota oluşturur.
Egzersizler
- Çık .
code/main.pyN=2 Hogwild! yapılandırmasının aynı duvar zamanında N=1 temel hattından daha fazla iş-token ürettiğini onaylayın.
- Koordinasyon heuristik gücünü azaltmak (set
coordination_weight=0.1Sürekli çalışmanın çöktüğünü göster. Nedenini açıkla: İşçiler koordine edemediğinde çabalarını ikiye katlarlar.
- 50k token düşünce görevi için beklenen Hogwild! hızlandırmasını hesapla
p=0.8, c=500Aynı şeyi 1k-token sohbet görevi için yapın.p=0.3, c=200Neden biri kazanç, diğeri ise kaybı?
- Hogwild! makalesinin 4. bölümünü okuyun (Önce değerlendirme). Yazarların bildirdiği iki başarısızlık modunu belirleyin.
- Hogwild! ile oyuncakta spekülatif dekodlama birleştirin: her işçi 2 token spesifik dekodunu içeride kullanır.
Anahtar Terimler
| 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 |
Daha Fazla Okumak
- Rodionov et al. — Hogwild! Inference: Parallel LLM Generation via Concurrent Attention (arXiv:2504.06261) Hogwild! makalesi, QwQ ve DeepSeek-R1'e yönelik ön değerlendirme
- Recht, Re, Wright, Niu — Hogwild!: A Lock-Free Approach to Parallelizing Stochastic Gradient Descent (arXiv:1106.5730, NeurIPS 2011) orijinal Hogwild! isimlerin kökeni
- Su et al. — RoFormer: Enhanced Transformer with Rotary Position Embedding (arXiv:2104.09864) RoPE, paylaşılan önbelleği çıkarmayı ele alınması için kullanılabilir hale getiren özellik
- Yao et al. — Tree of Thoughts: Deliberate Problem Solving with Large Language Models (arXiv:2305.10601) Hogwild! düşünce ağacı mantık stratejisi ortogonal olarak
- Leviathan et al. — Fast Inference from Transformers via Speculative Decoding (arXiv:2211.17192) spekülatör çözme, Hogwild! içi sıra paralelliği
- Hogwild! reference PyTorch implementation- Kağıt deneylerinin tek gerçek kaynağı
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.