W&B Weave للتقييم
مقارنة التجارب
3 دقيقة للقراءة
قوة Weave تتألق عند مقارنة إصدارات مختلفة من تطبيق LLM الخاص بك. تتبع التحسينات، حدد الانحدارات، واتخذ قرارات مبنية على البيانات.
لماذا مقارنة التجارب؟
| السيناريو | ما يجب مقارنته |
|---|---|
| هندسة الموجهات | إصدارات موجهات مختلفة |
| اختيار النموذج | GPT-4 مقابل Claude مقابل Llama |
| ضبط المعاملات | الحرارة، الحد الأقصى للتوكنات |
| تغييرات النظام | إعدادات RAG، تصاميم السلسلة |
النماذج المُصدَّرة
Weave يُصدِر نماذجك تلقائياً:
import weave
weave.init('my-team/my-project')
class SupportBot(weave.Model):
model_name: str = "gpt-4o-mini"
temperature: float = 0.7
system_prompt: str = "أنت وكيل دعم مفيد."
@weave.op()
def predict(self, question: str) -> str:
# منطق LLM الخاص بك
pass
# الإصدار 1: الإعدادات الافتراضية
bot_v1 = SupportBot()
# الإصدار 2: حرارة أقل
bot_v2 = SupportBot(temperature=0.3)
# الإصدار 3: موجه محدث
bot_v3 = SupportBot(
temperature=0.3,
system_prompt="أنت وكيل دعم ودود وفعال. كن موجزاً."
)
تشغيل التقييمات المقارنة
قيّم إصدارات متعددة مقابل نفس مجموعة البيانات:
import weave
weave.init('my-team/my-project')
# حمّل مجموعة البيانات
dataset = weave.ref("support-test-cases").get()
# عرّف المسجلين
@weave.op()
def helpfulness_scorer(output: str, expected: str) -> dict:
# منطق التسجيل الخاص بك
return {"helpfulness": score}
# أنشئ التقييم
evaluation = weave.Evaluation(
dataset=dataset,
scorers=[helpfulness_scorer]
)
# قيّم كل إصدار
results_v1 = await evaluation.evaluate(bot_v1)
results_v2 = await evaluation.evaluate(bot_v2)
results_v3 = await evaluation.evaluate(bot_v3)
عرض المقارنة
في واجهة W&B، قارن التقييمات:
مقارنة التقييمات
────────────────────────────────────────────
المقياس │ bot_v1 │ bot_v2 │ bot_v3
────────────────────────────────────────────
helpfulness │ 0.72 │ 0.78 │ 0.85
accuracy │ 0.80 │ 0.82 │ 0.88
response_time │ 1.2s │ 1.1s │ 1.0s
cost_per_query │ $0.003 │ $0.003 │ $0.003
────────────────────────────────────────────
أنماط تحليل A/B
النمط 1: تنويعات الموجهات
prompts = [
"أجب على السؤال مباشرة.",
"قدم إجابة مفيدة ومفصلة.",
"كن موجزاً لكن شاملاً في ردك."
]
for i, prompt in enumerate(prompts):
model = SupportBot(system_prompt=prompt)
results = await evaluation.evaluate(model)
print(f"الموجه {i+1}: {results.summary}")
النمط 2: مقارنة النماذج
models_to_test = [
{"name": "gpt-4o-mini", "provider": "openai"},
{"name": "gpt-4o", "provider": "openai"},
{"name": "claude-3-sonnet", "provider": "anthropic"}
]
for model_config in models_to_test:
model = SupportBot(model_name=model_config["name"])
results = await evaluation.evaluate(model)
# النتائج تُتتبع مع بيانات النموذج الوصفية
النمط 3: مسح المعاملات
temperatures = [0.0, 0.3, 0.5, 0.7, 1.0]
for temp in temperatures:
model = SupportBot(temperature=temp)
results = await evaluation.evaluate(model)
# تتبع الارتباط بين الحرارة والجودة
التتبع عبر الزمن
راقب الجودة عبر عمليات النشر:
# وسم التقييمات بمعلومات النشر
@weave.op()
def run_production_eval():
model = SupportBot.load_production()
evaluation = weave.Evaluation(
dataset=weave.ref("prod-test-cases").get(),
scorers=[accuracy_scorer, latency_scorer]
)
results = await evaluation.evaluate(model)
# النتائج تُختم بالوقت وتُصدَر تلقائياً
return results
ميزات التصور
واجهة Weave توفر:
| الميزة | الوصف |
|---|---|
| جنباً إلى جنب | قارن المخرجات لنفس المدخل |
| رسوم المقاييس | تصور توزيعات الدرجات |
| عرض الفرق | شاهد ما تغير بين الإصدارات |
| التعمق | افحص الأمثلة الفردية |
أفضل الممارسات
- استخدم مجموعات بيانات متسقة: نفس حالات الاختبار للمقارنة العادلة
- تتبع البيانات الوصفية: سجّل إصدار النموذج، إصدار الموجه، التاريخ
- شغّل عدة مرات: احسب تباين LLM
- احفظ خطوط الأساس: احتفظ بنقاط مرجعية للمقارنة
- وثّق التغييرات: سجّل ما تغير بين الإصدارات
نصيحة: أنشئ تقييم خط أساس "ذهبي" مبكراً. قارن جميع التجارب المستقبلية مع هذا الخط الأساسي.
التالي، سنستكشف كيفية بناء مقيّمين LLM-as-Judge في Weave. :::