প্রায়ই ধরে নেওয়া হয় যে স্পেকুলেটিভ ডিকোডিং দ্রুত কারণ এটি প্রতি টোকেনে কম কাজ করে। এটি সত্য নয়। একই সিকোয়েন্সের জন্য মোট ফ্লোটিং পয়েন্ট অপারেশন (FLOPs) আসলে বেড়ে যায়। গতি আসে GPU যে ধরনের কাজ সম্পাদন করে তা বদলানো থেকে।
একবারে একটি করে টোকেন ডিকোড করা সাধারণত মেমোরি-বাউন্ড হয়। প্রতিটি টোকেনের জন্য, GPU-কে গ্লোবাল মেমোরি থেকে সমস্ত সক্রিয় মডেল প্যারামিটার, যেমন Qwen3.5-27B-এর 27B প্যারামিটার, স্ট্রিম করতে হয়। এই সময়ে কম্পিউটের বড় অংশ অলস পড়ে থাকে। হাজার হাজার টোকেনের বড় ব্যাচ ডিকোডিং এর বিপরীত: এটি কম্পিউট-বাউন্ড, যেখানে GPU টেনসর অপারেশনে ব্যস্ত থাকে।
স্পেকুলেটিভ ডিকোডিং একটি ছোট ড্রাফট মডেল ব্যবহার করে সম্ভাব্য টোকেনের একটি সিকোয়েন্স প্রস্তাব করে, যা বড় মডেল তখন একটি ফরওয়ার্ড পাসে যাচাই করে। ছোট ব্যাচ সাইজে, এটি অন্যথায় নষ্ট হওয়া কম্পিউটকে অগ্রগতিতে রূপান্তর করে। পাঁচটি সিকোয়েন্স প্রতিটি এক টোকেন করে এগিয়ে নেওয়ার বদলে, একটি সিকোয়েন্স একসাথে পাঁচটি টোকেন এগিয়ে নিতে পারে, মোট কাজ একই থাকে।
এই কৌশলের সীমাবদ্ধতা আছে। গ্রহণের হার 100%-এর নিচে হলে, প্রতিটি প্রত্যাখ্যাত টোকেন নষ্ট কাজ। উচ্চ থ্রুপুটে, যখন GPU আগে থেকেই কম্পিউট-বাউন্ড, স্পেকুলেশন সুবিধা ছাড়াই খরচ যোগ করে, এজন্যই vLLM এটি বন্ধ করতে --speculative-disable-by-batch-size সেটিং দেয়।
উৎস: Hacker News · সারাংশ: HeadlinesBriefing