برنامه نویسی

🧠 چت های چت های ارزیابی خودکار با Genai: خط لوله ، اعلان ها و اثبات

chatbots خوب ترسناک می شوند – اما آنها را ارزیابی می کنند؟ این هنوز درد است. نمرات Bleu و Rouge احساس می کنند که سعی می کنند یک فیلم را با زیرنویس خود قضاوت کنند. ارزیابی انسان وقت گیر ، متناقض و صادقانه است … هیچ کس برای این کار وقت ندارد.

بنابراین سوالی که من در این پروژه با آن روبرو شدم:
آیا می توانیم اجازه دهیم که یک LLM سایر LLM ها را ارزیابی کند؟

اسپویلر: بله. و به طرز تکان دهنده ای مؤثر است.


ایده بزرگ: LLM Rating LLM

ما ساختیم سیستم هفتگی با استفاده از مدل فلش Google's Gemini 2.0 برای ارزیابی پاسخ های chatbot در:

✅ ارتباط – آیا واقعاً به این سوال پاسخ می دهد؟

✅ مفید بودن – آیا جواب مفید است یا فقط کرک؟

✅ وضوح – آیا یک انسان واقعاً می تواند آن را درک کند؟

✅ دقت واقعی – آیا توهم است یا نه؟

و ما فقط داده های خودمان را اختراع نکردیم – ما مکالمات واقعی را از مجموعه داده OpenAssistant (OASST1) بیرون کشیدیم. اینها چت های کمک کننده به انسان هستند ، بنابراین این معامله واقعی است.


تنظیم: بیایید نری را بدست آوریم

مرحله 1: مجموعه داده را بارگیری کنید

ما از بغل کردن صورت استفاده کردیم datasets کتابخانه برای بارگیری داده های آموزشی OpenAssistant و تبدیل آن به یک Pandas Dataframe.

from datasets import load_dataset

oasst = load_dataset("OpenAssistant/oasst1")
df = oasst["train"].to_pandas()

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

مرحله 2: جفت های پاسخ سریع را استخراج کنید

ما مکالمات انگلیسی را فیلتر کردیم و دستیار دستیار ادغام شده با اعلان هایی که باعث ایجاد آنها شد.

df = df[df['role'].isin(['prompter', 'assistant'])][['message_id', 'parent_id', 'text', 'role', 'lang']]
df = df[df['lang'] == 'en']

merged = df.merge(df, left_on="parent_id", right_on="message_id", suffixes=("_reply", "_prompt"))
merged = merged[['text_prompt', 'text_reply']].rename(columns={'text_prompt': 'prompt', 'text_reply': 'response'})

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


مهندسی سریع + راه اندازی جمینی

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

در اینجا سریع ارزیابی ما ارسال می شود:

def build_eval_prompt(prompt, response):
    return f"""
You are an evaluator. Rate this response to a user prompt.

Rate from 1 to 5 on:
- Relevance
- Helpfulness
- Clarity
- Factual accuracy

Return ONLY valid JSON:
{{
  "relevance": X,
  "helpfulness": X,
  "clarity": X,
  "factuality": X
}}

Prompt: {prompt}
Response: {response}
"""
حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

و سپس ما فقط با آن به جمینی برخورد کردیم:

import google.generativeai as genai

genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel("gemini-2.0-flash")

response = model.generate_content(build_eval_prompt(prompt, response))

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید


اجرای حلقه ارزیابی

ما مدل را بر روی نمونه ای از 15 جفت پاسخ سریع اجرا کردیم و نمرات را تجزیه کردیم:

ratings = []

for _, row in sampled.iterrows():
    try:
        res = model.generate_content(build_eval_prompt(row['prompt'], row['response']))
        json_block = res.text[res.text.find('{'):res.text.rfind('}')+1]
        score = json.loads(json_block)
        score.update(row)
        ratings.append(score)
    except Exception as e:
        print("Error:", e)

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

رونق اکنون ما یک LLM LLM داریم. سبک ماتریس.


تجسم نمرات

ما همه چیز را در CSV ذخیره کردیم و از یک جعبه Seaborn برای بدست آوردن ویبرها استفاده کردیم:

import seaborn as sns
import matplotlib.pyplot as plt

ratings_df = pd.DataFrame(ratings)
sns.boxplot(data=ratings_df[['relevance', 'helpfulness', 'clarity', 'factuality']])
plt.title("LLM Auto-Eval Score Distribution")
plt.show()

حالت تمام صفحه را وارد کنید

از حالت تمام صفحه خارج شوید

و نتایج؟ بسیار جامد برخی از مناطق دور افتاده ، اما جمینی در هر چهار بعد نمرات معقول کسب کرد.


غذای آماده

✅ این کار می کند. جمینی می تواند پاسخ های چت بوت را به طور مداوم ارزیابی کند.

🎯 مقیاس آن است. نیازی به اشکال در دوستان خود نیست تا 200 پاسخ را ارزیابی کنید.

at مقایسه مدل فقط آسانتر شد. آیا می خواهید GPT vs Claude vs Mistral را مقایسه کنید؟ خودکار آن را

چه چیزی بعدی؟ 🛣

exam مثالهای بیشتر و چندین مدل برای آزمایش A/B اضافه کنید.

town توهم را به طور خودکار تشخیص دهید.

🧑‍⚖ مقایسه LLM در مقابل ارزیابی های انسانی – چه کسی بهتر ارزیابی می کند؟


🧪 خودتان آن را امتحان کنید

آیا می خواهید زیر کاپوت نگاه کنید یا با داده های خود آن را اجرا کنید؟

👉 نوت بوک کامل را در Kaggle بررسی کنید

آن را کلون کنید ، آن را ببندید ، آن را بشکنید (فقط مرا سرزنش نکنید).

PS: این پست با وضوح 5/5 توسط گربه من رتبه بندی شد. و 2/5 در مورد واقعیت با اضطراب من.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا