فاز 7 · درس 16

دیکودینگ گمانه‌زن (Speculative Decoding): افزایش 2 تا 4 برابری سرعت تولید متن

نوع
ساختنی
زمان
حدود 60 دقیقه
زبان‌ها
Python
پیش‌نیاز
فاز 7 · درس 07 (مدل زبانی علی GPT)، فاز 7 · درس 12 (کش کلید-مقدار و Flash Attention)
یک مداد باریک چوبی که خطوط کم‌رنگ پیش‌نویس را تندتند روی کاغذ ترسیم می‌کند و یک قلم‌موی ضخیم که پشت سر آن با جوهر پررنگ خطوط را تثبیت می‌کند
فهرست مطالب
  1. صورت مسئله
  2. مفاهیم پایه
  3. الگوریتم اصلی
  4. عوامل تعیین‌کننده‌ی افزایش سرعت
  5. مدوزا — پیش‌نویس بدون مدل مجزا
  6. مدل EAGLE — پیش‌نویس بهتر با استفاده‌ی مجدد از وضعیت‌های پنهان
  7. زیروبم مدیریت کَش KV
  8. ساخت و پیاده‌سازی
  9. گام 1: مرحله‌ی رد و پذیرش
  10. گام 2: توزیع باقیمانده
  11. گام 3: یک گام دیکودینگ گمانه‌زن
  12. گام 4: سنجش نرخ پذیرش
  13. گام 5: تایید هم‌ارزی توزیع‌ها
  14. استفاده‌ی عملی
  15. استقرار و خروجی
  16. تمرین‌ها
  17. اصطلاحات کلیدی
  18. برای مطالعه‌ی بیشتر

تولید متن در مدل‌های زبانی بزرگ ماهیتی ترتیبی و خودبازگشتی دارد؛ یعنی برای تولید هر کلمه باید تمام محاسبات سنگین مدل از ابتدا تا انتها تکرار شود. این موضوع در مدل‌های سنگین باعث افت محسوس سرعت و افزایش شدید زمان پاسخ‌دهی به کاربر نهایی می‌شود. از طرفی تهیه و اجاره‌ی کارت‌های گرافیکی مدرن مثل H100 هزینه‌های سرسام‌آوری دارد و بهره‌وری حداکثری از پردازنده در زمان استنتاج یک ضرورت مهندسی است.

دیکودینگ گمانه‌زن (Speculative Decoding) یکی از مهم‌ترین تکنیک‌های روز برای حل این گلوگاه است. در این روش یک مدل فوق‌العاده کوچک و سریع چند توکن را جلوتر پیشنهاد می‌دهد و مدل بزرگ اصلی همه‌ی آن‌ها را در یک رفت محاسباتی ارزیابی می‌کند. با این کار، بدون افت دقت یا کیفیت متن تولیدی، سرعت استنتاج بین 2 تا 4 برابر بیشتر می‌شود.

دیکودینگ خودبازگشتی (autoregressive decoding) کاملاً ترتیبی است؛ هر توکن باید منتظر توکن قبلی بماند. دیکودینگ گمانه‌زن (speculative decoding) این زنجیره را می‌شکند: یک مدل سبک N توکن را پیش‌نویس می‌کند و مدل اصلی و سنگین، همه‌ی این N توکن را در یک گذر رو به جلو (forward pass) اعتبارسنجی می‌کند. اگر پیش‌نویس درست باشد، به‌ازای یک گذر سنگین، N توکن به دست آورده‌اید.

صورت مسئله

نمونه‌گیری یک توکن در یک مدل زبانی بزرگ 70B روی یک پردازنده‌ی H100 حدود 30 میلی‌ثانیه زمان می‌برد. همین کار روی یک مدل پیش‌نویس 3B تنها حدود 3 میلی‌ثانیه طول می‌کشد. اگر بگذاریم مدل 3B پنج توکن جلوتر را پیش‌نویس کند و سپس مدل 70B را فقط یک بار برای بررسی هر 5 توکن اجرا کنیم، کل زمان پردازش به 5×3+30=455 \times 3 + 30 = 45 میلی‌ثانیه برای حداکثر 5 توکن پذیرفته‌شده می‌رسد؛ در مقایسه با 5×30 = 150 ms در حالت تولید خطی توکن‌ها. تمام ایده و جذابیت دیکودینگ گمانه‌زن در همین است: اختصاص بخش کوچکی از حافظه‌ی گرافیکی (VRAM) به مدل پیش‌نویس در ازای کاهش 2 تا 4 برابری تاخیر (latency) دیکودینگ.

نکته‌ی کلیدی این روش، حفظ توزیع آماری است. نمونه‌گیری گمانه‌زن که لویاتان و همکاران (2023) و به‌طور هم‌زمان چن و همکاران آن را معرفی کردند، تضمین می‌کند که توالی خروجی، دقیقاً دارای همان توزیع آماری است که خود مدل بزرگ به‌تنهایی تولید می‌کرد. هیچ افت کیفیتی در کار نیست؛ فقط سرعت بالاتر می‌رود.

چهار خانواده از ترکیب‌های «پیش‌نویس–اعتبارسنج» در استنتاج سال 2026 پیشتازند:

  1. گمانه‌زنی کلاسیک (Leviathan 2023): یک مدل پیش‌نویس مجزا (مثل Llama 3 1B) به‌همراه مدل اعتبارسنج (مثل Llama 3 70B).
  2. مدوزا (Cai 2024 - Medusa): چند سر (head) دیکودینگ روی خود اعتبارسنج، موقعیت‌های t+1..t+k را به‌صورت موازی پیش‌بینی می‌کنند. نیازی به مدل پیش‌نویس مجزا نیست.
  3. خانواده‌ی EAGLE (Li 2024, 2025): مدل پیش‌نویس سبکی که از وضعیت‌های پنهان (hidden states) مدل اعتبارسنج دوباره استفاده می‌کند؛ نرخ پذیرش نزدیک‌تری نسبت به روش کلاسیک دارد و معمولاً سرعت را 3 تا 4 برابر می‌کند.
  4. دیکودینگ نگاه‌به‌جلو (Fu 2024 - Lookahead decoding): مبتنی بر تکرار ژاکوبی (Jacobi iteration)؛ اصلاً نیازی به مدل پیش‌نویس ندارد. نوعی خودگمانه‌زنی است؛ کاربرد خاص‌تری دارد اما بدون هیچ وابستگی خارجی اجرا می‌شود.

در سال 2026، تمام استک‌های استنتاج عملیاتی به‌طور پیش‌فرض با دیکودینگ گمانه‌زن عرضه می‌شوند. ابزارهای vLLM، TensorRT-LLM، SGLang و llama.cpp همگی دست‌کم از روش کلاسیک و EAGLE-2 پشتیبانی می‌کنند.

مفاهیم پایه

الگوریتم اصلی

فرض کنید مدل اعتبارسنج MqM_q و مدل پیش‌نویس سبک‌تر MpM_p را در اختیار داریم:

  1. فرض کنید x1…xkx_1 \ldots x_k پیشوندی باشد که تا اینجا دیکود شده است.
  2. پیش‌نویس: با استفاده از MpM_p، به‌صورت خودبازگشتی توکن‌های dk+1,dk+2,…,dk+Nd_{k+1}, d_{k+2}, \ldots, d_{k+N} را همراه با احتمال‌های پیش‌نویس p1…pNp_1 \ldots p_N پیشنهاد دهید.
  3. اعتبارسنجی موازی: مدل MqM_q را یک بار روی x1…xk,dk+1,…,dk+Nx_1 \ldots x_k, d_{k+1}, \ldots, d_{k+N} اجرا کنید تا احتمال‌های اعتبارسنج q1…qN+1q_1 \ldots q_{N+1} را برای موقعیت‌های k+1…k+N+1k+1 \ldots k+N+1 به دست آورید.
  4. پذیرش یا رد هر توکن پیش‌نویس از چپ به راست: برای هر ii، آن را با احتمال min⁡(1,qi(di)/pi(di))\min(1, q_i(d_i) / p_i(d_i)) بپذیرید.
  5. در اولین رد در موقعیت jj: توکن tjt_j را از توزیع «باقیمانده» (residual distribution) نرمالایزشده‌ی (qj−pj)+(q_j - p_j)_+ نمونه‌گیری کنید. تمام توکن‌های پیش‌نویس بعد از jj دور ریخته می‌شوند.
  6. در صورت پذیرش همه‌ی NN توکن: یک توکن اضافه tN+1t_{N+1} از توزیع qN+1q_{N+1} نمونه‌گیری کنید (توکن پاداش رایگان).

تکنیک توزیع باقیمانده همان بینش ریاضی دقیقی است که باعث می‌شود خروجی دقیقاً طوری توزیع شود که انگار MqM_q از ابتدا خودش نمونه‌گیری کرده است.

عوامل تعیین‌کننده‌ی افزایش سرعت

فرض کنید α\alpha = نرخ پذیرش مورد انتظار به‌ازای هر توکن پیش‌نویس باشد. همچنین فرض کنید cc = نسبت هزینه‌ی مدل پیش‌نویس به اعتبارسنج باشد. در هر گام:

  • در تولید معمولی، به‌ازای هر توکن 1 بار مدل بزرگ فراخوانی می‌شود.
  • در روش گمانه‌زن، وقتی α\alpha بالا باشد، به‌ازای هر (1−αN+1)/(1−α)≈1/(1−α)(1 - \alpha^{N+1}) / (1 - \alpha) \approx 1/(1-\alpha) توکن فقط 1 بار مدل بزرگ فراخوانی می‌شود.

یک قاعده‌ی سرانگشتی در شرایط α=0.75\alpha = 0.75 و N=5N = 5: فراخوانی‌های مدل بزرگ 3 برابر کمتر می‌شود. هزینه‌ی پیش‌نویس هم 5 برابر کمتر است. در نتیجه زمان کل اجرا (wall-clock time) حدود 2.5 برابر کاهش می‌یابد.

α\alpha به این عوامل وابسته است:

  • کیفیت تقریب مدل پیش‌نویس نسبت به اعتبارسنج. معماری یکسان یا داده‌های آموزشی مشترک، α\alpha را به شکل چشمگیری افزایش می‌دهد.
  • استراتژی دیکودینگ. پیش‌نویس حریصانه (greedy) در برابر اعتبارسنج حریصانه: α\alpha بالا. نمونه‌گیری با دما (temperature): تطبیق دشوارتر و افت نرخ پذیرش.
  • نوع تسک. کدنویسی و خروجی‌های ساختاریافته نرخ پذیرش بالاتری دارند (چون قابل‌پیش‌بینی‌ترند)؛ متن‌های خلاقانه و آزاد نرخ پذیرش کمتری دارند.

مدوزا — پیش‌نویس بدون مدل مجزا

مدوزا به‌جای مدل پیش‌نویس، چند سر خروجی اضافی به اعتبارسنج اضافه می‌کند. در موقعیت t:

shared trunk → hidden h_t
    ├── head_0: predict token at t+1  (standard LM head)
    ├── head_1: predict token at t+2
    ├── head_2: predict token at t+3
    ├── head_3: predict token at t+4

هر سر لاجیت‌های (logits) خودش را تولید می‌کند. در زمان استنتاج، از هر سر یک مقدار نمونه‌گیری می‌کنید تا یک توالی کاندید به دست آید؛ سپس با یک گذر رو به جلو و با استفاده از مکانیزم اتنشن درختی (tree attention) که تمام ادامه‌های کاندید را یک‌جا می‌سنجد، درستی آن را ارزیابی می‌کنید.

مزایا: نیازی به مدل دوم نیست. معایب: پارامترهای قابل آموزش اضافه می‌کند؛ به یک مرحله فاین‌تیونینگ نظارت‌شده (حدود 1 میلیارد توکن) نیاز دارد؛ و نرخ پذیرش آن کمی از روش گمانه‌زنی کلاسیک با یک مدل پیش‌نویس خوب پایین‌تر است.

مدل EAGLE — پیش‌نویس بهتر با استفاده‌ی مجدد از وضعیت‌های پنهان

در EAGLE-1/2/3 (Li et al., 2024–2025)، مدل پیش‌نویس در واقع یک ترنسفورمر بسیار کوچک (معمولاً 1 لایه) است که وضعیت‌های پنهان لایه‌ی آخرِ مدل اعتبارسنج را دریافت می‌کند. از آنجا که مدل پیش‌نویس نمایش ویژگی‌های مدل اعتبارسنج را می‌بیند، پیش‌بینی‌هایش همبستگی بالایی با توزیع خروجی اعتبارسنج دارند. به این ترتیب نرخ پذیرش از حدود 0.6 در روش کلاسیک، به بیش از 0.85 می‌رسد.

مدل EAGLE-3 (2025) جستجوی درختی روی ادامه‌های کاندید را هم اضافه کرد. vLLM و SGLang نسخه‌های EAGLE-2/3 را به‌عنوان مسیر پیش‌فرض دیکودینگ گمانه‌زن برای Llama 3/4 و Qwen 3 ارائه می‌دهند.

زیروبم مدیریت کَش KV

در مرحله‌ی اعتبارسنجی، NN توکن پیش‌نویس در یک گذر رو به جلو وارد مدل اعتبارسنج می‌شوند. این کار کَش کلید-مقدار (KV cache) اعتبارسنج را به اندازه‌ی NN درایه گسترش می‌دهد. اگر برخی توکن‌ها رد شوند، باید وضعیت کش را به طول پیشوند پذیرفته‌شده برگردانید (rollback).

پیاده‌سازی‌های عملیاتی (مثل پرچم --speculative-config در vLLM یا LookaheadDecoder در TensorRT-LLM) این موضوع را با بافرهای موقت KV مدیریت می‌کنند: اول در بافر موقت می‌نویسند و پس از پذیرش توکن‌ها، تغییرات را نهایی (commit) می‌کنند. از نظر مفهومی سخت نیست، اما پیاده‌سازی پردردسری دارد.

رمزگشایی گمانه‌زنانه (Speculative Decoding)پیش‌نویس ← راستی‌آزمایی ← نگه‌داشتن پیشوند
SPECULATIVE DECODINGA cheap drafter proposes several tokens in quick small passes. The big model then verifies all of them in a single forward pass, accepting the longest prefix that matches its own distribution and rejecting the rest. When the draft is good you get many tokens for the price of one big step — with no change to the output distribution.DRAFTVERIFYپذیرشپذیرشپذیرشردرد
یک مدل پیش‌نویس ارزان در گذرهای سریع و کوچک، چند توکن را پیشنهاد می‌دهد. سپس مدل بزرگ همه‌ی آن‌ها را در یک گذر رو به جلو راستی‌آزمایی می‌کند؛ طولانی‌ترین پیشوندی را که با توزیع خودش همخوانی دارد می‌پذیرد و بقیه را رد می‌کند. وقتی پیش‌نویس خوب باشد، به ازای هزینه‌ی تنها یک گام بزرگ چندین توکن دریافت می‌کنید — بدون اینکه توزیع خروجی تغییر کند.

ساخت و پیاده‌سازی

کد کامل در فایل code/main.py آمده است. الگوریتم اصلی نمونه‌گیری گمانه‌زن (مرحله‌ی رد/پذیرش + توزیع باقیمانده) را با این بخش‌ها پیاده می‌کنیم:

  • یک «مدل بزرگ» که یک سافت‌مکس (softmax) معین روی یک توزیع دستی است (تا بتوانیم محاسبات نرخ پذیرش را به شکل تحلیلی بررسی کنیم).
  • یک «مدل پیش‌نویس» که نسخه‌ی دست‌کاری‌شده‌ی مدل بزرگ است.
  • یک حلقه‌ی رد و پذیرش که همان توزیع حاشیه‌ای (marginal distribution) نمونه‌گیری مستقیم را بازتولید می‌کند.

گام 1: مرحله‌ی رد و پذیرش

def accept_or_reject(q_prob, p_prob, draft_token, u):
    ratio = q_prob / p_prob if p_prob > 0 else float("inf")
    return u < min(1.0, ratio)

متغیر u یک عدد تصادفی یکنواخت است. q_prob احتمال مدل اعتبارسنج برای توکن پیش‌نویس‌شده و p_prob احتمال مدل پیش‌نویس است. قضیه‌ی لویاتان اثبات می‌کند که این تصمیم‌گیری برنولی، در صورت همراهی با نمونه‌گیری از توزیع باقیمانده هنگام رد شدن، توزیع مدل اعتبارسنج را دقیقاً حفظ می‌کند.

گام 2: توزیع باقیمانده

def residual_dist(q, p):
    raw = [max(0.0, qi - pi) for qi, pi in zip(q, p)]
    s = sum(raw)
    return [r / s for r in raw]

مقدار p را به‌صورت نظیر‌به‌نظیر (element-wise) از q کم کنید، مقادیر منفی را به صفر محدود کنید (clamp) و دوباره مقدارها را نرمالایز کنید. در صورت رد شدن هر توکن، باید از این توزیع نمونه‌گیری کنید.

گام 3: یک گام دیکودینگ گمانه‌زن

def spec_step(prefix, q_model, p_model, N, rng):
    drafts = []
    p_probs = []
    ctx = list(prefix)
    for _ in range(N):
        p_dist = p_model(ctx)
        d = sample(p_dist, rng)
        drafts.append(d)
        p_probs.append(p_dist[d])
        ctx.append(d)

    q_dists = [q_model(prefix + drafts[:i]) for i in range(N + 1)]

    for i, d in enumerate(drafts):
        u = rng.random()
        q_prob = q_dists[i][d]
        p_prob = p_probs[i]
        if u < min(1.0, q_prob / p_prob if p_prob > 0 else float("inf")):
            prefix = prefix + [d]
        else:
            res = residual_dist(q_dists[i], p_model(prefix))
            prefix = prefix + [sample(res, rng)]
            return prefix
    prefix = prefix + [sample(q_dists[N], rng)]
    return prefix

پنج توکن پذیرفته‌شده ← یک توکن پاداش ← تولید شش توکن تنها با یک گذر رو به جلوی اعتبارسنج.

گام 4: سنجش نرخ پذیرش

10,000 گام گمانه‌زن را با کیفیت‌های مختلف برای مدل پیش‌نویس اجرا کنید. نمودار نرخ پذیرش را بر حسب واگرایی کولبک-لایبلر (KL Divergence) بین توزیع‌های پیش‌نویس و اعتبارسنج رسم کنید. باید یک رابطه‌ی کاملاً یکنواخت و معکوس مشاهده کنید.

گام 5: تایید هم‌ارزی توزیع‌ها

به شکل تجربی بررسی کنید: هیستوگرام توکن‌های تولیدشده در حلقه‌ی گمانه‌زن باید با هیستوگرام توکن‌های حاصل از نمونه‌گیری مستقیم اعتبارسنج مطابقت داشته باشد. این همان قضیه‌ی لویاتان در عمل است. یک آزمون کای-دو (chi-square) این هم‌ارزی را در حد خطای نمونه‌گیری تایید می‌کند.

استفاده‌ی عملی

در محیط عملیاتی:

# اجرای vLLM با EAGLE
vllm serve meta-llama/Llama-3.1-70B-Instruct \
    --speculative-config '{"method": "eagle", "model": "/models/llama-3.1-eagle-70b", "draft_tensor_parallel_size": 1, "num_speculative_tokens": 5}'

# اجرای vLLM با مدل پیش‌نویس استاندارد (vanilla)
vllm serve meta-llama/Llama-3.1-70B-Instruct \
    --speculative-config '{"method": "draft_model", "model": "meta-llama/Llama-3.2-1B-Instruct", "num_speculative_tokens": 5}'

تا اواسط سال 2026، کتابخانه‌ی TensorRT-LLM سریع‌ترین مسیر مدوزا را دارد. همچنین پکیج faster-whisper دیکودینگ گمانه‌زن را برای Whisper-large به‌کمک یک مدل پیش‌نویس کوچک پیاده‌سازی کرده است.

راهنمای انتخاب مدل پیش‌نویس:

استراتژی چه زمانی انتخاب کنیم؟ افزایش سرعت
پیش‌نویس کلاسیک (خانواده‌ی Llama 1B/3B) نمونه‌سازی سریع، بدون نیاز به آموزش 1.8 تا 2.3 برابر
سرهای مدوزا (Medusa heads) امکان فاین‌تیونینگ مدل اعتبارسنج وجود دارد 2 تا 3 برابر
نسخه‌های EAGLE-2 / 3 محیط عملیاتی و بالاترین سرعت ممکن 3 تا 4 برابر
نگاه‌به‌جلو (Lookahead) بدون مدل پیش‌نویس، بدون آموزش و بدون پارامتر اضافه 1.3 تا 1.6 برابر

چه زمانی نباید از دیکودینگ گمانه‌زن استفاده کرد؟

  • تولید توالی‌های تکی به طول 1 تا 5 توکن؛ چرا که سربار محاسباتی غالب می‌شود.
  • نمونه‌گیری‌های بسیار خلاقانه یا با دمای بالا (افت شدید α\alpha).
  • دیپلوی‌های محدود به حافظه (مدل پیش‌نویس به VRAM اضافه نیاز دارد).

استقرار و خروجی

فایل outputs/skill-spec-decode-picker.md را بررسی کنید. این ابزار متناسب با بار کاری استنتاجی جدید، استراتژی دیکودینگ گمانه‌زن مناسب (کلاسیک / Medusa / EAGLE / Lookahead) و پارامترهای تنظیمی (مثل N و دمای پیش‌نویس) را انتخاب می‌کند.

تمرین‌ها

  1. ساده. فایل code/main.py را اجرا کنید. تایید کنید که توزیع توکن‌های گمانه‌زن در 50,000 توکن، با آزمون chi-square با مقدار p > 0.05 بر توزیع نمونه‌گیری مستقیم اعتبارسنج منطبق است.
  2. متوسط. نمودار شتاب (تعداد توکن به‌ازای هر گذر مدل بزرگ) را بر حسب NN برای بازه‌ی α=0.5,0.7,0.85\alpha = 0.5, 0.7, 0.85 رسم کنید. مقدار بهینه‌ی NN را برای هر α\alpha مشخص کنید. (راهنمایی: امید ریاضی توکن‌ها به‌ازای هر فراخوانی اعتبارسنجی برابر با (1−αN+1)/(1−α)(1 - \alpha^{N+1}) / (1 - \alpha) است.)
  3. سخت. یک مدل مدوزای کوچک بسازید: مدل GPT پروژه‌ی نهایی درس 14 را بردارید و 3 سر زبانی (LM head) اضافه کنید تا موقعیت‌های t+2، t+3 و t+4 را پیش‌بینی کنند. مدل را با یک تابع زیان (loss) چندسره‌ی مشترک روی مجموعه‌داده‌ی tinyshakespeare آموزش دهید. نرخ پذیرش آن را با یک مدل پیش‌نویس کلاسیک که حاصل هرس کردن همین مدل است، مقایسه کنید.
  4. سخت. مکانیزم بازگشت به عقب (rollback) را پیاده‌سازی کنید: کار را با یک کش KV پیشوند 10 توکنی شروع کنید، 5 توکن پیش‌نویس به آن بدهید و رد شدن توکن در موقعیت 3 را شبیه‌سازی کنید. بررسی کنید که داده‌های خوانده‌شده از کش در تکرار بعدی دقیقاً معادل «پیشوند + 2 توکن اول پذیرفته‌شده» باشد.

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

اصطلاح اصطلاح رایج تعریف دقیق فنی
مدل پیش‌نویس (Draft model) «مدل سبک و ارزان» مدل کوچک‌تری که توکن‌های کاندید را پیشنهاد می‌دهد؛ معمولاً 10 تا 50 برابر ارزان‌تر از اعتبارسنج است.
مدل اعتبارسنج (Verifier) «مدل اصلی و سنگین» مدل هدف که توزیع آن را حفظ می‌کنیم؛ در هر گام گمانه‌زنی یک بار اجرا می‌شود.
نرخ پذیرش (α\alpha) «درصد درستی پیش‌نویس» احتمال پذیرش هر توکن پیش‌نویس توسط مدل اعتبارسنج؛ معمولاً بین 0.7 تا 0.9 است.
توزیع باقیمانده (Residual distribution) «توزیع جایگزین پس از رد» توزیع نرمالایزشده‌ی (q - p)_+؛ نمونه‌گیری از این توزیع هنگام رد شدن توکن، توزیع اعتبارسنج را حفظ می‌کند.
توکن پاداش (Bonus token) «توکن رایگان» در صورت پذیرش تمام N توکن پیش‌نویس، یک توکن دیگر از توزیع گام بعدی اعتبارسنج نمونه‌گیری می‌شود.
مدوزا (Medusa) «گمانه‌زنی بدون پیش‌نویس» چند سر زبانی روی اعتبارسنج که موقعیت‌های t+1 تا t+k را به‌صورت موازی پیش‌بینی می‌کنند.
مدل EAGLE «پیش‌نویس با وضعیت‌های پنهان» ترنسفورمر بسیار کوچکی که ورودی آن، وضعیت‌های پنهان لایه‌ی آخر مدل اعتبارسنج است.
دیکودینگ نگاه‌به‌جلو (Lookahead decoding) «تکرار ژاکوبی» خودگمانه‌زنی با روش تکرار نقطه ثابت؛ بدون نیاز به مدل پیش‌نویس.
اتنشن درختی (Tree attention) «اعتبارسنجی هم‌زمان چند کاندید» اعتبارسنجی شاخه‌ای که چند ادامه‌ی پیش‌نویس مختلف را به‌طور هم‌زمان بررسی می‌کند.
بازگشت کش (KV rollback) «حذف پیش‌نویس‌های ردشده» بافر موقت KV؛ تغییرات پس از پذیرش نهایی (commit) و در صورت رد شدن دور ریخته می‌شوند.

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

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

آیا استفاده از دیکودینگ گمانه‌زن کیفیت خروجی مدل بزرگ را پایین می‌آورد؟

خیر؛ به لطف توزیع باقیمانده و تصحیح آماری لویاتان، توزیع آماری خروجی دقیقاً منطبق بر حالتی است که مدل بزرگ به تنهایی خروجی تولید کند.

چه تفاوتی میان مدوزا (Medusa) و دیکودینگ گمانه‌زن کلاسیک وجود دارد؟

در روش کلاسیک از یک مدل کوچک مجزا برای پیش‌نویس استفاده می‌شود، اما مدوزا بدون مدل مجزا و با افزودن چند سر خروجی به خود مدل اصلی، توکن‌های بعدی را پیش‌بینی می‌کند.

در چه سناریوهایی نباید از دیکودینگ گمانه‌زن استفاده کنیم؟

هنگام تولید متن‌های بسیار کوتاه (1 تا 5 توکن)، تولید متن خلاقانه با دمای بالا که نرخ پذیرش توکن‌ها افت می‌کند، و محیط‌هایی با محدودیت شدید حافظه‌ی گرافیکی.

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

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