লসলেস, কিন্তু বিনামূল্যে নয়: কখন Speculative Decoding কার্যকর হয়
Speculative Decoding হলো LLM inference-এর একটি আলোচিত বিষয়।
DSpark-এর মতো কোম্পানিগুলো ৬০% থেকে ৮৫% পর্যন্ত গতি বৃদ্ধির দাবি করে। Google-ও এই পদ্ধতি সম্পর্কে গবেষণা প্রকাশ করে।
ধারণাটি সহজ: একটি ছোট draft model টোকেনগুলো লেখে। একটি বড় target model একবারে সেগুলো যাচাই করে। এটি জেনারেশন প্রক্রিয়াকে দ্রুততর করে।
কিন্তু একজন ইঞ্জিনিয়ার হিসেবে, আপনাকে দুটি প্রশ্ন করতে হবে:
- এটি কি hallucination বৃদ্ধি করে?
- অতিরিক্ত মডেলটি কি compute অপচয় করে?
চলুন তথ্যগুলো দেখে নেওয়া যাক।
প্রথমত, গুণমান লসলেস (lossless) থাকে। target model প্রতিটি টোকেন যাচাই করে। যদি draft model ৩ নম্বর টোকেনে ভুল করে, তবে target model সেটি প্রত্যাখ্যান করে এবং সেই বিন্দু থেকে পুনরায় জেনারেট করে। এর আউটপুট গাণিতিকভাবে শুধুমাত্র target model-এর আউটপুটের মতোই হয়। এটি hallucination বাড়িয়ে দেয় না।
দ্বিতীয়ত, এর খরচ বাস্তব। একটি বড় মডেলের তুলনায় একটি ছোট মডেল চালানো অনেক কম খরচসাপেক্ষ। একটি 7B মডেলের খরচ একটি 70B মডেলের তুলনায় ১/১০ অংশ হতে পারে।
Speculative Decoding হলো একটি বাজি।
- যদি এটি পুরোপুরি সফল হয়, তবে আপনি প্রচুর compute সাশ্রয় করতে পারেন।
- যদি এটি পুরোপুরি ব্যর্থ হয়, তবে আপনি লোকসান করবেন। আপনাকে draft model-এর পাশাপাশি অতিরিক্ত target model-এর ধাপগুলোও চালাতে হবে। এটি standard inference-এর চেয়েও ধীরগতির।
জিততে হলে, আপনাকে এই নিয়মটি মেনে চলতে হবে: গ্রহণ করা টোকেনের গড় সংখ্যা অবশ্যই ১ এবং draft model-এর overhead-এর যোগফলের চেয়ে বেশি হতে হবে।
যদি আপনার draft model কোনো নির্দিষ্ট কাজে দক্ষ না হয়, তবে আপনার acceptance rate কমে যাবে। এটি যদি খুব বেশি কমে যায়, তবে Speculative Decoding আপনার সিস্টেমকে আরও ধীরগতির করে তুলবে।
আপনি এটি ব্যবহার করবেন কি না তা কীভাবে সিদ্ধান্ত নেবেন:
- আপনার acceptance rate পরিমাপ করুন। সাধারণ (generic) benchmarks-এর ওপর ভরসা করবেন না। আপনার নিজস্ব ডেটা এবং টাস্ক ব্যবহার করুন।
- আপনার টাস্কের ধরন পরীক্ষা করুন। কোড কমপ্লিশনের মতো অনুমানযোগ্য (predictable) কাজের জন্য এটি ব্যবহার করুন। সৃজনশীল লেখার মতো অনিশ্চিত (unpredictable) কাজের ক্ষেত্রে এটি এড়িয়ে চলুন।
- আপনার p99 latency পর্যবেক্ষণ করুন। পুরোপুরি ব্যর্থ হলে latency-তে হঠাৎ বৃদ্ধি (spike) ঘটে।
সেরা অপ্টিমাইজেশন সেটি নয় যা সবসময় জয়ী হয়। বরং সেটিই সেরা যা আপনি জানেন কখন বন্ধ করতে হবে।
যখন hit rate বেশি থাকে তখন এটি ব্যবহার করুন। যখন hit rate কমে যায় তখন এটি ব্যবহার করা বন্ধ করুন।
Optional learning community: https://t.me/GyaanSetuAi