مراقبة الإنتاج والخطوات التالية
التنبيهات واتفاقيات مستوى الخدمة
3 دقيقة للقراءة
أنظمة LLM في الإنتاج تحتاج مراقبة استباقية. حدد عتبات الجودة، اضبط التنبيهات، وعرّف أهداف مستوى الخدمة (SLOs) لاكتشاف المشاكل قبل المستخدمين.
ما هي SLOs لـ LLMs؟
أهداف مستوى الخدمة تحدد مستويات الجودة المقبولة:
| نوع SLO | مثال | العتبة |
|---|---|---|
| زمن الاستجابة | P95 وقت الاستجابة | < 3 ثوانٍ |
| الجودة | درجة المساعدة | > 0.8 |
| التوفر | الاستجابات الناجحة | > 99.5% |
| التكلفة | التكلفة لكل استعلام | < $0.05 |
تحديد SLOs الجودة
عيّن عتبات لمقاييس التقييم:
# SLOs الجودة لروبوت دعم
QUALITY_SLOS = {
"accuracy": {
"target": 0.90,
"warning": 0.85,
"critical": 0.75
},
"helpfulness": {
"target": 0.85,
"warning": 0.80,
"critical": 0.70
},
"response_time_p95_ms": {
"target": 2000,
"warning": 3000,
"critical": 5000
}
}
إعداد التنبيهات
تنبيهات LangSmith
LangSmith يدعم التنبيه على مقاييس التتبع:
# اضبط التنبيه في واجهة LangSmith:
# 1. انتقل إلى Settings > Alerts
# 2. أنشئ قاعدة تنبيه جديدة
# 3. عيّن الشروط:
alert_config = {
"name": "تنبيه انخفاض الجودة",
"condition": "avg(helpfulness_score) < 0.8",
"window": "1 hour",
"notification": {
"type": "slack",
"channel": "#llm-alerts"
}
}
نمط تنبيه MLflow
import mlflow
def check_quality_slos(results: dict) -> list:
"""تحقق إذا كانت نتائج التقييم تلبي SLOs."""
violations = []
for metric, thresholds in QUALITY_SLOS.items():
value = results.get(metric)
if value is None:
continue
if value < thresholds["critical"]:
violations.append({
"metric": metric,
"level": "critical",
"value": value,
"threshold": thresholds["critical"]
})
elif value < thresholds["warning"]:
violations.append({
"metric": metric,
"level": "warning",
"value": value,
"threshold": thresholds["warning"]
})
return violations
# بعد كل تقييم
violations = check_quality_slos(eval_results.metrics)
if violations:
send_alert(violations)
تنبيهات W&B Weave
import weave
@weave.op()
def production_eval_with_alerts():
"""شغّل التقييم وتحقق من SLOs."""
results = await evaluation.evaluate(production_model)
# تحقق مقابل SLOs
if results.summary["accuracy"] < 0.85:
# أطلق التنبيه
send_slack_alert(
message=f"خرق SLO الجودة: الدقة = {results.summary['accuracy']}"
)
return results
قنوات التنبيه
اضبط قنوات إشعار متعددة:
| القناة | حالة الاستخدام |
|---|---|
| Slack | إشعارات الفريق الفورية |
| تقارير وملخصات مفصلة | |
| PagerDuty | تنبيهات المناوبة الحرجة |
| Webhooks | تكاملات مخصصة |
منع إرهاق التنبيهات
تجنب الكثير من التنبيهات:
- عيّن عتبات مناسبة: ليست حساسة جداً
- استخدم تحذير قبل حرج: اكتشف المشاكل مبكراً
- اجمع التنبيهات: لا تنبه لكل طلب
- أضف السياق: ضمّن معلومات ذات صلة
- عرّف مسارات التصعيد: تحذير → حرج → مناوبة
لوحة SLO
تتبع الامتثال لـ SLO عبر الزمن:
لوحة SLO - آخر 7 أيام
───────────────────────────────────────────
المقياس │ الهدف │ الحالي │ الحالة
───────────────────────────────────────────
الدقة │ 90% │ 92.3% │ ✅
المساعدة │ 85% │ 87.1% │ ✅
P95 زمن الاستجابة │ 2s │ 1.8s │ ✅
معدل الأخطاء │ <1% │ 0.3% │ ✅
التكلفة/استعلام │ $0.05 │ $0.042 │ ✅
───────────────────────────────────────────
الامتثال الإجمالي لـ SLO: 100%
أفضل الممارسات
| الممارسة | لماذا |
|---|---|
| ابدأ بعدد قليل من SLOs | أضف المزيد مع فهم نظامك |
| استخدم ميزانيات الخطأ | اسمح ببعض خروقات SLO |
| راجع بانتظام | اضبط العتبات حسب الحاجة |
| وثّق دفاتر التشغيل | ماذا تفعل عند إطلاق التنبيهات |
نصيحة: ابدأ بـ 3-5 SLOs رئيسية. يمكنك دائماً إضافة المزيد، لكن الكثير مبكراً يؤدي لإرهاق التنبيهات.
التالي، سنستكشف تتبع التكلفة واستراتيجيات التحسين. :::