تشغيل التطبيقات أو العمليات أو سير عمل CI/CD استنادا إلى أحداث Azure التعلم الآلي (معاينة)

في هذه المقالة، ستتعلم كيفية إعداد التطبيقات أو العمليات المستندة إلى الحدث أو سير عمل CI/CD استنادا إلى أحداث Azure التعلم الآلي، مثل رسائل البريد الإلكتروني للإعلام بالفشل أو تشغيل مسار التعلم الآلي، عند اكتشاف شروط معينة بواسطة Azure Event Grid.

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

متى تستخدم Event Grid للإجراءات المستندة إلى الحدث:

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

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

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

أنواع نماذج & الحدث

تقرأ Azure Event Grid الأحداث من المصادر، مثل Azure التعلم الآلي وخدمات Azure الأخرى. ثم يتم إرسال هذه الأحداث إلى معالجات الأحداث مثل Azure Event Hubs وAzure Functions وLogic Apps وغيرها. يوضح الرسم التخطيطي التالي كيفية توصيل Event Grid للمصادر والمعالجات، ولكنه ليس قائمة شاملة بالتكاملات المدعومة.

Azure Event Grid functional model

لمزيد من المعلومات حول مصادر الأحداث ومعالجات الأحداث، راجع ما هي شبكة الأحداث؟

أنواع الأحداث ل Azure التعلم الآلي

يوفر Azure التعلم الآلي أحداثا في نقاط مختلفة من دورة حياة التعلم الآلي:

نوع الحدث الوصف
Microsoft.MachineLearningServices.RunCompleted يتم رفعه عند اكتمال تشغيل تجربة التعلم الآلي
Microsoft.MachineLearningServices.ModelRegistered يتم رفعه عند تسجيل نموذج التعلم الآلي في مساحة العمل
Microsoft.MachineLearningServices.ModelDeployed يرفع عند اكتمال نشر خدمة الاستدلال مع نموذج واحد أو أكثر
Microsoft.MachineLearningServices.DatasetDriftDetected يتم رفعه عند اكتمال مهمة الكشف عن انحراف البيانات لمجموعتي بيانات
Microsoft.MachineLearningServices.RunStatusChanged يتم رفعه عند تغيير حالة التشغيل

تصفية & الاشتراك في الأحداث

يتم نشر هذه الأحداث من خلال Azure Event Grid. باستخدام مدخل Microsoft Azure أو PowerShell أو Azure CLI، يمكن للعملاء الاشتراك بسهولة في الأحداث عن طريق تحديد نوع حدث واحد أو أكثر، وشروط التصفية.

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

تتم حماية الاشتراكات لأحداث Azure التعلم الآلي بواسطة التحكم في الوصول المستند إلى الدور في Azure (Azure RBAC). يمكن للمساهم أو مالك مساحة العمل فقط إنشاء اشتراكات الأحداث وتحديثها وحذفها. يمكن تطبيق عوامل التصفية على اشتراكات الأحداث إما أثناء إنشاء اشتراك الحدث أو في وقت لاحق.

  1. انتقل إلى مدخل Microsoft Azure، وحدد اشتراكا جديدا أو اشتراكا موجودا.

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

    filter events

  • التصفية حسب نوع الحدث: يمكن للاشتراك في الحدث تحديد نوع واحد أو أكثر من أنواع أحداث Azure التعلم الآلي.

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

    نوع الحدث تنسيق الموضوع عينة الموضوع
    Microsoft.MachineLearningServices.RunCompleted experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
    Microsoft.MachineLearningServices.ModelRegistered models/{modelName}:{modelVersion} models/sklearn_regression_model:3
    Microsoft.MachineLearningServices.ModelDeployed endpoints/{serviceId} endpoints/my_sklearn_aks
    Microsoft.MachineLearningServices.DatasetDriftDetected datadrift/{data.DataDriftId}/run/{data.RunId} datadrift/4e694bf5-712e-4e40-b06a-d2a2755212d4/run/my_driftrun1_1550564444_fbbcdc0f
    Microsoft.MachineLearningServices.RunStatusChanged experiments/{ExperimentId}/runs/{RunId} experiments/b1d7966c-f73a-4c68-b846-992ace89551f/runs/my_exp1_1554835758_38dbaa94
  • التصفية المتقدمة: تدعم Azure Event Grid أيضا التصفية المتقدمة استنادا إلى مخطط الحدث المنشور. يمكن العثور على تفاصيل مخطط حدث Azure التعلم الآلي في مخطط أحداث Azure Event Grid ل Azure التعلم الآلي. تتضمن بعض نماذج التصفية المتقدمة التي يمكنك تنفيذها ما يلي:

    بالنسبة للحدث Microsoft.MachineLearningServices.ModelRegistered ، لتصفية قيمة علامة النموذج:

    --advanced-filter data.ModelTags.key1 StringIn ('value1')
    

    لمعرفة المزيد حول كيفية تطبيق عوامل التصفية، راجع تصفية الأحداث لشبكة الأحداث.

استهلاك أحداث التعلم الآلي

يجب أن تتبع التطبيقات التي تتعامل مع أحداث التعلم الآلي بعض الممارسات الموصى بها:

  • نظرا لأنه يمكن تكوين اشتراكات متعددة لتوجيه الأحداث إلى معالج الأحداث نفسه، فمن المهم عدم افتراض أن الأحداث من مصدر معين، ولكن للتحقق من موضوع الرسالة للتأكد من أنها تأتي من مساحة عمل التعلم الآلي التي تتوقعها.
  • وبالمثل، تأكد من أن eventType هو الحدث الذي أنت مستعد لمعالجته، ولا تفترض أن جميع الأحداث التي تتلقاها ستكون من الأنواع التي تتوقعها.
  • نظرا لأن الرسائل يمكن أن تصل خارج الترتيب وبعد بعض التأخير، استخدم حقول etag لفهم ما إذا كانت معلوماتك حول الكائنات لا تزال محدثة. أيضا، استخدم حقول التسلسل لفهم ترتيب الأحداث على أي كائن معين.
  • تجاهل الحقول التي لا تفهمها. ستساعدك هذه الممارسة في الحفاظ على مرونتك تجاه الميزات الجديدة التي قد تتم إضافتها في المستقبل.
  • لن تؤدي عمليات Azure التعلم الآلي الفاشلة أو الملغاة إلى تشغيل حدث. على سبيل المثال، إذا فشل نشر نموذج Microsoft.MachineLearningServices.ModelDeployed فلن يتم تشغيله. ضع في اعتبارك وضع الفشل هذا عند تصميم تطبيقاتك. يمكنك دائما استخدام Azure التعلم الآلي SDK أو CLI أو المدخل للتحقق من حالة العملية وفهم أسباب الفشل التفصيلية.

تسمح Azure Event Grid للعملاء بإنشاء معالجات رسائل غير مقترنة، والتي يمكن تشغيلها بواسطة أحداث التعلم الآلي Azure. بعض الأمثلة البارزة لمعالجات الرسائل هي:

  • دالات Azure
  • Azure Logic Apps
  • مراكز أحداث Azure
  • البنية الأساسية لبرنامج ربط العمليات التجارية ل Azure Data Factory
  • خطافات الويب العامة، والتي يمكن استضافتها على النظام الأساسي ل Azure أو في أي مكان آخر

إعداد في مدخل Microsoft Azure

  1. افتح مدخل Microsoft Azure وانتقل إلى مساحة عمل Azure التعلم الآلي.

  2. من الشريط الأيسر، حدد الأحداث ثم حدد اشتراكات الأحداث.

    select-events-in-workspace.png

  3. حدد نوع الحدث الذي تريد استهلاكه. على سبيل المثال، حددت لقطة الشاشة التالية Model registered و Model deployed و Run completed و Dataset drift detected:

    add-event-type

  4. حدد نقطة النهاية لنشر الحدث إليها. في لقطة الشاشة التالية، مركز الأحداث هو نقطة النهاية المحددة:

    Screenshot shows the Create Event Subscription pane with Select Event Hub open.

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

إعداد باستخدام CLI

يمكنك إما تثبيت أحدث Azure CLI، أو استخدام Azure Cloud Shell الذي يتم توفيره كجزء من اشتراك Azure الخاص بك.

لتثبيت ملحق Event Grid، استخدم الأمر التالي من CLI:

az add extension --name eventgrid

يوضح المثال التالي كيفية تحديد اشتراك Azure وإنشاء اشتراك حدث جديد ل Azure التعلم الآلي:

# Select the Azure subscription that contains the workspace
az account set --subscription "<name or ID of the subscription>"

# Subscribe to the machine learning workspace. This example uses EventHub as a destination. 
az eventgrid event-subscription create --name {eventGridFilterName} \
  --source-resource-id /subscriptions/{subId}/resourceGroups/{RG}/providers/Microsoft.MachineLearningServices/workspaces/{wsName} \
  --endpoint-type eventhub \
  --endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.EventHub/namespaces/n1/eventhubs/EH1 \
  --included-event-types Microsoft.MachineLearningServices.ModelRegistered \
  --subject-begins-with "models/mymodelname"

أمثلة

مثال: إرسال تنبيهات البريد الإلكتروني

استخدم Azure Logic Apps لتكوين رسائل البريد الإلكتروني لجميع الأحداث الخاصة بك. يمكنك التخصيص باستخدام الشروط وتحديد المستلمين لتمكين التعاون والوعي عبر الفرق التي تعمل معا.

  1. في مدخل Microsoft Azure، انتقل إلى مساحة عمل Azure التعلم الآلي وحدد علامة تبويب الأحداث من الشريط الأيسر. من هنا، حدد Logic apps.

    Screenshot shows a Machine Learning workspace Events page with Logic Apps.

  2. سجل الدخول إلى واجهة مستخدم Logic App وحدد التعلم الآلي الخدمة كنوع الموضوع.

    Screenshot shows the When a resource event occurs dialog box with machine learning selected as a resource type.

  3. حدد الحدث (الأحداث) التي سيتم إعلامك بها. على سبيل المثال، لقطة الشاشة التالية RunCompleted.

    Screenshot shows the When a resource event occurs dialog box with an event type selected.

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

    Screenshot shows the Choose an action dialog box with email entered in the search line.

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

    Screenshot shows the Send an email dialog box with Topic and Event Type added to the subject line from the list to the right.

  6. لحفظ هذا الإجراء، حدد حفظ باسم في الزاوية اليمنى من الصفحة. من الشريط الأيمن الذي يظهر، تأكد من إنشاء هذا الإجراء.

    Screenshot shows the Save As and Create buttons in the Logic Apps Designer.

مثال: يؤدي انحراف البيانات إلى إعادة التدريب

تنتقل النماذج تالفة بمرور الوقت، ولا تظل مفيدة في السياق الذي تعمل فيه. إحدى الطرق لمعرفة ما إذا كان الوقت قد حان لإعادة تدريب النموذج هي اكتشاف انحراف البيانات.

يوضح هذا المثال كيفية استخدام شبكة الأحداث مع تطبيق Azure Logic لتشغيل إعادة التدريب. يؤدي المثال إلى تشغيل مسار Azure Data Factory عند حدوث انحراف البيانات بين تدريب النموذج وخدمة مجموعات البيانات.

قبل البدء، قم بتنفيذ الإجراءات التالية:

في هذا المثال، يتم استخدام مسار Data Factory بسيط لنسخ الملفات إلى مخزن كائن ثنائي كبير الحجم وتشغيل مسار التعلم الآلي منشور. لمزيد من المعلومات حول هذا السيناريو، راجع كيفية إعداد خطوة التعلم الآلي في Azure Data Factory

Screenshot shows the Training Pipeline in Factory Resources with Copy data1 feeding M L Execute Pipeline1.

  1. ابدأ بإنشاء تطبيق المنطق. انتقل إلى مدخل Microsoft Azure، وابحث عن Logic Apps، وحدد create.

    search-logic-app

  2. املأ المعلومات المطلوبة. لتبسيط التجربة، استخدم نفس الاشتراك ومجموعة الموارد مثل Azure Data Factory Pipeline ومساحة عمل Azure التعلم الآلي.

    Screenshot shows the Logic App Create pane.

  3. بمجرد إنشاء تطبيق المنطق، حدد When an Event Grid resource event occurs.

    Screenshot shows the Logic Apps Designer with Start with a common trigger options, including When an Event Grid resource event occurs.

  4. تسجيل الدخول وتعبئة تفاصيل الحدث. تعيين اسم المورد إلى اسم مساحة العمل. تعيين نوع الحدث إلى DatasetDriftDetected.

    Screenshot shows the When a resource event occurs with an Event Type Item selected.

  5. أضف خطوة جديدة، وابحث عن Azure Data Factory. حدد Create a pipeline run.

    Screenshot shows the Choose an action pane with Create a pipeline run selected.

  6. تسجيل الدخول وتحديد البنية الأساسية لبرنامج ربط العمليات التجارية ل Azure Data Factory المنشورة لتشغيلها.

    Screenshot shows the Create a pipeline run pane with various values.

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

    Screenshot shows events with the Logic App highlighted.

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

Screenshot shows pipeline endpoints.

مثال: نشر نموذج استنادا إلى العلامات

يحتوي كائن نموذج Azure التعلم الآلي على معلمات يمكنكحور عمليات التوزيع عليها مثل اسم النموذج والإصدار والعلامة والخاصية. يمكن لحدث تسجيل النموذج تشغيل نقطة نهاية ويمكنك استخدام وظيفة Azure لنشر نموذج استنادا إلى قيمة هذه المعلمات.

على سبيل المثال، راجع https://github.com/Azure-Samples/MachineLearningSamples-NoCodeDeploymentTriggeredByEventGrid المستودع واتبع الخطوات الموجودة في ملف readme .

الخطوات التالية

تعرف على المزيد حول Event Grid وجرب أحداث Azure التعلم الآلي: