مخازن الميزات وهندسة الميزات

لماذا مخازن الميزات؟

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

مخازن الميزات تحل واحدة من أكثر مشاكل ML في الإنتاج شيوعاً: انحراف التدريب-التقديم. تضمن أن نموذجك يرى نفس الميزات في الإنتاج كما رآها أثناء التدريب.

مشكلة انحراف التدريب-التقديم

خط أنابيب التدريب                  خط أنابيب التقديم
┌──────────────────┐                 ┌──────────────────┐
│  استعلام SQL A  │                 │  كود Python B   │
│  (PostgreSQL)    │                 │  (API فوري)     │
└────────┬─────────┘                 └────────┬─────────┘
         │                                    │
         ▼                                    ▼
┌──────────────────┐                 ┌──────────────────┐
│  الميزة X = 10  │      ≠         │  الميزة X = 10.1│
└──────────────────┘                 └──────────────────┘
         │                                    │
         ▼                                    ▼
      النموذج                            النموذج
     (دقيق)                            (متدهور)

المشكلة: كود مختلف يحسب نفس الميزات، مما يؤدي لاختلافات طفيفة تُدهور أداء النموذج.

ما هو مخزن الميزات؟

مخزن الميزات هو مستودع مركزي لـ:

  • تخزين تعريفات الميزات
  • حساب الميزات بشكل متسق
  • تقديم الميزات للتدريب والاستدلال
  • تتبع نسب الميزات وإصداراتها
                    ┌─────────────────────┐
                    │    مخزن الميزات    │
                    │  ┌───────────────┐  │
   بيانات خام ─────▶│  │  تحويل       │  │ ──────▶ التدريب
                    │  │  وتخزين      │  │
                    │  └───────────────┐  │ ──────▶ التقديم
                    │  │  فوري/       │  │
                    │  │  غير فوري    │  │
                    └──┴───────────────┴──┘

المخازن الفورية مقابل غير الفورية

الجانبالمخزن غير الفوريالمخزن الفوري
حالة الاستخدامالتدريبالاستدلال
زمن الاستجابةدقائق-ساعاتمللي ثواني
التخزينمستودع بياناتمخزن مفتاح-قيمة
الحجمبيانات تاريخيةأحدث القيم
الوصولاستعلامات دفعيةبحث نقطي

المخزن غير الفوري (التدريب)

# استعلام الميزات التاريخية للتدريب
training_data = feature_store.get_historical_features(
    entity_df=entity_dataframe,
    features=[
        "customer_features:total_purchases",
        "customer_features:avg_order_value",
        "customer_features:days_since_last_order"
    ]
)

المخزن الفوري (الاستدلال)

# احصل على أحدث الميزات للتوقع الفوري
features = feature_store.get_online_features(
    features=[
        "customer_features:total_purchases",
        "customer_features:avg_order_value"
    ],
    entity_rows=[{"customer_id": 12345}]
)

فوائد مخزن الميزات

1. الاتساق

┌─────────────────────────────────────────────────────────┐
│              تعريف ميزة واحد                            │
│                                                         │
│  def avg_order_value(orders):                           │
│      return orders.groupby('customer_id')['amount'].mean()│
└─────────────────────────────────────────────────────────┘
         ┌───────────────┴───────────────┐
         │                               │
         ▼                               ▼
    التدريب                         التقديم
    (نفس النتيجة)                  (نفس النتيجة)

2. إعادة الاستخدام

الميزة: customer_lifetime_value
    ├── تُستخدم بواسطة: نموذج توقع الانسحاب
    ├── تُستخدم بواسطة: نموذج البيع الإضافي
    ├── تُستخدم بواسطة: نموذج تقييم المخاطر
    └── تُستخدم بواسطة: تقسيم التسويق

3. الاكتشاف

الفرق يمكنها تصفح وإعادة استخدام الميزات الموجودة:

كتالوج الميزات
───────────────────────────────────────────────
الاسم                  │ المالك  │ آخر تحديث
───────────────────────────────────────────────
customer_ltv            │ فريق أ │ 2025-01-15
product_avg_rating      │ فريق ب │ 2025-01-10
user_session_count      │ فريق ج │ 2025-01-12
order_frequency_30d     │ فريق أ │ 2025-01-14
───────────────────────────────────────────────

4. السفر عبر الزمن

# احصل على الميزات كما كانت في تاريخ محدد
point_in_time_features = feature_store.get_historical_features(
    entity_df=entity_dataframe,
    features=["customer_features:total_purchases"],
    timestamp_field="event_timestamp"
)

حالات الاستخدام الشائعة

حالة الاستخدامالميزات المطلوبةزمن الاستجابة
كشف الاحتيالأنماط المعاملات، معلومات الجهاز< 50ms
التوصياتتفضيلات المستخدم، تضمينات العناصر< 100ms
التصنيف الائتمانيالتاريخ المالي، أنماط السلوك< 1s
التسعير الديناميكيإشارات الطلب، أسعار المنافسين< 500ms

معمارية مخزن الميزات

┌─────────────────────────────────────────────────────────────┐
│                      مصادر البيانات                          │
│  ┌─────────┐  ┌─────────┐  ┌─────────┐  ┌─────────┐        │
│  │قاعدة   │  │ تدفقات │  │ ملفات  │  │  APIs   │        │
│  │بيانات  │  │         │  │         │  │         │        │
│  └────┬────┘  └────┬────┘  └────┬────┘  └────┬────┘        │
└───────┼────────────┼────────────┼────────────┼──────────────┘
        │            │            │            │
        └────────────┴─────┬──────┴────────────┘
              ┌────────────────────────┐
              │   هندسة الميزات       │
              │   (التحويلات)         │
              └───────────┬────────────┘
        ┌─────────────────┴─────────────────┐
        │                                   │
        ▼                                   ▼
┌───────────────────┐            ┌───────────────────┐
│  المخزن غير     │            │   المخزن الفوري   │
│  الفوري          │            │   (Redis/DynamoDB)│
│  (بحيرة البيانات)│            │                   │
└─────────┬─────────┘            └─────────┬─────────┘
          │                                │
          ▼                                ▼
   خط أنابيب التدريب              خدمة الاستدلال

مخازن الميزات الشائعة

الأداةالنوعالأفضل لـ
Feastمفتوح المصدرعام، مستضاف ذاتياً
Tectonمُدارالمؤسسات، ML فوري
Databricksمُدارسير عمل Spark
AWS SageMakerمُدارنظام AWS البيئي
Vertex AIمُدارنظام GCP البيئي

متى تحتاج مخزن ميزات؟

الحالةتحتاج مخزن ميزات؟
نموذج واحد، استدلال دفعيربما
نماذج متعددة تشترك في الميزاتنعم
استدلال فورينعم
مشاكل انحراف التدريب-التقديمنعم
اكتشاف/حوكمة الميزاتنعم

الرؤية الرئيسية: مخازن الميزات ليست فقط تخزين—هي الجسر بين هندسة البيانات وML، تضمن الاتساق وإعادة الاستخدام والحوكمة عبر منصة ML الخاصة بك.

التالي، سنغوص عميقاً في Feast، أشهر مخزن ميزات مفتوح المصدر. :::

مراجعة سريعة: كيف تجد هذا الدرس؟

اختبار

الوحدة 4: مخازن الميزات وهندسة الميزات

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.