প্রোডাকশনে LLM আউটপুট কোয়ালিটি মূল্যায়ন করা
২০২৩ সালের মার্চ মাসে, GPT-4 ৯৭.৬% নির্ভুলতার সাথে মৌলিক সংখ্যা (prime numbers) শনাক্ত করতে পেরেছিল। ২০২৩ সালের জুনের মধ্যে, সেই একই মডেলের নির্ভুলতা কমে ২.৪%-এ নেমে আসে। কেউ কোড পরিবর্তন করেনি। কেউ প্রম্পট পরিবর্তন করেনি। মডেলটি কেবল পরিবর্তিত হয়ে গিয়েছিল।
প্রোডাকশনে LLM ব্যবহারের মূল সমস্যা এটাই। আপনি মডেলটি নিয়ন্ত্রণ করতে পারেন না। এটি এমন একটি ডিপেন্ডেন্সি যা সময়ের সাথে পরিবর্তিত (drift) হতে পারে। আপনি যদি এটি পরিমাপ না করেন, তবে আপনার ব্যবহারকারীরা আপনাকে জানিয়ে দেবে যে এটি কাজ করছে না।
আপনি কেবল অনুমানের ওপর বা "আমার কাছে ঠিক মনে হচ্ছে" এমন কথার ওপর নির্ভর করতে পারেন না। আপনার প্রয়োজন পুনরাবৃত্তিযোগ্য সিগন্যাল (repeatable signals)।
প্রথাগত সফটওয়্যার হলো ডিটারমিনিস্টিক (deterministic)। একই ইনপুট মানেই একই আউটপুট। LLM এই নিয়মটি ভেঙে ফেলে। এগুলো নন-ডিটারমিনিস্টিক এবং এখানে "সঠিক" হওয়াটা প্রায়শই অস্পষ্ট বা ফাজি (fuzzy) হয়।
এটি পরিচালনা করার জন্য আপনার মূল্যায়নের তিনটি স্তর প্রয়োজন:
- অফলাইন ইভালস (Offline evals): রিগ্রেশন (regressions) ধরার জন্য প্রতিটি পরিবর্তনের সাথে একটি নির্দিষ্ট টেস্ট সেট চালান।
- রেফারেন্স-মুক্ত চেক (Reference-free checks): যখন আপনার কাছে কোনো "সঠিক" উত্তর থাকে না, তখন হ্যালুসিনেশন ডিটেকশনের মতো সিগন্যাল ব্যবহার করুন।
- প্রোডাকশন মনিটরিং (Production monitoring): ড্রিপ্ট (drift) এবং কোয়ালিটি কমে যাওয়া দেখার জন্য রিয়েল ট্রাফিক পর্যবেক্ষণ করুন।
এর ভিত্তি হলো একটি গোল্ডেন ডেটাসেট (Golden Dataset)। র্যান্ডম স্যাম্পল ব্যবহার করবেন না। কঠিন কেসগুলোর একটি কিউরেটেড সেট ব্যবহার করুন। খালি ইনপুট, অদ্ভুত এজ কেস (edge cases) এবং অ্যাডভারসারিয়াল প্রম্পটগুলো ব্যবহার করুন। ৮,০০০ র্যান্ডম উদাহরণের চেয়ে ৮০টি সুনির্দিষ্ট উদাহরণ অনেক বেশি কার্যকর।
যখন একজন বিচারক (judge) হিসেবে LLM ব্যবহার করবেন, তখন এই বায়াস বা পক্ষপাতগুলো খেয়াল রাখুন:
- পজিশন বায়াস (Position bias): বিচারকরা প্রায়শই তাদের দেখা প্রথম উত্তরটিকে প্রাধান্য দেন। উভয় ক্রমে (order) তুলনা করার মাধ্যমে এটি সমাধান করুন।
- ভারবোসিটি বায়াস (Verbosity bias): বিচারকরা দীর্ঘ উত্তরকে পুরস্কৃত করেন, এমনকি যদি সেগুলো কম স্পষ্টও হয়।
- সেলফ-এনহ্যান্সমেন্ট বায়াস (Self-enhancement bias): মডেলগুলো তাদের নিজস্ব ফ্যামিলির টেক্সট পছন্দ করে। আউটপুট বিচার করার জন্য ভিন্ন ভিন্ন মডেল ফ্যামিলি ব্যবহার করুন।
রিয়েল-টাইম মনিটরিংয়ের জন্য, নিচের বিষয়গুলো পরীক্ষা করতে RAG Triad ব্যবহার করুন:
- ফিদেলটি (Faithfulness): উত্তরটি কি কনটেক্সটের সাথে সামঞ্জস্যপূর্ণ?
- উত্তরের প্রাসঙ্গিকতা (Answer relevance): এটি কি প্রশ্নের উত্তর দিচ্ছে?
- কনটেক্সটের প্রাসঙ্গিকতা (Context relevance): সিস্টেমটি কি সঠিক ডকুমেন্টগুলো খুঁজে পেয়েছে?
মডেল কোয়ালিটিকে একটি স্থির বৈশিষ্ট্য হিসেবে দেখা বন্ধ করুন। এটিকে ল্যাটেন্সি (latency) বা এরর রেটের মতো বিবেচনা করুন। এটি পরিবর্তিত হয়। আপনার কাজ হলো এটি কখন খারাপ হতে শুরু করছে তা খেয়াল করা।
ছোট থেকে শুরু করুন। ২০টি গোল্ডেন উদাহরণ লিখুন। আপনার ডিপ্লয়মেন্টগুলো নিয়ন্ত্রণ করতে সেগুলো ব্যবহার করুন। পরে সস্তা প্রোডাকশন হিউরিস্টিকস (heuristics) যোগ করুন।
যে দলগুলো নিশ্চিন্তে ঘুমাতে পারে, তাদের কাছে সবচেয়ে স্মার্ট মডেল নেই। বরং তারা হলো সেই দল যারা এক ঘণ্টার মধ্যেই বুঝতে পারে যে তাদের মডেলটি বুদ্ধিমত্তা হারাচ্ছে কি না।
উৎস: https://dev.to/nazar_boyko/evaluating-llm-output-quality-in-production-39an
ঐচ্ছিক লার্নিং কমিউনিটি: https://t.me/GyaanSetuAi
