Sdílet prostřednictvím


Shromažďování dat z modelů v produkčním prostředí

PLATÍ PRO: Python SDK azureml v1

Tento článek ukazuje, jak shromažďovat data z modelu Azure Machine Learning nasazeného v clusteru Azure Kubernetes Service (AKS). Shromážděná data se pak ukládají do úložiště objektů blob v Azure.

Jakmile je shromažďování povolené, data, která shromažďujete, vám pomůžou:

  • Monitorujte odchylky dat v produkčních datech, která shromažďujete.

  • Analýza shromážděných dat pomocí Power BI nebo Azure Databricks

  • Lepší rozhodnutí o tom, kdy model přetrénovat nebo optimalizovat.

  • Přetrénujte model pomocí shromážděných dat.

Omezení

  • Funkce shromažďování dat modelu může pracovat pouze s obrázkem Ubuntu 18.04.

Důležité

Od 10. 3. 2023 je image Ubuntu 18.04 nyní zastaralá. Podpora imagí Ubuntu 18.04 bude ukončena od ledna 2023, když dosáhne EOL 30. dubna 2023.

Funkce MDC není kompatibilní s žádnou jinou imagí než Ubuntu 18.04, která není k dispozici po vyřazení image Ubuntu 18.04.

mMore information you can refer to:

Poznámka:

Funkce shromažďování dat je aktuálně ve verzi Preview. Pro produkční úlohy se nedoporučuje používat žádné funkce ve verzi Preview.

Co se shromažďuje a kde probíhá

Můžete shromažďovat následující data:

  • Modelování vstupních dat z webových služeb nasazených v clusteru AKS Hlasový zvuk, obrázky a video se neshromažďují.

  • Predikce modelu s využitím produkčních vstupních dat

Poznámka:

Preaggregace a předběžné výpočty na těchto datech nejsou v současné době součástí služby kolekce.

Výstup se uloží do úložiště objektů blob. Vzhledem k tomu, že se data přidají do úložiště objektů blob, můžete zvolit svůj oblíbený nástroj ke spuštění analýzy.

Cesta k výstupním datům v objektu blob se řídí touto syntaxí:

/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

Poznámka:

Ve verzích sady Azure Machine Learning SDK pro Python starší než verze 0.1.0a16 designation je argument pojmenován identifier. Pokud jste kód vytvořili ve starší verzi, musíte ho odpovídajícím způsobem aktualizovat.

Požadavky

Povolení shromažďování dat

Shromažďování dat můžete povolit bez ohledu na model, který nasazujete prostřednictvím služby Azure Machine Learning nebo jiných nástrojů.

Pokud chcete povolit shromažďování dat, musíte:

  1. Otevřete soubor bodování.

  2. Do horní části souboru přidejte následující kód:

    from azureml.monitoring import ModelDataCollector
    
  3. Deklarujte proměnné shromažďování dat ve vaší init funkci:

    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 je volitelný parametr. Pokud ho model nevyžaduje, nemusíte ho používat. Použití CorrelationId vám pomůže snadněji mapovat s jinými daty, jako je LoanNumber nebo CustomerId.

    Parametr Identifikátor se později použije k vytvoření struktury složek v objektu blob. Můžete ho použít k rozlišení nezpracovaných dat od zpracovaných dat.

  4. Do funkce přidejte následující řádky kódu 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. Shromažďování dat se při nasazení služby v AKS automaticky nenastaví na hodnotu True . Aktualizujte konfigurační soubor, jak je znázorněno v následujícím příkladu:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True)
    

    Můžete také povolit Application Insights pro monitorování služeb změnou této konfigurace:

    aks_config = AksWebservice.deploy_configuration(collect_model_data=True, enable_app_insights=True)
    
  6. Pokud chcete vytvořit novou image a nasadit model strojového učení, přečtěte si téma Nasazení modelů strojového učení do Azure.

  7. Přidejte balíček pip Azure-Monitoring do závislostí conda prostředí webové služby:

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

Zakázání shromažďování dat

Shromažďování dat můžete kdykoli ukončit. Pomocí kódu Pythonu zakažte shromažďování dat.

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

Ověření a analýza dat

Můžete zvolit nástroj, který vám dává přednost, abyste analyzovali data shromážděná v úložišti objektů blob.

Rychlý přístup k datům objektů blob

  1. Přihlaste se na portál Azure.

  2. Otevřete pracovní prostor.

  3. Vyberte Úložiště.

    Výběr možnosti Úložiště

  4. Pomocí této syntaxe postupujte podle cesty k výstupním datům objektu 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
    

Analýza dat modelu pomocí Power BI

  1. Stáhněte a otevřete Power BI Desktop.

  2. Vyberte Získat data a vyberte Azure Blob Storage.

    Nastavení objektů blob Power BI

  3. Přidejte název účtu úložiště a zadejte svůj klíč úložiště. Tyto informace najdete tak, že v objektu blob vyberete přístupové klíče nastavení>.

  4. Vyberte kontejner dat modelu a vyberte Upravit.

    Power BI Navigator

  5. V editoru dotazů klikněte pod sloupec Název a přidejte svůj účet úložiště.

  6. Do filtru zadejte cestu modelu. Pokud se chcete podívat jenom na soubory z konkrétního roku nebo měsíce, stačí rozbalit cestu filtru. Pokud chcete například hledat pouze data z března, použijte tuto cestu filtru:

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

  7. Vyfiltrujte data, která jsou pro vás relevantní, na základě hodnot Název . Pokud jste uložili predikce a vstupy, musíte pro každou z nich vytvořit dotaz.

  8. Pokud chcete soubory zkombinovat, vyberte šipky dolů vedle záhlaví sloupce Obsah .

    Obsah Power BI

  9. Vyberte OK. Data se předinstalují.

    Kombinování souborů Power BI

  10. Zvolte Zavřít a použít.

  11. Pokud jste přidali vstupy a předpovědi, tabulky se automaticky řadí podle hodnot RequestId .

  12. Začněte vytvářet vlastní sestavy na datech modelu.

Analýza dat modelu pomocí Azure Databricks

  1. Vytvořte pracovní prostor Azure Databricks.

  2. Přejděte do pracovního prostoru Databricks.

  3. V pracovním prostoru Databricks vyberte Nahrát data.

    Výběr možnosti Nahrání dat v Databricks

  4. Vyberte Vytvořit novou tabulku a vyberte Další zdroje>dat Azure Blob Storage>– Vytvořit tabulku v poznámkovém bloku.

    Vytvoření tabulky Databricks

  5. Aktualizujte umístění dat. Zde je příklad:

    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"
    

    Nastavení Databricks

  6. Podle pokynů v šabloně můžete data zobrazit a analyzovat.

Další kroky

Detekujte posun dat u shromážděných dat.