Skip to content

معرفی فارسی

llm-search-eval ابزاری متن باز برای سنجش کیفیت جستجو و پیشنهاد محصول در فروشگاه های اینترنتی است. این ابزار معیارهای کلاسیک بازیابی اطلاعات مانند nDCG و MRR و MAP را با داوری مدل های زبانی ترکیب می کند تا نتایجی که برچسب ندارند هم ارزیابی شوند. چند سیستم جستجو را کنار هم مقایسه می کند و برای هر مقایسه آزمون معناداری آماری ارائه می دهد. پرسش های فارسی و انگلیسی هر دو پشتیبانی می شوند و نویسه های عربی، ارقام فارسی و فاصله های مجازی به شکل یکسان نرمال سازی می شوند.

در نسخه 0.2.0 چند داور مدل زبانی می توانند با هم رای بدهند و میزان توافق آن ها با شاخص های کاپای کوهن، کاپای فلایس و آلفای کریپندورف گزارش می شود. هزینه و توکن هر اجرا با سقف بودجه کنترل می شود. گزارش تعاملی HTML در یک فایل مستقل ساخته می شود. یک GitHub Action آماده هم هست که در صورت افت کیفیت جستجو، بررسی را ناموفق می کند. اتصال مستقیم به Elasticsearch و OpenSearch و Algolia هم اضافه شده است.

در نسخه 0.4.0 نسخه و هش پرامپت داور در همه نتایج ثبت می شود. هر پرامپت یک شناسه نسخه مانند relevance-v1 و یک هش SHA-256 کوتاه از متن خود پرامپت دارد. این دو، همراه با مدل و سرویس دهنده داور، در report.json، بخش داوران report.md و داشبورد HTML و در هر ردیف کش نوشته می شوند. چون نسخه و هش بخشی از کلید کش هستند، داوری هایی که با پرامپت دیگری انجام شده اند دوباره استفاده نمی شوند. داور مقایسه دوبه دو هم همین طور است.

نسخه 0.3.0 این امکانات را اضافه می کند:

  • مقایسه دوبه دو: داور مدل زبانی دو فهرست نتیجه را کنار هم می بیند و می گوید کدام برای خریدار بهتر است. هر پرسش دو بار با ترتیب برعکس داوری می شود تا اثر جایگاه حذف شود، و نرخ برد با بازه اطمینان و آزمون علامت گزارش می شود.
  • بازه اطمینان: برای میانگین هر معیار و برای اختلاف هر سیستم با سیستم پایه، بازه اطمینان بوت استرپ محاسبه می شود.
  • نمونه گیری: می توان نمونه ای تصادفی و تکرارپذیر از پرسش ها برداشت و آن را بر اساس زبان یا هر فیلد دیگری لایه بندی کرد. نتیجه هر لایه جداگانه گزارش می شود.
  • برآورد هزینه: دستور estimate پیش از اجرا تعداد فراخوانی ها، توکن ها و هزینه را برآورد می کند و اگر بودجه کافی نباشد با خطا خارج می شود.
  • دیدگاه در Pull Request: GitHub Action نتیجه را به صورت یک دیدگاه در Pull Request می نویسد و در اجراهای بعدی همان دیدگاه را به روز می کند. برای این کار مجوز pull-requests: write لازم است.
  • اتصال های تازه: Meilisearch و Typesense و هر API جستجوی دیگری که پاسخ JSON می دهد.
  • داشبورد: بازه های اطمینان، نتایج هر لایه و نمای مقایسه دوبه دو به داشبورد اضافه شده اند.

شروع سریع

pip install llm-search-eval
llm-search-eval run \
  --queries  examples/electronics/queries.jsonl \
  --products examples/electronics/products.jsonl \
  --qrels    examples/electronics/qrels.csv \
  --system   bm25=examples/electronics/runs/bm25.jsonl \
  --system   semantic=examples/electronics/runs/semantic.csv \
  --judge mock --output-dir reports/

این دستور با داور آزمایشی و بدون نیاز به اینترنت اجرا می شود و گزارش Markdown و JSON و داشبورد HTML را در پوشه reports می سازد. برای دیدن نمونه خروجی، داشبورد نمونه را باز کنید.

راهنماها