چیت‌شیت

اینفرنس ناهمگام، Hogwild و تفکیک‌شده

Async, Hogwild and Disaggregated Inference

اشتراک‌گذاری، تقسیم، مسیریابی و تخلیه‌ی کش کلید-مقدار. فرمول‌ها، نقاط تلاقی و مواردی که هر روش شکست می‌خورد.

  • ۱۱ بخش
  • ۴ درس مرتبط
  • کد و دستورها عیناً از دوره‌ی اصلی
فهرست مطالب
  1. ایده‌های اصلی
  2. مقایسه‌ی پهلو‌به‌پهلوی چهار روش
  3. پشته‌ی سرو تفکیک‌شده
  4. یک گام !Hogwild
  5. مدل‌های هزینه در کد
  6. اجرای شبیه‌سازها
  7. ثابت‌ها در شبیه‌سازها
  8. عیب‌یابی
  9. در چه شرایطی استفاده کنیم
  10. پرسش و پاسخ
  11. واژه‌نامه

ایده‌های اصلی

مفهوم‌ها
پیش‌پرکنی (Prefill)
یک گذر رو به جلو روی کل پرامپت. متکی به توان پردازشی.
رمزگشایی (Decode)
یک توکن در هر گام. خواندن تمام وزن‌ها. محدود به پهنای باند حافظه.
!Hogwild
نوشتن N کپی از یک LLM در یک کش کلید-مقدار مشترک.
هماهنگی خودجوش
مدل‌های استدلالی کار را بدون فاین‌تیونینگ تقسیم می‌کنند.
RoPE
موقعیت‌ها از نوع دوران هستند، بنابراین ورودی‌های کش مشترک معتبر می‌مانند.
تفکیک (Disaggregation)
استخر پیش‌پرکنی و استخر رمزگشایی. انتقال کش کلید-مقدار بین آنها.
مسیریابی آگاه از کش
ارسال درخواست به نمونه‌ای (replica) که پیشوند آن را نگه می‌دارد.
تخلیه‌ی کش کلید-مقدار
خروج کش کلید-مقدار از پردازنده‌ی گرافیکی به پردازنده‌ی اصلی و سپس دیسک.

مقایسه‌ی پهلو‌به‌پهلوی چهار روش

مقایسه
فاکتورHogwild!تفکیکمسیریابی آگاه از کشLMCache
عملکردN ورکر، یک کش کلید-مقدار مشترکپیش‌پرکنی و رمزگشایی در استخرهای مجزامسیریابی بر اساس تطابق هش پیشوندکش کلید-مقدار بین‌موتوری روی پردازنده‌ی اصلی + دیسک
برتری در حالتاستدلال طولانی، p بالاپرامپت‌های بیش از 512 توکن + خروجی‌های بیش از 200 توکنتکرار پیشوندها در بین نمونه‌هابزرگ‌تر شدن کش کلید-مقدار از HBM
شکست در حالتچت تعاملی کوتاهکلاستر کوچک (کمتر از 4 پردازنده‌ی گرافیکی)غلبه‌ی RTT بین‌منطقه‌ای بر صرفه‌جویی پیش‌پرکنیکانتکست‌های کوتاه (کمتر از 1K توکن)
عدد شاخص1.8 برابر در p = 0.7 و N = 4حدود 6 برابر در DeepSeek-R1 روی GB200 NVL72اصابت حدود 80 میلی‌ثانیه در برابر عدم اصابت حدود 800 میلی‌ثانیه3 تا 5 درصد سربار در فشار پایین
وضعیتپژوهشی، آوریل 2026نسخه‌ی Dynamo 1.0 GA و llm-d 0.5مسیریاب vLLM و مسیریاب llm-dمسیر ناهمگام vLLM 0.11.0

پشته‌ی سرو تفکیک‌شده

معماری
پرامپتفقط پرامپتکش کلید-مقدار روی NIXLکش کلید-مقدار استفاده‌نشدهتوکن‌هاکلاینتدرخواستمسیریابآگاه از کش، رویدادهای کش کلید-مقداراستخر پیش‌پرکنیسنگین از نظر پردازشیاستخر رمزگشاییسنگین از نظر حافظهLMCacheپردازنده‌ی اصلی + Ceph/S3

یک گام !Hogwild

گام‌به‌گام
  1. پرامپتبه هر ورکر اعلام می‌کند که یکی از N نمونه است و از انجام کار تکراری خودداری کند.
  2. ورکرکل کش مشترک، شامل توکن‌های سایر ورکرها را می‌خواند.
  3. ورکرکارهای انجام‌شده را می‌بیند و زیرهدف متفاوتی را انتخاب می‌کند.
  4. ورکریک توکن را در موقعیت بعدی کش می‌نویسد.
  5. کشترتیب بر اساس زمان رسیدن نوشتن تعیین می‌شود. ایندکس مجزا برای هر ورکر وجود ندارد.
  6. سایر ورکرهاتوکن را بلافاصله در گام بعدی خود می‌بینند.

مدل‌های هزینه در کد

کد
python
def expected_speedup(T_serial: int, p: float, c: int, N: int,
                     steps_per_worker: int) -> float:
    parallel = T_serial * ((1 - p) + p / N) + c * N    # قانون امدال به‌علاوه‌ی هماهنگی
    return T_serial / parallel

def ms_disaggregated(prompt: int, output: int, use_rdma: bool = True) -> float:
    prefill_ms = prompt / PREFILL_TOK_PER_MS
    kv_bytes = prompt * KV_BYTES_PER_TOKEN_70B_FP8
    transport = NIXL_RDMA_GB_S if use_rdma else NIXL_TCP_GB_S
    transfer_ms = (kv_bytes / 1e9) / transport * 1000  # هزینه‌ی سربار انتقال
    decode_ms = output / DECODE_TOK_PER_MS_DECODE_GPU  # استخر رمزگشایی سریع‌تر
    return prefill_ms + transfer_ms + decode_ms

اجرای شبیه‌سازها

کار و کد
وظیفهکد
خط مبنای !Hogwild، یک ورکرrun_hogwild(n_workers=1, step_budget=200, target_per_category=100, coordination_weight=0.8)
!Hogwild با دو ورکرrun_hogwild(n_workers=2, step_budget=200, target_per_category=100, coordination_weight=0.8)
بررسی بازه‌ی هماهنگیfor cw in (0.0, 0.2, 0.5, 0.8, 1.0):
مقایسه‌ی سه مسیریابfor strategy in ("ROUND_ROBIN", "REGIONAL", "GLOBAL"):
زمان درخواست هم‌مکان (colocated)ms_colocated(prompt, output)
تفکیک‌شده روی TCPms_disaggregated(prompt, output, use_rdma=False)
مقایسه‌ی پیکربندی‌های تخلیهfor cfg in ("NATIVE_ONLY", "CPU_OFFLOAD", "LMCACHE"):

ثابت‌ها در شبیه‌سازها

پیش‌فرض‌ها
تنظیمپیش‌فرضنکته
CACHE_HIT_MS80TTFT با پیشوند مقیم در حافظه
CACHE_MISS_MS800TTFT با پیش‌پرکنی سرد
REPLICAS_PER_REGION4سه منطقه
PREFILL_TOK_PER_MS40.0به ازای هر پردازنده‌ی گرافیکی
KV_BYTES_PER_TOKEN_70B_FP8125_000اندازه‌ی کش کلید-مقدار به ازای هر توکن
NIXL_RDMA_GB_S100نرخ انتقال RDMA
NIXL_TCP_GB_S10نرخ طرح پشتیبان TCP
KV_BLOCK_TOKENS16تعداد توکن در هر بلوک کش کلید-مقدار

عیب‌یابی

عیب‌یابی
  • افت نرخ اصابت پیشوند به 8%

    علت
    موازنه‌کننده‌ی بار نوبت‌گردشی (ALB)
    راه‌حل
    مسیریاب آگاه از کش مبتنی بر هش پیشوند
  • عدم راه‌اندازی نمونه پس از تغییر مسیر خودکار هنگام خرابی

    علت
    نبود پیکربندی توکنایزر یا کوانتیزه‌سازی
    راه‌حل
    مانیفست بازیابی فاجعه سه‌فایلی
  • کندتر بودن حالت تفکیک‌شده

    علت
    پرامپت‌های کوتاه، هزینه‌ی سربار انتقال
    راه‌حل
    هم‌مکان کردن پرامپت‌های کمتر از 512 توکن
  • پیش‌پرکنی مجدد همان پرامپت 2K

    علت
    پیش‌دستی در 100% پر شدن HBM
    راه‌حل
    استفاده از LMCache یا تخلیه روی پردازنده‌ی اصلی بومی
  • افزایش TTFT به دلیل مسیریابی بین‌منطقه‌ای

    علت
    بازگشت‌پذیری 440 میلی‌ثانیه‌ای
    راه‌حل
    منطقه‌ای نگه داشتن مسیریابی
  • پاسخ به درخواست اروپا در us-east-1

    علت
    نادیده گرفتن محل اقامت داده توسط مسیریاب
    راه‌حل
    افرازبندی مسیریاب‌ها بر اساس محل اقامت داده
  • شتاب کمتر از 1 در !Hogwild

    علت
    تکرار کارها توسط ورکرها
    راه‌حل
    استفاده از یک مدل استدلالی
  • بهره‌ی کمتر از 1.3 برابر در !Hogwild

    علت
    غلبه‌ی سربار هماهنگی
    راه‌حل
    بازگشت به تک‌ورکر

در چه شرایطی استفاده کنیم

نکته‌ها
  • استفاده از Dynamo برای هماهنگ‌کننده‌ی مدیریت‌شده در بالای پشته.
  • استفاده از llm-d برای جزء سازنده‌ی بومی کوبرنتیز.
  • استفاده از تخلیه روی پردازنده‌ی اصلی بومی هنگام فشار HBM روی یک موتور.
  • استفاده از LMCache هنگام اشتراک‌گذاری پیشوندها میان چندین موتور.
  • استفاده از !Hogwild فقط روی یک نود. استفاده بین‌نودی فاجعه‌ی تاخیر است.
  • افزایش !Hogwild به 4=N تنها در صورتی که دو ورکر بیش از 1.5 برابر شتاب دهند.

پرسش و پاسخ

پرسش و پاسخ
هزینه‌ی انتقال کش کلید-مقدار؟
20 تا 80 میلی‌ثانیه برای کش پرامپت 4K روی مدل 70B FP8 با بستر NIXL.
!Hogwild با رمزگشایی حدسی؟
شتاب‌ها در هم ضرب می‌شوند. شتاب 3 برابر و 1.8 برابر نتیجه‌ی 5.4 برابری می‌دهد.
چرا باید مجموع پیش‌پرکنی و شبکه را کمینه کرد؟
یک مسیر بین‌منطقه‌ای 440 میلی‌ثانیه بازگشت‌پذیری به درخواست اضافه می‌کند. آن را با صرفه‌جویی پیش‌پرکنی ناشی از اصابت کش مقایسه کنید.
چه چیزی در 32% موارد بازیابی فاجعه را مختل می‌کند؟
نبود پیکربندی‌های توکنایزر یا کوانتیزه‌سازی.
هدررفت ناشی از هم‌مکانی؟
20 تا 40 درصد از زمان پردازنده‌ی گرافیکی روی منبع نادرست تلف می‌شود.

واژه‌نامه

اصطلاح‌ها
NIXL
بستر انتقال Dynamo برای کش کلید-مقدار. مبتنی بر RDMA/InfiniBand با طرح پشتیبان TCP.
RTT
زمان رفت و برگشت (بازگشت‌پذیری). حدود 75 میلی‌ثانیه بین آمریکا و اروپا، حدود 220 میلی‌ثانیه بین آمریکا و آسیا-اقیانوسیه.
p
کسری از کار که قابلیت اجرای موازی دارد.
c
سربار هماهنگی به ازای هر ورکر بر حسب توکن.
UCCL
لایه‌ی شبکه‌ی llm-d 0.5.