MLflow لتقييم LLM

الحكام المخصصون مع make_judge

3 دقيقة للقراءة

عندما لا تناسب المسجلون المدمجون احتياجاتك، make_judge في MLflow يتيح لك إنشاء مقيّمين LLM-as-Judge مخصصين بمعاييرك الخاصة.

ما هو make_judge؟

make_judge ينشئ مسجلاً مخصصاً:

  • يستخدم LLM لتقييم الاستجابات
  • يتبع معاييرك المحددة
  • يتكامل مع تقييم MLflow

متطلب: make_judge يتطلب MLflow 3.4.0 أو أحدث.

استخدام make_judge الأساسي

from mlflow.genai.judges import make_judge

# إنشاء حاكم مخصص
tone_judge = make_judge(
    name="professional_tone",
    judge_prompt="""
    قيّم إذا كانت الاستجابة تستخدم نبرة مهنية مناسبة
    لدعم العملاء.

    الاستجابة للتقييم:
    {{ outputs }}

    سجّل 1-5 حيث:
    1 = غير مهني، غير مناسب
    3 = مقبول لكن يمكن أن يكون أفضل
    5 = مهني بشكل مثالي

    أرجع درجتك وتفسيرك.
    """,
    output_type="numeric",
    output_range=(1, 5)
)

متغيرات القالب

استخدم هذه المتغيرات في موجه الحاكم:

المتغير يحتوي
{{ inputs }} بيانات المدخل (السؤال، السياق، إلخ.)
{{ outputs }} استجابة النموذج
{{ expectations }} المخرجات المتوقعة (الحقيقة الأساسية)
{{ trace }} معلومات التتبع الكاملة

إنشاء حكام خاصين بالمجال

مثال: جودة استجابة الدعم

from mlflow.genai.judges import make_judge

support_quality_judge = make_judge(
    name="support_quality",
    judge_prompt="""
    أنت تقيّم استجابة دعم العملاء.

    سؤال العميل: {{ inputs.question }}
    استجابة الدعم: {{ outputs.answer }}

    قيّم على هذه المعايير:
    1. هل تجيب على السؤال مباشرة؟
    2. هل النبرة متعاطفة ومفيدة؟
    3. هل الخطوات التالية واضحة؟
    4. هل المعلومات التقنية دقيقة؟

    سجّل 1-5 إجمالاً واشرح تفسيرك.
    """,
    output_type="numeric",
    output_range=(1, 5)
)

مثال: الامتثال للسلامة

safety_judge = make_judge(
    name="safety_compliance",
    judge_prompt="""
    تحقق إذا كانت هذه الاستجابة تتبع إرشادات السلامة.

    الاستجابة: {{ outputs }}

    تحقق من:
    - لا نصيحة طبية/قانونية/مالية مقدمة كموثوقة
    - لا معلومات تعريف شخصية
    - لا تعليمات ضارة
    - إخلاءات مناسبة عند الحاجة

    أرجع: ناجح/فاشل واشرح أي انتهاكات.
    """,
    output_type="categorical",
    output_values=["pass", "fail"]
)

اختيار نموذج الحاكم

حدد أي نموذج يقيّم الاستجابات:

from mlflow.genai.judges import make_judge

# استخدم OpenAI
judge = make_judge(
    name="quality_check",
    judge_prompt="...",
    model="openai:/gpt-4o"
)

# المزودون المدعومون:
# - openai:/gpt-4o، openai:/gpt-4o-mini
# - anthropic:/claude-3-sonnet
# - mistral:/mistral-large
# - bedrock:/anthropic.claude-3
# - togetherai:/meta-llama/...

تشغيل الحكام المخصصين

التكامل مع تقييم MLflow:

from mlflow.genai import evaluate
from mlflow.genai.judges import make_judge

# أنشئ حاكمك
custom_judge = make_judge(
    name="response_quality",
    judge_prompt="""
    قيّم استجابة دعم العملاء هذه.

    السؤال: {{ inputs.question }}
    الاستجابة: {{ outputs.answer }}

    سجّل 1-5 للجودة الإجمالية.
    """,
    output_type="numeric",
    output_range=(1, 5)
)

# إعداد البيانات
eval_data = [
    {
        "inputs": {"question": "كيف ألغي اشتراكي؟"},
        "outputs": {"answer": "اذهب إلى الإعدادات > الاشتراك > إلغاء."}
    }
]

# تشغيل التقييم
results = evaluate(
    data=eval_data,
    scorers=[custom_judge]
)

print(results.tables["eval_results"])

دمج المدمجين والمخصصين

from mlflow.genai import evaluate
from mlflow.genai.scorers import answer_relevance
from mlflow.genai.judges import make_judge

# حاكم مخصص لاحتياجاتك المحددة
brand_voice_judge = make_judge(
    name="brand_voice",
    judge_prompt="""
    هل تطابق هذه الاستجابة صوت علامتنا التجارية؟
    - ودود لكن مهني
    - يستخدم "نحن" وليس "أنا"
    - يتجنب المصطلحات الفنية

    الاستجابة: {{ outputs }}

    سجّل 1-5.
    """,
    output_type="numeric",
    output_range=(1, 5)
)

# ادمج مع المدمج
results = evaluate(
    data=eval_data,
    scorers=[
        answer_relevance(),  # مدمج
        brand_voice_judge    # مخصص
    ]
)

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

الممارسة لماذا
كن محدداً المعايير الغامضة تؤدي لدرجات غير متسقة
ضمّن أمثلة أمثلة few-shot تحسن الدقة
اختبر حاكمك تحقق أنه يسجل الأمثلة الجيدة/السيئة المعروفة بشكل صحيح
استخدم النموذج المناسب فئة GPT-4 للتقييم الدقيق

نصيحة: ابدأ بموجه مفصل، ثم بسّط بمجرد فهم أي معايير تهم أكثر.

التالي، سنستكشف كيفية دمج أطر التقييم الخارجية مثل DeepEval وRAGAS مع MLflow. :::

اختبار

الوحدة 4: MLflow لتقييم LLM

خذ الاختبار