Üretimdeki modellerden veri toplama

ŞUNUN IÇIN GEÇERLIDIR: Python SDK azureml v1

Bu makalede, Azure Kubernetes Service (AKS) kümesinde dağıtılan bir Azure Machine Learning modelinden nasıl veri toplayacağınız gösterilmektedir. Toplanan veriler daha sonra Azure Blob depolamada depolanır.

Koleksiyon etkinleştirildikten sonra, topladığınız veriler size yardımcı olur:

Sınırlamalar

  • Model veri toplama özelliği yalnızca Ubuntu 18.04 görüntüsüyle çalışabilir.

Önemli

10.03.2023 itibarıyla Ubuntu 18.04 görüntüsü kullanım dışı bırakılmıştır. Ubuntu 18.04 görüntüleri için destek, Ocak 2023'te 30 Nisan 2023'te EOL'ye ulaştığında bırakılacaktır.

MDC özelliği Ubuntu 18.04 dışındaki herhangi bir görüntüyle uyumsuzdur ve Ubuntu 18.04 görüntüsü kullanım dışı bırakıldıktan sonra kullanılamaz.

Başvurabileceğiniz mMore bilgileri:

Not

Veri toplama özelliği şu anda önizleme aşamasındadır; üretim iş yükleri için önizleme özellikleri önerilmez.

Toplananlar ve nereye gittiği

Aşağıdaki veriler toplanabilir:

  • AKS kümesinde dağıtılan web hizmetlerinden gelen giriş verilerini modelleyin. Ses, görüntü ve video toplanmaz .

  • Üretim giriş verilerini kullanarak model tahminleri.

Not

Bu verilerdeki ön toplama ve ön hesaplamalar şu anda toplama hizmetinin bir parçası değildir.

Çıktı Blob depolama alanına kaydedilir. Veriler Blob depolamaya eklendiğinden, analizi çalıştırmak için sık kullandığınız aracı seçebilirsiniz.

Blobdaki çıkış verilerinin yolu şu söz dizimini izler:

/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

Not

Python için Azure Machine Learning SDK'sının 0.1.0a16 sürümünden designation önceki sürümlerinde bağımsız değişken olarak adlandırılır identifier. Kodunuzu önceki bir sürümle geliştirdiyseniz, buna göre güncelleştirmeniz gerekir.

Önkoşullar

Veri toplamayı etkinleştirme

Azure Machine Learning veya diğer araçlar aracılığıyla dağıttığınız modelden bağımsız olarak veri toplamayı etkinleştirebilirsiniz.

Veri toplamayı etkinleştirmek için şunları yapmanız gerekir:

  1. Puanlama dosyasını açın.

  2. Dosyanın en üstüne aşağıdaki kodu ekleyin:

    from azureml.monitoring import ModelDataCollector
    
  3. İşlevinizde veri toplama değişkenlerinizi init bildirin:

    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 isteğe bağlı bir parametredir. Modeliniz gerekli değilse kullanmanız gerekmez. CorrelationId kullanımı, LoanNumber veya CustomerId gibi diğer verilerle daha kolay eşlemenize yardımcı olur.

    Identifier parametresi daha sonra blobunuzda klasör yapısını oluşturmak için kullanılır. Ham verileri işlenen verilerden ayırmak için kullanabilirsiniz.

  4. İşleve aşağıdaki kod satırlarını run(input_df) ekleyin:

    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'de bir hizmet dağıttığınızda veri toplama otomatik olarak true olarak ayarlanmaz. Aşağıdaki örnekte olduğu gibi yapılandırma dosyanızı güncelleştirin:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    Ayrıca bu yapılandırmayı değiştirerek hizmet izleme için Application Insights'i etkinleştirebilirsiniz:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. Yeni bir görüntü oluşturmak ve makine öğrenmesi modelini dağıtmak için bkz . Makine öğrenmesi modellerini Azure'a dağıtma.

  7. Web hizmeti ortamının conda bağımlılıklarına 'Azure-Monitoring' pip paketini ekleyin:

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

Veri toplamayı devre dışı bırakma

İstediğiniz zaman veri toplamayı durdurabilirsiniz. Veri toplamayı devre dışı bırakmak için Python kodunu kullanın.

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

Verilerinizi doğrulama ve analiz etme

Blob depolama alanınızda toplanan verileri analiz etmek için tercih ettiğiniz bir aracı seçebilirsiniz.

Blob verilerinize hızla erişin

  1. Azure portalda oturum açın.

  2. Çalışma alanınızı açın.

  3. Depolama’yı seçin.

    Depolama seçeneğinin seçimini gösteren ekran görüntüsü.

  4. Bu söz dizimi ile blob çıkış verilerinin yolunu izleyin:

    /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 kullanarak model verilerini analiz etme

  1. Power BI Desktop'ı indirip açın.

  2. Veri Al'ı ve Azure Blob Depolama'yi seçin.

    Power BI blob kurulumunu gösteren ekran görüntüsü.

  3. Depolama hesabı adınızı ekleyin ve depolama anahtarınızı girin. Blobunuzda Ayarlar>Erişim anahtarları'nı seçerek bu bilgileri bulabilirsiniz.

  4. Model veri kapsayıcısını seçin ve Düzenle'yi seçin.

    Power BI Gezgini'ni gösteren ekran görüntüsü.

  5. Sorgu düzenleyicisinde Ad sütununun altına tıklayın ve depolama hesabınızı ekleyin.

  6. Model yolunuzu filtreye girin. Yalnızca belirli bir yıl veya aydaki dosyalara bakmak istiyorsanız, filtre yolunu genişletmeniz gerekir. Örneğin, yalnızca Mart verilerine bakmak için şu filtre yolunu kullanın:

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

  7. Ad değerlerine göre sizinle ilgili verileri filtreleyin. Tahminleri ve girişleri depoladıysanız, her biri için bir sorgu oluşturmanız gerekir.

  8. Dosyaları birleştirmek için İçerik sütun başlığının yanındaki aşağı doğru çift okları seçin.

    Power BI İçeriğini gösteren ekran görüntüsü.

  9. Tamam'ı seçin. Veriler önceden yüklenir.

    Power BI Dosyaları Birleştir'i gösteren ekran görüntüsü.

  10. Kapat ve Uygula'yı seçin.

  11. Girişler ve tahminler eklediyseniz, tablolarınız RequestId değerlerine göre otomatik olarak sıralanır.

  12. Model verileriniz üzerinde özel raporlarınızı oluşturmaya başlayın.

Azure Databricks kullanarak model verilerini analiz etme

  1. Azure Databricks çalışma alanı oluşturun.

  2. Databricks çalışma alanınıza gidin.

  3. Databricks çalışma alanınızda Verileri Karşıya Yükle'yi seçin.

    Databricks Verileri Karşıya Yükle seçeneğini gösteren ekran görüntüsü.

  4. Yeni Tablo Oluştur'u seçin ve Diğer Veri Kaynakları> Azure Blob Depolama> Not Defteri'nde Tablo Oluştur'u seçin.

    Databricks tablosu oluşturmayı gösteren ekran görüntüsü.

  5. Verilerinizin konumunu güncelleştirin. Örnek aşağıda verilmiştir:

    file_location = "wasbs://mycontainer@storageaccountname.blob.core.windows.net/*/*/data.csv" 
    file_type = "csv"
    

    Databricks kurulumunu gösteren ekran görüntüsü.

  6. Verilerinizi görüntülemek ve analiz etmek için şablondaki adımları izleyin.

Sonraki adımlar

Topladığınız verilerde veri kayma algılama.