رتبهبندی مدلها با ارزیابی مقایسهای
اغلب نمرهٔ یک مدل برایتان مهم نیست؛ میخواهید بدانید کدام مدل برای شما بهتر است. این درس روشی را باز میکند که از مسابقههای شطرنج و بازیهای ویدیویی آمده و امروز معتبرترین رتبهبندی عمومی مدلها را میسازد — و محدودیتهایی که پیش از تکیه بر آن باید بدانید.
دو راه برای رتبهبندی مدلها هست. در ارزیابی نقطهای (pointwise) هر مدل جدا سنجیده و نمره میگیرد و بعد بر اساس نمره مرتب میشود — مثل داوری مسابقهٔ رقص که به هر رقصنده جدا نمره میدهند. در ارزیابی مقایسهای (comparative) مدلها در برابر هم سنجیده میشوند و رتبه از نتیجهٔ مقایسهها درمیآید — مثل اینکه رقصندهها کنار هم برقصند و داورها بگویند کدام را بیشتر پسندیدند.
برای کیفیتهای ذهنی، مقایسه آسانتر است: گفتن اینکه از دو آهنگ کدام بهتر است، از نمره دادن به هر کدام سادهتر است — همان چیزی که در فصل ۲ دربارهٔ دادهٔ ترجیح دیدید. Anthropic این روش را از ۲۰۲۱ برای رتبهبندی مدلها به کار برد، و امروز پشت مشهورترین رتبهبندی عمومی، Chatbot Arena از LMSYS، است. خیلی از سازندگان هم آن را در محصول خودشان به کار میبرند: گاهی ChatGPT دو پاسخ کنار هم نشانتان میدهد و میپرسد کدام بهتر است.
هر پرسشی را نباید به رأی گذاشت
رأی ترجیحی فقط وقتی کار میکند که رأیدهنده در آن موضوع وارد باشد. یعنی معمولاً جایی که هوش مصنوعی نقش دستیار یا کارآموز دارد و به کاربر کمک میکند کاری را که خودش بلد است سریعتر انجام دهد — نه جایی که کاربر از مدل میخواهد کاری را بکند که خودش بلد نیست.
از مسابقه تا رتبه
هر مقایسه یک مسابقه است: دو مدل، یک برنده (و گاهی مساوی، تا وقتی هر دو پاسخ به یک اندازه خوب یا بد است، برنده تصادفی انتخاب نشود). از مجموع مسابقههای A و B، نرخ برد A در برابر B به دست میآید. با دو مدل رتبهبندی ساده است. با پنج مدل، دیگر نه:
| جفت | درصد برد مدل اول |
|---|---|
| مدل ۱ در برابر ۲ | ۹۰٪ |
| مدل ۱ در برابر ۳ | ۴۰٪ |
| مدل ۱ در برابر ۴ | ۱۵٪ |
| مدل ۱ در برابر ۵ | ۱۰٪ |
| مدل ۲ در برابر ۳ | ۶۰٪ |
| مدل ۲ در برابر ۴ | ۸۰٪ |
| مدل ۲ در برابر ۵ | ۸۰٪ |
| مدل ۳ در برابر ۴ | ۷۰٪ |
| مدل ۳ در برابر ۵ | ۱۰٪ |
| مدل ۴ در برابر ۵ | ۲۰٪ |
از این جدول نمیشود با یک نگاه رتبه را گفت: مدل ۲ نود درصد به مدل ۱ باخته، ولی هشتاد درصد مدل ۴ را برده که خودش مدل ۱ را برده. برای همین یک الگوریتم رتبهبندی لازم است که از همهٔ مسابقهها یک نمره برای هر مدل بسازد. این الگوریتمها نزدیک یک قرن در ورزش و بازیهای ویدیویی به کار رفتهاند: Elo، Bradley–Terry و TrueSkill.
Elo، الگوریتم شطرنج
Elo به هر بازیکن یک امتیاز میدهد. پیش از هر مسابقه، از فاصلهٔ دو امتیاز پیشبینی میکند هر کدام با چه احتمالی میبرند. بعد از مسابقه، امتیاز هر کدام به اندازهٔ فاصلهٔ نتیجه با پیشبینی جابهجا میشود. بردن از حریف قویتر امتیاز زیادی میدهد؛ بردن از حریف ضعیفتر، کم.
def expected(ra: float, rb: float) -> float:
"""احتمال برد A در برابر B، از روی فاصلهٔ امتیازها."""
return 1 / (1 + 10 ** ((rb - ra) / 400))
def update(ra: float, rb: float, a_won: bool, k: float = 32) -> tuple[float, float]:
e = expected(ra, rb)
s = 1.0 if a_won else 0.0
return ra + k * (s - e), rb + k * ((1 - s) - (1 - e))
print(update(1000, 1000, a_won=True)) # (1016.0, 984.0) — همسطح، برد عادی
print(update(1200, 1000, a_won=False)) # (1175.7, 1024.3) — شکست از ضعیفتر، جابهجایی بیشتردر مثال دوم، مدلی با امتیاز ۱۲۰۰ احتمال ۷۶٪ برد داشت و باخت؛ برای همین جابهجایی امتیاز (حدود ۲۴) بیشتر از مسابقهٔ همسطح (۱۶) است. Chatbot Arena اول با Elo شروع کرد، ولی بعد به Bradley–Terry رفت، چون دیدند Elo به ترتیب رأیها و پرسشها حساس است — همان داده با ترتیب دیگر، رتبهٔ دیگری میداد. Bradley–Terry همهٔ مسابقهها را یکجا در نظر میگیرد.
سه چالش ارزیابی مقایسهای
۱. به دادههای زیادی نیاز دارد
تعداد جفتها با تعداد مدلها درجهٔ دو رشد میکند. در ژانویهٔ ۲۰۲۴، LMSYS برای ۵۷ مدل ۲۴۴ هزار مقایسه جمع کرده بود — که عدد بزرگی به نظر میرسد، ولی ۵۷ مدل یعنی ۱٬۵۹۶ جفت، و میانگین فقط ۱۵۳ مقایسه برای هر جفت — برای طیف گستردهٔ کارهایی که از یک مدل انتظار داریم، کم است.
الگوریتمها با فرض تعدی این را جبران میکنند: اگر A از B بهتر است و B از C، پس A از C هم بهتر است و لازم نیست مستقیم مقایسهشان کرد. ولی معلوم نیست ترجیح انسان — یا رفتار مدلها روی پرسشها و داورهای مختلف — واقعاً تعدیپذیر باشد. و هر مدل تازه باید با مدلهای قبلی مقایسه شود، که ممکن است رتبهٔ آنها را هم عوض کند. برای مدل خصوصی سازمانتان هم همینطور: یا باید مقایسهها را خودتان جمع کنید یا به یک رتبهبندی عمومی پول بدهید تا ارزیابی خصوصی انجام دهد.
۲. استاندارد و کنترل کیفیت ندارد
در Chatbot Arena هر کسی میتواند پرسشی بنویسد، دو پاسخ از دو مدل ناشناس بگیرد و به بهتری رأی بدهد؛ نام مدلها فقط بعد از رأی معلوم میشود. این روش طیف وسیعی از ترجیحها را جمع میکند و تقلب در آن سخت است. ولی:
- کسی درستی را وارسی نمیکند. داوطلب ممکن است پاسخی را انتخاب کند که بهتر به نظر میرسد ولی غلط است.
- ترجیح «در طبیعت» برای هر کاربردی مناسب نیست. کاربری که از مدل شوخی نامناسب خواسته و جواب رد گرفته، ممکن است به آن رأی منفی بدهد — در حالی که شما بهعنوان سازندهٔ محصول دقیقاً همان رد کردن را میخواهید. و بعضی عمداً پاسخهای سمی را انتخاب میکنند.
- پرسشها از کار واقعی نمیآیند. از ۳۳ هزار پرسشی که LMSYS در ۲۰۲۳ منتشر کرد، ۱۸۰ تا فقط «hello» و «hi» بودند و یک معمای ساده ۴۴ بار پرسیده شده بود. پرسش ساده همهٔ مدلها را خوب نشان میدهد و رتبه را آلوده میکند.
- زمینهٔ واقعی ندارد. اگر رتبهبندی از افزودن سند بازیابیشده به پرسش پشتیبانی نکند، رتبهاش نمیگوید مدل در سامانهٔ RAG شما چطور کار میکند.
راهحلها هر کدام هزینهای دارند: محدود کردن به پرسشهای از پیش تعیینشده (تنوع کم میشود)؛ فقط سختترین پرسشها را در رتبه حساب کردن (کاری که LMSYS میکند)؛ فقط داورهای آموزشدیده (کاری که Scale میکند — گران و کمحجم)؛ یا مقایسه داخل خود محصول، مثلاً دو پیشنهاد کد در ویرایشگر برنامهنویس — که البته کاربر شاید هر دو را نخواند و تصادفی کلیک کند. بعضی تیمها هم ترجیح میدهند داور هوش مصنوعی باشد: شاید به خوبی یک متخصص آموزشدیده نباشد، ولی از کاربر تصادفی اینترنت قابلاعتمادتر است.
۳. «بهتر» نمیگوید «چقدر خوب»
برای خیلی محصولات، بهترین مدل ممکن را لازم ندارید؛ مدلی لازم دارید که به اندازهٔ کافی خوب باشد. ارزیابی مقایسهای میگوید B از A بهتر است، ولی نمیگوید کدام یک از این سه حالت درست است: B خوب است و A بد؛ هر دو بدند؛ هر دو خوباند.
با همهٔ اینها، چرا آینده دارد
- وقتی نمره دادن ناممکن شود، مقایسه هنوز ممکن است. با قویتر شدن مدلها، شاید انسانها دیگر نتوانند به پاسخها نمرهٔ دقیق بدهند، ولی هنوز تفاوت دو پاسخ را تشخیص بدهند. مقالهٔ Llama 2 همین را گزارش کرد: جایی که نوشتن مدل از توان بهترین برچسبزنها فراتر رفت، مقایسهٔ دو پاسخ هنوز بازخورد ارزشمندی میداد.
- هرگز اشباع نمیشود. برخلاف بنچمارکی که با نمرهٔ کامل بیفایده میشود، تا وقتی مدل تازهتری میآید، مقایسه معنا دارد.
- تقلب در آن سخت است. راه سادهای مثل آموزش روی دادهٔ مرجع برای بالا بردن نمره وجود ندارد؛ برای همین خیلیها به رتبهبندیهای مقایسهای عمومی بیش از هر رتبهبندی دیگری اعتماد میکنند.
خودآزمایی
در کدام محصول، از کاربر خواستن که بین دو پاسخ مدل انتخاب کند، سیگنال قابلاعتمادتری میدهد؟
مدلی با امتیاز Elo بالا از مدلی با امتیاز خیلی پایینتر میبازد. نسبت به یک مسابقهٔ همسطح، امتیازها چطور جابهجا میشوند؟
مدل B در ۵۵٪ مقایسهها از مدل فعلی شما میبرد ولی دو برابر گرانتر است. چرا ارزیابی مقایسهای بهتنهایی برای تصمیم کافی نیست؟
مرور فلشکارتهای این درس
۶ کارت · ۰ مروروارد شوید تا پیشرفتتان ذخیره شود و از همینجا ادامه دهید.