مقدمة في 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. :::

اختبار

الوحدة 1: مقدمة في MLOps

خذ الاختبار