MLflow لتقييم LLM
تكامل DeepEval وRAGAS
3 دقيقة للقراءة
MLflow يتكامل مع أطر التقييم الخارجية الشائعة من خلال API الخاص به get_judge، مما يتيح لك استخدام مقاييس متخصصة من DeepEval وRAGAS داخل تجارب MLflow.
لماذا تستخدم الأطر الخارجية؟
| الإطار | التخصص |
|---|---|
| DeepEval | اختبار وحدات LLM، مقاييس G-Eval |
| RAGAS | مقاييس خاصة بـ RAG (الاسترجاع + التوليد) |
| MLflow | تتبع التجارب، سجل النماذج |
بدمجها، تحصل على مقاييس متخصصة مع بنية تتبع MLflow.
استخدام API الخاص بـ get_judge
دالة get_judge تنشئ مسجلين متوافقين مع MLflow من الأطر الخارجية:
from mlflow.genai.judges import get_judge
# احصل على حاكم من إطار خارجي
ragas_faithfulness = get_judge(
judge_type="ragas/faithfulness"
)
deepeval_coherence = get_judge(
judge_type="deepeval/coherence"
)
تكامل RAGAS
RAGAS يوفر مقاييس مصممة خصيصاً لأنظمة RAG:
from mlflow.genai.judges import get_judge
from mlflow.genai import evaluate
# مقاييس RAGAS لتقييم RAG
ragas_scorers = [
get_judge("ragas/faithfulness"),
get_judge("ragas/answer_relevancy"),
get_judge("ragas/context_precision"),
get_judge("ragas/context_recall")
]
# بيانات تقييم RAG
eval_data = [
{
"inputs": {
"question": "ما هي سياسة الإرجاع؟",
"contexts": [
"الإرجاع مقبول خلال 30 يوماً.",
"الاستردادات تُعالج في 5-7 أيام عمل."
]
},
"outputs": {
"answer": "يمكنك إرجاع المنتجات خلال 30 يوماً لاسترداد كامل."
},
"expectations": {
"ground_truth": "سياسة إرجاع 30 يوماً مع استرداد كامل."
}
}
]
results = evaluate(
data=eval_data,
scorers=ragas_scorers
)
شرح مقاييس RAGAS
| المقياس | ما يقيسه |
|---|---|
| Faithfulness | هل الإجابة مبنية على السياقات المسترجعة؟ |
| Answer Relevancy | هل الإجابة تعالج السؤال؟ |
| Context Precision | هل السياقات المسترجعة ذات صلة؟ |
| Context Recall | هل السياقات تحتوي المعلومات المطلوبة؟ |
تكامل DeepEval
DeepEval يوفر أنماط اختبار الوحدات لـ LLMs:
from mlflow.genai.judges import get_judge
from mlflow.genai import evaluate
# مقاييس DeepEval
deepeval_scorers = [
get_judge("deepeval/coherence"),
get_judge("deepeval/hallucination"),
get_judge("deepeval/toxicity")
]
eval_data = [
{
"inputs": {"question": "اشرح الحوسبة الكمية"},
"outputs": {"answer": "الحوسبة الكمية تستخدم الكيوبتات..."}
}
]
results = evaluate(
data=eval_data,
scorers=deepeval_scorers
)
شرح مقاييس DeepEval
| المقياس | ما يقيسه |
|---|---|
| Coherence | التدفق المنطقي والوضوح |
| Hallucination | الادعاءات غير المدعومة |
| Toxicity | المحتوى الضار |
| Bias | الصور النمطية غير العادلة |
دمج جميع الأطر
استخدم MLflow وRAGAS وDeepEval معاً:
from mlflow.genai import evaluate
from mlflow.genai.scorers import answer_correctness
from mlflow.genai.judges import get_judge, make_judge
# MLflow مدمج
mlflow_scorers = [answer_correctness()]
# RAGAS لجودة RAG
ragas_scorers = [
get_judge("ragas/faithfulness"),
get_judge("ragas/context_precision")
]
# DeepEval للسلامة
deepeval_scorers = [
get_judge("deepeval/toxicity")
]
# مخصص للمجال
custom_scorers = [
make_judge(
name="brand_alignment",
judge_prompt="هل يطابق هذا صوت علامتنا التجارية؟ {{ outputs }}",
output_type="numeric",
output_range=(1, 5)
)
]
# تشغيل تقييم شامل
results = evaluate(
data=eval_data,
scorers=mlflow_scorers + ragas_scorers + deepeval_scorers + custom_scorers
)
متطلبات التثبيت
# لتكامل RAGAS
pip install ragas
# لتكامل DeepEval
pip install deepeval
# MLflow مع GenAI
pip install mlflow>=3.4.0
تتبع النتائج المدمجة
جميع المقاييس تُتتبع في MLflow:
import mlflow
with mlflow.start_run(run_name="comprehensive-eval"):
results = evaluate(
data=eval_data,
scorers=all_scorers
)
# جميع المقاييس من جميع الأطر تُسجل
print(results.metrics)
# {
# 'answer_correctness/mean': 0.85,
# 'faithfulness/mean': 0.92,
# 'context_precision/mean': 0.78,
# 'toxicity/mean': 0.02,
# 'brand_alignment/mean': 4.2
# }
متى تستخدم كل إطار
| الحاجة | استخدم |
|---|---|
| جودة LLM العامة | مسجلو MLflow المدمجون |
| تقييم نظام RAG | مقاييس RAGAS |
| السلامة والامتثال | مقاييس DeepEval |
| معايير خاصة بالمجال | MLflow make_judge |
نصيحة: ابدأ بإطار واحد، ثم أضف آخرين مع نمو احتياجات التقييم.
مع إتقان MLflow، لنستكشف W&B Weave—منصة تقييم قوية أخرى. :::