LLM-as-a-Verifier؛ یک فریمورک ارزیابی برای همه ایجنتها
خلاصهٔ کاملتر
پروژه LLM-as-a-Verifier یه فریمورک عمومیه که به هر ایجنتی بازخورد ریزدانه میده. تو مستنداتش اومده که ایدهش سه تا تیکهست: امتیازدهی با دانهبندی ریز بهجای یه نمره کلی، گرفتن امید ریاضی روی کل توزیع logprob توکنهای امتیاز (یعنی بهجای اینکه فقط ببینی مدل چه عددی گفت، احتمال همه عددهای ممکن رو وزن میدی)، و بعد تکرار ارزیابی و شکستن معیارها به بخشهای کوچکتر.
خروجی این کار یه عدد پیوستهست که سه جا به درد میخوره: انتخاب بهترین از بین N خروجی، دنبال کردن پیشرفت ایجنت قدمبهقدم، و یادگیری تقویتی. کار با کتابخونه هم سادهست و با pip install llm-verifier نصب میشه:
result = llm_verifier.select(
problem=problem,
candidates=candidates,
criteria={"Correctness": "Does the code actually reverse the string?"},
)
print(result.index) # index of the best candidate: 0
print(result.scores) # candidate scores: [0.73104, 0.38446, 0.38449]کنار select، تابع compare دو کاندید رو مستقیم مقایسه میکنه و track به هر قدم از مسیر یه نمره پیشرفت میده. کلاس ProgressTracker همین کارو زنده انجام میده: هر قدم رو که بهش بدی نمره برمیگردونه و چون فقط قدمهای تا اینجا رو دیده، نمیتونه آینده رو ببینه. کاربرد عملیش اینه که یه رولاوت بیفایده رو زود قطع کنی یا تصمیم بگیری دوباره نمونهبرداری کنی.
اعدادی که تو مخزن گزارش شده: روی Terminal-Bench 2.1 با deepseek-v4-flash که هم مسیرها رو تولید میکنه هم خودش داور خودشه، best-of-5 از Pass@1 برابر ۷۸.۷٪ به ۸۸.۰٪ میرسه (سقف اوراکل ۹۶.۶٪). با Gemini 2.5 Flash بهعنوان داور، SWE-Bench Verified از ۷۶.۱٪ به ۷۸.۲٪ و MedAgentBench از ۷۰.۲٪ به ۷۳.۳٪ میره.
برای اینکه هزینه مقایسهها منفجر نشه، بهجای تورنمنت راند رابین با هزینه O(N²)، الگوریتم Probabilistic Pivot Tournament هر کاندید رو فقط با چندتا pivot مقایسه میکنه و هزینه رو به O(Nk) میرسونه. یه ring pass اولیه هم هر کاندید رو یکبار تو جایگاه A و یکبار تو B میذاره تا سوگیری موقعیتی مدل خنثی بشه.
نسخه 0.2.0 هم بهینهسازی prefix cache رو آورده: چون هر پرامپت ارزیابی دو مسیر کامل (حدود ۸۰ هزار توکن روی Terminal-Bench 2.1) رو حمل میکنه، معیار رو ته پرامپت گذاشتن تا بقیهش بین درخواستها مشترک بمونه. نتیجهش رفتن نرخ hit کش از ۵.۲٪ به ۷۸.۴٪ و حدود ۳.۴ برابر کمتر شدن توکن ورودی بدون کشه. پلاگین TurboAgent هم همین انتخاب best-of-N رو بهشکل یه پراکسی API به Claude Code وصل میکنه.
نکات کلیدی:
- نصب با pip install llm-verifier؛ ورودیهای اصلی select، compare، track و ProgressTracker
- Terminal-Bench 2.1 با خودراستیآزمایی: best-of-5 از ۷۸.۷٪ به ۸۸.۰٪ ± ۰.۶
- SWE-Bench Verified از ۷۶.۱٪ به ۷۸.۲٪ و MedAgentBench از ۷۰.۲٪ به ۷۳.۳٪
- Probabilistic Pivot Tournament هزینه رتبهبندی رو از O(N²) به O(Nk) میرسونه
- نسخه 0.2.0: نرخ hit کش ۵.۲٪ به ۷۸.۴٪ و بکاند deepseek-v4-flash
- پشتیبانی چندوجهی: همه ورودیها آرگومان images رو قبول میکنن




