فاز 19 · درس 14

پیاده‌سازی سرور استنتاج با دیکودینگ حدسی (Speculative Decoding)

نوع
پروژه‌ی پایانی
زمان
حدود 9 دقیقه
زبان‌ها
Python (serving), C++ / CUDA (kernel inspection), YAML (configs)
پیش‌نیاز
فاز 3 (یادگیری عمیق)، فاز 7 (ترنسفورمرها)، فاز 10 (مدل‌های زبانی بزرگ از صفر)، فاز 17 (زیرساخت)
یک تراشه شتاب‌دهنده گرافیکی نقره‌ای و درخشان که شاخه‌های درختی از مدارهای نورانی پرسرعت از آن منشعب می‌شوند
فهرست مطالب
  1. صورت مسئله
  2. مفاهیم
  3. معماری
  4. استک
  5. ساخت مرحله‌به‌مرحله
  6. استفاده از سیستم
  7. تحویل نهایی
  8. تمرین‌ها
  9. اصطلاحات کلیدی
  10. منابع برای مطالعه‌ی بیشتر

هزینه‌ی بالای سخت‌افزار و تاخیر تولید توکن در مدل‌های زبانی بزرگ، چالش اصلی تیم‌های مهندسی در ارائه‌ی سرویس‌های پایدار و سریع است. تکنیک دیکودینگ حدسی (Speculative Decoding) این بن‌بست را با یک ترفند عملی حل می‌کند: یک مدل پیش‌نویس سبک چند توکن را به سرعت حدس می‌زند و مدل اصلی آن‌ها را هم‌زمان در یک پاس اعتبارسنجی می‌کند؛ رویکردی که تاخیر زمانی را شکسته و توان پردازشی را تا 3 برابر افزایش می‌دهد.

تهیه‌ی کارت‌های گرافیک سازمانی گران‌قیمت یا اجاره‌ی GPUهای ابری از ایران دشوار، پرهزینه و وابسته به پرداخت ارزی است. در چنین شرایطی، بهره‌وری حداکثری از منابع موجود با روش‌هایی چون کوانتیزه‌سازی FP8 و ادغام فریم‌ورک‌های مدرن مثل vLLM یا SGLang، تنها راهکار عملیاتی پایدار برای پایین نگه داشتن هزینه‌ها و رسیدن به عملکرد رقابتی است.

در این پروژه‌ی نهایی، یاد می‌گیرید چطور یک سرور استنتاج واقعی را با معماری‌های مدرن EAGLE-3 و P-EAGLE بر بستر Kubernetes مستقر کنید، تاخیر دنباله‌ی p99 را زیر بارهای واقعی بسنجید و با سیاست‌های مقیاس‌بندی خودکار (HPA)، زیرساختی تاب‌آور و مقیاس‌پذیر بسازید.

دیکودینگ حدسی (Speculative Decoding) — که در آن یک مدل پیش‌نویس (Draft Model) کم‌هزینه چند توکن را پیشنهاد می‌دهد و مدل هدف (Target model) همه‌ی آن‌ها را در یک مرحله اعتبارسنجی می‌کند — اکنون به یک بهینه‌سازی (Optimization) کاملاً آماده برای محیط عملیاتی (پروداکشن)، و نه صرفاً یک ترفند تحقیقاتی، تبدیل شده است. EAGLE-3 در vLLM 0.7 روی ترافیک واقعی 2.5 تا 3 برابر نرخ پردازش (Throughput) بیشتری ارائه می‌دهد. P-EAGLE (توسط AWS در سال 2026) حدس موازی را حتی از این هم فراتر برده است. SpecForge در SGLang سرهای پیش‌نویس را در مقیاس بالا آموزش داد. هاب Speculators شرکت Red Hat پیش‌نویس‌های هماهنگ‌شده را برای مدل‌های متن‌باز رایج منتشر کرد. TensorRT-LLM نیز دیکودینگ حدسی را به قابلیتی درجه‌یک روی سخت‌افزارهای NVIDIA تبدیل کرد. استک سرویس‌دهی پروداکشن در سال 2026، vLLM یا SGLang به همراه پیش‌نویس‌های خانواده‌ی EAGLE، کوانتیزه‌سازی (Quantization) با فرمت FP8 یا INT4، و HPA بر مبنای صف انتظار (queue-wait) است. پروژه‌ی نهایی این فصل، سرویس‌دهی دو مدل متن‌باز با نرخ پردازش بیش از 2.5 برابر خط مبنا (Baseline) همراه با گزارش کامل تاخیر دنباله (Tail latency) است.

فازهای تمرین‌شده: P3 · P7 · P10 · P17
زمان: 30 ساعت

صورت مسئله

دیکودینگ حدسی در سال 2026 به ابزاری استاندارد و عمومی تبدیل شد. سرهای پیش‌نویس EAGLE-3 روی وضعیت‌های پنهان (Hidden states) مدل هدف آموزش می‌بینند و N توکن بعد را پیش‌بینی می‌کنند؛ سپس مدل هدف همه‌ی آن‌ها را در یک مرحله تایید می‌کند. نرخ پذیرش (Acceptance rate) بین 60 تا 80 درصد، به 2 تا 3 برابر نرخ پردازش سرتاسری (End-to-end) تبدیل می‌شود. vLLM 0.7 این قابلیت را به‌صورت نیتیو در دل خود دارد. SGLang به همراه SpecForge پایپ‌لاین (Pipeline) آموزش را در اختیارتان می‌گذارد. مجموعه‌ی Speculators در Red Hat پیش‌نویس‌های هماهنگ‌شده را برای مدل‌های Llama 3.3 70B، Qwen3-Coder-30B MoE و GPT-OSS-120B منتشر می‌کند.

مهارت اصلی در عملیات سرویس‌دهی نهفته است، نه خودِ مدل. نرخ پذیرش با جابه‌جایی توزیع ترافیک (ShareGPT در برابر کد یا داده‌های تخصصی حوزه‌ای) تغییر می‌کند. تاخیر دنباله در صورت رد شدن توکن‌ها بدتر از حالت بدون دیکودینگ حدسی است — بنابراین باید تاخیر صدک 99 (p99) را در چند اندازه‌ی دسته‌ای (Batch size) بسنجید و گزارش کنید، نه صرفاً توکن بر ثانیه در وضعیت پایدار را. هزینه‌ی هر 1 میلیون توکن در مقایسه با APIهای Anthropic و OpenAI، اهرم اعتبار فنی کار شماست.

مفاهیم

دیکودینگ حدسی دو لایه دارد. یک مدل پیش‌نویس (سرِ EAGLE-3، الگوی ngram یا یک مدل کوچک‌ترِ هم‌راستا با مدل هدف) در هر گام k توکن کاندید پیشنهاد می‌دهد. مدل هدف همه‌ی k توکن را در یک مرحله بررسی می‌کند؛ هر پیشوندی که پذیرفته شود، جایگزین مسیر حریصانه (Greedy) می‌شود. نرخ پذیرش به میزان هم‌راستایی پیش‌نویس با مدل هدف و همچنین توزیع ورودی‌ها بستگی دارد.

EAGLE-3 در بیشتر ترافیک‌ها از پیش‌نویس‌های ngram جلو می‌زند. P-EAGLE با حدس موازی، درخت‌های پیش‌نویس عمیق‌تری را بررسی می‌کند. اما این کار یک بده‌بستان دارد: تاخیر p99 هنگام رد شدن پیشنهادها بیشتر است، چون مرحله‌ی تایید گسترده‌تر می‌شود. پیکربندی سرویس‌دهی برای آشکار ساختن این موضوع، باید تاخیر را در دسته‌های مختلف اندازه‌ی بچ گزارش کند.

استقرار روی Kubernetes است. vLLM 0.7 به ازای هر GPU یا شارد موازی‌سازی تنسور، یک رپلیکا اجرا می‌کند. HPA مقیاس‌بندی خودکار را به جای CPU بر اساس صف انتظار انجام می‌دهد. کوانتیزه‌سازی‌های FP8 (Marlin) و INT4 (AWQ) حافظه‌ی مصرفی GPU را درون محدوده‌ی یک کارت H100 یا H200 نگه می‌دارند. گزارش نهایی سرتاسری شامل نرخ پردازش، نرخ پذیرش، تاخیرهای p50 و p99 در بچ‌های 1، 8 و 32، و هزینه‌ی هر 1 میلیون توکن است.

معماری

request ingress
    |
    v
vLLM server (0.7) or SGLang (0.4)
    |
    +-- draft: EAGLE-3 heads | P-EAGLE parallel | ngram fallback
    +-- target: Llama 3.3 70B | Qwen3-Coder-30B | GPT-OSS-120B
    |     quantized FP8-Marlin or INT4-AWQ
    |
    v
verify pass: batch k draft tokens through target
    |
    v (accept prefix; resample for rejected suffix)
    v
token stream back to client
    |
    v
Prometheus metrics: throughput, acceptance rate, queue wait, latency p50/p99
    |
    v
HPA on queue-wait metric

استک

  • سرویس‌دهی: vLLM 0.7 یا SGLang 0.4
  • روش‌های حدسی: سرهای پیش‌نویس EAGLE-3، حدس موازی P-EAGLE، طرح پشتیبان (Fallback) مبتنی بر ngram
  • آموزش پیش‌نویس: SpecForge (در SGLang) یا Speculators شرکت Red Hat
  • مدل‌های هدف: Llama 3.3 70B، Qwen3-Coder-30B MoE، GPT-OSS-120B
  • کوانتیزه‌سازی: FP8 (Marlin)، INT4 AWQ
  • استقرار: Kubernetes به همراه پلاگین دیوایس NVIDIA؛ مقیاس‌پذیری HPA بر اساس متریک queue-wait
  • ارزیابی: ShareGPT، MT-Bench-v2، GSM8K و HumanEval برای سنجش نرخ پذیرش در توزیع‌های مختلف
  • مرجع مقایسه: دیکودینگ حدسی TensorRT-LLM به عنوان خط مبنای شرکتی
دیکودینگ حدسیپیش‌نویس پیشنهاد می‌دهد، مدل هدف یک‌بار اعتبارسنجی می‌کند
SPECULATIVE DECODINGThe draft head proposes five candidate tokens; the target model scores all of them in a single verify pass. The accepted prefix replaces three sequential decode steps, the rejected suffix is dropped and resampled. Acceptance rate sets the speedup, and the larger verify pass on rejection is exactly why p99 latency needs its own report.draft headk توکناعتبارسنجی مدل هدفdefmain():retردشده، نمونه‌برداری مجدد3 از 5 توکن در یک دور اعتبارسنجی پذیرفته شد
سر پیش‌نویس پنج توکن کاندید پیشنهاد می‌دهد؛ مدل هدف همه‌ی آن‌ها را در یک دور اعتبارسنجی ارزیابی می‌کند. پیشوند پذیرفته‌شده جایگزین سه گام متوالی رمزگشایی (Decode) می‌شود و پسوند ردشده کنار گذاشته شده و دوباره نمونه‌برداری می‌گردد. نرخ پذیرش میزان افزایش سرعت را تعیین می‌کند و سنگین‌تر بودن دور اعتبارسنجی هنگام رد شدن توکن‌ها دقیقاً دلیلی است که تاخیر دنباله p99 نیاز به گزارش جداگانه دارد.

ساخت مرحله‌به‌مرحله

  1. آماده‌سازی مدل هدف. Llama 3.3 70B را انتخاب کنید. آن را با Marlin به FP8 کوانتیزه کنید. مدل را تحت vLLM 0.7 روی 1 کارت H100 (یا 2 کارت با موازی‌سازی تنسور) مستقر کنید.

  2. منبع مدل پیش‌نویس. یک سرِ پیش‌نویس هماهنگ‌شده‌ی EAGLE-3 را از Speculators در Red Hat دریافت کنید (یا خودتان با SpecForge آموزش دهید). آن را در تنظیمات دیکودینگ حدسی vLLM بارگذاری کنید.

  3. ارقام خط مبنا. قبل از فعال‌سازی حدس: توکن بر ثانیه در بچ‌های 1، 8 و 32، تاخیرهای p50 و p99 و میزان استفاده از GPU را اندازه بگیرید. اعداد را منتشر کنید.

  4. فعال‌سازی EAGLE-3. سوییچ تنظیمات را بزنید؛ همان بنچمارک را تکرار کنید. میزان شتاب، نرخ پذیرش و اختلاف تاخیر دنباله‌ی p99 را گزارش دهید.

  5. استفاده از P-EAGLE. حدس موازی را فعال کنید؛ درخت پیش‌نویس عمیق‌تر را در مقایسه با EAGLE-3 متوالی بسنجید. نقطه‌ی عطفی را که P-EAGLE در آن به جای افت کارایی، باعث بهبود می‌شود گزارش کنید.

  6. ترافیک حوزه‌های مختلف. داده‌های ShareGPT، HumanEval و ترافیک تخصصی حوزه‌ی خود را از سرور یکسانی عبور دهید. نرخ پذیرش را به ازای هر توزیع اندازه بگیرید. زمان‌هایی را که پیش‌نویس‌ها دچار افت عملکرد می‌شوند شناسایی کنید.

  7. مدل هدف دوم. همین پایپ‌لاین را برای Qwen3-Coder-30B MoE اجرا کنید. پیش‌نویس برای مدل‌های MoE به دلیل نویز ناشی از مسیریابی (Routing) چالش‌برانگیزتر است. نتایج را گزارش دهید.

  8. تنظیم HPA در کوبرنتیز. سرویس را روی Kubernetes با HPA حساس به queue_wait_ms مستقر کنید. نشان دهید که با 3 برابر شدن بار ترافیک، سیستم به‌خوبی به صورت افقی مقیاس پیدا می‌کند.

  9. مقایسه‌ی هزینه. هزینه‌ی هر 1 میلیون توکن را در همان ارزیابی نسبت به Claude Sonnet 4.7 شرکت Anthropic و GPT-5.4 شرکت OpenAI محاسبه و منتشر کنید.

استفاده از سیستم

$ curl https://infer.example.com/v1/chat/completions -d '{"messages":[...]}'
[serve]     vLLM 0.7, Llama 3.3 70B FP8, EAGLE-3 active
[decode]    bs=8, accepted_tokens_per_step=3.2, acceptance_rate=0.76
[latency]   first-token 42ms, full-response 980ms (620 tokens)
[cost]      $0.34 per 1M output tokens at sustained throughput

تحویل نهایی

فایل outputs/skill-inference-server.md ساختار خروجی مورد انتظار را توضیح می‌دهد: یک استک سرویس‌دهی ارزیابی‌شده با دیکودینگ حدسی، گزارش کامل بنچمارک، و استقرار آماده روی Kubernetes.

وزن معیار نحوه‌ی ارزیابی
25 شتاب واقعی نسبت به خط مبنا افزایش بیش از 2.5 برابری نرخ پردازش با کیفیت یکسان روی دو مدل
20 نرخ پذیرش در ترافیک واقعی ارائه‌ی گزارش نرخ پذیرش به تفکیک توزیع داده‌ها
20 انضباط در تاخیر دنباله‌ی P99 تاخیر p99 در بچ‌های 1، 8 و 32 با و بدون دیکودینگ حدسی
20 عملیات (Ops) استقرار کوبرنتیز، تنظیم HPA بر اساس queue-wait، بازاستقرار (Rollout) نرم و بدون اختلال <!-- REVIEW: واژه‌ی Rollout در اینجا به معنی به‌روزرسانی تدریجی پادها در کوبرنتیز است و به مسیر شبیه‌سازی مربوط نیست. -->
15 گزارش فنی و متدولوژی توضیح شفاف تغییرات اعمال‌شده و دلایل آن‌ها
100

تمرین‌ها

  1. افت نرخ پذیرش را زمانی که پیش‌نویس یک نسخه از مدل هدف عقب‌تر است بسنجید (مثلاً اختلاف نسخه‌ی Llama 3.3 به 3.4). یک سیستم هشدار مانیتورینگ برای آن بسازید.

  2. یک طرح پشتیبان مبتنی بر ngram پیاده کنید: اگر نرخ پذیرش EAGLE-3 از یک آستانه (Threshold) کمتر شد، سیستم به پیش‌نویس‌های ngram سوییچ کند. بهبود قابلیت اطمینان سیستم را گزارش دهید.

  3. یک آزمایش کنترل‌شده برای MoE اجرا کنید: همان مدل Qwen3-Coder-30B را یک بار با تزریق نویز در مسیریابی و یک بار بدون آن اجرا کنید. میزان حساسیت نرخ پذیرش مدل پیش‌نویس را بسنجید.

  4. آزمایش را روی کارت H200 (با حافظه‌ی 141 GB) توسعه دهید. فضای آزاد دریافت‌شده برای حجم مدل به ازای هر رپلیکا را گزارش کنید و مشخص کنید آیا می‌توان مدل Llama 3.3 70B را بدون کوانتیزه‌سازی سرویس داد یا خیر.

  5. دیکودینگ حدسی TensorRT-LLM را روی همان سخت‌افزار H100 بنچمارک کنید. نقاط برتری آن در برابر vLLM را گزارش دهید.

اصطلاحات کلیدی

اصطلاح در گفتار عامیانه معنای دقیق فنی
Draft model مدل حدس‌زننده ("Speculator") مدل کوچکی که N توکن را برای تایید مدل هدف پیشنهاد می‌دهد
EAGLE-3 "معماری پیش‌نویس 2026" سرِ پیش‌نویسی که روی وضعیت‌های پنهان مدل هدف آموزش می‌بیند؛ نرخ پذیرش حدود 75%
P-EAGLE "دیکودینگ حدسی موازی" درختی از شاخه‌های پیش‌نویس که همگی در یک مرحله توسط مدل هدف بررسی و تایید می‌شوند
Acceptance rate نرخ اصابت (Hit Rate) کسری از توکن‌های پیش‌نویس که بدون نیاز به نمونه‌برداری مجدد پذیرفته می‌شوند
Quantization "FP8 / INT4" وزن‌های با دقت کمتر برای جا دادن مدل‌های بزرگ‌تر در حافظه‌ی GPU
Queue wait "متریک HPA" مدت زمانی که یک درخواست در صف انتظار می‌ماند تا پردازش استنتاج شروع شود
Speculators hub "پیش‌نویس‌های هماهنگ" هاب Neural Magic شرکت Red Hat شامل پیش‌نویس‌های EAGLE برای مدل‌های متن‌باز رایج

منابع برای مطالعه‌ی بیشتر

خودآزمایی

به سؤال‌ها جواب بدهید تا ببینید چقدر از درس در ذهنتان مانده است.

  1. پیش از درسسازوکار دولایه‌ی پشت دیکودینگ حدسی چیست؟
  2. پیش از درسEAGLE-3 چه کاری انجام می‌دهد که پیش‌نویس‌های مبتنی بر ngram انجام نمی‌دهند؟
  3. حین درسچرا تاخیر دنباله p99 در اندازه‌های دسته‌ای 1، 8 و 32 گزارش می‌شود؟
  4. حین درسچرا هنگام وقوع ناهماهنگی در توزیع داده‌ها، نرخ پذیرش دچار تغییر و انحراف می‌شود؟
  5. حین درساستقرار بر اساس کدام سیگنال HPA در کوبرنتیز مقیاس‌بندی می‌شود؟
  6. پس از درسP-EAGLE چه مزیتی نسبت به EAGLE-3 ترتیبی اضافه می‌کند؟
  7. پس از درسشیوه‌نامه‌ی نمره‌دهی چه هدفی را برای نرخ پردازش نسبت به خط مبنای غیرحدسی الزامی می‌داند؟

سؤالات متداول

دیکودینگ حدسی چطور سرعت استنتاج LLM را افزایش می‌دهد؟

مدل پیش‌نویسِ سبک چند توکن را سریع پیشنهاد می‌کند و مدل هدف همه‌ی آن‌ها را در یک دور پردازش (Forward Pass) تایید می‌کند؛ اگر اکثر پیشنهادها پذیرفته شوند، بدون نیاز به گام‌های محاسباتی تکراری، چندین توکن به یکباره تولید می‌شوند.

آیا دیکودینگ حدسی همیشه تاخیر را کم می‌کند؟

خیر؛ در صورتی که نرخ پذیرش توکن‌ها توسط مدل هدف پایین باشد، اعتبارسنجی بزرگ‌تر توکن‌های ردشده باعث افزایش تاخیر دنباله (p99 Tail Latency) نسبت به حالت بدون پیش‌نویس می‌شود.

چرا در استقرار کوبرنتیز vLLM معیار queue-wait به CPU ترجیح داده می‌شود؟

چون پردازش روی کارت‌های گرافیک در جریان است و مصرف CPU نماینده‌ی بار واقعی سرور نیست؛ مدت زمان انتظار درخواست‌ها در صف (Queue Wait) بهترین شاخص برای تشخیص اشباع GPU و نیاز به رپلیکای جدید است.

ما رو توی گوگل بیشتر ببین

با افزودن نکست ادمین به «منابع ترجیحی» گوگل، درس‌ها و مطالب ما را در بخش اخبار برتر جستجو بیشتر می‌بینید.