ارزیابی کیفیت خروجی LLM در محیط عملیاتی

در مارس ۲۰۲۳، مدل GPT-4 اعداد اول را با دقت ۹۷.۶٪ شناسایی می‌کرد. تا ژوئن ۲۰۲۳، دقت همان مدل به ۲.۴٪ کاهش یافت. هیچ‌کس کد را تغییر نداد. هیچ‌کس پرامپت را تغییر نداد. مدل صرفاً تغییر رفتار داد (drift کرد).

این مشکل اصلی استفاده از LLMها در محیط عملیاتی (Production) است. شما کنترل مدل را در دست ندارید. مدل یک وابستگی (dependency) است که دچار تغییر رفتار می‌شود. اگر آن را اندازه‌گیری نکنید، کاربران به شما خواهند گفت که سیستم خراب شده است.

شما نمی‌توانید به «حس و حال» یا جمله‌ی «به نظر من که خوب است» تکیه کنید. شما به سیگنال‌های تکرارپذیر نیاز دارید.

نرم‌افزارهای سنتی قطعی (deterministic) هستند؛ ورودی یکسان همیشه خروجی یکسانی دارد. LLMها این قاعده را می‌شکنند. آن‌ها غیرقطعی هستند و مفهوم «درست بودن» اغلب مبهم است.

برای مدیریت این موضوع، به سه لایه ارزیابی نیاز دارید:

  • ارزیابی‌های آفلاین (Offline evals): اجرای یک مجموعه‌ی تست ثابت با هر تغییر برای شناسایی پسرفت‌ها (regressions).
  • بررسی‌های بدون مرجع (Reference-free checks): استفاده از سیگنال‌هایی مانند تشخیص توهم (hallucination detection) زمانی که پاسخ «درست» مشخصی ندارید.
  • مانیتورینگ محیط عملیاتی (Production monitoring): نظارت بر ترافیک واقعی برای شناسایی تغییر رفتار (drift) و افت کیفیت.

زیربنای کار، یک «مجموعه‌ی داده‌ی طلایی» (Golden Dataset) است. از نمونه‌های تصادفی استفاده نکنید. از مجموعه‌ای منتخب از موارد دشوار استفاده کنید. از ورودی‌های خالی، موارد خاص (edge cases) عجیب و پرامپت‌های خصمانه (adversarial prompts) استفاده کنید. ۸۰ مثال دقیق و هوشمندانه، ۸۰۰۰ مثال تصادفی را شکست می‌دهد.

هنگام استفاده از یک LLM به عنوان داور، مراقب این سوگیری‌ها (biases) باشید:

  • سوگیری موقعیت (Position bias): داوران اغلب اولین پاسخی را که می‌بینند ترجیح می‌دهند. این مشکل را با اجرای مقایسه‌ها در هر دو ترتیب (ابتدا پاسخ اول، سپس پاسخ دوم و بالعکس) حل کنید.
  • سوگیری طولانی‌گویی (Verbosity bias): داوران پاسخ‌های طولانی‌تر را پاداش می‌دهند، حتی اگر وضوح کمتری داشته باشند.
  • سوگیری خود-ارتقایی (Self-enhancement bias): مدل‌ها متن‌های تولید شده توسط خانواده‌ی خودشان را ترجیح می‌دهند. برای داوری خروجی‌ها، از خانواده‌های مدل مختلف استفاده کنید.

برای مانیتورینگ در لحظه (real-time)، از مثلث RAG (RAG Triad) برای بررسی موارد زیر استفاده کنید:

  • وفاداری (Faithfulness): آیا پاسخ به متن (context) پایبند است؟
  • مرتبط بودن پاسخ (Answer relevance): آیا پاسخ به سؤال می‌پردازد؟
  • مرتبط بودن متن (Context relevance): آیا سیستم اسناد درستی را بازیابی کرده است؟

از برخورد با کیفیت مدل به عنوان یک ویژگی ثابت خودداری کنید. با آن مانند تأخیر (latency) یا نرخ خطا برخورد کنید. کیفیت تغییر می‌کند. وظیفه‌ی شما این است که متوجه شوید چه زمانی کیفیت افت می‌کند.

کوچک شروع کنید. ۲۰ مثال طلایی بنویسید. از آن‌ها برای کنترل (gate) فرآیند استقرار (deploy) استفاده کنید. بعداً روش‌های اکتشافی (heuristics) ارزان‌قیمت را به محیط عملیاتی اضافه کنید.

تیم‌هایی که با خیال راحت می‌خوابند، تیم‌هایی نیستند که هوشمندترین مدل‌ها را دارند؛ بلکه تیم‌هایی هستند که ظرف یک ساعت می‌فهمند اگر مدلشان احمق‌تر شده است.

Source: https://dev.to/nazar_boyko/evaluating-llm-output-quality-in-production-39an

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