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
Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
Je nutné nainstalovat pracovní prostor Azure Machine Learning, místní adresář obsahující vaše skripty a sadu Azure Machine Learning SDK pro Python. Informace o tom, jak je nainstalovat, najdete v tématu Postup konfigurace vývojového prostředí.
K nasazení do AKS potřebujete natrénovaný model strojového učení. Pokud model nemáte, podívejte se na kurz trénování modelu klasifikace obrázků.
Potřebujete cluster AKS. Informace o tom, jak ho vytvořit a nasadit do něj, najdete v tématu Nasazení modelů strojového učení do Azure.
Nastavte své prostředí a nainstalujte sadu SDK pro monitorování služby Azure Machine Learning.
Použijte image Dockeru založenou na Ubuntu 18.04, která je dodávána se
libssl 1.0.0
základní závislostí modeldatacollector. Můžete si projít předem sestavené image.
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:
Otevřete soubor bodování.
Do horní části souboru přidejte následující kód:
from azureml.monitoring import ModelDataCollector
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.
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
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)
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.
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
Přihlaste se na portál Azure.
Otevřete pracovní prostor.
Vyberte Úložiště.
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
Stáhněte a otevřete Power BI Desktop.
Vyberte Získat data a vyberte Azure Blob Storage.
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í>.
Vyberte kontejner dat modelu a vyberte Upravit.
V editoru dotazů klikněte pod sloupec Název a přidejte svůj účet úložiště.
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
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.
Pokud chcete soubory zkombinovat, vyberte šipky dolů vedle záhlaví sloupce Obsah .
Vyberte OK. Data se předinstalují.
Zvolte Zavřít a použít.
Pokud jste přidali vstupy a předpovědi, tabulky se automaticky řadí podle hodnot RequestId .
Začněte vytvářet vlastní sestavy na datech modelu.
Analýza dat modelu pomocí Azure Databricks
Vytvořte pracovní prostor Azure Databricks.
Přejděte do pracovního prostoru Databricks.
V pracovním prostoru Databricks vyberte Nahrát data.
Vyberte Vytvořit novou tabulku a vyberte Další zdroje>dat Azure Blob Storage>– Vytvořit tabulku v poznámkovém bloku.
Aktualizujte umístění dat. Zde je příklad:
file_location = "wasbs://mycontainer@storageaccountname.blob.core.windows.net/*/*/data.csv" file_type = "csv"
Podle pokynů v šabloně můžete data zobrazit a analyzovat.
Další kroky
Detekujte posun dat u shromážděných dat.