ارزیابی‌های شما هم ناپایدار هستند: از اعتماد به نرخ موفقیتی که نمی‌توانید بازتولید کنید، دست بردارید

اکثر مردم می‌دانند که عامل‌های هوش مصنوعی غیرقطعی هستند. شما یک پرامپت یکسان می‌فرستید، اما خروجی‌های متفاوتی دریافت می‌کنید.

ما این موضوع را پذیرفتیم. شروع کردیم به استفاده از LLMها به عنوان داور برای امتیازدهی به این عامل‌ها.

اما مرتکب اشتباه بزرگی شدیم. فرض کردیم داورهای ما قطعی هستند. اما نیستند.

مجموعه ارزیابی شما، سیستمی تصادفی است که دارد سیستم تصادفی دیگری را امتیازدهی می‌کند. اگر میزان نوسان داور خود را اندازه‌گیری نکنید، شما یک دروازه کیفیت ندارید؛ بلکه فقط دارید شیر یا خط می‌اندازید.

من شاهد این اتفاق در یک عامل پشتیبانی بودم. داشبورد هفته‌ها سبز باقی ماند. سپس، شکایات مشتریان به شدت افزایش یافت. من همان ارزیابی را روی ۲۰۰ پاسخ قدیمی اجرا کردم. ۱۴ مورد از آن‌ها نظرشان تغییر کرده بود. عامل تغییر نکرده بود؛ بلکه داور نظرش را تغییر داده بود.

یک دروازه ناپایدار، بدتر از نبودنِ دروازه است. چون به شما اعتماد به نفس کاذب می‌دهد.

سه دلیل برای شکست ارزیابی‌های شما وجود دارد:

  • مدل داور: هر داور LLM دارای واریانس است. حتی در دمای (temperature) صفر، ارائه‌دهندگان نتیجه یکسان را تضمین نمی‌کنند. یک به‌روزرسانی بی‌صدای مدل می‌تواند خط پایه شما را یک‌شبه از بین ببرد.
  • چارچوب اجرا (Harness): اگر کانتکست یا خروجی‌های ابزار شما بین اجراهای مختلف تغییر کند، داور با سوال متفاوتی روبرو می‌شود. ورودی دچار انحراف شده است.
  • معیار امتیازدهی (Rubric): قوانین مبهمی مانند «آیا این خوب است؟» باعث ایجاد واریانس می‌شوند. قوانین دقیق و مشخص، آن را کاهش می‌دهند.

شما باید با ارزیابی‌های ناپایدار مانند تست‌های نرم‌افزاری ناپایدار برخورد کنید. آن‌ها را منتشر نکنید؛ آن‌ها را قرنطینه کنید. نرخ ناپایداری را اندازه‌گیری کنید.

از گزارش دادن تنها یک نرخ موفقیت دست بردارید. گزارش دادن میزان توافق (agreement) را شروع کنید.

هر فراخوانیِ داور را چندین بار اجرا کنید. اگر داور نتواند با خودش هم‌رای شود، آن نتیجه یک سیگنال نیست؛ بلکه UNSTABLE است.

یک نتیجه UNSTABLE باید یک خروجی اصلی در خط لوله CI/CD شما باشد. این نتیجه باید با صدای بلند شکست بخورد.

برای اصلاح یک ارزیابی ناپایدار، به دو چیز نیاز دارید:

  1. یک لایه امتیازدهی: این لایه پایداری را محاسبه کرده و نتایج را به PASS، FAIL یا UNSTABLE تبدیل می‌کند.
  2. یک لایه ردیابی: شما باید بایت‌های خام، پرامپت دقیق و خروجی‌های ابزار را برای هر اجرا مشاهده کنید.

بدون ردیابی، فکر خواهید کرد که مدل فقط تصادفی عمل می‌کند. دما (temperature) را پایین می‌آورید و تصور می‌کنید مشکل را حل کرده‌اید. اما حل نکرده‌اید؛ فقط باگ را آرام‌تر کرده‌اید.

برای ایجاد کیفیت واقعی، این قوانین را دنبال کنید:

  • میزان توافق را گزارش کنید، نه فقط میانگین‌ها را.
  • وضعیت UNSTABLE را به یک وضعیت شکست در خط لوله خود تبدیل کنید.
  • نسخه‌های مدل داور خود را ثابت (Pin) نگه دارید.
  • وقتی یک بررسی با شکست مواجه می‌شود، ردیابی‌ها را بخوانید.

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

Source: https://dev.to/saurav_bhattacharya/your-evals-are-flaky-too-stop-trusting-a-pass-rate-you-cant-reproduce-6pk

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