🧠 چت های چت های ارزیابی خودکار با 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 در مورد واقعیت با اضطراب من.