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

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

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

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

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

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

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

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

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

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

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

ملاحظة

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

يتم حفظ الإخراج في تخزين 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 التعلم الآلي SDK ل Python أقدم من الإصدار 0.1.0a16، يتم تسمية identifierالوسيطة designation . إذا قمت بتطوير التعليمات البرمجية الخاصة بك باستخدام إصدار سابق ، فأنت بحاجة إلى تحديثها وفقا لذلك.

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

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

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

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

  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.

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

  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. لا يتم تعيين جمع البيانات تلقائيا إلى true عند نشر خدمة في AKS. قم بتحديث ملف التكوين، كما في المثال التالي:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

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

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

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

  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 الخاصة بك.

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

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

  2. افتح مساحة العمل.

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

    Select the Storage option

  4. اتبع المسار إلى بيانات إخراج النقطة باستخدام بناء الجملة هذا:

    /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. حدد الحصول على البيانات وحدد Azure Blob Storage.

    Power BI blob setup

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

  4. حدد حاوية بيانات الطرازوحدد تحرير.

    Power BI Navigator

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

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

    /modeldata/subscriptionid>/resourcegroupname/workspacename/webservicename/modelname>>>>/modelversion>/designation>/year>/3<<<<<<<<

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

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

    Power BI Content

  9. حدد "OK". يتم تحميل البيانات مسبقا.

    Power BI Combine Files

  10. حدد إغلاق وتطبيق.

  11. إذا أضفت مدخلات وتنبؤات، ترتيب جداولك تلقائيا حسب قيم RequestId .

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

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

  1. إنشاء مساحة عمل Azure Databricks.

  2. انتقل إلى مساحة عمل Databricks.

  3. في مساحة عمل Databricks، حدد Upload البيانات.

    Selecting Databricks Upload Data option

  4. حدد إنشاء جدول جديد وحدد مصادر> بيانات أخرىتخزين> Azure Blobإنشاء جدول في دفتر الملاحظات.

    Databricks table creation

  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 setup

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

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

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