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

PLATÍ PRO:Sada 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 uloží ve službě Azure Blob Storage.

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

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

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

  • Lépe se rozhodujte o tom, kdy model přetrénovat nebo optimalizovat.

  • Znovu vytrénujte model pomocí shromážděných dat.

Omezení

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

Důležité

Od 10. 3. 2023 je image Ubuntu 18.04 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 image než Ubuntu 18.04, která po vyřazení image Ubuntu 18.04 není k dispozici.

mDalší informace, na které se můžete podívat:

Poznámka

Funkce shromažďování dat je aktuálně ve verzi Preview, pro produkční úlohy se žádné funkce verze Preview nedoporučují.

Co se shromažďuje a kam směřuje

Je možné shromažďovat následující data:

  • Vstupní data modelu z webových služeb nasazených v clusteru AKS Hlasový zvuk, obrázky a video se neshromažďují.

  • Modelování predikcí pomocí produkčních vstupních dat

Poznámka

Preaggregation and precalculations on this data are not part of the collection service.

Výstup se uloží ve službě Blob Storage. Vzhledem k tomu, že se data přidávají do úložiště objektů blob, můžete zvolit svůj oblíbený nástroj pro 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 se argument jmenuje identifier. Pokud jste kód vyvinuli 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ý nasadíte 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 s hodnocením.

  2. Na začátek 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 váš model nevyžaduje, nemusíte ho používat. Použití Id korelace vám pomůže snadněji mapovat s jinými daty, jako je LoanNumber nebo CustomerId.

    Parametr Identifier se později použije k vytvoření struktury složek v objektu blob. Můžete ho použít k odliš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. Při nasazení služby v AKS se shromažďování dat automaticky nenastaví na hodnotu true . Aktualizujte konfigurační soubor, jak je uvedeno 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 conda-dependencies 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 si vybrat nástroj podle svých preferencí pro analýzu dat shromážděných ve vašem úložišti objektů blob.

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

  1. Přihlaste se k portálu Azure.

  2. Otevřete pracovní prostor.

  3. Vyberte Úložiště.

    Vyberte možnost Úložiště.

  4. Postupujte podle cesty k výstupním datům objektu blob pomocí této syntaxe:

    /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 vyberetePřístupové klíčenastavení>.

  4. Vyberte kontejner dat modelu a vyberte Upravit.

    Navigátor Power BI

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

  6. Do filtru zadejte cestu k modelu. Pokud se chcete podívat jenom na soubory z určitého roku nebo měsíce, jednoduše rozbalte cestu filtru. Pokud se například chcete podívat jenom na 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ázvu . Pokud jste uložili předpovědi a vstupy, musíte pro každou z nich vytvořit dotaz.

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

    Obsah Power BI

  9. Vyberte OK. Data se přednačtou.

    Kombinování souborů v Power BI

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

  11. Pokud jste přidali vstupy a předpovědi, tabulky se automaticky seř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 Databricks Nahrát data

  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í vašich dat. Zde naleznete 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. Pokud chcete zobrazit a analyzovat data, postupujte podle pokynů v šabloně.

Další kroky

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