مقدمة في MLOps
أنماط البنية التحتية
3 دقيقة للقراءة
أنظمة التعلم الآلي لها احتياجات بنية تحتية مميزة للتدريب مقابل التقديم. فهم هذه الأنماط يساعدك في تصميم أنظمة فعالة وموفرة للتكلفة.
البنية التحتية للتدريب مقابل التقديم
| الجانب | التدريب | التقديم |
|---|---|---|
| الهدف | التعلم من البيانات | إجراء التوقعات |
| الحوسبة | مجموعات GPU، ذاكرة عالية | CPU/GPU، زمن استجابة منخفض |
| الوصول للبيانات | معالجة دفعية | بحث في الوقت الفعلي |
| التوسع | توسع لأعلى (أجهزة أكبر) | توسع للخارج (نسخ أكثر) |
| نموذج التكلفة | حوسبة متقطعة (دفع لكل تشغيل) | دائمة التشغيل (دفع لكل وقت تشغيل) |
نمط البنية التحتية للتدريب
┌──────────────────────────────────────────────────────┐
│ البنية التحتية للتدريب │
├──────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ ┌──────────────┐ ┌──────────┐ │
│ │ بحيرة │────▶│ مجموعة │────▶│ مخزن │ │
│ │البيانات │ │ الحوسبة │ │ المخرجات │ │
│ └─────────┘ │ (GPU/TPU) │ └──────────┘ │
│ │ └──────────────┘ │ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌──────────────────────────────────────────────┐ │
│ │ المنسق (Kubeflow) │ │
│ └──────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────┘
المكونات الرئيسية:
- بحيرة البيانات: S3, GCS, Azure Blob للبيانات الخام
- مجموعة الحوسبة: Kubernetes مع عقد GPU
- مخزن المخرجات: سجل النماذج، سجلات التجارب
- المنسق: Kubeflow, Airflow لإدارة خطوط الأنابيب
نمط البنية التحتية للتقديم
┌──────────────────────────────────────────────────────┐
│ البنية التحتية للتقديم │
├──────────────────────────────────────────────────────┤
│ │
│ طلب العميل │
│ │ │
│ ▼ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ موازن │────▶│ خادم │────▶│ مخزن │ │
│ │ الحمل │ │ النموذج │ │ الميزات │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ المراقبة │ │
│ └──────────────────┘ │
│ │
└──────────────────────────────────────────────────────┘
المكونات الرئيسية:
- موازن الحمل: توزيع الطلبات عبر النسخ
- خادم النموذج: BentoML, TF Serving, TorchServe
- مخزن الميزات: Feast للبحث عن الميزات في الوقت الفعلي
- المراقبة: زمن الاستجابة، الإنتاجية، اكتشاف الانجراف
الاستدلال الدفعي مقابل الوقت الفعلي
| النمط | حالة الاستخدام | زمن الاستجابة | الأدوات |
|---|---|---|---|
| دفعي | التوصيات الليلية | دقائق-ساعات | Spark, Kubeflow |
| وقت فعلي | ترتيب البحث | ميلي ثانية | BentoML, KServe |
| شبه وقت فعلي | اكتشاف الاحتيال | ثوانٍ | Kafka + نموذج |
الاستدلال الدفعي
# مثال: التوقع الدفعي مع Spark
from pyspark.sql import SparkSession
import mlflow
spark = SparkSession.builder.appName("batch_predict").getOrCreate()
# تحميل النموذج من السجل
model = mlflow.pyfunc.spark_udf(spark, "models:/churn_model/production")
# تطبيق على مجموعة بيانات كبيرة
predictions = df.withColumn("prediction", model("features"))
predictions.write.parquet("s3://bucket/predictions/")
الاستدلال في الوقت الفعلي
# مثال: الوقت الفعلي مع BentoML
import bentoml
@bentoml.service
class FraudDetector:
model = bentoml.models.get("fraud_model:latest")
@bentoml.api
async def predict(self, transaction: dict) -> dict:
# احصل على الميزات من المخزن الإلكتروني
features = await self.feature_store.get_features(
transaction["user_id"]
)
# توقع
score = self.model.predict([features])[0]
return {"fraud_score": score}
أنماط تحسين التكلفة
| النمط | الوصف | التوفير |
|---|---|---|
| الأجهزة الفورية | استخدام VMs قابلة للاستباق للتدريب | 60-80% |
| التوسع التلقائي | توسيع نسخ التقديم حسب الطلب | 40-60% |
| تخزين النموذج المؤقت | تخزين التوقعات للمدخلات المتكررة | متغير |
| التحجيم الصحيح | مطابقة حجم المثيل لحمل العمل | 30-50% |
البنى الهجينة
العديد من أنظمة الإنتاج تجمع بين الأنماط:
┌────────────────────────────────────────────────────┐
│ البنية الهجينة │
├────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ المسار في الوقت الفعلي (حرج) │ │
│ │ طلب → نموذج A → استجابة (p99 < 50ms) │ │
│ └─────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────┐ │
│ │ المسار الدفعي (خلفية) │ │
│ │ بيانات → نموذج B → تخزين → حساب مسبق │ │
│ └─────────────────────────────────────────────┘ │
│ │
└────────────────────────────────────────────────────┘
مثال: التجارة الإلكترونية قد تستخدم:
- وقت فعلي: ترتيب البحث (يجب أن يكون سريعاً)
- دفعي: رسائل التوصيات (يمكن الانتظار)
الرؤية الرئيسية: اختر البنية التحتية بناءً على متطلبات زمن الاستجابة وقيود التكلفة، وليس فقط تعقيد النموذج.
في الوحدة التالية، سنتعمق في التحكم في إصدار البيانات والنماذج باستخدام DVC. :::