تتبع تجارب التعلم الآلي Azure Synapse Analytics من Microsoft Azure باستخدام MLflow والتعلم الآلي من Microsoft Azure

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

Myflowهي مكتبة مفتوحة المصدر لإدارة دورة حياة تجارب التعلم الآلي. يعد MLFlow Tracking أحد مكونات MLflow الذي يسجل ويتتبع قياسات تشغيل التدريب والبيانات الاصطناعية للنموذج. تعرف على المزيد عن MLOps.

إذا كان لديك مشروع MLflow للتدريب باستخدام التعلم الآلي من Microsoft Azure، فراجع تدريب نماذج التعلم الآلي من Microsoft Azure باستخدام مشاريع MLflow والتعلم الآلي من Microsoft Azure (إصدار أوَّلي).

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

تثبيت مكتبة التعليمات البرمجية

لتثبيت المكتبات على نظام المجموعة المخصص في Azure Synapse Analytics:

  1. أنشئ ملفا requirements.txt بالحزم التي تتطلبها تجاربك، ولكن تأكد من أنه يتضمن أيضا الحزم التالية:

    requirements.txt

    mlflow
    azureml-mlflow
    azure-ai-ml
    
  2. انتقل إلى مدخل مساحة عمل Azure Analytics.

  3. انتقل إلى علامة التبويب إدارة وحدد Apache Spark Pools.

  4. انقر فوق النقاط الثلاث بجوار اسم نظام المجموعة، وحدد الحزم.

    تثبيت حزم mlflow في Azure Synapse Analytics

  5. في قسم ملفات المتطلبات، انقر فوق تحميل.

  6. تحميل requirements.txtالملف.

  7. انتظر حتى تتم إعادة تشغيل نظام المجموعة.

تتبع التجارب باستخدام MLflow

يمكن تكوين Azure Synapse Analytics لتتبع التجارب باستخدام MLflow إلى مساحة عمل التعلم الآلي من Microsoft Azure. يوفر التعلم الآلي من Microsoft Azure مستودعا مركزيا لإدارة دورة حياة التجارب والنماذج والتوزيعات بأكملها. كما أنه يتمتع بميزة تمكين مسار أسهل للتوزيع باستخدام خيارات توزيع التعلم الآلي من Microsoft Azure.

تكوين دفاتر الملاحظات لاستخدام MLflow المتصل بالتعلم الآلي منMicrosoft Azure

لاستخدام التعلم الآلي من Microsoft Azure كمستودع مركزي للتجارب، يمكنك الاستفادة من MLflow. في كل دفتر ملاحظات تعمل عليه، يجب عليك تكوين عنوان URI للتتبع للإشارة إلى مساحة العمل التي ستستخدمها. يوضح المثال التالي كيف يمكن القيام بذلك:

تكوين تعقب URI

  1. احصل على عنوان URI للتعقب لمساحة العمل الخاصة بك:

    ينطبق على:ملحق CLI للتعلم الآلي من Microsoft Azure v2 (الحالي)

    1. تسجيل الدخول وتكوين مساحة العمل الخاصة بك:

      az account set --subscription <subscription>
      az configure --defaults workspace=<workspace> group=<resource-group> location=<location> 
      
    2. يمكنك الحصول على تعقب URI باستخدام az ml workspace الأمر :

      az ml workspace show --query mlflow_tracking_uri
      
  2. تكوين تعقب URI:

    ثم يشير الأسلوب set_tracking_uri() إلى عنوان URI لتعقب MLflow إلى عنوان URI هذا.

    import mlflow
    
    mlflow.set_tracking_uri(mlflow_tracking_uri)
    

    تلميح

    عند العمل على بيئات مشتركة، مثل مجموعة Azure Databricks أو مجموعة Azure Synapse Analytics أو ما شابه ذلك، من المفيد تعيين متغير MLFLOW_TRACKING_URI البيئة على مستوى نظام المجموعة لتكوين URI تعقب MLflow تلقائيا للإشارة إلى Azure التعلم الآلي لجميع الجلسات التي تعمل في المجموعة بدلا من القيام بذلك على أساس كل جلسة عمل.

تكوين المصادقة

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

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

تحذير

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

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

import os

os.environ["AZURE_TENANT_ID"] = "<AZURE_TENANT_ID>"
os.environ["AZURE_CLIENT_ID"] = "<AZURE_CLIENT_ID>"
os.environ["AZURE_CLIENT_SECRET"] = "<AZURE_CLIENT_SECRET>"

تلميح

عند العمل على البيئات المشتركة، ينصح بتكوين متغيرات البيئة هذه في الحساب. كأفضل ممارسة، قم بإدارتها كأسرار في مثيل Azure Key Vault كلما أمكن ذلك. على سبيل المثال، في Azure Databricks يمكنك استخدام الأسرار في متغيرات البيئة كما يلي في تكوين نظام المجموعة: AZURE_CLIENT_SECRET={{secrets/<scope-name>/<secret-name>}}. راجع الرجوع إلى سر في متغير بيئة لمعرفة كيفية القيام بذلك في Azure Databricks أو الرجوع إلى وثائق مماثلة في النظام الأساسي الخاص بك.

أسماء التجربة في التعلم الآلي من Microsoft Azure

بشكل افتراضي، يتم تشغيل مسارات التعلم الآلي من Microsoft Azure في تجربة افتراضية تسمى Default. عادة ما يكون من الجيد تعيين التجربة التي ستعمل عليها. استخدم بناء الجملة التالي لتعيين اسم التجربة:

mlflow.set_experiment(experiment_name="experiment-name")

تعقب المعلمات والمقاييس والبيانات الاصطناعية

يمكنك استخدام MLflow ثم في Azure Synapse Analytics بنفس الطريقة التي اعتدت على استخدامها. للحصول على التفاصيل، راجع السجل وعرض المقاييس وملفات السجل.

تسجيل النماذج في السجل باستخدام MLflow

يمكن تسجيل النماذج في مساحة عمل التعلم الآلي من Microsoft Azure، والتي توفر مستودعا مركزيا لإدارة دورة حياتها. يسجل المثال التالي نموذجا مدربا مع Spark MLLib ويسجله أيضا في السجل.

mlflow.spark.log_model(model, 
                       artifact_path = "model", 
                       registered_model_name = "model_name")  
  • إذا لم يكن النموذج المسجل بالاسم موجودا، يقوم الأسلوب بتسجيل نموذج جديد، وإنشاء الإصدار 1، وإرجاع كائن ModelVersion MLflow.

  • إذا وُجد بالفعل نموذج مسجل بالاسم، يقوم الأسلوب بإنشاء إصدار نموذج جديد وإرجاع عنصر الإصدار.

يمكنك إدارة النماذج المسجلة في التعلم الآلي من Microsoft Azure باستخدام MLflow. عرض سجلات إدارة النماذج في التعلم الآلي من Microsoft Azure باستخدام MLflow لمزيد من التفاصيل.

نشر النماذج المسجلة في التعلم الآلي من Azure واستهلاكها

يمكن استهلاك النماذج المسجلة في خدمة التعلم الآلي من Azure باستخدام MLflow كما يلي:

  • نقطة نهاية التعلم الآلي من Microsoft Azure (في الوقت الحقيقي والدفعة): يسمح لك هذا التوزيع للاستفادة من إمكانات توزيع التعلم الآلي من Microsoft Azure للاستدلال في الوقت الحقيقي والدفعة في مثيلات حاوية Azure (ACI) أو Azure Kubernetes (AKS) أو نقاط النهاية المدارة.

  • عناصر نموذج MLFlow أو Pandas UDFs، والتي يمكن استخدامها في دفاتر ملاحظات Azure Synapse Analytics في تدفقات التدفق أو الدفعات.

توزيع النماذج إلى نقاط نهاية التعلم الآلي من Microsoft Azure

يمكنك الاستفادة من azureml-mlflowالمكون الإضافي لتوزيع نموذج لمساحة عمل التعلم الآلي من Microsoft Azure. تحقق من كيفية توزيع صفحة نماذج MLflow للحصول على تفاصيل كاملة حول كيفية توزيع النماذج إلى الأهداف المختلفة.

هام

يجب تسجيل النماذج في سجل التعلم الآلي من Microsoft Azure من أجل توزيعها. إن توزيع النماذج غير المسجلة غير مدعوم في التعلم الآلي.

توزيع نماذج لتسجيل الدفعات باستخدام UDFs

يمكنك اختيار مجموعات Azure Synapse Analytics لتسجيل الدفعة. يتم تحميل نموذج MLFlow واستخدامه Spark Pandas UDF لتسجيل بيانات جديدة.

from pyspark.sql.types import ArrayType, FloatType 

model_uri = "runs:/"+last_run_id+ {model_path} 

#Create a Spark UDF for the MLFlow model 
pyfunc_udf = mlflow.pyfunc.spark_udf(spark, model_uri) 

#Load Scoring Data into Spark Dataframe 
scoreDf = spark.table({table_name}).where({required_conditions}) 

#Make Prediction 
preds = (scoreDf 
           .withColumn('target_column_name', pyfunc_udf('Input_column1', 'Input_column2', ' Input_column3', …)) 
        ) 

display(preds) 

تنظيف الموارد

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

  1. من مدخل Microsoft Azure، حدد Resource groups من أقصى الجانب الأيمن.

    الحذف في مدخل Microsoft Azure

  2. من القائمة، حدد مجموعة الموارد التي أنشأتها.

  3. حدد Delete resource group.

  4. أدخل اسم مجموعة الموارد. ثم حدد حذف.

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