Zbieranie danych z modeli w środowisku produkcyjnym

DOTYCZY:Zestaw SDK języka Python w wersji 1

W tym artykule pokazano, jak zbierać dane z modelu usługi Azure Machine Learning wdrożonego w klastrze Azure Kubernetes Service (AKS). Zebrane dane są następnie przechowywane w usłudze Azure Blob Storage.

Po włączeniu kolekcji zbierane dane ułatwiają:

Ograniczenia

  • Funkcja zbierania danych modelu może działać tylko z obrazem z systemem Ubuntu 18.04.

Ważne

Od 10.03.2023 r. obraz z systemem Ubuntu 18.04 jest teraz przestarzały. Obsługa obrazów z systemem Ubuntu 18.04 zostanie przerwana od stycznia 2023 r., gdy osiągnie poziom EOL 30 kwietnia 2023 r.

Funkcja MDC jest niezgodna z dowolnym innym obrazem niż Ubuntu 18.04, który nie jest dostępny po wycofaniu obrazu Ubuntu 18.04.

Więcej informacji można znaleźć w temacie:

Uwaga

Funkcja zbierania danych jest obecnie dostępna w wersji zapoznawczej. Żadne funkcje w wersji zapoznawczej nie są zalecane w przypadku obciążeń produkcyjnych.

Co jest zbierane i gdzie idzie

Można zbierać następujące dane:

  • Modelowanie danych wejściowych z usług internetowych wdrożonych w klastrze usługi AKS. Dźwięk głosowy, obrazy i wideo nie są zbierane.

  • Przewidywanie modelu przy użyciu danych wejściowych produkcyjnych.

Uwaga

Preaggregacja i wstępne obliczenia na tych danych nie są obecnie częścią usługi kolekcji.

Dane wyjściowe są zapisywane w usłudze Blob Storage. Ponieważ dane są dodawane do usługi Blob Storage, możesz wybrać ulubione narzędzie do uruchomienia analizy.

Ścieżka do danych wyjściowych w obiekcie blob jest następująca składnia:

/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

Uwaga

W wersjach zestawu Azure Machine Learning SDK dla języka Python starszych niż wersja 0.1.0a16 designation argument nosi nazwę identifier. Jeśli kod został opracowany przy użyciu starszej wersji, należy go odpowiednio zaktualizować.

Wymagania wstępne

Włączanie zbierania danych

Zbieranie danych można włączyć niezależnie od modelu wdrażanego za pośrednictwem usługi Azure Machine Learning lub innych narzędzi.

Aby włączyć zbieranie danych, musisz:

  1. Otwórz plik oceniania.

  2. Dodaj następujący kod w górnej części pliku:

    from azureml.monitoring import ModelDataCollector
    
  3. Zadeklaruj zmienne zbierania danych w funkcji 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 jest opcjonalnym parametrem. Nie musisz jej używać, jeśli model go nie wymaga. Użycie identyfikatora CorrelationId ułatwia mapowania z innymi danymi, takimi jak LoanNumber lub CustomerId.

    Parametr Identifier jest później używany do kompilowania struktury folderów w obiekcie blob. Można go użyć do odróżnienia danych pierwotnych od przetworzonych danych.

  4. Dodaj następujące wiersze kodu do run(input_df) funkcji:

    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. Zbieranie danych nie jest automatycznie ustawiane na wartość true podczas wdrażania usługi w usłudze AKS. Zaktualizuj plik konfiguracji, tak jak w poniższym przykładzie:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    Możesz również włączyć usługę Application Insights na potrzeby monitorowania usług, zmieniając tę konfigurację:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. Aby utworzyć nowy obraz i wdrożyć model uczenia maszynowego, zobacz Wdrażanie modeli uczenia maszynowego na platformie Azure.

  7. Dodaj pakiet pip "Azure-Monitoring" do zależności conda środowiska usługi internetowej:

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

Wyłączanie zbierania danych

Zbieranie danych można zatrzymać w dowolnym momencie. Użyj kodu języka Python, aby wyłączyć zbieranie danych.

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

Weryfikowanie i analizowanie danych

Możesz wybrać narzędzie preferencji do analizowania danych zebranych w usłudze Blob Storage.

Szybki dostęp do danych obiektu blob

  1. Zaloguj się w portalu Azure.

  2. Otwórz obszar roboczy.

  3. Wybierz pozycję Magazyn.

    Wybierz opcję Magazyn

  4. Postępuj zgodnie ze ścieżką do danych wyjściowych obiektu blob z następującą składnią:

    /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
    

Analizowanie danych modelu przy użyciu usługi Power BI

  1. Pobierz i otwórz Power BI Desktop.

  2. Wybierz pozycję Pobierz dane i wybierz pozycję Azure Blob Storage.

    Konfiguracja obiektu blob usługi Power BI

  3. Dodaj nazwę konta magazynu i wprowadź klucz magazynu. Te informacje można znaleźć, wybierając pozycję Ustawienia>Klucze dostępu w obiekcie blob.

  4. Wybierz kontener danych modelu i wybierz pozycję Edytuj.

    Nawigator usługi Power BI

  5. W edytorze zapytań kliknij w kolumnie Nazwa i dodaj konto magazynu.

  6. Wprowadź ścieżkę modelu do filtru. Jeśli chcesz przeglądać tylko pliki z określonego roku lub miesiąca, po prostu rozwiń ścieżkę filtru. Aby na przykład zapoznać się tylko z danymi z marca, użyj tej ścieżki filtru:

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

  7. Przefiltruj dane, które są istotne dla Ciebie na podstawie wartości Nazwa . W przypadku przechowywania przewidywań i danych wejściowych należy utworzyć zapytanie dla każdego z nich.

  8. Wybierz podwójne strzałki w dół obok nagłówka Kolumna Zawartość , aby połączyć pliki.

    Zawartość usługi Power BI

  9. Wybierz przycisk OK. Dane są ładowane wstępnie.

    Łączenie plików w usłudze Power BI

  10. Wybierz pozycję Zamknij i zastosuj.

  11. Jeśli dodano dane wejściowe i przewidywania, tabele są automatycznie uporządkowane według wartości RequestId .

  12. Rozpocznij tworzenie niestandardowych raportów na danych modelu.

Analizowanie danych modelu przy użyciu usługi Azure Databricks

  1. Tworzenie obszaru roboczego usługi Azure Databricks.

  2. Przejdź do obszaru roboczego usługi Databricks.

  3. W obszarze roboczym usługi Databricks wybierz pozycję Przekaż dane.

    Wybieranie opcji Przekazywanie danych w usłudze Databricks

  4. Wybierz pozycję Utwórz nową tabelę i wybierz pozycję Inne źródła> danych Azure Blob Storage>Utwórz tabelę w notesie.

    Tworzenie tabeli usługi Databricks

  5. Zaktualizuj lokalizację danych. Oto przykład:

    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"
    

    Konfiguracja usługi Databricks

  6. Wykonaj kroki opisane w szablonie, aby wyświetlić i przeanalizować dane.

Następne kroki

Wykrywanie dryfu danych na zebranych danych.