Udostępnij za pośrednictwem


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 usługi Azure Kubernetes Service (AKS). Zebrane dane są następnie przechowywane w usłudze Azure Blob Storage.

Po włączeniu kolekcji zbierane dane ułatwiają wykonywanie następujących zadań:

  • Monitoruj dryfy danych na zbieranych danych produkcyjnych.

  • Analizowanie zebranych danych przy użyciu usługi Power BI lub usługi Azure Databricks

  • Podejmowanie lepszych decyzji dotyczących ponownego trenowania lub optymalizowania modelu.

  • Ponowne trenowanie modelu przy użyciu zebranych danych.

Ograniczenia

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

Ważne

Od 10.03.2023 r. obraz 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:

Uwaga

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

Co jest zbierane i gdzie idzie

Można zebrać 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 niezbierane.

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

Uwaga

Wstępne agregowanie i wstępne obliczenia na tych danych nie są obecnie częścią usługi zbierania.

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 pomocą usługi Azure Machine Learning lub innych narzędzi.

Aby włączyć zbieranie danych, należy wykonać następujące kroki:

  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 init funkcji:

    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 go używać, jeśli model go nie wymaga. Użycie identyfikatora CorrelationId ułatwia mapowania z innymi danymi, takimi jak LoanNumber lub CustomerId.

    Parametr Identyfikator jest później używany do tworzenia 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 ustawione 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 "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 w języku 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ę do Portalu Azure.

  2. Otwórz obszar roboczy.

  3. Wybierz pozycję Magazyn.

    Zrzut ekranu przedstawiający wybór opcji magazynu.

  4. Postępuj zgodnie ze ścieżką do danych wyjściowych obiektu blob przy użyciu następującej 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 program Power BI Desktop.

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

    Zrzut ekranu przedstawiający konfigurację 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.

    Zrzut ekranu przedstawiający 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 przyjrzeć się tylko danym 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 . Jeśli przechowywane są przewidywania i dane wejściowe, 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.

    Zrzut ekranu przedstawiający zawartość usługi Power BI.

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

    Zrzut ekranu przedstawiający usługę Power BI Combine Files (Łączenie plików w usłudze Power BI).

  10. Wybierz 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.

    Zrzut ekranu przedstawiający wybór opcji Przekaż dane 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.

    Zrzut ekranu przedstawiający tworzenie tabeli usługi Databricks.

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

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

    Zrzut ekranu przedstawiający konfigurację usługi Databricks.

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

Następne kroki

Wykryj dryf danych na zebranych danych.