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 posuny dat na 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 se má model přetrénovat nebo optimalizovat.

  • Přetrénujte model se shromážděnými daty.

Co se shromažďuje a kam jde

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

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

  • Předpovědi modelů 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řidávají 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 má argument název identifier. Pokud jste vytvořili kód s dřívější verzí, 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. 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"])
    

    Id korelace je volitelný parametr. Pokud ho 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 Například 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 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 není automaticky nastaveno na true při nasazování služby v AKS. 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)
    

    Službu Application Insights můžete také povolit 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 zastavit. 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ý dává přednost analýze dat shromážděných v ú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ě.

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

  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 chcete hledat jenom soubory z konkrétního roku nebo měsíce, stačí rozbalit cestu filtru. Pokud chcete například hledat jenom data z března, použijte tuto cestu filtru:

    /modeldata/<subscriptionid>/<resourcegroupname/workspacename>>/<<webservicename>/<modelname>/<modelversion>/<označení>/<year>/3

  7. Vyfiltrujte data, která jsou pro vás relevantní, na základě hodnot Názvů . Pokud jste uložili předpovědi a vstupy, musíte vytvořit dotaz pro každý z nich.

  8. Výběrem dvojitých šipek dolů vedle záhlaví sloupce Obsah zkombinujte soubory.

    Obsah Power BI

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

    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 objednávají 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ření tabulky v poznámkovém bloku.

    Vytvoření tabulky Databricks

  5. Aktualizujte umístění 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.