مراقبة أداء النماذج المنشورة في الإنتاج

ينطبق على:ملحق ML Azure CLI v2 (الحالي)Python SDK azure-ai-ml v2 (الحالي)

تعلم كيفية استخدام مراقبة نموذج Azure التعلم الآلي لتتبع أداء نماذج التعلم الآلي في الإنتاج باستمرار. توفر لك مراقبة النموذج عرضا واسعا لإشارات المراقبة وتنبيهك إلى المشكلات المحتملة. عند مراقبة الإشارات ومقاييس الأداء للنماذج في الإنتاج، يمكنك تقييم المخاطر المتأصلة المرتبطة بها بشكل نقدي وتحديد النقاط العمياء التي يمكن أن تؤثر سلبا على عملك.

في هذه المقالة، ستتعلم كيفية تنفيذ المهام التالية:

  • إعداد خارج الصندوق والمراقبة المتقدمة للنماذج التي يتم نشرها في Azure التعلم الآلي نقاط النهاية عبر الإنترنت
  • مراقبة مقاييس الأداء للنماذج في الإنتاج
  • مراقبة النماذج التي يتم نشرها خارج Azure التعلم الآلي أو توزيعها في نقاط نهاية دفعة Azure التعلم الآلي
  • إعداد مراقبة النموذج باستخدام إشارات ومقاييس مخصصة
  • تفسير نتائج المراقبة
  • دمج مراقبة نموذج Azure التعلم الآلي مع Azure Event Grid

المتطلبات الأساسية

قبل اتباع الخطوات الواردة في هذه المقالة، تأكد من توفر المتطلبات الأساسية التالية لديك:

  • يتم استخدام عناصر التحكم في الوصول المستندة إلى الدور في (Azure RBAC) لمنح الوصول إلى العمليات في التعلم الآلي من Microsoft Azure. لتنفيذ الخطوات الواردة في هذه المقالة، يجب تعيين دور المالك أو المساهم لحساب المستخدم لمساحة عمل التعلم الآلي من Microsoft Azure، أو دور مخصص يسمح Microsoft.MachineLearningServices/workspaces/onlineEndpoints/*. لمزيدٍ من المعلومات، راجع إدارة الوصول إلى مساحة عمل Azure Machine Learning.

  • لمراقبة نموذج يتم نشره إلى نقطة نهاية Azure التعلم الآلي عبر الإنترنت (نقطة نهاية مدارة عبر الإنترنت أو نقطة نهاية Kubernetes عبر الإنترنت)، تأكد من:

    • لديك نموذج تم نشره بالفعل إلى نقطة نهاية Azure التعلم الآلي عبر الإنترنت. يتم دعم كل من نقطة النهاية المدارة عبر الإنترنت ونقطة نهاية Kubernetes عبر الإنترنت. إذا لم يكن لديك نموذج تم نشره في نقطة نهاية Azure التعلم الآلي عبر الإنترنت، فشاهد نشر نموذج التعلم الآلي وتسجيله باستخدام نقطة نهاية عبر الإنترنت.

    • تمكين جمع البيانات لنشر النموذج الخاص بك. يمكنك تمكين جمع البيانات أثناء خطوة التوزيع لنقاط نهاية Azure التعلم الآلي عبر الإنترنت. لمزيد من المعلومات، راجع جمع بيانات الإنتاج من النماذج المنشورة إلى نقطة نهاية في الوقت الفعلي.

  • لمراقبة نموذج يتم نشره في نقطة نهاية دفعة Azure التعلم الآلي أو نشره خارج Azure التعلم الآلي، تأكد من:

    • لديك وسيلة لجمع بيانات الإنتاج وتسجيلها كأصل بيانات Azure التعلم الآلي.
    • تحديث أصل البيانات المسجلة باستمرار لمراقبة النموذج.
    • (مستحسن) تسجيل النموذج في مساحة عمل Azure التعلم الآلي، لتعقب دورة حياة البيانات.

هام

تتم جدولة مهام مراقبة النموذج للتشغيل على تجمعات حساب Spark بلا خادم مع دعم أنواع مثيلات الجهاز الظاهري التالية: Standard_E4s_v3وStandard_E8s_v3Standard_E32s_v3Standard_E16s_v3Standard_E64s_v3. يمكنك تحديد نوع مثيل الجهاز الظاهري مع الخاصية create_monitor.compute.instance_type في تكوين YAML الخاص بك أو من القائمة المنسدلة في Azure التعلم الآلي studio.

إعداد مراقبة النموذج الجاهز

لنفترض أنك قمت بنشر النموذج الخاص بك للإنتاج في نقطة نهاية Azure التعلم الآلي عبر الإنترنت وتمكين جمع البيانات في وقت النشر. في هذا السيناريو، يجمع Azure التعلم الآلي بيانات استدلال الإنتاج، ويخزنها تلقائيا في Microsoft Azure Blob Storage. يمكنك بعد ذلك استخدام مراقبة نموذج Azure التعلم الآلي لمراقبة بيانات استدلال الإنتاج هذه باستمرار.

يمكنك استخدام Azure CLI أو Python SDK أو الاستوديو لإعداد خارج الصندوق لمراقبة النموذج. يوفر تكوين مراقبة النموذج الجاهز قدرات المراقبة التالية:

  • يكتشف Azure التعلم الآلي تلقائيا مجموعة بيانات استدلال الإنتاج المرتبطة بنشر Azure التعلم الآلي عبر الإنترنت ويستخدم مجموعة البيانات لمراقبة النموذج.
  • يتم تعيين مجموعة بيانات مرجع المقارنة كمجموعة بيانات استدلال الإنتاج الأخيرة الماضية.
  • يتضمن إعداد المراقبة تلقائيا إشارات المراقبة المضمنة ويتعقبها: انحراف البيانات وانحراف التنبؤ وجودة البيانات. لكل إشارة مراقبة، يستخدم Azure التعلم الآلي:
    • مجموعة بيانات استدلال الإنتاج الأخيرة والسابقة كمجموعة بيانات مرجعية للمقارنة.
    • الإعدادات الافتراضية الذكية للمقاييس والحدود.
  • من المقرر تشغيل مهمة المراقبة يوميا في الساعة 3:15 صباحا (على سبيل المثال) للحصول على إشارات المراقبة وتقييم كل نتيجة قياس مقابل الحد المقابل لها. بشكل افتراضي، عند تجاوز أي حد، يرسل Azure التعلم الآلي بريدا إلكترونيا للتنبيه إلى المستخدم الذي قام بإعداد جهاز العرض.

تستخدم az ml schedule مراقبة نموذج Azure التعلم الآلي لجدولة مهمة مراقبة. يمكنك إنشاء جهاز عرض النموذج الجاهز باستخدام أمر CLI التالي وتعريف YAML:

az ml schedule create -f ./out-of-box-monitoring.yaml

يحتوي YAML التالي على تعريف لمراقبة النموذج الجاهز.

# out-of-box-monitoring.yaml
$schema:  http://azureml/sdk-2-0/Schedule.json
name: credit_default_model_monitoring
display_name: Credit default model monitoring
description: Credit default model monitoring setup with minimal configurations

trigger:
  # perform model monitoring activity daily at 3:15am
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 # #every day
  schedule: 
    hours: 3 # at 3am
    minutes: 15 # at 15 mins after 3am

create_monitor:

  compute: # specify a spark compute for monitoring job
    instance_type: standard_e4s_v3
    runtime_version: "3.3"

  monitoring_target: 
    ml_task: classification # model task type: [classification, regression, question_answering]
    endpoint_deployment_id: azureml:credit-default:main # azureml endpoint deployment id

  alert_notification: # emails to get alerts
    emails:
      - abc@example.com
      - def@example.com

إعداد مراقبة متقدمة للنموذج

يوفر Azure التعلم الآلي العديد من الإمكانات لمراقبة النموذج المستمر. راجع قدرات مراقبة النموذج للحصول على قائمة شاملة بهذه القدرات. في كثير من الحالات، تحتاج إلى إعداد مراقبة النموذج مع قدرات مراقبة متقدمة. في الأقسام التالية، يمكنك إعداد مراقبة النموذج باستخدام هذه الإمكانات:

  • استخدام إشارات مراقبة متعددة لنظرة عامة.
  • استخدام بيانات تدريب النموذج التاريخي أو بيانات التحقق من الصحة كمجموعة بيانات مرجعية للمقارنة.
  • مراقبة أهم ميزات N والميزات الفردية.

تكوين أهمية الميزة

تمثل أهمية الميزة الأهمية النسبية لكل ميزة إدخال لإخراج النموذج. على سبيل المثال، temperature قد يكون أكثر أهمية لتوقع النموذج مقارنة ب elevation. يمكن أن يمنحك تمكين أهمية الميزة رؤية للميزات التي لا تريد انجرافها أو وجود مشكلات في جودة البيانات في الإنتاج.

لتمكين أهمية الميزة مع أي من إشاراتك (مثل انحراف البيانات أو جودة البيانات)، تحتاج إلى توفير:

  • مجموعة بيانات التدريب الخاصة بك كمجموعة reference_data بيانات.
  • reference_data.data_column_names.target_column الخاصية ، وهي اسم عمود إخراج/تنبؤ النموذج الخاص بك.

بعد تمكين أهمية الميزة، سترى أهمية ميزة لكل ميزة تراقبها في واجهة مستخدم استوديو مراقبة نموذج Azure التعلم الآلي.

يمكنك استخدام Azure CLI أو Python SDK أو الاستوديو للإعداد المتقدم لمراقبة النموذج.

إنشاء إعداد متقدم لمراقبة النموذج باستخدام أمر CLI التالي وتعريف YAML:

az ml schedule create -f ./advanced-model-monitoring.yaml

يحتوي YAML التالي على تعريف لمراقبة النموذج المتقدمة.

# advanced-model-monitoring.yaml
$schema:  http://azureml/sdk-2-0/Schedule.json
name: fraud_detection_model_monitoring
display_name: Fraud detection model monitoring
description: Fraud detection model monitoring with advanced configurations

trigger:
  # perform model monitoring activity daily at 3:15am
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 # #every day
  schedule: 
    hours: 3 # at 3am
    minutes: 15 # at 15 mins after 3am

create_monitor:

  compute: 
    instance_type: standard_e4s_v3
    runtime_version: "3.3"

  monitoring_target:
    ml_task: classification
    endpoint_deployment_id: azureml:credit-default:main
  
  monitoring_signals:
    advanced_data_drift: # monitoring signal name, any user defined name works
      type: data_drift
      # reference_dataset is optional. By default referece_dataset is the production inference data associated with Azure Machine Learning online endpoint
      reference_data:
        input_data:
          path: azureml:credit-reference:1 # use training data as comparison reference dataset
          type: mltable
        data_context: training
        data_column_names:
          target_column: DEFAULT_NEXT_MONTH
      features: 
        top_n_feature_importance: 10 # monitor drift for top 10 features
      metric_thresholds:
        numerical:
          jensen_shannon_distance: 0.01
        categorical:
          pearsons_chi_squared_test: 0.02
    advanced_data_quality:
      type: data_quality
      # reference_dataset is optional. By default reference_dataset is the production inference data associated with Azure Machine Learning online endpoint
      reference_data:
        input_data:
          path: azureml:credit-reference:1
          type: mltable
        data_context: training
      features: # monitor data quality for 3 individual features only
        - SEX
        - EDUCATION
      metric_thresholds:
        numerical:
          null_value_rate: 0.05
        categorical:
          out_of_bounds_rate: 0.03

    feature_attribution_drift_signal:
      type: feature_attribution_drift
      # production_data: is not required input here
      # Please ensure Azure Machine Learning online endpoint is enabled to collected both model_inputs and model_outputs data
      # Azure Machine Learning model monitoring will automatically join both model_inputs and model_outputs data and used it for computation
      reference_data:
        input_data:
          path: azureml:credit-reference:1
          type: mltable
        data_context: training
        data_column_names:
          target_column: DEFAULT_NEXT_MONTH
      metric_thresholds:
        normalized_discounted_cumulative_gain: 0.9
  
  alert_notification:
    emails:
      - abc@example.com
      - def@example.com

إعداد مراقبة أداء النموذج

تمكنك مراقبة نموذج Azure التعلم الآلي من تتبع أداء نماذجك في الإنتاج عن طريق حساب مقاييس الأداء الخاصة بها. مقاييس أداء النموذج التالية مدعومة حاليا:

لنماذج التصنيف:

  • الدقة
  • الدقة
  • الاستدعاء

لنماذج الانحدار:

  • متوسط الخطأ المطلق (MAE)
  • متوسط خطأ تربيعي (MSE)
  • خطأ تربيعي متوسط الجذر (RMSE)

المزيد من المتطلبات الأساسية لمراقبة أداء النموذج

يجب أن تفي بالمتطلبات التالية لتكوين إشارة أداء النموذج:

  • لديك بيانات إخراج لنموذج الإنتاج (تنبؤات النموذج) مع معرف فريد لكل صف. إذا قمت بجمع بيانات الإنتاج مع جامع بيانات Azure التعلم الآلي، correlation_id يتم توفير لكل طلب استدلال لك. باستخدام جامع البيانات، لديك أيضا خيار تسجيل معرفك الفريد الخاص من التطبيق الخاص بك.

    إشعار

    لمراقبة أداء نموذج Azure التعلم الآلي، نوصي بتسجيل معرفك الفريد في عموده الخاص، باستخدام جامع بيانات Azure التعلم الآلي.

  • لديك بيانات الحقيقة الأساسية (الفعلية) مع معرف فريد لكل صف. يجب أن يتطابق المعرف الفريد لصف معين مع المعرف الفريد لمخرجات النموذج لطلب الاستدلال المحدد هذا. يتم استخدام هذا المعرف الفريد للانضمام إلى مجموعة بيانات الحقيقة الأساسية الخاصة بك مع مخرجات النموذج.

    دون وجود بيانات الحقيقة الأساسية، لا يمكنك إجراء مراقبة أداء النموذج. نظرا إلى مواجهة بيانات الحقيقة الأساسية على مستوى التطبيق، تقع على عاتقك مسؤولية جمعها كلما أصبحت متاحة. يجب عليك أيضا الاحتفاظ بموجود بيانات في Azure التعلم الآلي يحتوي على بيانات الحقيقة الأساسية هذه.

  • (اختياري) لديك مجموعة بيانات جدولية منضمة مسبقا مع مخرجات النموذج وبيانات الحقيقة الأساسية المنضمة بالفعل معا.

مراقبة متطلبات أداء النموذج عند استخدام مجمع البيانات

إذا كنت تستخدم مجمع بيانات Azure التعلم الآلي لجمع بيانات استدلال الإنتاج دون توفير معرف فريد خاص بك لكل صف ك عمود منفصل، correlationid إنشاء تلقائيا لك وتضمينه في كائن JSON المسجل. ومع ذلك، سيقوم مجمع البيانات بتجميع الصفوف التي يتم إرسالها خلال فترات زمنية قصيرة من بعضها البعض. ستقع الصفوف المجمعة ضمن نفس كائن JSON وبالتالي سيكون لها نفس correlationid.

للتمييز بين الصفوف في نفس كائن JSON، يستخدم Azure التعلم الآلي مراقبة أداء النموذج الفهرسة لتحديد ترتيب الصفوف في كائن JSON. على سبيل المثال، إذا تم تجميع ثلاثة صفوف معا، وكان correlationidtestهو ، فسيكون للصف الأول معرف test_0، وسيكون للصف الثاني معرف test_1، وسيكون للصف الثالث معرف test_2. للتأكد من أن مجموعة بيانات الحقيقة الأساسية الخاصة بك تحتوي على معرفات فريدة تتطابق مع مخرجات نموذج استنتاج الإنتاج المجمع، تأكد من فهرسة كل correlationid منها بشكل مناسب. إذا كان كائن JSON المسجل يحتوي على صف واحد فقط، فسيكون correlationidcorrelationid_0.

لتجنب استخدام هذه الفهرسة، نوصي بتسجيل معرفك الفريد في عموده الخاص داخل pandas DataFrame الذي تقوم بتسجيله باستخدام جامع البيانات Azure التعلم الآلي. ثم، في تكوين مراقبة النموذج الخاص بك، يمكنك تحديد اسم هذا العمود للانضمام إلى بيانات إخراج النموذج الخاص بك مع بيانات الحقيقة الأساسية الخاصة بك. طالما أن معرفات كل صف في كل من مجموعات البيانات هي نفسها، يمكن لمراقبة نموذج Azure التعلم الآلي إجراء مراقبة أداء النموذج.

مثال لسير العمل لمراقبة أداء النموذج

لفهم المفاهيم المرتبطة بمراقبة أداء النموذج، ضع في اعتبارك سير العمل هذا المثال. لنفترض أنك تقوم بنشر نموذج للتنبؤ بما إذا كانت معاملات بطاقة الائتمان احتيالية أم لا، يمكنك اتباع هذه الخطوات لمراقبة أداء النموذج:

  1. قم بتكوين النشر الخاص بك لاستخدام مجمع البيانات لجمع بيانات استدلال إنتاج النموذج (بيانات الإدخال والإخراج). لنفترض أن بيانات الإخراج مخزنة في عمود is_fraud.
  2. لكل صف من بيانات الاستدلال التي تم جمعها، سجل معرفا فريدا. يمكن أن يأتي المعرف الفريد من التطبيق الخاص بك، أو يمكنك استخدام correlationid الذي ينشئه Azure التعلم الآلي بشكل فريد لكل كائن JSON مسجل.
  3. في وقت لاحق، عندما تصبح بيانات الحقيقة الأساسية (أو الفعلية) is_fraud متاحة، يتم أيضا تسجيلها وتعيينها إلى نفس المعرف الفريد الذي تم تسجيله مع مخرجات النموذج.
  4. يتم أيضا جمع بيانات الحقيقة is_fraud الأساسية هذه وصيانتها وتسجيلها في Azure التعلم الآلي كأصل بيانات.
  5. إنشاء إشارة مراقبة أداء نموذج تنضم إلى استنتاج إنتاج النموذج وأصول بيانات الحقيقة الأساسية، باستخدام أعمدة المعرف الفريدة.
  6. وأخيرا، حساب مقاييس أداء النموذج.

بمجرد استيفاء المتطلبات الأساسية لمراقبة أداء النموذج، يمكنك إعداد مراقبة النموذج باستخدام أمر CLI التالي وتعريف YAML:

az ml schedule create -f ./model-performance-monitoring.yaml

يحتوي YAML التالي على تعريف لمراقبة النموذج باستخدام بيانات استدلال الإنتاج التي جمعتها.

$schema:  http://azureml/sdk-2-0/Schedule.json
name: model_performance_monitoring
display_name: Credit card fraud model performance
description: Credit card fraud model performance

trigger:
  type: recurrence
  frequency: day
  interval: 7 
  schedule: 
    hours: 10
    minutes: 15
  
create_monitor:
  compute: 
    instance_type: standard_e8s_v3
    runtime_version: "3.3"
  monitoring_target:
    ml_task: classification
    endpoint_deployment_id: azureml:loan-approval-endpoint:loan-approval-deployment

  monitoring_signals:
    fraud_detection_model_performance: 
      type: model_performance 
      production_data:
        data_column_names:
          prediction: is_fraud
          correlation_id: correlation_id
      reference_data:
        input_data:
          path: azureml:my_model_ground_truth_data:1
          type: mltable
        data_column_names:
          actual: is_fraud
          correlation_id: correlation_id
        data_context: actuals
      alert_enabled: true
      metric_thresholds: 
        tabular_classification:
          accuracy: 0.95
          precision: 0.8
  alert_notification: 
      emails: 
        - abc@example.com

إعداد مراقبة النموذج عن طريق إحضار بيانات الإنتاج إلى Azure التعلم الآلي

يمكنك أيضا إعداد مراقبة النموذج للنماذج التي تم نشرها في نقاط نهاية دفعة Azure التعلم الآلي أو نشرها خارج Azure التعلم الآلي. إذا لم يكن لديك توزيع، ولكن لديك بيانات إنتاج، يمكنك استخدام البيانات لإجراء مراقبة مستمرة للنموذج. لمراقبة هذه النماذج، يجب أن تكون قادرا على:

  • جمع بيانات استدلال الإنتاج من النماذج المنشورة في الإنتاج.
  • سجل بيانات استدلال الإنتاج كأصل بيانات Azure التعلم الآلي، وتأكد من التحديثات المستمرة للبيانات.
  • توفير مكون معالجة مسبقة للبيانات مخصص وتسجيله كمكون Azure التعلم الآلي.

يجب توفير مكون مخصص للمعالجة المسبقة للبيانات إذا لم يتم جمع بياناتك مع مجمع البيانات. بدون مكون المعالجة المسبقة المخصص للبيانات هذا، لن يعرف نظام مراقبة نموذج Azure التعلم الآلي كيفية معالجة بياناتك في شكل جدولي مع دعم النوافذ الزمنية.

يجب أن يحتوي مكون المعالجة المسبقة المخصص على توقيعات الإدخال والإخراج هذه:

إدخال/إخراج اسم التوقيع النوع ‏‏الوصف مثال للقيمة
إدخال data_window_start حرفي، سلسلة وقت بدء نافذة البيانات بتنسيق ISO8601. 2023-05-01T04:31:57.012Z
إدخال data_window_end حرفي، سلسلة وقت انتهاء نافذة البيانات بتنسيق ISO8601. 2023-05-01T04:31:57.012Z
إدخال input_data uri_folder بيانات استدلال الإنتاج المجمعة، المسجلة كأصل بيانات Azure التعلم الآلي. azureml:myproduction_inference_data:1
الإخراج preprocessed_data قابلة للltable مجموعة بيانات جدولية تطابق مجموعة فرعية من مخطط البيانات المرجعية.

للحصول على مثال لمكون معالجة مسبقة للبيانات المخصصة، راجع custom_preprocessing في azuremml-examples GitHub repo.

بمجرد استيفاء المتطلبات السابقة، يمكنك إعداد مراقبة النموذج باستخدام أمر CLI التالي وتعريف YAML:

az ml schedule create -f ./model-monitoring-with-collected-data.yaml

يحتوي YAML التالي على تعريف لمراقبة النموذج باستخدام بيانات استدلال الإنتاج التي جمعتها.

# model-monitoring-with-collected-data.yaml
$schema:  http://azureml/sdk-2-0/Schedule.json
name: fraud_detection_model_monitoring
display_name: Fraud detection model monitoring
description: Fraud detection model monitoring with your own production data

trigger:
  # perform model monitoring activity daily at 3:15am
  type: recurrence
  frequency: day #can be minute, hour, day, week, month
  interval: 1 # #every day
  schedule: 
    hours: 3 # at 3am
    minutes: 15 # at 15 mins after 3am

create_monitor:
  compute: 
    instance_type: standard_e4s_v3
    runtime_version: "3.3"
  monitoring_target:
    ml_task: classification
    endpoint_deployment_id: azureml:fraud-detection-endpoint:fraud-detection-deployment
  
  monitoring_signals:

    advanced_data_drift: # monitoring signal name, any user defined name works
      type: data_drift
      # define production dataset with your collected data
      production_data:
        input_data:
          path: azureml:my_production_inference_data_model_inputs:1  # your collected data is registered as Azure Machine Learning asset
          type: uri_folder
        data_context: model_inputs
        pre_processing_component: azureml:production_data_preprocessing:1
      reference_data:
        input_data:
          path: azureml:my_model_training_data:1 # use training data as comparison baseline
          type: mltable
        data_context: training
        data_column_names:
          target_column: is_fraud
      features: 
        top_n_feature_importance: 20 # monitor drift for top 20 features
      metric_thresholds:
        numberical:
          jensen_shannon_distance: 0.01
        categorical:
          pearsons_chi_squared_test: 0.02

    advanced_prediction_drift: # monitoring signal name, any user defined name works
      type: prediction_drift
      # define production dataset with your collected data
      production_data:
        input_data:
          path: azureml:my_production_inference_data_model_outputs:1  # your collected data is registered as Azure Machine Learning asset
          type: uri_folder
        data_context: model_outputs
        pre_processing_component: azureml:production_data_preprocessing:1
      reference_data:
        input_data:
          path: azureml:my_model_validation_data:1 # use training data as comparison reference dataset
          type: mltable
        data_context: validation
      metric_thresholds:
        categorical:
          pearsons_chi_squared_test: 0.02
  
  alert_notification:
    emails:
      - abc@example.com
      - def@example.com

إعداد مراقبة النموذج باستخدام إشارات ومقاييس مخصصة

باستخدام Azure التعلم الآلي مراقبة النموذج، يمكنك تحديد إشارة مخصصة وتنفيذ أي مقياس من اختيارك لمراقبة النموذج الخاص بك. يمكنك تسجيل هذه الإشارة المخصصة كمكون Azure التعلم الآلي. عند تشغيل مهمة مراقبة نموذج Azure التعلم الآلي وفقا للجدول المحدد، فإنها تحسب المقاييس (المقاييس) التي حددتها داخل الإشارة المخصصة، تماما كما تفعل مع الإشارات التي تم إنشاؤها مسبقا (انحراف البيانات وانحراف التنبؤ وجودة البيانات).

لإعداد إشارة مخصصة لاستخدامها لمراقبة النموذج، يجب أولا تعريف الإشارة المخصصة وتسجيلها كمكون Azure التعلم الآلي. يجب أن يحتوي مكون Azure التعلم الآلي على توقيعات الإدخال والإخراج هذه:

توقيع إدخال المكون

يجب أن يحتوي إدخال المكون DataFrame على العناصر التالية:

  • mltable مع البيانات المعالجة من مكون المعالجة المسبقة
  • أي عدد من القيم الحرفية، يمثل كل منها مقياسا منفذا كجزء من مكون الإشارة المخصص. على سبيل المثال، إذا قمت بتنفيذ المقياس، std_deviation، فستحتاج إلى إدخال ل std_deviation_threshold. بشكل عام، يجب أن يكون هناك إدخال واحد لكل مقياس باسم <metric_name>_threshold.
اسم التوقيع النوع ‏‏الوصف مثال للقيمة
production_data قابلة للltable مجموعة بيانات جدولية تطابق مجموعة فرعية من مخطط البيانات المرجعية.
std_deviation_threshold حرفي، سلسلة الحد المعني للمقياس المنفذ. 2

توقيع إخراج المكون

يجب أن يكون لمنفذ إخراج المكون التوقيع التالي.

اسم التوقيع النوع ‏‏الوصف
signal_metrics قابلة للltable mltable الذي يحتوي على المقاييس المحسوبة. يتم تعريف المخطط في القسم التالي signal_metrics المخطط.

مخطط signal_metrics

يجب أن يحتوي إطار بيانات إخراج المكون على أربعة أعمدة: groupو metric_valuemetric_nameو و.threshold_value

اسم التوقيع النوع ‏‏الوصف مثال للقيمة
مجموعة حرفي، سلسلة يتم تطبيق التجميع المنطقي من المستوى الأعلى على هذا المقياس المخصص. TRANSACTIONAMOUNT
metric_name حرفي، سلسلة اسم المقياس المخصص. std_deviation
metric_value العدديه قيمة المقياس المخصص. 44,896.082
threshold_value العدديه حد المقياس المخصص. 2

يعرض الجدول التالي مثالا لإخراج من مكون إشارة مخصص يحسب المقياس std_deviation :

مجموعة metric_value metric_name threshold_value
TRANSACTIONAMOUNT 44,896.082 std_deviation 2
LOCALHOUR 3.983 std_deviation 2
TRANSACTIONAMOUNTUSD 54,004.902 std_deviation 2
DIGITALITEMCOUNT 7.238 std_deviation 2
حساب فعلي 5.509 std_deviation 2

للاطلاع على مثال تعريف مكون الإشارة المخصص ورمز الحساب القياسي، راجع custom_signal في مستودع أمثلة azureml.

بمجرد استيفاء متطلبات استخدام إشارات ومقاييس مخصصة، يمكنك إعداد مراقبة النموذج باستخدام أمر CLI التالي وتعريف YAML:

az ml schedule create -f ./custom-monitoring.yaml

يحتوي YAML التالي على تعريف لمراقبة النموذج مع إشارة مخصصة. بعض الأشياء التي يجب ملاحظتها حول التعليمات البرمجية:

  • يفترض أنك قمت بالفعل بإنشاء المكون الخاص بك وتسجيله باستخدام تعريف الإشارة المخصص في Azure التعلم الآلي.
  • component_id مكون الإشارة المخصص المسجل هو azureml:my_custom_signal:1.0.0.
  • إذا كنت قد جمعت بياناتك مع مجمع البيانات، يمكنك حذف الخاصية pre_processing_component . إذا كنت ترغب في استخدام مكون معالجة مسبقة للمعالجة المسبقة لبيانات الإنتاج التي لم يتم جمعها من قبل جامع البيانات، يمكنك تحديده.
# custom-monitoring.yaml
$schema:  http://azureml/sdk-2-0/Schedule.json
name: my-custom-signal
trigger:
  type: recurrence
  frequency: day # can be minute, hour, day, week, month
  interval: 7 # #every day
create_monitor:
  compute:
    instance_type: "standard_e4s_v3"
    runtime_version: "3.3"
  monitoring_signals:
    customSignal:
      type: custom
      component_id: azureml:my_custom_signal:1.0.0
      input_data:
        production_data:
          input_data:
            type: uri_folder
            path: azureml:my_production_data:1
          data_context: test
          data_window:
            lookback_window_size: P30D
            lookback_window_offset: P7D
          pre_processing_component: azureml:custom_preprocessor:1.0.0
      metric_thresholds:
        - metric_name: std_deviation
          threshold: 2
  alert_notification:
    emails:
      - abc@example.com

تفسير نتائج المراقبة

بعد تكوين مراقب النموذج واكتمال التشغيل الأول، يمكنك الانتقال مرة أخرى إلى علامة التبويب Monitoring في Azure التعلم الآلي studio لعرض النتائج.

  • من طريقة عرض المراقبة الرئيسية، حدد اسم جهاز عرض النموذج الخاص بك لمشاهدة صفحة نظرة عامة على Monitor. تعرض هذه الصفحة النموذج المقابل ونقطة النهاية والنشر، بالإضافة إلى التفاصيل المتعلقة بالإشارات التي قمت بتكوينها. تعرض الصورة التالية لوحة معلومات مراقبة تتضمن انحراف البيانات وإشارات جودة البيانات. اعتمادا على إشارات المراقبة التي قمت بتكوينها، قد تبدو لوحة المعلومات الخاصة بك مختلفة.

    لقطة شاشة تعرض لوحة معلومات مراقبة.

  • ابحث في قسم Notifications في لوحة المعلومات لمعرفة، لكل إشارة، التي خرقت الميزات الحد المكون للمقاييس الخاصة بها:

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

    لقطة شاشة تعرض صفحة التفاصيل لإشارة انحراف البيانات.

  • لعرض ميزة فردية بالتفصيل، حدد اسم الميزة لعرض توزيع الإنتاج مقارنة بتوزيع المرجع. تسمح لك طريقة العرض هذه أيضا بتعقب الانجراف بمرور الوقت لهذه الميزة المحددة.

    لقطة شاشة تعرض تفاصيل انحراف البيانات لميزة فردية.

  • ارجع إلى لوحة معلومات المراقبة وحدد data_quality لعرض صفحة إشارة جودة البيانات. في هذه الصفحة، يمكنك مشاهدة معدلات القيمة الخالية ومعدلات خارج الحدود ومعدلات خطأ نوع البيانات لكل ميزة تراقبها.

    لقطة شاشة تعرض صفحة التفاصيل لإشارة جودة البيانات.

مراقبة النموذج هي عملية مستمرة. باستخدام مراقبة نموذج Azure التعلم الآلي، يمكنك تكوين إشارات مراقبة متعددة للحصول على عرض واسع في أداء النماذج الخاصة بك في الإنتاج.

دمج مراقبة نموذج Azure التعلم الآلي مع Azure Event Grid

يمكنك استخدام الأحداث التي تم إنشاؤها بواسطة مراقبة نموذج Azure التعلم الآلي لإعداد التطبيقات أو العمليات أو مهام سير عمل CI/CD المستندة إلى الأحداث باستخدام Azure Event Grid. يمكنك استهلاك الأحداث من خلال معالجات الأحداث المختلفة، مثل Azure Event Hubs ووظائف Azure والتطبيقات المنطقية. استنادا إلى الانجراف الذي اكتشفته أجهزة العرض الخاصة بك، يمكنك اتخاذ إجراء برمجيا، مثل إعداد مسار التعلم الآلي لإعادة تدريب نموذج وإعادة توزيعه.

للبدء في دمج مراقبة نموذج Azure التعلم الآلي مع Event Grid:

  1. اتبع الخطوات الواردة في راجع الإعداد في مدخل Microsoft Azure. امنح اشتراك الحدث اسما، مثل MonitoringEvent، وحدد مربع Run status changed ضمن Event Types فقط.

    تحذير

    تأكد من تحديد حالة التشغيل التي تم تغييرها لنوع الحدث. لا تحدد اكتشاف انحراف مجموعة البيانات، كما ينطبق على انحراف البيانات v1، بدلا من مراقبة نموذج Azure التعلم الآلي.

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

    • المفتاح: data.RunTags.azureml_modelmonitor_threshold_breached
    • القيمة: فشلت بسبب ميزة واحدة أو أكثر تنتهك حدود المقاييس
    • عامل التشغيل: تحتوي السلسلة على

    باستخدام عامل التصفية هذا، يتم إنشاء الأحداث عند تغيير حالة التشغيل (من مكتمل إلى فاشل، أو من فشل إلى مكتمل) لأي جهاز عرض داخل مساحة عمل Azure التعلم الآلي.

  3. للتصفية على مستوى المراقبة، استخدم المفتاح وعامل التشغيل والقيمة التالية ضمن عوامل التصفية المتقدمة:

    • المفتاح: data.RunTags.azureml_modelmonitor_threshold_breached
    • القيمة: your_monitor_name_signal_name
    • عامل التشغيل: تحتوي السلسلة على

    تأكد من أن your_monitor_name_signal_name هو اسم إشارة في جهاز العرض المحدد الذي تريد تصفية الأحداث له. على سبيل المثال، credit_card_fraud_monitor_data_drift لكي يعمل عامل التصفية هذا، يجب أن تتطابق هذه السلسلة مع اسم إشارة المراقبة. يجب عليك تسمية الإشارة باسم جهاز العرض واسم الإشارة لهذه الحالة.

  4. عند الانتهاء من تكوين اشتراك الحدث، حدد نقطة النهاية المطلوبة لتكون بمثابة معالج الأحداث، مثل Azure Event Hubs.

  5. بعد التقاط الأحداث، يمكنك عرضها من صفحة نقطة النهاية:

    لقطة شاشة تعرض الأحداث التي تم عرضها من صفحة نقطة النهاية.

يمكنك أيضا عرض الأحداث في علامة التبويب Azure Monitor Metrics :

لقطة شاشة تعرض الأحداث التي تم عرضها من علامة تبويب مقاييس Azure monitor.