𝗦𝗰𝗼𝗿𝗶𝗻𝗴 𝗔𝗜 𝗔𝗴𝗲𝗻𝘁𝘀: 𝗗𝗲𝘁𝗲𝗿𝗺𝗶𝗻𝗶𝘀𝘁𝗶𝗰 𝗠𝗲𝘁𝗿𝗶𝗰𝘀 + 𝗮𝗻 𝗟𝗟𝗠 𝗝𝘂𝗱𝗴𝗲
আপনি অনেকগুলো ছোট ছোট AI এজেন্ট চালান। আপনার ব্যাকএন্ড, ফ্রন্টএন্ড, মোবাইল এবং ডেভঅপস (devops)-এর জন্য আলাদা এজেন্ট রয়েছে। প্রতিটি এজেন্টের একটি নির্দিষ্ট কাজ থাকে।
যখন আপনার অনেক এজেন্ট থাকে, তখন আপনি একটি সমস্যার সম্মুখীন হন। তারা কতটা ভালো তা আপনি বুঝতে পারেন না। প্রম্পটে কোনো পরিবর্তন করলে তারা আরও ভালো হচ্ছে নাকি খারাপ হচ্ছে, তাও আপনি জানেন না। বড় পরিসরে (at scale) "এটি ঠিক মনে হচ্ছে" বলে কাজ চালানো সম্ভব নয়।
আমি এটি সমাধানের জন্য একটি ফ্রেমওয়ার্ক তৈরি করেছি। এটি পারফরম্যান্স পরিমাপ করতে সংখ্যা ব্যবহার করে এবং স্বয়ংক্রিয়ভাবে প্রম্পট উন্নত করে।
The Strategy
প্রথমে যা গণিতের মাধ্যমে পরিমাপ করা সম্ভব তা পরিমাপ করুন। শুধুমাত্র যখন একান্ত প্রয়োজন তখনই একটি LLM জাজ ব্যবহার করুন। ডিটারমিনিস্টিক মেট্রিক্স (Deterministic metrics) দ্রুত এবং বিনামূল্যে পাওয়া যায়। অন্যদিকে, একটি LLM জাজ ধীরগতির এবং এতে খরচ হয়।
সিস্টেমটি যেভাবে কাজ করে:
• হারনেস (harness) প্রতিটি এজেন্টকে একটি আলাদা প্রসেস হিসেবে চালায়। • এটি এজেন্টের কাছে একটি টাস্ক পাঠায়। • এটি আউটপুট সংগ্রহ করে। • এটি প্রত্যাশিত ডেটার সাথে ফলাফলের তুলনা করে স্কোর প্রদান করে।
এজেন্টের শুধুমাত্র stdin থেকে পড়তে এবং stdout-এ লিখতে হয়। এটি Python বা একটি shell script হতে পারে। হারনেস এ বিষয়ে কিছু যায় আসে না।
ট্র্যাক করার জন্য পাঁচটি মূল মেট্রিক্স:
- Accuracy: আউটপুট কি লক্ষ্যের সাথে মিলে যায়?
- Fuzzy score: টেক্সটটি টার্গেটের সাথে কতটা সামঞ্জস্যপূর্ণ?
- Timeout rate: এজেন্ট কত ঘন ঘন কাজ শেষ করতে ব্যর্থ হয়?
- Safety violations: আউটপুট কি অনিরাপদ প্যাটার্নের সাথে মিলে যায়?
- Reproducibility variance: এজেন্ট কি প্রতিবার একই উত্তর দেয়?
যদি কোনো এজেন্ট সঠিক হয় কিন্তু অসংলগ্ন (inconsistent) হয়, তবে সেটি একটি বাগ (bug)।
The LLM Judge
কিছু বিষয় গণিতের মাধ্যমে পরিমাপ করা কঠিন। এজেন্ট তার নির্দিষ্ট ভূমিকায় ছিল কি না বা সীমাবদ্ধতাগুলো মেনে চলেছে কি না, তা আপনার জানা প্রয়োজন।
এই ধরনের ক্ষেত্রে, একটি LLM জাজ কাজটি পর্যালোচনা করে। এটি একটি রুব্রিক (rubric) এবং এজেন্টের আউটপুট গ্রহণ করে। এরপর এটি একটি সুসংগঠিত রায় (verdict) প্রদান করে। আমি এই রায়টিকে একটি JSON schema-র মাধ্যমে যাচাই করি যাতে এটি রিপোর্ট নষ্ট না করে।
জাজ শুধুমাত্র গ্রেড দেওয়ার কাজই করে না। তাকে সমাধানের উপায়ও বলতে হয়। "এটি দুর্বল" - এই ধরনের সমালোচনা নিরর্থক। কিন্তু "প্রম্পটে একটি JSON ব্লক যোগ করুন" - এই ধরনের সমালোচনা কার্যকর।
The Improvement Loop
ব্যর্থতাগুলো একটি ফাইলে জমা হয়। এই ফাইলটি একটি স্বয়ংক্রিয় লুপকে ইনপুট হিসেবে প্রদান করে। সিস্টেমটি প্রম্পটের সবচেয়ে দুর্বল অংশটি খুঁজে বের করে এবং তা ঠিক করার চেষ্টা করে। এটি ভালো প্রম্পটের একটি তালিকা (pool) বজায় রাখে এবং সেরা সংস্করণগুলো পুনরায় কোডে লিখে দেয়।
একটি একক স্কোর কেবল একটি মুহূর্তের চিত্র। ট্রেন্ড বা প্রবণতা ট্র্যাক করতে হিস্ট্রি ব্যবহার করুন। এটি আপনাকে জানাবে যে সময়ের সাথে সাথে আপনি উন্নতি করছেন কি না।
আপনার ভিত্তি তৈরি করুন ডিটারমিনিস্টিক মেট্রিক্সের ওপর। জাজকে হাতুড়ির মতো নয়, বরং একটি স্ক্যালপেল (scalpel)-এর মতো ব্যবহার করুন।
উৎস: https://dev.to/pponali/scoring-ai-agents-deterministic-metrics-an-llm-judge-poj
ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi