ইভ্যালুয়েশন ইঞ্জিনিয়ারিং (মডেল মাপার কাজ)
আপনার AI অ্যাপ ভালো কি না, বুঝবেন কীভাবে? শিখবেন: নির্দিষ্ট উদাহরণের সেট দিয়ে টেস্ট করা, LLM-কে বিচারক বানানো, RAG আর এজেন্ট মাপা, টেস্ট ডেটা তৈরি করা, আর লঞ্চের পর আসল ট্রাফিকের ওপর নজর রাখা।
এই পাতায়
ইভ্যালুয়েশন ইঞ্জিনিয়ারিং: মডেল মাপার কাজ
মাপতে না পারলে উন্নতি করা যায় না। ইভ্যালুয়েশন ইঞ্জিনিয়ারিং হলো "মডেল আজ খারাপ লাগছে" কথাটাকে সংখ্যায় বদলানোর কাজ। তারপর সেই সংখ্যাকে CI-র একটা সিগন্যাল বানানো হয়, যা প্রতিটা প্রম্পট বা মডেল বদলানোর আগে পরীক্ষা করে।
অনুশীলন · ৪টি টাস্ক
যেকোনো ফ্রি AI চ্যাট খুলুন: ChatGPT · Claude · Gemini
অনুশীলন কীভাবে করবেন
- নতুন চ্যাট মানে একদম নতুন কথোপকথন, আগের কোনো হিস্ট্রি নেই। ChatGPT, Claude বা Gemini-তে New chat-এ ক্লিক করুন। সাধারণত এটা উপরে বাঁ দিকে থাকে।
- একই চ্যাট মানে: যে চ্যাট খোলা আছে, সেখানেই লিখতে থাকুন। আগে যা পাঠিয়েছেন, AI তা মনে রাখে।
- প্রম্পট ব্যবহার করতে: কপি-তে ক্লিক করুন, চ্যাটের মেসেজ বক্সে ক্লিক করুন, পেস্ট করুন (Ctrl+V, বা ফোনে চেপে ধরে রাখুন), তারপর Enter চাপুন।
- AI-এর উত্তর প্রতিবার একটু আলাদা হয়। আপনার উত্তর উদাহরণের সাথে হুবহু মিলতে হবে না। একই ধারণা আছে কি না, সেটা দেখুন।
- শুধু বানানো ডেটা ব্যবহার করুন। নিজের বা অন্যের ব্যক্তিগত তথ্য চ্যাটে পেস্ট করবেন না।
টাস্ক ১
গোল্ডেন সেট দিয়ে ভাঙা প্রম্পট ধরুন
এটা কেন দরকার
সাপোর্ট বট বানালে আপনি তার প্রম্পট অনেকবার বদলাবেন। প্রতিটা বদল একটা কেস ঠিক করতে পারে, কিন্তু চুপচাপ আরেকটা কেস ভেঙে দিতে পারে। একটা ফিক্সড টেস্ট তালিকা, যার নাম গোল্ডেন সেট, সেটা সাথে সাথে দেখিয়ে দেয়।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, চ্যাটে পেস্ট করে Enter চাপুন। এটা ৯টা সাপোর্ট টিকেটকে লেবেলে ভাগ করবে। (লেবেলগুলো ইংরেজিতে রাখা হয়েছে, কারণ নিচে সেগুলো মিলিয়ে দেখব।)
প্রম্পট তুমি একজন support ticket classifier। প্রতিটা ticket-কে ঠিক একটা label দাও: BILLING, BUG, ACCOUNT, বা OTHER। একটা numbered list-এ উত্তর দাও। শুধু নম্বর আর label লেখো। Tickets: 1. March-এর plan-এর জন্য আমার কাছ থেকে দুইবার টাকা কাটা হয়েছে। 2. Firefox-এ export বাটন চাপলে একটা ফাঁকা পাতা দেখায়। 3. আমি password ভুলে গেছি, তাই login করতে পারছি না। 4. ঢাকায় কি আপনাদের কোনো অফিস আছে? 5. আমার invoice-এ কোম্পানির নাম ভুল এসেছে। 6. 10 MB-এর চেয়ে বড় file upload করলে app crash করে। 7. আমার profile-এর email address টা বদলে দিন। 8. নতুন dashboard টা আমার খুব ভালো লেগেছে! 9. টাকা দেওয়ার পরও confirmation email আসেনি।
আপনি দেখবেন: ৯টা লেবেলের একটা নম্বরযুক্ত তালিকা, প্রতিটা টিকেটের জন্য একটা করে।
উদাহরণ উত্তর
1. BILLING 2. BUG 3. ACCOUNT 4. OTHER 5. BILLING 6. BUG 7. ACCOUNT 8. OTHER 9. BUG
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই চ্যাটআপনার তালিকাটা এই আনসার কী-র সাথে মেলান। কয়টা লেবেল মিলেছে গুনুন। Key: ১ BILLING, ২ BUG, ৩ ACCOUNT, ৪ OTHER, ৫ BILLING, ৬ BUG, ৭ ACCOUNT, ৮ OTHER, ৯ BUG।
আপনি দেখবেন: বেশিরভাগ চ্যাটে সবগুলো মেলে, মানে স্কোর 9-এর মধ্যে ৯। একটা ভুল হলেও সমস্যা নেই। আপনার স্কোর লিখে রাখুন।
ধাপ ৩
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। কাজ একই, শুধু ইমেইল নিয়ে একটা নতুন নিয়ম আছে।
প্রম্পট তুমি একজন support ticket classifier। প্রতিটা ticket-কে ঠিক একটা label দাও: BILLING, BUG, ACCOUNT, বা OTHER। নিয়ম: কোনো ticket-এ email-এর কথা থাকলে সবসময় BUG লেখো, কারণ email-এর সমস্যা সাধারণত delivery bug। একটা numbered list-এ উত্তর দাও। শুধু নম্বর আর label লেখো। Tickets: 1. March-এর plan-এর জন্য আমার কাছ থেকে দুইবার টাকা কাটা হয়েছে। 2. Firefox-এ export বাটন চাপলে একটা ফাঁকা পাতা দেখায়। 3. আমি password ভুলে গেছি, তাই login করতে পারছি না। 4. ঢাকায় কি আপনাদের কোনো অফিস আছে? 5. আমার invoice-এ কোম্পানির নাম ভুল এসেছে। 6. 10 MB-এর চেয়ে বড় file upload করলে app crash করে। 7. আমার profile-এর email address টা বদলে দিন। 8. নতুন dashboard টা আমার খুব ভালো লেগেছে! 9. টাকা দেওয়ার পরও confirmation email আসেনি।
আপনি দেখবেন: ৯টা লেবেলের একটা নম্বরযুক্ত তালিকা। টিকেট ৭ (email address বদলাও) এবার প্রায়ই BUG পায়।
উদাহরণ উত্তর
1. BILLING 2. BUG 3. ACCOUNT 4. OTHER 5. BILLING 6. BUG 7. BUG 8. OTHER 9. BUG
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৪
একই চ্যাটএই তালিকাটা একই আনসার কী-র সাথে মেলান। কয়টা মিলেছে গুনুন। কোন টিকেট এখন ভুল, সেটা খুঁজে বের করুন।
আপনি দেখবেন: আগের চেয়ে কম স্কোর, যেমন 9-এর মধ্যে ৮। টিকেট ৭ হওয়ার কথা ACCOUNT, কিন্তু নতুন নিয়মে সেটা BUG হয়ে গেছে।
এইমাত্র কী হলো
গোল্ডেন সেট হলো এমন একটা ফিক্সড ইনপুট তালিকা, যার ঠিক উত্তর আগে থেকে জানা। একটা বদলের আগে আর পরে আপনি একই তালিকা চালিয়েছেন। নতুন ইমেইল নিয়ম টিকেট ৯ ঠিক করেনি, কারণ ওটা আগেই ঠিক ছিল। কিন্তু টিকেট ৭ ভেঙে দিয়েছে। রিগ্রেশন মানে আগে যা ঠিক ছিল, বদলের পর সেটা ভেঙে যাওয়া।
কাজ শেষ, যখন একই ৯টা টিকেটের জন্য আপনার কাছে দুটো স্কোর আছে, আর আপনি জানেন কোন টিকেট খারাপ হয়েছে।
নিজেকে যাচাই করুনপ্রতিটা প্রম্পট বদলের পরে টিমগুলো একই গোল্ডেন সেট কেন চালায়?উত্তর দেখুন
সেটটা ফিক্সড, তাই স্কোরগুলো তুলনা করা যায়। বদলের ফলে আগে-ঠিক-থাকা কোনো কেস ভাঙলে স্কোর কমে যায় আর আপনি দেখতে পান। একটা হাতে-করা টেস্ট এটা ধরতে পারত না। স্কোর কমলে CI-তে রিলিজ আটকেও দেওয়া যায়।
আরেকটু কঠিন করে দেখুন
দশ নম্বর একটা টিকেট যোগ করুন, যেটাতে দুটো বিষয় মেশানো, যেমন দুইবার টাকা কেটেছে আর app crash করেছে। আগে ঠিক লেবেলটা ঠিক করুন, তারপর দুটো প্রম্পট আবার চালান।
টাস্ক ২
AI জাজ ন্যায্য কিনা পরীক্ষা করুন
এটা কেন দরকার
একটা চ্যাটবটকে অনেক বেশি পরিমাণে টেস্ট করতে অনেক টিম দ্বিতীয় একটা AI দিয়ে তার উত্তর জাজ করায়। কিন্তু জাজ অন্যায্য হতে পারে, যেমন প্রথম উত্তর বা লম্বা উত্তর বেশি পছন্দ করা। জাজকে বিশ্বাস করার আগে তাকে টেস্ট করতে হবে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। Answer ১ ছোট আর ঠিক। Answer ২ লম্বা আর বিপজ্জনক পরামর্শ দেয়। কোনটা জেতে, লিখে রাখুন।
প্রম্পট তুমি একজন judge। একজন beginner জিজ্ঞেস করেছে: "API key কী?" দুটো উত্তর তুলনা করো। বলো কোনটা ভালো, Answer 1 নাকি Answer 2, আর দুই বাক্যে কারণ লেখো। Answer 1: API key হলো একটা গোপন string, যেটা একটা program প্রতিটা request-এর সাথে পাঠায়। Service এটা দিয়ে বোঝে কে request করছে, আর limit ও billing ঠিক করে। এটা private রাখো, আর কখনো public code-এ রেখো না। Answer 2: দারুণ প্রশ্ন! API key হলো একটা অবিশ্বাস্য শক্তিশালী ও বহুমুখী credential, যা আধুনিক software engineering-এর জন্য মৌলিকভাবে অপরিহার্য। এটা ঠিক team-এর shared password-এর মতো, তাই সবাই যাতে সহজে login করতে পারে সেজন্য এটা group chat-এ সব teammate-কে পাঠিয়ে দেওয়া উচিত। এটা তোমার application-কে সম্ভাব্য সব দিক থেকে আরও দ্রুত আর নিরাপদ করে।
আপনি দেখবেন: জাজ Answer ১ বাছে, আর বলে Answer ২ অনিরাপদ পরামর্শ দিচ্ছে।
উদাহরণ উত্তর
Answer 1 ভালো। এটা ঠিকভাবে বলেছে যে API key দেখায় কে request করছে, আর এটা private রাখতে হয়। Answer 2 ভুলভাবে key টা group chat-এ শেয়ার করতে বলেছে, যেটা অনিরাপদ।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। উত্তর দুটো একই, শুধু ক্রম উল্টে দেওয়া হয়েছে। এবার কোন লেখাটা জেতে, লিখে রাখুন।
প্রম্পট তুমি একজন judge। একজন beginner জিজ্ঞেস করেছে: "API key কী?" দুটো উত্তর তুলনা করো। বলো কোনটা ভালো, Answer 1 নাকি Answer 2, আর দুই বাক্যে কারণ লেখো। Answer 1: দারুণ প্রশ্ন! API key হলো একটা অবিশ্বাস্য শক্তিশালী ও বহুমুখী credential, যা আধুনিক software engineering-এর জন্য মৌলিকভাবে অপরিহার্য। এটা ঠিক team-এর shared password-এর মতো, তাই সবাই যাতে সহজে login করতে পারে সেজন্য এটা group chat-এ সব teammate-কে পাঠিয়ে দেওয়া উচিত। এটা তোমার application-কে সম্ভাব্য সব দিক থেকে আরও দ্রুত আর নিরাপদ করে। Answer 2: API key হলো একটা গোপন string, যেটা একটা program প্রতিটা request-এর সাথে পাঠায়। Service এটা দিয়ে বোঝে কে request করছে, আর limit ও billing ঠিক করে। এটা private রাখো, আর কখনো public code-এ রেখো না।
আপনি দেখবেন: জাজ Answer ২ বাছে। এটা আগের সেই ছোট, ঠিক লেখাটাই। যদি সে লম্বা লেখাটা বাছে, বা সবসময় প্রথমটাই বাছে, তাহলে জাজের বায়াস আছে।
উদাহরণ উত্তর
Answer 2 ভালো। এটা পরিষ্কারভাবে বলেছে API key কী, আর এটা private রাখতে বলেছে। Answer 1 অস্পষ্ট, আর key group chat-এ শেয়ার করতে বলেছে, যেটা বিপজ্জনক।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। এবার জাজ শুধু লম্বা, খারাপ উত্তরটাকে নম্বর দেবে।
প্রম্পট তুমি একজন judge। একজন beginner জিজ্ঞেস করেছে: "API key কী?" নিচের উত্তরটাকে প্রতিটা criterion-এ 0 থেকে 5 নম্বর দাও। প্রতিটা নম্বরের জন্য একটা ছোট কারণ লেখো। Criteria: 1) তথ্য কতটা ঠিক (Factual accuracy), 2) Beginner-এর জন্য কতটা পরিষ্কার (Clarity), 3) নিরাপদ পরামর্শ (Safe advice), 4) সংক্ষিপ্ততা (Conciseness)। শেষে 20-এর মধ্যে মোট নম্বর লেখো। Answer: দারুণ প্রশ্ন! API key হলো একটা অবিশ্বাস্য শক্তিশালী ও বহুমুখী credential, যা আধুনিক software engineering-এর জন্য মৌলিকভাবে অপরিহার্য। এটা ঠিক team-এর shared password-এর মতো, তাই সবাই যাতে সহজে login করতে পারে সেজন্য এটা group chat-এ সব teammate-কে পাঠিয়ে দেওয়া উচিত। এটা তোমার application-কে সম্ভাব্য সব দিক থেকে আরও দ্রুত আর নিরাপদ করে।
আপনি দেখবেন: ০ থেকে 5-এর চারটা নম্বর, সাথে ছোট কারণ। Accuracy আর Safe advice কম হওয়ার কথা, আর মোট নম্বরও কম, যেমন 20-এর মধ্যে ৪।
উদাহরণ উত্তর
1) Factual accuracy: 1/5। এটা key-কে shared password বলেছে, যেটা ভুল। 2) Clarity: 2/5। কথা বেশি, কিন্তু অস্পষ্ট। 3) Safe advice: 0/5। এটা key group chat-এ শেয়ার করতে বলেছে। 4) Conciseness: 1/5। অনেক ফাঁকা শব্দ আছে। মোট: 4/20।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৪
একই চ্যাটধাপ ১ আর ২-এর ফল দেখুন। লিখে রাখুন: জাজ কি দুইবারই একই লেখা বেছেছে?
আপনি দেখবেন: বেশিরভাগ জাজ দুইবারই ছোট, ঠিক লেখাটা বাছে। ক্রম উল্টানোর পর পছন্দ বদলে গেলে সেটাকে বলে পজিশন বায়াস।
এইমাত্র কী হলো
LLM জাজ হলো এমন একটা AI, যে উত্তরে নম্বর দেয়। আপনি তাকে দুইভাবে টেস্ট করেছেন। প্রথমত, উত্তরের ক্রম উল্টে দিয়েছেন। ন্যায্য জাজের বিজয়ী একই থাকে। দ্বিতীয়ত, তাকে একটা রুব্রিক দিয়েছেন, মানে নম্বরসহ ক্রাইটেরিয়ার একটা তালিকা। রুব্রিক দেখিয়ে দিল লম্বা উত্তরটা কেন খারাপ। টিমগুলো মাঝে মাঝে জাজের নম্বর মানুষের দেওয়া লেবেলের সাথেও মেলায়।
কাজ শেষ, যখন দুই ক্রমেই কোন লেখা জিতল আপনি জানেন, আর খারাপ উত্তরটার একটা রুব্রিক স্কোর আপনার কাছে আছে।
নিজেকে যাচাই করুনদুটো উত্তরের ক্রম উল্টে দেওয়া হয় কেন?উত্তর দেখুন
জাজ অনেক সময় প্রথম উত্তর বা লম্বা উত্তরটা বেশি পছন্দ করে, এমনকি সেটা খারাপ হলেও। ক্রম উল্টানোর পর বিজয়ী বদলে গেলে বোঝা যায় জাজের বায়াস আছে, আর তার নম্বর ভরসাযোগ্য নয়।
আরেকটু কঠিন করে দেখুন
আরও লম্বা একটা Answer ২ লিখুন, যেটা ঠিক আর নিরাপদও। ধাপ ১ আবার চালান। জাজ কি এখনও ছোট উত্তরটা বাছে?
টাস্ক ৩
চারটা মেট্রিক দিয়ে RAG উত্তর মাপুন
এটা কেন দরকার
আপনি যখন কোম্পানির ডকুমেন্ট থেকে উত্তর দেওয়া একটা চ্যাটবট (RAG সিস্টেম) বানাবেন, তখন ভুল উত্তর দুই জায়গা থেকে আসতে পারে: খোঁজার ধাপ বা লেখার ধাপ। চারটা স্কোর দেখে বোঝা যায় কোনটা ভেঙেছে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। এতে একটা প্রশ্ন, পাওয়া ৩টা টেক্সট চাঙ্ক আর একটা ভুল উত্তর আছে। AI চারটা মেট্রিকে নম্বর দেবে।
প্রম্পট তুমি একজন RAG evaluator। System-কে চারটা metric-এ 0 থেকে 1-এর মধ্যে নম্বর দাও, প্রতিটার জন্য এক বাক্যে কারণ লেখো: 1) Faithfulness: উত্তর কি শুধু retrieved chunk-এর তথ্য ব্যবহার করেছে? 2) Answer relevance: উত্তর কি প্রশ্নের জবাব দিয়েছে? 3) Context precision: Retrieved chunk-গুলোর বেশিরভাগ কি প্রাসঙ্গিক? 4) Context recall: পুরো উত্তরের জন্য যা যা দরকার, chunk-গুলোতে কি তার সবটা আছে? (পুরো উত্তরের জন্য দরকারি তথ্য Ground truth-এ দেওয়া আছে।) প্রশ্ন: আমি কি ব্যবহার না করা ছুটির দিন পরের বছরে নিয়ে যেতে পারি? কয়দিন পারি? বাকিগুলোর কী হয়? Retrieved chunks: [1] কর্মীরা ব্যবহার না করা সর্বোচ্চ 5 দিনের annual leave পরের ক্যালেন্ডার বছরে নিয়ে যেতে পারবেন। নিয়ে যাওয়া দিনগুলো 31 মার্চ শেষ হয়ে যায়। [2] অফিসের canteen কাজের দিনে সকাল 8:00 থেকে বিকেল 16:00 পর্যন্ত খোলা থাকে। [3] Sick leave পরের বছরে নিয়ে যাওয়া যায় না। Answer: হ্যাঁ। তুমি সর্বোচ্চ 10 দিন 31 মার্চ পর্যন্ত নিয়ে যেতে পারো। বছরের শেষে HR বাকি দিনগুলোর টাকা নগদে দিয়ে দেয়। Ground truth: সর্বোচ্চ 5 দিন 31 মার্চ পর্যন্ত নিয়ে যাওয়া যায়। সীমার বাইরের দিনগুলো বাতিল হয়ে যায়, আর নগদ টাকা দেওয়া হয় না।
আপনি দেখবেন: ০ থেকে 1-এর চারটা স্কোর। ফেইথফুলনেস কম। আনসার রিলেভেন্স বেশি, কারণ উত্তর বিষয়ের মধ্যেই আছে। কনটেক্সট প্রিসিশন আর রিকল বেশি নয়।
উদাহরণ উত্তর
1) Faithfulness: 0.3। উত্তরে 10 দিন আর নগদ টাকার কথা আছে, কিন্তু chunk-এ আছে 5 দিন, আর নগদ টাকার কথা নেই। 2) Answer relevance: 0.9। যে প্রশ্ন করা হয়েছে, উত্তর সেটারই জবাব দিয়েছে। 3) Context precision: 0.5। শুধু chunk 1 পরিষ্কারভাবে কাজের। Chunk 3 একটু কাজের। 4) Context recall: 0.5। বাড়তি দিনগুলোর কী হয়, সেটা chunk-এ নেই।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই চ্যাটএই ফলো-আপ প্রশ্নটা কপি করুন, পেস্ট করে Enter চাপুন।
প্রম্পট উত্তরের কোন কোন অংশ chunk-গুলো দিয়ে সমর্থিত নয়? ঠিক শব্দগুলো বলো।
আপনি দেখবেন: একটা ছোট তালিকা। তাতে ১০ দিন আর HR নগদ টাকা দেয় থাকার কথা।
উদাহরণ উত্তর
দুটো অংশ সমর্থিত নয়: - "সর্বোচ্চ 10 দিন": chunk 1-এ আছে সর্বোচ্চ 5 দিন। - "HR বাকি দিনগুলোর টাকা নগদে দেয়": কোনো chunk-এ নগদ টাকার কথা নেই।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই চ্যাটএই ফলো-আপ প্রশ্নটা কপি করুন, পেস্ট করে Enter চাপুন।
প্রম্পট চারটা score-এর মধ্যে কোনগুলো খোঁজার ধাপের (retriever) সমস্যা দেখায়, আর কোনগুলো লেখার ধাপের (generator) সমস্যা দেখায়?
আপনি দেখবেন: ফেইথফুলনেস জেনারেটরের দিকে ইঙ্গিত করে। কনটেক্সট প্রিসিশন আর রিকল রিট্রিভারের দিকে ইঙ্গিত করে।
উদাহরণ উত্তর
Context precision আর context recall retriever-এর সমস্যা দেখায়: সে canteen-এর chunk এনেছে, আর বাড়তি দিনের নিয়মটা আনেনি। Faithfulness generator-এর সমস্যা দেখায়: সে chunk-এ নেই এমন তথ্য যোগ করেছে। Answer relevance ঠিক আছে।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
এইমাত্র কী হলো
RAG-এর উত্তর শুনতে ঠিক লাগলেও ভুল হতে পারে। আনসার রিলেভেন্স শুধু দেখে উত্তর বিষয়ের মধ্যে আছে কিনা, তাই সেটা বেশি থেকে গেছে। ফেইথফুলনেস দেখে প্রতিটা তথ্য চাঙ্ক থেকে এসেছে কিনা, তাই সে বানানো সংখ্যা ধরে ফেলেছে। কনটেক্সট প্রিসিশন আর কনটেক্সট রিকল খোঁজার ধাপ মাপে: বেশিরভাগ চাঙ্ক কি কাজের ছিল, আর দরকারি সব তথ্য কি পাওয়া গেছে?
কাজ শেষ, যখন আপনার কাছে চারটা স্কোর আছে, আর কোন স্কোর রিট্রিভারের দিকে আর কোনটা জেনারেটরের দিকে ইঙ্গিত করে, আপনি তা বলতে পারেন।
নিজেকে যাচাই করুনউত্তর বিষয়ের মধ্যে আছে, কিন্তু ভুল। কোন মেট্রিক এটা ধরে, আর কোনটা ধরে না?উত্তর দেখুন
ফেইথফুলনেস ধরে, কারণ উত্তরে এমন তথ্য যোগ হয়েছে যা চাঙ্কে নেই। আনসার রিলেভেন্স ধরে না, কারণ সে শুধু দেখে উত্তর প্রশ্নের বিষয়ে কিনা।
আরেকটু কঠিন করে দেখুন
চতুর্থ একটা চাঙ্ক যোগ করুন: সীমার বাইরের দিনগুলো বাতিল হয়ে যায়। নগদ টাকা দেওয়া হয় না। একই চ্যাটে আবার স্কোর করতে বলুন। কোন স্কোরগুলো বাড়ল?
টাস্ক ৪
এজেন্টের পথ মাপুন, শুধু ফল নয়
এটা কেন দরকার
আপনি যখন এমন এজেন্ট বানাবেন যে ফ্লাইট বুক করে বা ইমেইল পাঠায়, তখন শেষ মেসেজ শুনতে ঠিক লাগতে পারে, অথচ ভেতরের কাজ ভুল বা বাজে। তাই শুধু শেষ লাইন নয়, প্রতিটা ধাপই মাপতে হবে।
ধাপ ১
নতুন চ্যাটএই প্রম্পটটা কপি করুন, পেস্ট করে Enter চাপুন। এতে ৪ ধাপের একটা ফ্লাইট-বুকিং এজেন্ট লগ আছে। AI রানটা মাপবে। (টুল কলগুলো ইংরেজিতে রাখা হয়েছে, কারণ এগুলো কোড।)
প্রম্পট তুমি একজন agent evaluator। নিচে একটা task আর একটা agent run-এর log আছে। Run টাকে এই চার দিক থেকে নম্বর দাও: 1) Task success (yes/no): শেষ ফলাফল কি ঠিক? 2) Tool-call accuracy: প্রতিটা tool call-এর argument কি ঠিক ছিল? 3) Trajectory: Agent কি যুক্তিসঙ্গত পথে গেছে? 4) Step efficiency: কতগুলো step ব্যবহার হয়েছে, আর কমপক্ষে কয়টা লাগত? শেষে ছোট একটা verdict দাও। Task: Book the cheapest flight from Dhaka (DAC) to Chattogram (CGP) on 12 Nov 2026. The budget is 5000 BDT. Tools: search_flights(from, to, date), book_flight(flight_id) Agent log: Step 1: search_flights(from="DAC", to="CGP", date="2026-11-12") -> F1: 5200 BDT, F2: 4800 BDT, F3: 4300 BDT Step 2: search_flights(from="DAC", to="CGP", date="2026-11-12") -> F1: 5200 BDT, F2: 4800 BDT, F3: 4300 BDT Step 3: search_flights(from="DAC", to="CGP", date="2026-12-11") -> F4: 4100 BDT, F5: 4600 BDT Step 4: book_flight(flight_id="F2") -> Booked F2 for 12 Nov 2026 Final answer: I booked the cheapest flight under your budget.
আপনি দেখবেন: টাস্ক সাকসেস হবে no। এজেন্ট F2 (৪৮০০ BDT) বুক করেছে, কিন্তু F3 (৪৩০০ BDT) সস্তা ছিল। এছাড়া গ্রেডার আবার-করা সার্চ আর ধাপ 3-এর ভুল তারিখও ধরবে।
উদাহরণ উত্তর
1) Task success: No। F2-এর দাম 4800 BDT। F3 সস্তা, 4300 BDT, তাই শেষ উত্তরটা মিথ্যা। 2) Tool-call accuracy: Step 1 ঠিক। Step 2 আবার step 1 করেছে। Step 3-এ তারিখ ভুল, 2026-12-11। Step 4 F3-এর বদলে F2 book করেছে। 3) Trajectory: খারাপ। একটা search-ই যথেষ্ট ছিল। 4) Step efficiency: 4 step ব্যবহার হয়েছে, লাগত 2টা। Verdict: Ship করা উচিত না।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ২
একই চ্যাটএই ফলো-আপ প্রশ্নটা কপি করুন, পেস্ট করে Enter চাপুন।
প্রম্পট এই task-এর জন্য সবচেয়ে ছোট ঠিক log টা লেখো। এতে কয়টা step?
আপনি দেখবেন: ২ ধাপের একটা লগ: একটা সার্চ, তারপর F3 বুক করা।
উদাহরণ উত্তর
Step 1: search_flights(from="DAC", to="CGP", date="2026-11-12") -> F1: 5200 BDT, F2: 4800 BDT, F3: 4300 BDT Step 2: book_flight(flight_id="F3") -> Booked F3 for 12 Nov 2026 এতে 2টা step।
আপনার উত্তরের ভাষা একটু আলাদা হবে।
ধাপ ৩
একই চ্যাটলিখে রাখুন কয়টা ধাপ ব্যবহার হয়েছে (৪) আর কয়টা লাগত। তারপর ঠিক করুন: আপনি কি এই এজেন্ট শিপ করবেন? একটা কারণ লিখুন।
আপনি দেখবেন: লাগত ২ ধাপ, মানে এজেন্ট দ্বিগুণ ধাপ ব্যবহার করেছে। বেশিরভাগ মানুষ বলবে শিপ করবে না, কারণ সে ভুল ফ্লাইট বুক করেছে আর ইউজারকে বলেছে সেটা সবচেয়ে সস্তা।
এইমাত্র কী হলো
এজেন্টের শেষ লাইন বলেছিল সে সবচেয়ে সস্তা ফ্লাইট বুক করেছে, কিন্তু কথাটা মিথ্যা ছিল। শুধু শেষ লাইন পড়লে এটা ধরা পড়ত না। টুল-কল অ্যাকুরেসি প্রতিটা টুল কলের আর্গুমেন্ট দেখে, যেমন ধাপ 3-এর তারিখ। স্টেপ এফিশিয়েন্সি ব্যবহার হওয়া ধাপ (৪) আর সবচেয়ে কম লাগা ধাপ (২) তুলনা করে। ভালো এজেন্ট ইভ্যাল পুরো পথটা মাপে।
কাজ শেষ, যখন আপনি জানেন ২ ধাপ যথেষ্ট ছিল অথচ এজেন্ট ৪ ধাপ ব্যবহার করেছে, আর তার পথের দুটো ভুল আপনি বলতে পারেন।
নিজেকে যাচাই করুনএজেন্ট মাপতে শুধু শেষ উত্তর যথেষ্ট নয় কেন?উত্তর দেখুন
এজেন্ট বলতে পারে সে সফল, অথচ সে ভুল আর্গুমেন্ট দিয়েছে, ধাপ নষ্ট করেছে, বা ভুল অপশন বেছেছে। পথ মাপলে (টুল কল আর ধাপের সংখ্যা) বোঝা যায় ফল কীভাবে এসেছে আর কোথায় ভুল হয়েছে।
আরেকটু কঠিন করে দেখুন
লগের ধাপ ৪ বদলে F3 বুক করান। AI-কে আবার মাপতে বলুন। কোন স্কোরগুলো বাড়ে, আর কোনগুলো কম থাকে?
ভিডিও দেখুন · ৮টি
Build Your First Eval: Creating a Custom LLM Evaluator with a Golden Dataset Arize AI
LLM-as-a-judge: evaluating LLMs with LLMs Evidently AI
RAG Evaluation: Precision, Recall, Faithfulness, RAGAS Explained Clearly Logical Lenses
Introduction to Advanced Agent Evaluation Techniques Data Science Dojo
Synthetic Data Generation for LLM Evaluators and Agents Arize AI
Evals 101 — Doug Guthrie, Braintrust AI Engineer
How to Run LLM Evals on Live Production Traffic with your Agents | Ep. 11 Arize AI
AI Red Teaming — Why & How to Jailbreak LLM Agents | Alex Combessie, Giskard l The Next Wave of AI Toronto Machine Learning Society (TMLS)
কুইজ
কী শিখলেন যাচাই করুন। ৫টি প্রশ্ন।
১. কোন RAG মেট্রিক জিজ্ঞেস করে: উত্তর দিতে যত চাঙ্ক দরকার ছিল, সবগুলো কি আসলে রিট্রিভ হয়েছে?
২. LLM-as-judge-এ পেয়ারওয়াইজ কমপেয়ারিজন কেন অ্যাবসোলিউট স্কোরিংয়ের চেয়ে ভালো?
৩. একটা এজেন্টের ক্ষেত্রে শুধু সঠিক ফাইনাল উত্তর যথেষ্ট নয়। এজেন্ট কীভাবে সেখানে পৌঁছাল, সেটাও আপনাকে যাচাই করতে হবে।
৪. আপনার গোল্ডেন সেট খুব ছোট, তাই আপনি LLM দিয়ে সিনথেটিক ইভ্যাল পেয়ার লেখাচ্ছেন। কোন জিনিসটা সবসময় রাখতে হবে?
৫. অনলাইন ইভ্যাল প্রোডাকশনের প্রতিটা লাইভ রিকোয়েস্টে একটা দামি জাজ চালায়।
মেলাতে সব প্রশ্নের উত্তর দিন।
তথ্যসূত্র
সোর্স
সব সাইটেশন মূল পেপার (arXiv), ভেন্ডরের ডক্স (OpenAI, Anthropic, Google) বা অফিশিয়াল টিম ব্লগে যায়। প্রতিটি পাতা খুলে সাইটেশনের তথ্য যাচাই করা হয়েছে।
- [1]Yao et al., "ReAct: Synergizing Reasoning and Acting in Language Models" (ICLR 2023)
- [2]Wei et al., "Plan-and-Execute Agents" / "Chain-of-Thought Prompting Elicits Reasoning in Large Language Models" — NeurIPS 2022
- [3]Shinn et al., "Reflexion: Language Agents with Verbal Reinforcement Learning" — NeurIPS 2023
- [4]Xu et al., "ReWOO: Decoupling Reasoning from Observations for Efficient Augmented Language Models"
- [5]Anthropic Engineering blog — "How we built our multi-agent research system" (2025)
- [6]LangGraph — official documentation (LangChain)
- [7]Temporal — "Durable Execution for LLM Agents"
- [8]Park et al., "Generative Agents: Interactive Simulacra of Human Behavior" — 2023
- [9]Anthropic — "Introducing computer use, a new Claude 3.5 Sonnet capability" (Oct 2024)
- [10]Anthropic — Tool use / function calling documentation
- [11]OpenAI — Function calling guide
- [12]Anthropic — Model Context Protocol (MCP) specification
- [13]Kwon et al., "Efficient Memory Management for Large Language Model Serving with PagedAttention" — vLLM paper, SOSP 2023
- [14]Zheng et al., "SGLang: Efficient Execution of Structured Language Model Programs" — 2023
- [15]llama.cpp — open-source GGUF-native inference (ggerganov)
- [16]Lin et al., "AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration" — MLSys 2024
- [17]Anthropic — Prompt caching documentation
- [18]Zheng et al., "Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena" — NeurIPS 2023
- [19]Es et al., "Ragas: Automated Evaluation of Information Retrieval Augmented Language Models" — 2023
- [20]Yue et al., "Large Language Model Cascades with Mixture of Thought Representations" — 2024
- [21]GPTCache — open-source semantic cache
- [22]Guo et al., "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via RL" — 2025
- [23]Jiang et al., "LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models" — EMNLP 2023
- [24]LiteLLM — unified interface for 100+ LLMs
- [25]OWASP — "Top 10 for LLM Applications" (LLM01 Prompt Injection, 2025)
- [26]Bai et al., "Constitutional AI: Harmlessness from AI Feedback" — Anthropic, 2022
- [27]NVIDIA NeMo Guardrails — open-source toolkit
- [28]Qwen2-VL Team, "Qwen2-VL: Enhancing Vision-Language Model's Perception of the World at Any Resolution" — 2024
- [29]OpenAI — Realtime API documentation
- [30]OpenAI — Production best practices guide