কীভাবে আমি নিজেকে ধোঁকা না দিয়ে LLM প্রম্পট A/B টেস্ট করি

আমি একবার একটি সাপোর্ট অ্যাসিস্ট্যান্ট তৈরি করেছিলাম এবং ভেবেছিলাম আমি একটি দারুণ কিছু তৈরি করেছি। আমি ত্রিশটি টেস্ট কেস চালিয়েছিলাম, নতুন প্রম্পটটি বেশি স্কোর করেছিল এবং আমি সেটি রিলিজ করে দিয়েছিলাম।

ছয় ঘণ্টা পর, সাপোর্ট কিউ (queue) অভিযোগ দিয়ে ভরে গেল। আমাকে সেই রাতেই পরিবর্তনটি রোল ব্যাক (roll back) করতে হলো।

সেই উচ্চ স্কোরটি ছিল ভুয়া। প্রকৃত উন্নতি এবং ভাগ্যের পার্থক্য বোঝার জন্য ত্রিশটি উদাহরণ যথেষ্ট নয়। সেই সংখ্যাটি ছিল কেবল একটি নয়েজ (noise)।

সেই ভুলটি না করে কীভাবে আপনি প্রম্পট টেস্ট করবেন তা নিচে দেওয়া হলো।

  • ছোট টেস্ট শুধুমাত্র বড় পরিবর্তনগুলো ধরতে পারে। আপনি যদি সামান্য উন্নতি খুঁজে পেতে চান, তবে আপনার আরও অনেক বেশি উদাহরণ প্রয়োজন। একটি অতি ক্ষুদ্র পরিবর্তন খুঁজে পেতে আপনার হয়তো এক হাজারেরও বেশি উদাহরণ লাগতে পারে।

  • উভয় ভার্সনের জন্য একই প্রশ্ন ব্যবহার করুন। ভার্সন A-কে এক সেট প্রশ্ন এবং ভার্সন B-কে অন্য সেট প্রশ্ন দেবেন না। কিছু প্রশ্ন অন্যগুলোর তুলনায় কঠিন হয়। যদি ভার্সন B সহজ প্রশ্নগুলো পায়, তবে সেটি খারাপ হওয়া সত্ত্বেও ভালো মনে হতে পারে। উভয় ভার্সনকেই ঠিক একই সেট প্রশ্নের মধ্য দিয়ে নিয়ে যান।

  • শুধুমাত্র গড় (average) নয়, রেঞ্জ (range)-এর দিকে নজর দিন। গড় আপনাকে এটি বলে দেয় না যে জয়টি কতটা বড়। সম্ভাব্য ক্ষুদ্রতম এবং বৃহত্তম উন্নতির একটি রেঞ্জ রিপোর্ট করুন। যদি সেই রেঞ্জের মধ্যে শূন্য অন্তর্ভুক্ত থাকে, তবে সেটি রিলিজ করবেন না।

  • সঠিক স্কোরিং পদ্ধতি বেছে নিন। • পরম মানের (absolute quality) জন্য একটি চেকলিস্ট ব্যবহার করুন। • টোন বা উপযোগিতার মতো অস্পষ্ট মানের (fuzzy quality) জন্য পাশাপাশি তুলনা (side-by-side comparison) ব্যবহার করুন।

  • একাধিক ভার্সনের জন্য একটি bandit ব্যবহার করুন। যদি আপনার তিনটি বা তার বেশি ভার্সন থাকে এবং আপনি ব্যবহারকারীর বিরক্তি কমাতে চান, তবে একটি bandit ব্যবহার করুন। এটি শিখতে শিখতে জয়ী ভার্সনে আরও বেশি ট্রাফিক পাঠায়। এটি ব্যবহারকারীদের কয়েক সপ্তাহ ধরে খারাপ উত্তর দেখার হাত থেকে রক্ষা করে।

এই ফাঁদগুলো এড়িয়ে চলুন:

  • রেঞ্জ ছাড়া গড় তুলনা করা।
  • বিভিন্ন ভার্সনের জন্য ভিন্ন ভিন্ন প্রশ্নের সেট ব্যবহার করা।
  • টেস্ট চলাকালীন আপনার স্কোরার পরিবর্তন করা।
  • সংখ্যাগুলো ভালো দেখামাত্রই টেস্ট থামিয়ে দেওয়া।
  • একসাথে অনেক বেশি মেট্রিক্স পর্যবেক্ষণ করা। এটি একটি ভুয়া জয় দেখার সম্ভাবনা বাড়িয়ে দেয়।
  • মানুষের বিচারবুদ্ধির (human judgment) সাথে যাচাই করার আগে একটি স্কোরারকে বিশ্বাস করা।

টেস্ট চালানো কঠিন কাজ নয়। আসল কঠিন কাজ হলো কখন ফলাফলটি প্রকৃত তা বোঝা।

Source: https://dev.to/kartik-nvjk/how-i-ab-test-llm-prompts-without-fooling-myself-528f

Optional learning community: https://t.me/GyaanSetuAi