جمع البيانات من النماذج في الإنتاج

ينطبق على:Python SDK azureml v1

توضح هذه المقالة كيفية جمع البيانات من نموذج التعلم الآلي الموزع على مجموعة Azure Kubernetes Service (AKS). ثم يتم تخزين البيانات التي تم جمعها في تخزين Azure Blob.

بمجرد تمكين الجمع، تساعدك البيانات التي تجمعها على:

  • راقب انحرافات البيانات في بيانات الإنتاج التي تجمعها.

  • تحليل البيانات المجمعة باستخدام Power BI أو Azure Databricks

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

  • أعد تدريب نموذجك بالبيانات التي تم جمعها.

القيود

  • يمكن أن تعمل ميزة جمع بيانات النموذج فقط مع صورة Ubuntu 18.04.

هام

اعتبارا من 03/10/2023، تم الآن إهمال صورة Ubuntu 18.04. سيتم إسقاط دعم صور Ubuntu 18.04 بدءا من يناير 2023 عندما تصل إلى EOL في 30 أبريل 2023.

ميزة MDC غير متوافقة مع أي صورة أخرى غير Ubuntu 18.04، والتي لا تتوفر بعد إهمال صورة Ubuntu 18.04.

m مزيد من المعلومات التي يمكنك الرجوع إليها:

إشعار

ميزة جمع البيانات قيد المعاينة حاليا، لا يوصى بأي ميزات معاينة لأحمال عمل الإنتاج.

ما يتم جمعه وأين يذهب

يمكن جمع البيانات التالية:

  • نموذج بيانات الإدخال من خدمات الويب المنتشرة في مجموعة AKS. لا يتم تجميع الصوت والصورة والفيديو.

  • تنبؤات النموذج باستخدام بيانات إدخال الإنتاج.

إشعار

التجميع والحسابات المسبقة على هذه البيانات ليست حالياً جزءاً من خدمة التجميع.

يتم حفظ الإخراج في تخزين Blob. نظراً لأنه تتم إضافة البيانات إلى تخزين Blob، يمكنك اختيار أداتك المفضلة لتشغيل التحليل.

يتبع المسار إلى بيانات الإخراج في blob بناء الجملة هذا:

/modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv
# example: /modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/12/31/data.csv

إشعار

في إصدارات Azure Machine Learning SDK لـ Python الأقدم من الإصدار 0.1.0a16، تم تسمية الوسيطة designationidentifier. إذا قمت بتطوير التعليمات البرمجية الخاصة بك باستخدام إصدار سابق، فستحتاج إلى تحديثها وفقاً لذلك.

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

تشغيل جمع البيانات

يمكنك تمكين جمع البيانات بغض النظر عن النموذج الذي توزعه من خلال التعلم الآلي أو أدوات أخرى.

لتمكين جمع البيانات، تحتاج إلى:

  1. افتح ملف التسجيل.

  2. إضافة التعليمات البرمجية التالية إلى أعلى الملف:

    from azureml.monitoring import ModelDataCollector
    
  3. قم بتعريف متغيرات جمع البيانات في دالة init الخاصة بك:

    global inputs_dc, prediction_dc
    inputs_dc = ModelDataCollector("best_model", designation="inputs", feature_names=["feat1", "feat2", "feat3", "feat4", "feat5", "feat6"])
    prediction_dc = ModelDataCollector("best_model", designation="predictions", feature_names=["prediction1", "prediction2"])
    

    CorrelationId هي معلمة اختيارية. لا تحتاج إلى استخدامه إذا كان نموذجك لا يتطلب ذلك. يساعدك استخدام CorrelationId في تعيين البيانات الأخرى بسهولة أكبر، مثل LoanNumber أو CustomerId.

    يتم استخدام معلمة المعرف لاحقاً لبناء بنية المجلد في blob الخاص بك. يمكنك استخدامه للتمييز بين البيانات الأوَّلية والبيانات المعالجة.

  4. أضف سطور التعليمات البرمجية التالية إلى الوظيفة run(input_df):

    data = np.array(data)
    result = model.predict(data)
    inputs_dc.collect(data) #this call is saving our input data into Azure Blob
    prediction_dc.collect(result) #this call is saving our prediction data into Azure Blob
    
  5. لا يتم تعيين جمع البيانات تلقائياً على صحيح عند توزيع خدمة في AKS. قم بتحديث ملف التكوين الخاص بك، كما في المثال التالي:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    يمكنك أيضاً تمكين Application Insights لمراقبة الخدمة عن طريق تغيير هذا التكوين:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. لإنشاء صورة جديدة وتوزيع نموذج التعلم الآلي، راجع توزيع نماذج التعلم الآلي إلى Azure.

  7. أضف حزمة نقطة "Azure-Monitoring" إلى تبعيات الشروط الخاصة ببيئة خدمة الويب:

  env = Environment('webserviceenv')
  env.python.conda_dependencies = CondaDependencies.create(conda_packages=['numpy'],pip_packages=['azureml-defaults','azureml-monitoring','inference-schema[numpy-support]'])

تعطيل جمع البيانات

يمكنك التوقف عن جمع البيانات في أي وقت. استخدم التعليمة البرمجية Python لتعطيل جمع البيانات.

## replace <service_name> with the name of the web service
<service_name>.update(collect_model_data=False)

التحقق من صحة البيانات الخاصة بك وتحليلها

يمكنك اختيار الأداة التي تفضلها لتحليل البيانات التي تم جمعها في تخزين Blob الخاص بك.

الوصول بسرعة إلى بيانات blob الخاصة بك

  1. تسجيل الدخول إلى مدخل Azure.

  2. افتح مساحة العمل الخاصة بك.

  3. اختار التخزين .

    حدد خيار التخزين

  4. اتبع المسار إلى بيانات إخراج blob باستخدام هذه الصيغة:

    /modeldata/<subscriptionid>/<resourcegroup>/<workspace>/<webservice>/<model>/<version>/<designation>/<year>/<month>/<day>/data.csv
    # example: /modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/12/31/data.csv
    

تحليل بيانات النموذج باستخدام Power BI

  1. نزّل وافتح Power BI Desktop.

  2. حدد Get Data وحدد Azure Blob Storage.

    إعداد الكائن الثنائي كبير الحجمPower BI

  3. أضف اسم حساب التخزين الخاص بك وأدخل مفتاح التخزين الخاص بك. يمكنك العثور على هذه المعلومات عن طريق تحديد Settings>Access keys في blob.

  4. حدد حاوية model data وحدد Edit.

    متنقل Power BI

  5. في محرر الاستعلام، انقر أسفل عمود Name وأضف حساب التخزين الخاص بك.

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

    /modeldata/<subscriptionid>/<resourcegroupname>/<workspacename>/<webservicename>/<modelname>/<modelversion>/<التعيين>/<السنة>/3

  7. قم بتصفية البيانات ذات الصلة بك بناءً على قيم الاسم. إذا قمت بتخزين التنبؤات والمدخلات، فستحتاج إلى إنشاء استعلام لكل منها.

  8. حدد الأسهم المزدوجة لأسفل بجوار عنوان العمود Content لدمج الملفات.

    محتوى Power BI

  9. حدد موافق. التحميل المسبق للبيانات.

    جمع ملفات Power BI

  10. حدد حفظ وتطبيق.

  11. إذا أضفت مدخلات وتوقعات، فسيتم ترتيب جداولك تلقائياً حسب قيم معرّف الطلب.

  12. ابدأ في إنشاء تقاريرك المخصصة على بيانات نموذجك.

تحليل بيانات النموذج باستخدام Azure Databricks

  1. أنشئ مساحة عمل Azure Databricks.

  2. انتقل إلى مساحة عمل Databricks الخاصة بك.

  3. في مساحة عمل Databricks الخاصة بك، حدد Upload Data.

    تحديد خيار Databricks Upload Data

  4. حدد Create New Table وحدد Other Data Sources>Azure Blob Storage>Create Table in Notebook.

    إنشاء جدول Databricks

  5. تحديث موقع البيانات الخاصة بك. إليك مثال:

    file_location = "wasbs://mycontainer@storageaccountname.blob.core.windows.net/modeldata/1a2b3c4d-5e6f-7g8h-9i10-j11k12l13m14/myresourcegrp/myWorkspace/aks-w-collv9/best_model/10/inputs/2018/*/*/data.csv" 
    file_type = "csv"
    

    إعداد Databricks

  6. اتبع الخطوات الموجودة في القالب لعرض بياناتك وتحليلها.

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

اكتشاف انحراف البيانات في البيانات التي جمعتها.