LLM অ্যাপ মূল্যায়ন: test set, metric ও LLM judge
Test ছাড়া প্রতিটি prompt বদল আন্দাজ। ছোট মূল্যায়ন সেট বানিয়ে নিরাপদে উন্নত করতে শিখুন।

LLM অ্যাপ অনির্ণায়ক এবং আউটপুট মুক্ত লেখা, তাই মানুষ প্রায়ই "demo-তে ঠিকই লাগল" দিয়ে বিচার করে। Prompt, model বা retrieval সেটিং বদলালেই এটা ভেঙে পড়ে। মূল্যায়ন (eval) হলো পুনরাবৃত্তিযোগ্য test দিয়ে মান মাপার অভ্যাস, AI আচরণের unit test-এর মতো।
ধাপ ১: test set বানান
ব্যবহারকারী যা জিজ্ঞেস বা পাঠায় তার আসল উদাহরণ জমান:
- ২০ থেকে ৫০টি দিয়ে শুরু করে বাড়ান। ছোট, ভালো সেট না থাকার চেয়ে অনেক ভালো।
- সাধারণ ক্ষেত্র, কঠিন ক্ষেত্র, প্রান্তিক ক্ষেত্র এবং যা প্রত্যাখ্যান করা উচিত অন্তর্ভুক্ত করুন।
- Production-এ পাওয়া প্রতিটি bug বা খারাপ উত্তর যোগ করুন, যাতে তা আর ফেরে না।
- প্রতিটির জন্য ইনপুট ও ভালো ফল কেমন তা লিখে রাখুন: প্রত্যাশিত উত্তর, যে মূল তথ্য থাকতেই হবে, প্রয়োজনীয় ফরম্যাট, বা প্রত্যাশিত উৎস নথি।
- যার বিরুদ্ধে tune করেন না এমন আলাদা held-out সেট রাখুন, যাতে prompt test-এ overfit না হয়।
ব্যক্তিগত data-য় সাবধান: test উদাহরণ থেকে ব্যক্তিগত তথ্য সরান বা বেনামী করুন।
ধাপ ২: স্কোর করার উপায় বাছুন
সঠিক বা প্রোগ্রামভিত্তিক পরীক্ষা (সম্ভব হলে সেরা)
- আউটপুট বৈধ JSON এবং schema-র সাথে মেলে।
- প্রয়োজনীয় field বা বাক্যাংশ আছে, নিষিদ্ধটি নেই।
- শ্রেণি লেবেল প্রত্যাশিতটির সমান।
- কোড compile হয় ও unit test পাস করে।
- উদ্ধৃত উৎস ID উদ্ধার করা নথির মধ্যে আছে।
- দৈর্ঘ্য, ভাষা ও ফরম্যাট নিয়ম।
এগুলো সস্তা, দ্রুত ও নির্ভরযোগ্য।
রেফারেন্সের সাথে তুলনা
সাদৃশ্য মাপক দিয়ে প্রত্যাশিত উত্তরের সাথে মেলান। ছোট তথ্যভিত্তিক উত্তরে কাজের, কিন্তু খোলা লেখায় দুর্বল কারণ সঠিক বাক্যের অনেক রূপ।
LLM-as-judge
একটি (সাধারণত শক্তিশালী) model দিয়ে rubric অনুযায়ী উত্তর গ্রেড করান, যেমন "উত্তর কি দেওয়া context দ্বারা সমর্থিত? হ্যাঁ বা না, কারণসহ।"
ভালোভাবে করার টিপ:
- "মান রেট করো" নয়, স্পষ্ট পাস/ফেল মানদণ্ডসহ নির্দিষ্ট rubric লিখুন।
- একবারে একটি দিক বিচার করান (সঠিকতা, faithfulness, সুর)।
- Judge-কে স্কোরের আগে কারণ দিতে বলুন।
- একটি নমুনায় মানুষের লেবেলের সাথে judge মিলিয়ে দেখুন। Judge-এর পক্ষপাত থাকে, যেমন লম্বা উত্তর বা নিজের ধরন পছন্দ করা।
- সম্ভব হলে ভিন্ন বা শক্তিশালী model judge হিসেবে ব্যবহার করুন এবং তার prompt স্থির রাখুন।
মানুষের পর্যালোচনা
বিষয়ভিত্তিক মানের জন্য এখনো সোনার মান। নিয়মিত নমুনা পর্যালোচনা করুন এবং স্বয়ংক্রিয় স্কোর ক্যালিব্রেট করতে ব্যবহার করুন।
ধাপ ৩: সঠিক জিনিস মাপুন
ভিন্ন অ্যাপের জন্য:
- Classification বা extraction: accuracy, precision ও recall।
- RAG: retrieval কি সঠিক অংশ এনেছে? উত্তর কি তার প্রতি বিশ্বস্ত? বলা উচিত হলে কি "জানি না" বলে?
- Agent: কাজ শেষ করেছে? সঠিক টুল ব্যবহার করেছে? নিষিদ্ধ কাজ এড়িয়েছে? ধাপ ও খরচের সীমায় থেকেছে?
- নিরাপত্তা: আপনার test ক্ষেত্রে কি prompt injection প্রতিরোধ ও ক্ষতিকর অনুরোধ প্রত্যাখ্যান করে?
- পরিচালনা: latency, token ব্যবহার ও প্রতি request-এর খরচ।
শুধু গড় নয়, ব্যর্থতা দেখুন। কারণ অনুযায়ী দল করে বুঝুন কী ঠিক করতে হবে।
ধাপ ৪: স্বয়ংক্রিয়ভাবে eval চালান
- Eval script আপনার repository-তে রাখুন এবং prompt, model বা retrieval বদলালেই CI test-এর মতো চালান।
- Threshold ঠিক করুন: মান কমলে বদল আটকান।
- সময়ের সাথে ফল জমান যাতে প্রবণতা দেখতে ও সংস্করণ তুলনা করতে পারেন।
- আউটপুট বদলায় বলে গুরুত্বপূর্ণ ক্ষেত্র কয়েকবার বা কম temperature-এ চালান এবং একক রান নয়, পাস হার দেখুন।
ধাপ ৫: production-এ নজর রাখুন
Offline test আসল ব্যবহারকারীর সবকিছু ঢাকতে পারে না।
- ইনপুট, আউটপুট, উদ্ধার করা উৎস ও টুল কল log করুন (গোপনীয়তা নিয়ন্ত্রণসহ)।
- Thumbs up/down ও লিখিত মতামত নিন।
- আসল কথোপকথনের নমুনা পর্যালোচনা করুন এবং খারাপগুলো test set-এ যোগ করুন।
- Drift লক্ষ্য করুন: নতুন বিষয়, provider model সংস্করণ বদলানো, বা data উৎস বদলানো।
- Error হার, latency ও খরচ বাড়লে alert দিন।
সাধারণ ভুল
- Test set নেই, শুধু demo।
- এত ছোট বা সহজ test set যেখানে সবকিছু পাস করে।
- যে উদাহরণে রিপোর্ট করেন সেগুলোর বিরুদ্ধেই prompt tune করা।
- মানুষের সাথে না মিলিয়ে LLM judge বিশ্বাস করা।
- শুধু গড় দেখে গুরুতর ব্যর্থতা উপেক্ষা।
- আসল ব্যর্থতা দিয়ে সেট কখনো হালনাগাদ না করা।
মূল কথা: আসল উদাহরণের ছোট test set দিয়ে শুরু করুন, প্রোগ্রামভিত্তিক পরীক্ষা পছন্দ করুন, পরিষ্কার rubric ও মানুষের নমুনা পরীক্ষাসহ LLM judge ব্যবহার করুন, প্রতিটি বদলে eval চালান, এবং production-এর ব্যর্থতা test-এ ফিরিয়ে দিন।
AI ও LLM সিরিজ, পর্ব ২ (মান, agent ও খরচ): 2 নম্বর (মোট 5)। আগের লেখা: Fine-tuning বনাম RAG বনাম prompting: কোনটি ব্যবহার করবেন?.


