একটি গবেষণা দল একটি রাউটার তৈরি করেছিল যা সিদ্ধান্ত নিতে পারে যে একটি সস্তা ল্যাঙ্গুয়েজ মডেল একটি কোডিং রিকোয়েস্ট সামলাতে পারবে কি না, যার লক্ষ্য ছিল ইনফারেন্স (inference) খরচ কমানো। কিন্তু রাউটারটি একটি “নেভার-এসকেলেট” (never-escalate) বেসলাইনকেও ছাড়িয়ে যেতে পারেনি। এই ব্যর্থতা দেখায় কেন নির্ভুলতা-কেন্দ্রিক মেট্রিক্সগুলো ক্যাসকেড (cascade) ব্যবস্থাকে বিভ্রান্ত করে এবং এমন কিছু সংকেতের দিকে নির্দেশ করে যা প্রকৃতপক্ষে কাজের জটিলতা বুঝতে পারে।
রাউটারটি কেন গুরুত্বপূর্ণ ছিল
মডেল ক্যাসকেড প্রতিটি রিকোয়েস্টকে সবচেয়ে ছোট মডেলের কাছে পাঠায় যা সেটি সঠিকভাবে উত্তর দিতে পারে। যদি রাউটার একটি সহজ প্রম্পট একটি সস্তা মডেলের কাছে পাঠায়, তবে সিস্টেমটি একটি বড় মডেলের জন্য প্রয়োজনীয় ব্যয়বহুল কম্পিউট (compute) বাদ দিয়ে দেয়। দলটি ৫৩৯টি বাস্তব কোডিং টাস্কের ওপর একটি রাউটার প্রশিক্ষণ দিয়েছিল—যার মধ্যে ৪২৮টি সহজ এবং ১১১টি কঠিন—এই প্রত্যাশায় যে এটি শিখতে পারবে কখন সস্তা মডেলটি যথেষ্ট হবে।
যে সংখ্যাগুলো লক্ষ্যমাত্রা পূরণে ব্যর্থ হয়েছে
- Held-out AUC (area under the ROC curve): ০.৫৯৪
- ৫-ফোল্ড ক্রস-ভ্যালিডেশন রেঞ্জ: ০.৫৫ – ০.৫৭
- সেরা থ্রেশহোল্ড: “নেভার-এসকেলেট” (never escalate) পলিসির সাথে মিলে যায়
Held-out AUC ছিল ০.৫৯৪ এবং ক্রস-ভ্যালিডেশন রেঞ্জ ছিল ০.৫৫ থেকে ০.৫৭, যার অর্থ ক্লাসিফায়ারটি খুব সামান্যই সহজ এবং কঠিন কেসগুলোর মধ্যে পার্থক্য করতে পারে। যখন সর্বোত্তম থ্রেশহোল্ড এমন একটি পলিসি তৈরি করে যা কখনোই ব্যয়বহুল মডেলটি ব্যবহার করে না, তখন রাউটারটি কোনো বাড়তি ভ্যালু যোগ করে না। এটি সিদ্ধান্ত গ্রহণকারীর পরিবর্তে একটি কনস্ট্যান্ট প্রেডিক্টর হিসেবে কাজ করে।
পরীক্ষাগুলোতে যা যাচাই করা হয়েছে
গবেষকরা তিনটি ফিচার সেট তুলনা করেছেন:
| ফিচার সেট | AUC |
|---|---|
| ১১টি সাধারণ সারফেস ফিচার (যেমন, টোকেন সংখ্যা, কিওয়ার্ডের উপস্থিতি) | ০.৬১০ |
| ১০২৪-ডাইমেনশনাল প্রম্পট এমবেডিং (semantic vector) | ০.৫৫২ |
| উভয়ই সম্মিলিতভাবে | ০.৬০৯ |
আশ্চর্যের বিষয় হলো, হালকা সারফেস ফিচারগুলো উচ্চ-মাত্রিক সিম্যান্টিক এমবেডিংকে ছাড়িয়ে গেছে। এমবেডিংটি প্রম্পটের বিষয়বস্তু বুঝতে পারলেও এর অন্তর্নিহিত জটিলতা বুঝতে পারেনি। সস্তা মডেলের ড্রাফট (draft) রাউটারে ইনপুট হিসেবে দিলে AUC বেড়ে ০.৬৪০ হয়, যা নির্দেশ করে যে জেনারেশনের সময় আসা সংকেতগুলো শুধুমাত্র প্রম্পটে থাকা সংকেতগুলোর চেয়ে বেশি তথ্যবহুল।
দুটি মৌলিক ভুল ধারণা
১. নির্ভুলতা সঠিক মাপকাঠি নয়
একটি রাউটারকে কেবল সঠিকতা অনুমান করলেই হবে না, বরং একটি সাধারণ (naïve) পলিসির তুলনায় কস্ট-অ্যাকিউরেসি ট্রেড-অফ উন্নত করতে হবে। যদি এটি “নেভার-এসকেলেট” পলিসিকে ছাড়িয়ে না যেতে পারে, তবে এর কাঙ্ক্ষিত নির্ভুলতা যাই হোক না কেন, এটি কোনো খরচ সাশ্রয় করতে পারে না। AUC-এর মতো প্রথাগত মেট্রিক্সগুলো ক্যাসকেডের অর্থনৈতিক দিকটি উপেক্ষা করে।
২. “অলওয়েজ-এসকেলেট” (Always escalate) কোনো ঊর্ধ্বসীমা নয়
পরীক্ষায় ধরে নেওয়া হয়েছিল যে ব্যয়বহুল মডেলটি নির্ভুল বা ত্রুটিহীন, এবং “সবসময় বড় মডেল ব্যবহার করা”-কে একটি আপার বাউন্ড হিসেবে ধরা হয়েছিল। বাস্তবে দেখা গেছে, বড় মডেলটি অনেক সময় এমন উত্তর ভুল করে ফেলে যা সস্তা মডেলটি সঠিকভাবে দিতে পেরেছিল। একটি নিখুঁত রাউটার, যা জানে কখন সস্তা মডেলেই থাকা উচিত, তা নির্বাচিত কস্ট মেট্রিক অনুযায়ী “অলওয়েজ-এসকেলেট” বেসলাইনকে প্রায় ৪.২ পয়েন্ট ব্যবধানে হারিয়ে দিতে পারে। এই ব্যবধান দেখায় যে ব্যয়বহুল মডেলের পারফরম্যান্সের ঊর্ধ্বসীমা অনুমানের চেয়ে কম।
উন্নত রাউটিং সিগন্যাল ডিজাইন করা
ফলাফলগুলো তিনটি ব্যবহারিক দিক নির্দেশ করে:
- জেনারেশন-টাইম কিউ (generation-time cues) অন্তর্ভুক্ত করুন। সস্তা মডেলের মধ্যবর্তী আউটপুট (এর ড্রাফট) রাউটারে প্রদান করলে সেই জটিলতা ধরা পড়ে যা শুধুমাত্র প্রম্পট থেকে বোঝা সম্ভব নয়।
- টাস্ক-নির্দিষ্ট সারফেস ফিচারকে অগ্রাধিকার দিন। সাধারণ সিম্যান্টিক এমবেডিংয়ের চেয়ে সহজ মেট্রিক্স—যেমন দৈর্ঘ্য, নির্দিষ্ট অপারেটরের উপস্থিতি বা কোড-স্টাইল মার্কার—বেশি কার্যকর হতে পারে।
- কস্ট-অ্যাওয়ার মেট্রিক্স দিয়ে সাফল্য পরিমাপ করুন। শুধুমাত্র নির্ভুলতা বা AUC-এর পরিবর্তে, লক্ষ্যমাত্রা অনুযায়ী গুণমান বজায় রেখে কতগুলো ব্যয়বহুল কল এড়ানো সম্ভব হয়েছে তা মূল্যায়ন করুন।
সারকথা: একটি রাউটার যা শুধুমাত্র নির্ভুলতার জন্য অপ্টিমাইজ করা হয়, তা খরচ কমানোর নিশ্চয়তা দিতে পারে না; কার্যকর রাউটিংয়ের জন্য জেনারেশন-টাইম প্রমাণ এবং কস্ট-অ্যাওয়ার মূল্যায়নের প্রয়োজন।
