سجل النماذج والتقديم

مفاهيم سجل النماذج

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

سجل النماذج هو مركز مركزي لإدارة دورة حياة نماذج ML—من التجريب إلى الإنتاج. يجلب التحكم في الإصدار والحوكمة والتعاون لإدارة النماذج.

لماذا سجل النماذج؟

بدون سجل:

النماذج متناثرة عبر:
├── /home/alice/models/best_model_v2_final_FINAL.pkl
├── /home/bob/experiments/model_2025_01_15.h5
├── s3://bucket/models/classifier/
├── /mnt/shared/archived_models/
└── "أظن أن نموذج الإنتاج في Slack في مكان ما..."

مع سجل:

سجل النماذج
├── fraud-detector
│   ├── الإصدار 1 (Staging)
│   ├── الإصدار 2 (Production) ← الحالي
│   └── الإصدار 3 (Development)
├── recommendation-engine
│   ├── الإصدار 1 (Archived)
│   └── الإصدار 2 (Production)
└── churn-predictor
    └── الإصدار 1 (Production)

المفاهيم الأساسية

النموذج

نموذج ML مُدرب جاهز للنشر:

# ما يتم تسجيله
model = {
    "name": "fraud-detector",
    "version": 3,
    "artifacts": {
        "model.pkl": "s3://bucket/models/fraud/v3/model.pkl",
        "preprocessor.pkl": "s3://bucket/models/fraud/v3/preprocessor.pkl"
    },
    "metrics": {
        "accuracy": 0.95,
        "f1_score": 0.93,
        "auc_roc": 0.98
    },
    "parameters": {
        "n_estimators": 100,
        "max_depth": 10
    },
    "tags": {
        "team": "risk",
        "use_case": "كشف الاحتيال الفوري"
    }
}

إصدار النموذج

كل تشغيل تدريب يُنتج إصداراً جديداً:

fraud-detector
├── v1: accuracy=0.85, created=2025-01-01
├── v2: accuracy=0.90, created=2025-01-15
└── v3: accuracy=0.95, created=2025-01-20 ← الأحدث

مرحلة النموذج

المراحل تتتبع أين النموذج في دورة حياته:

المرحلة الوصف من يمكنه الوصول
Development تجريبي، غير مُختبر علماء البيانات
Staging تحت الاختبار/التحقق فريق QA
Production مباشر، يُقدم الطلبات أنظمة الإنتاج
Archived مُهمل، مُحتفظ للتدقيق الامتثال
Development ──▶ Staging ──▶ Production
                          Archived

معمارية سجل النماذج

┌─────────────────────────────────────────────────────────────────┐
│                        سجل النماذج                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │                    مخزن البيانات الوصفية                  │  │
│  │  • اسم النموذج، الإصدار، المرحلة                         │  │
│  │  • معلمات التدريب                                        │  │
│  │  • المقاييس والعلامات                                    │  │
│  │  • النسب (البيانات، الكود، التجربة)                      │  │
│  └───────────────────────────────────────────────────────────┘  │
│                              │                                  │
│                              ▼                                  │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │                    مخزن المخرجات                          │  │
│  │  • ملفات النماذج (pkl, pt, onnx, savedmodel)             │  │
│  │  • خطوط المعالجة المسبقة                                  │  │
│  │  • ملفات التكوين                                          │  │
│  └───────────────────────────────────────────────────────────┘  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
              ┌───────────────┼───────────────┐
              │               │               │
              ▼               ▼               ▼
         خط أنابيب       نظام            خط أنابيب
         التدريب        التقديم          CI/CD

الميزات الرئيسية

1. التحكم في الإصدار

# سجّل إصدارات متعددة
mlflow.register_model("runs:/abc123/model", "fraud-detector")  # v1
mlflow.register_model("runs:/def456/model", "fraud-detector")  # v2
mlflow.register_model("runs:/ghi789/model", "fraud-detector")  # v3

2. انتقالات المراحل

# رقِّ النموذج للإنتاج
client.transition_model_version_stage(
    name="fraud-detector",
    version=3,
    stage="Production"
)

3. نسب النموذج

النموذج: fraud-detector v3
├── تشغيل التدريب: experiment_123/run_456
├── مجموعة البيانات: s3://bucket/data/train_2025_01.parquet
├── الكود: git@github.com:org/repo.git@commit_abc
├── البيئة: python=3.11, sklearn=1.4.0
└── النموذج الأصل: fraud-detector v2

4. التحكم في الوصول

الدور الصلاحيات
عالم البيانات إنشاء، قراءة النماذج
مهندس ML الترقية لـ staging
DevOps الترقية للإنتاج
المدير حذف، أرشفة النماذج

البيانات الوصفية للنموذج

ما يجب تتبعه

الفئة أمثلة
الهوية الاسم، الإصدار، الأسماء المستعارة
الأداء الدقة، زمن الاستجابة، الإنتاجية
التدريب المعلمات الفائقة، إصدار مجموعة البيانات
النسب معرف التجربة، commit الكود
التشغيلي المالك، الفريق، متطلبات SLA

مثال البيانات الوصفية

model:
  name: fraud-detector
  version: 3
  stage: Production

metrics:
  accuracy: 0.95
  f1_score: 0.93
  latency_p99_ms: 15
  throughput_qps: 1000

training:
  experiment_id: exp_123
  run_id: run_456
  dataset_version: v2.1
  training_date: "2025-01-20"

parameters:
  algorithm: XGBoost
  n_estimators: 100
  max_depth: 10
  learning_rate: 0.1

tags:
  team: risk
  owner: alice@company.com
  compliance: SOC2

خيارات سجل النماذج

الأداة النوع الأفضل لـ
MLflow مفتوح المصدر عام
Weights & Biases مُدار تتبع التجارب + سجل
Neptune مُدار فرق MLOps
SageMaker سحابي نظام AWS البيئي
Vertex AI سحابي نظام GCP البيئي

أفضل الممارسات

الممارسة لماذا
نموذج واحد لكل حالة استخدام ملكية وتحكم إصدار واضح
أوصاف إصدار ذات معنى اعرف ما تغير
أتمت انتقالات المراحل قلل الخطأ البشري
افرض سير عمل الموافقة الحوكمة والامتثال
تتبع جميع البيانات الوصفية إعادة إنتاج كاملة

الرؤية الرئيسية: سجل النماذج يُحول إدارة النماذج من مشاركة ملفات عشوائية إلى عملية محكومة وقابلة للتدقيق—ضروري لـ ML في الإنتاج على نطاق واسع.

التالي، سنستكشف MLflow Model Registry بعمق. :::

اختبار

الوحدة 5: سجل النماذج والتقديم

خذ الاختبار