Kurz: Vývoj modelů na cloudové pracovní stanici
Naučte se vyvíjet trénovací skript s poznámkovým blokem na cloudové pracovní stanici Azure Machine Learning. Tento kurz popisuje základy, které potřebujete, abyste mohli začít:
- Nastavte a nakonfigurujte cloudovou pracovní stanici. Vaše cloudová pracovní stanice využívá výpočetní instanci služby Azure Machine Learning, která je předem nakonfigurovaná s prostředími pro podporu různých potřeb vývoje modelů.
- Používejte cloudová vývojová prostředí.
- Pomocí MLflow můžete sledovat metriky modelu, a to vše v poznámkovém bloku.
Požadavky
Pokud chcete používat Azure Machine Learning, potřebujete pracovní prostor. Pokud ho nemáte, dokončete vytváření prostředků, které potřebujete, abyste mohli začít vytvářet pracovní prostor a získat další informace o jeho používání.
Začínáme s výpočetními prostředky
Oddíl Compute ve vašem pracovním prostoru umožňuje vytvářet výpočetní prostředky. Výpočetní instance je cloudová pracovní stanice plně spravovaná službou Azure Machine Learning. Tato série kurzů používá výpočetní instanci. Můžete ho také použít ke spuštění vlastního kódu a k vývoji a testování modelů.
- Přihlaste se k studio Azure Machine Learning.
- Vyberte pracovní prostor, pokud ještě není otevřený.
- V levém navigačním panelu vyberte Compute.
- Pokud nemáte výpočetní instanci, uprostřed obrazovky se zobrazí Nová . Vyberte Nový a vyplňte formulář. Můžete použít všechny výchozí hodnoty.
- Pokud máte výpočetní instanci, vyberte ji ze seznamu. Pokud je zastavený, vyberte Spustit.
Otevření editoru Visual Studio Code (VS Code)
Jakmile máte spuštěnou výpočetní instanci, můžete k ní přistupovat různými způsoby. Tento kurz ukazuje použití výpočetní instance z editoru VS Code. VS Code poskytuje úplné integrované vývojové prostředí (IDE) s výkonem prostředků Azure Machine Learning.
V seznamu výpočetních instancí vyberte odkaz VS Code (Web) nebo VS Code (Desktop) pro výpočetní instanci, kterou chcete použít. Pokud zvolíte VS Code (Desktop), může se zobrazit automaticky otevírané okno s dotazem, jestli chcete aplikaci otevřít.
Tato instance VS Code je připojená k vaší výpočetní instanci a systému souborů pracovního prostoru. I když ho otevřete na ploše, soubory, které vidíte, jsou soubory ve vašem pracovním prostoru.
Nastavení nového prostředí pro vytváření prototypů (volitelné)
Abyste mohli skript spustit, musíte pracovat v prostředí nakonfigurované se závislostmi a knihovnami, které kód očekává. Tato část vám pomůže vytvořit prostředí přizpůsobené vašemu kódu. K vytvoření nového jádra Jupyter, ke kterému se váš poznámkový blok připojuje, použijete soubor YAML, který definuje závislosti.
Nahrajte soubor.
Soubory, které nahrajete, se ukládají do sdílené složky Azure a tyto soubory se připojují ke každé výpočetní instanci a sdílí se v rámci pracovního prostoru.
Stáhněte si tento soubor prostředí conda, workstation_env.yml do počítače pomocí tlačítka Stáhnout nezpracovaný soubor v pravém horním rohu.
Přetáhněte soubor z počítače do okna VS Code. Soubor se nahraje do vašeho pracovního prostoru.
Přesuňte soubor do složky uživatelského jména.
Vyberte tento soubor, abyste ho zobrazili, a podívejte se, jaké závislosti určuje. Zobrazí se obsah podobný tomuto:
name: workstation_env # This file serves as an example - you can update packages or versions to fit your use case dependencies: - python=3.8 - pip=21.2.4 - scikit-learn=0.24.2 - scipy=1.7.1 - pandas>=1.1,<1.2 - pip: - mlflow-skinny - azureml-mlflow - psutil>=5.8,<5.9 - ipykernel~=6.0 - matplotlib
Vytvořte jádro.
Teď pomocí terminálu vytvořte nové jádro Jupyter založené na souboru workstation_env.yml .
V horním řádku nabídek vyberte Terminál > nový terminál.
Zobrazte si aktuální prostředí Conda. Aktivní prostředí je označené znakem *.
conda env list
cd
do složky, do které jste nahráli workstation_env.yml soubor. Pokud jste ho například nahráli do složky uživatele:cd Users/myusername
Ujistěte se, že je workstation_env.yml v této složce.
ls
Vytvořte prostředí na základě zadaného souboru conda. Sestavení tohoto prostředí trvá několik minut.
conda env create -f workstation_env.yml
Aktivujte nové prostředí.
conda activate workstation_env
Poznámka:
Pokud se zobrazí CommandNotFoundError, spusťte ho podle pokynů
conda init bash
, zavřete terminál a otevřete nový. Pak zkusteconda activate workstation_env
příkaz zopakovat.Ověřte, že je správné prostředí aktivní, a znovu vyhledejte prostředí označené znakem *.
conda env list
Vytvořte nové jádro Jupyter založené na aktivním prostředí.
python -m ipykernel install --user --name workstation_env --display-name "Tutorial Workstation Env"
Zavřete okno terminálu.
Teď máte nové jádro. Dále otevřete poznámkový blok a použijete toto jádro.
Vytvoření poznámkového bloku
- V horním řádku nabídek vyberte Soubor > nový soubor.
- Pojmenujte nový soubor develop-tutorial.ipynb (nebo zadejte preferovaný název). Ujistěte se, že používáte příponu .ipynb .
Nastavení jádra
- V pravém horním rohu vyberte Vybrat jádro.
- Vyberte výpočetní instanci Azure ML (computeinstance-name).
- Vyberte jádro, které jste vytvořili, Tutorial Workstation Env. Pokud ho nevidíte, vyberte nástroj Aktualizovat v pravém horním rohu.
Vývoj trénovacího skriptu
V této části vytvoříte trénovací skript Pythonu, který předpovídá výchozí platby platební kartou pomocí připravených testovacích a trénovacích datových sad z datové sady UCI.
Tento kód se používá sklearn
pro trénování a MLflow pro protokolování metrik.
Začněte kódem, který importuje balíčky a knihovny, které použijete v trénovacím skriptu.
import os import argparse import pandas as pd import mlflow import mlflow.sklearn from sklearn.ensemble import GradientBoostingClassifier from sklearn.metrics import classification_report from sklearn.model_selection import train_test_split
Dále načtěte a zpracujte data pro tento experiment. V tomto kurzu si přečtete data ze souboru na internetu.
# load the data credit_df = pd.read_csv( "https://azuremlexamples.blob.core.windows.net/datasets/credit_card/default_of_credit_card_clients.csv", header=1, index_col=0, ) train_df, test_df = train_test_split( credit_df, test_size=0.25, )
Příprava dat na trénování:
# Extracting the label column y_train = train_df.pop("default payment next month") # convert the dataframe values to array X_train = train_df.values # Extracting the label column y_test = test_df.pop("default payment next month") # convert the dataframe values to array X_test = test_df.values
Přidejte kód pro zahájení automatickéhologování pomocí
MLflow
, abyste mohli sledovat metriky a výsledky. S iterativní povahou vývojeMLflow
modelů vám pomůže protokolovat parametry a výsledky modelu. Vraťte se k těmto spuštěním a porovnejte a zjistěte, jak model funguje. Protokoly také poskytují kontext, kdy jste připraveni přejít z fáze vývoje do fáze trénování pracovních postupů v rámci služby Azure Machine Learning.# set name for logging mlflow.set_experiment("Develop on cloud tutorial") # enable autologging with MLflow mlflow.sklearn.autolog()
Trénování modelu
# Train Gradient Boosting Classifier print(f"Training with data of shape {X_train.shape}") mlflow.start_run() clf = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1) clf.fit(X_train, y_train) y_pred = clf.predict(X_test) print(classification_report(y_test, y_pred)) # Stop logging for this model mlflow.end_run()
Poznámka:
Upozornění mlflow můžete ignorovat. Pořád získáte všechny výsledky, které potřebujete sledovat.
Iterovat
Teď, když máte výsledky modelu, můžete něco změnit a zkusit to znovu. Zkuste například použít jinou techniku klasifikátoru:
# Train AdaBoost Classifier
from sklearn.ensemble import AdaBoostClassifier
print(f"Training with data of shape {X_train.shape}")
mlflow.start_run()
ada = AdaBoostClassifier()
ada.fit(X_train, y_train)
y_pred = ada.predict(X_test)
print(classification_report(y_test, y_pred))
# Stop logging for this model
mlflow.end_run()
Poznámka:
Upozornění mlflow můžete ignorovat. Pořád získáte všechny výsledky, které potřebujete sledovat.
Prozkoumání výsledků
Teď, když jste vyzkoušeli dva různé modely, využijte výsledky sledované MLFfow
a rozhodněte se, který model je lepší. Můžete odkazovat na metriky, jako je přesnost nebo jiné indikátory, které jsou pro vaše scénáře nejdůležitější. Na tyto výsledky se můžete podívat podrobněji, když se podíváte na úlohy vytvořené .MLflow
Vraťte se do pracovního prostoru v studio Azure Machine Learning.
V levém navigačním panelu vyberte Úlohy.
Vyberte odkaz pro kurz Vývoj v cloudu.
Zobrazí se dvě různé úlohy, jedna pro každý z modelů, které jste vyzkoušeli. Tyto názvy se automaticky vygenerují. Když najedete myší na název, použijte nástroj tužky vedle názvu, pokud ho chcete přejmenovat.
Vyberte odkaz pro první úlohu. Název se zobrazí v horní části. Můžete ho také přejmenovat pomocí nástroje tužky.
Na stránce se zobrazují podrobnosti úlohy, jako jsou vlastnosti, výstupy, značky a parametry. V části Značky uvidíte estimator_name, který popisuje typ modelu.
Výběrem karty Metriky zobrazíte metriky, které byly protokolovány
MLflow
. (Očekáváte, že se výsledky budou lišit, protože máte jinou trénovací sadu.)Výběrem karty Obrázky zobrazíte obrázky vygenerované nástrojem
MLflow
.Vraťte se zpět a prohlédněte si metriky a obrázky pro druhý model.
Vytvoření skriptu Pythonu
Teď vytvořte skript Pythonu z poznámkového bloku pro trénování modelu.
V okně VS Code klikněte pravým tlačítkem na název souboru poznámkového bloku a vyberte Importovat poznámkový blok do skriptu.
Pomocí nabídky Uložit soubor > uložte tento nový soubor skriptu. Zavolejte train.py.
Prohlédněte si tento soubor a odstraňte kód, který v trénovacím skriptu nechcete. Například ponechte kód modelu, který chcete použít, a odstraňte kód pro model, který nechcete.
- Ujistěte se, že máte kód, který spouští automatickélogování (
mlflow.sklearn.autolog()
). - Když skript Pythonu spustíte interaktivně (jak tady děláte), můžete ponechat řádek, který definuje název experimentu (
mlflow.set_experiment("Develop on cloud tutorial")
). Nebo ho pojmenujte jinak, abyste ho viděli jako jinou položku v části Úlohy . Když ale připravíte skript pro trénovací úlohu, tento řádek se nepoužije a měl by se vynechat – definice úlohy obsahuje název experimentu. - Při trénování jednoho modelu nejsou čáry pro zahájení a ukončení běhu
mlflow.start_run()
(amlflow.end_run()
) také nezbytné (nebudou mít žádný vliv), ale pokud chcete, můžete je nechat.
- Ujistěte se, že máte kód, který spouští automatickélogování (
Až budete s úpravami hotovi, soubor uložte.
Teď máte skript Pythonu, který můžete použít k trénování preferovaného modelu.
Spuštění skriptu Pythonu
Prozatím tento kód spouštíte ve výpočetní instanci, což je vývojové prostředí služby Azure Machine Learning. Kurz: Trénování modelu vám ukáže, jak spustit trénovací skript škálovatelným způsobem na výkonnějších výpočetních prostředcích.
Jako verzi Pythonu (workstations_env) vyberte prostředí, které jste vytvořili dříve v tomto kurzu. V pravém dolním rohu poznámkového bloku uvidíte název prostředí. Vyberte ho a pak vyberte prostředí uprostřed obrazovky.
Teď spusťte skript Pythonu. Použijte nástroj Spustit soubor Pythonu v pravém horním rohu.
Poznámka:
Upozornění mlflow můžete ignorovat. Stále budete dostávat všechny metriky a obrázky z automatickéhologování.
Prozkoumání výsledků skriptu
Vraťte se do úloh v pracovním prostoru v studio Azure Machine Learning a podívejte se na výsledky trénovacího skriptu. Mějte na paměti, že se trénovací data mění s jednotlivými rozděleními, takže se výsledky mezi spuštěními liší.
Vyčištění prostředků
Pokud chcete pokračovat v dalších kurzech, přejděte k dalším krokům.
Zastavení výpočetní instance
Pokud ji teď nebudete používat, zastavte výpočetní instanci:
- V sadě Studio v levé navigační oblasti vyberte Compute.
- Na horních kartách vyberte Výpočetní instance.
- V seznamu vyberte výpočetní instanci.
- Na horním panelu nástrojů vyberte Zastavit.
Odstranění všech prostředků
Důležité
Prostředky, které jste vytvořili, se dají použít jako předpoklady pro další kurzy a články s postupy pro Azure Machine Learning.
Pokud nemáte v úmyslu používat žádné prostředky, které jste vytvořili, odstraňte je, abyste za ně neúčtovaly žádné poplatky:
Na webu Azure Portal do vyhledávacího pole zadejte skupiny prostředků a vyberte je z výsledků.
V seznamu vyberte skupinu prostředků, kterou jste vytvořili.
Na stránce Přehled vyberte Odstranit skupinu prostředků.
Zadejte název skupiny prostředků. Poté vyberte Odstranit.
Další kroky
Přečtěte si další informace:
- Od artefaktů po modely v MLflow
- Použití Gitu se službou Azure Machine Learning
- Spouštění poznámkových bloků Jupyter ve vašem pracovním prostoru
- Práce s terminálem výpočetní instance v pracovním prostoru
- Správa poznámkových bloků a terminálových relací
V tomto kurzu jste si ukázali počáteční kroky vytvoření modelu, vytváření prototypů na stejném počítači, ve kterém se nachází kód. V případě produkčního trénování se naučíte používat tento trénovací skript pro výkonnější vzdálené výpočetní prostředky: