Speculative decoding در تولید متن، حدس چند توکن را به یک پیشنهاددهنده میسپارد و پذیرش آنها را به مدل هدف واگذار میکند. حدس بهتنهایی وارد پاسخ قطعی نمیشود. برای فهم سازوکار، مسیر greedy را با هفت نماد و چهار حالت تأیید میکنیم؛ این تمرین اجرای مدل زبانی یا اندازهگیری سرعت نیست.
چرا فقط سریعتر حدسزدن کافی نیست؟
در تولید خودبازگشتی، خروجیِ پذیرفتهشده زمینهٔ ادامه است. پیشنهاددهنده ممکن است سریعتر باشد اما توکن دیگری را ترجیح دهد. اگر همهٔ حدسها بدون کنترل پذیرفته شوند، روش دیگری با رفتار متفاوت ساختهایم. در speculative decoding، مدل هدف درستیِ پذیرش را طبق قرارداد الگوریتم بررسی میکند؛ اینجا «درستی» یعنی سازگاری با انتخاب مدل هدف، نه صحت یک واقعیت بیرونی.
تمرین انتخاب توکن بعدی تفاوت مسیر greedy و احتمال کل دنباله را نشان میدهد. موضوع این صفحه، پیشنهاد چندمرحلهای و نقطهٔ توقف پذیرش است؛ greedy را با کشف بهترین پاسخ واقعی برابر نمیگیریم.
قرارداد تمرین: فقط یک مسیر ازپیشتعیینشده
در کد، مسیر هدف را ABCDEFG تعیین کردهایم. هر حرف یک نماد آموزشی است؛ حروف، توکنهای یک tokenizer واقعی نیستند. تابع فقط پیشوند همین مسیر و پیشنهاد را میگیرد. مدل واقعی انتخاب بعدی را از زمینه محاسبه میکند؛ کد ما آن محاسبه، شبکهٔ عصبی یا اجرای موازی را شبیهسازی نمیکند.
قاعده این است: از چپ، حدس را با نماد هدف بسنج؛ تا نخستین اختلاف بپذیر؛ در اختلاف، نماد هدف را اضافه کن و باقی حدس را کنار بگذار. اگر همهٔ حدس پذیرفته شد و مسیر هنوز ادامه داشت، یک نماد بعدیِ هدف هم اضافه میکنیم. در پایان مسیر، نماد اضافه نداریم.
چهار حالت را با چشم دنبال کنیم
| پیشوند قبلی | حدس | پذیرفته از حدس | افزودهٔ هدف | خروجی تازه |
|---|---|---|---|---|
| خالی | ABX | AB | C | ABC |
| خالی | ABC | ABC | D | ABCD |
| خالی | XBC | هیچ | A | A |
| ABCD | EFG | EFG | هیچ؛ پایان | ABCDEFG |
در ردیف سوم، وجود BوCدر ادامهٔ حدس کمکی نمیکند: نخستین نماد رد شده و ادامه بر زمینهٔ نپذیرفته ساخته شده است. پس نباید از میان حدس، حرفهای ظاهراً درستِ بعدی را جدا انتخاب کنیم. در ردیف دوم نیز Dاز پیشنهاددهنده نیامده است؛ نقش کنترلکننده را با تولیدکنندهٔ حدس مخلوط نکنید.
کد دقیقاً چه چیزی را آزمایش کرده است؟
چهار ردیف واقعاً با Python اجرا شدند؛ خروجی و پیشوندبودن آنها نسبت به مسیر هدف کنترل شد. حدس خالی، پیشوند ناسازگار یا تمامشده و حدسِ بلندتر از باقی مسیر در قرارداد تابع مجاز نیستند. این کنترل، صحت یک پیادهسازی productionیا تطابق توزیع نمونهگیری را اثبات نمیکند. حالت samplingبه قواعد احتمالاتی پذیرش و اصلاح نیاز دارد؛ برابری سادهٔ حروف این تمرین را به آن تعمیم ندهید.
چه وقت باید سود واقعی را بسنجیم؟
هزینهٔ ساخت حدس، میزان پذیرش، طول پاسخ و اجرای مدل هدف در محیط واقعی مهماند. پیشنهاددهندهٔ ضعیف میتواند حدسهای زیادی بسازد که رد شوند. پیشنهاددهندهٔ سنگین هم ممکن است صرفهٔ محاسبه را کم کند. از پذیرش سه حرفِ مثال، ضریب افزایش سرعت یا کاهش هزینهٔ سرویس نتیجه نمیگیریم.
برای آزمون واقعی، نسخهٔ موتور، مدل هدف، پیشنهاددهنده، سازگاری tokenizer، تنظیم تولید و ورودیهای یکسان را ثبت کنید. سپس کیفیت خروجی و زمان کامل را با روش پایه مقایسه کنید. انتخاب مدل محلی به سازگاری، مجوز و کاربرد میپردازد؛ صرف انتخاب مدل کوچکتر، پشتیبانی همین روش را ثابت نمیکند.
قدم بعد
در CSV، ابتدا حدس را بدون اجرای کد تغییر دهید و خروجی مورد انتظار را بنویسید؛ سپس با تابع مقایسه کنید. اگر سؤال شما یادگیری مبانی است، از مسیر آموزش هوش مصنوعی ادامه دهید. این مثال دربارهٔ سازوکار تولید است و معماری داخلی یا سرعت محصولات اپرا را اعلام نمیکند.
فایل تمرین و منبع
کد محلی تأیید پیشوند در چهار حالت ساختگی · چهار مسیر حدس، پذیرش و اصلاح؛ مدل واقعی اجرا نشده
منابع در ۳ نوامبر ۲۰۲۶ خوانده شدند؛ این تاریخ، تاریخ انتشار منبع نیست. مثالها و فایلهای این راهنما آموزشی و ساختهٔ تحریریهاند.