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 توفر:

الميزة الوصف
جنباً إلى جنب قارن المخرجات لنفس المدخل
رسوم المقاييس تصور توزيعات الدرجات
عرض الفرق شاهد ما تغير بين الإصدارات
التعمق افحص الأمثلة الفردية

أفضل الممارسات

  1. استخدم مجموعات بيانات متسقة: نفس حالات الاختبار للمقارنة العادلة
  2. تتبع البيانات الوصفية: سجّل إصدار النموذج، إصدار الموجه، التاريخ
  3. شغّل عدة مرات: احسب تباين LLM
  4. احفظ خطوط الأساس: احتفظ بنقاط مرجعية للمقارنة
  5. وثّق التغييرات: سجّل ما تغير بين الإصدارات

نصيحة: أنشئ تقييم خط أساس "ذهبي" مبكراً. قارن جميع التجارب المستقبلية مع هذا الخط الأساسي.

التالي، سنستكشف كيفية بناء مقيّمين LLM-as-Judge في Weave. :::

اختبار

الوحدة 5: W&B Weave للتقييم

خذ الاختبار