Sdílet prostřednictvím


Kurz: Vývoj modelů na cloudové pracovní stanici

Tento článek popisuje, jak vyvíjet trénovací skript pomocí poznámkového bloku na cloudové pracovní stanici Azure Machine Learning. Tento kurz popisuje základní kroky, 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 potřeb vývoje modelů.
  • Používejte cloudová vývojová prostředí.
  • Pomocí MLflow můžete sledovat metriky modelu.

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í.

Důležité

Pokud je váš pracovní prostor Azure Machine Learning nakonfigurovaný se spravovanou virtuální sítí, možná budete muset přidat odchozí pravidla, která povolí přístup k veřejným úložištím balíčků Pythonu. Další informace najdete v tématu Scénář: Přístup k veřejným balíčkům strojového učení.

Vytvořit nebo spustit výpočetní jednotku

Výpočetní prostředky můžete vytvořit v části Výpočty ve vašem pracovním prostoru. Výpočetní instance je cloudová pracovní stanice, která je 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ů.

  1. Přihlaste se k studio Azure Machine Learning.
  2. Vyberte pracovní prostor, pokud ještě není otevřený.
  3. V levém podokně vyberte Výpočty.
  4. Pokud nemáte výpočetní instanci, uprostřed stránky se zobrazí Nová . Vyberte Nový a vyplňte formulář. Můžete použít všechny výchozí hodnoty.
  5. 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 popisuje, jak používat výpočetní instanci z editoru Visual Studio Code. Visual Studio Code poskytuje úplné integrované vývojové prostředí (IDE) pro vytváření výpočetních instancí.

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 zpráva s dotazem, jestli chcete aplikaci otevřít.

Snímek obrazovky znázorňující odkazy pro spuštění editoru Visual Studio Code (web nebo desktop).

Tato instance editoru Visual Studio Code je připojená k vaší výpočetní instanci a k souborovému systému vašeho 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ů

Abyste mohli skript spustit, musíte pracovat v prostředí, které je nakonfigurované se závislostmi a knihovnami, které kód očekává. Tato část vám pomůže vytvořit prostředí, které je přizpůsobené vašemu kódu. Pokud chcete vytvořit nové jádro Jupyter, ke kterému se váš poznámkový blok připojí, použijte 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.

    1. Přejděte na azureml-examples/tutorials/get-started-notebooks/workstation_env.yml.

    2. Stáhněte si soubor prostředí Conda workstation_env.yml do počítače tak, že v pravém horním rohu stránky vyberete tlačítko se třemi tečkou (...) a pak vyberete Stáhnout.

    3. Přetáhněte soubor z počítače do okna editoru Visual Studio Code. Soubor se nahraje do vašeho pracovního prostoru.

    4. Přesuňte soubor do složky uživatelského jména.

      Snímek obrazovky znázorňující soubor workstation_env.yml ve složce uživatelského jména

    5. Výběrem souboru ho zobrazíte jako náhled. Zkontrolujte závislosti, které určuje. Měli byste vidět přibližně toto:

    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 .

    1. V nabídce v horní části editoru Visual Studio Code vyberte Terminál > nový terminál.

    Snímek obrazovky s otevřeným nástrojem terminálu na panelu nástrojů poznámkového bloku

    1. Zobrazte si aktuální prostředí Conda. Aktivní prostředí je označené hvězdičkou (*).

      conda env list
      
    2. Slouží cd k přechodu do složky, kam jste nahráli soubor workstation_env.yml . Pokud jste ho například nahráli do složky uživatele, použijte tento příkaz:

      cd Users/myusername
      
    3. Ujistěte se, že je ve složce workstation_env.yml.

      ls
      
    4. Vytvořte prostředí na základě zadaného souboru Conda. Sestavení prostředí trvá několik minut.

      conda env create -f workstation_env.yml
      
    5. Aktivujte nové prostředí.

      conda activate workstation_env
      

      Poznámka:

      Pokud se zobrazí CommandNotFoundError, postupujte podle pokynů ke spuštění conda init bash, zavřete terminál a otevřete nový. Zkuste znovu příkaz conda activate workstation_env.

    6. Ověřte, že je správné prostředí aktivní, a znovu vyhledejte prostředí označené znakem *.

      conda env list
      
    7. 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" 
      
    8. 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

  1. V nabídce v horní části editoru Visual Studio Code vyberte Soubor > nový soubor.
  2. Pojmenujte nový soubor develop-tutorial.ipynb (nebo použijte jiný název). Nezapomeňte použít příponu .ipynb .

Nastavení jádra

  1. V pravém horním rohu nového souboru vyberte Vybrat jádro.
  2. Vyberte výpočetní instanci Azure ML (computeinstance-name).
  3. Vyberte jádro, které jste vytvořili: Tutorial Workstation Env. Pokud se jádro nezobrazuje, vyberte tlačítko aktualizovat nad seznamem.

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 používá sklearn pro trénování a MLflow pro protokolování metrik.

  1. 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
  2. Dále načtěte a zpracujte data experimentu. 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,
    )
  3. Připravte data pro školení.

    # 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
  4. Přidejte kód pro zahájení automatickéhologování pomocí MLflow, abyste mohli sledovat metriky a výsledky. S iterativní povahou vývoje modelů pomáhá MLflow protokolovat parametry a výsledky modelu. Projděte si různá spuštění 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()
  5. 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. Výsledky, které potřebujete, budou stále sledovány.

  6. Vyberte Spustit vše nad kódem.

Iterovat

Teď, když máte výsledky modelu, změňte něco a spusťte model znovu. Zkuste například použít jinou techniku klasifikace:

# 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. Výsledky, které potřebujete, budou stále sledovány.

Výběrem možnosti Spustit vše model spusťte.

Prozkoumání výsledků

Teď, když jste vyzkoušeli dva různé modely, použijte výsledky sledované nástrojem 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ší. Tyto výsledky si můžete prohlédnout podrobněji tak, že se podíváte na úlohy vytvořené MLflow.

  1. Vraťte se do pracovního prostoru v studio Azure Machine Learning.

  2. V levém podokně vyberte Úlohy.

    Snímek obrazovky znázorňující položku Úlohy v levém podokně

  3. Vyberte Kurz Vývoj v cloudu.

  4. Zobrazí se dvě úlohy, jedna pro každý z modelů, které jste vyzkoušeli. Názvy se automaticky vygenerují. Pokud chcete úlohu přejmenovat, najeďte myší na název a vyberte tlačítko tužky vedle ní.

  5. Vyberte odkaz pro první úlohu. Název se zobrazí v horní části stránky. Můžete ho tady přejmenovat také pomocí tlačítka tužky.

  6. Na stránce se zobrazují podrobnosti úlohy, jako jsou vlastnosti, výstupy, značky a parametry. V části Značky se zobrazí estimator_name, který popisuje typ modelu.

  7. Výběrem karty Metriky zobrazíte metriky , které protokoloval MLflow. (Vaše výsledky se budou lišit, protože máte jinou trénovací sadu.)

    Snímek obrazovky znázorňující metriky pro úlohu

  8. Výběrem karty Obrázky zobrazíte obrázky vygenerované MLflow.

    Snímek obrazovky znázorňující obrázky pro úlohu

  9. 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.

  1. V editoru Visual Studio Code klikněte pravým tlačítkem na název souboru poznámkového bloku a vyberte Importovat poznámkový blok do skriptu.

  2. Vyberte Soubor > Uložit pro uložení nového souboru skriptu. Zavolejte train.py.

  3. Prohlédněte si soubor a odstraňte kód, který v trénovacím skriptu nechcete. Například ponechte kód pro model, který chcete použít, a odstraňte kód pro model, který nechcete použít.

    • Nezapomeňte zachovat 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 můžete pojmenovat 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 být vynechán: Definice úlohy obsahuje název experimentu.
    • Při trénování jednoho modelu nejsou čáry pro spuštění a ukončení běhu (mlflow.start_run() a mlflow.end_run()) nezbytné (nemají žádný vliv), ale můžete je ponechat.
  4. 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 ukazuje, jak spustit trénovací skript škálovatelným způsobem pro výkonnější výpočetní prostředky.

  1. 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í v horní části editoru Visual Studio Code.

    Snímek obrazovky znázorňující výběr nového prostředí

  2. Spusťte skript Pythonu výběrem tlačítka Spustit vše nad kódem.

    Snímek obrazovky s tlačítkem Spustit

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éninková data mění s jednotlivými rozděleními, takže se výsledky mezi běhy liší.

Vyčištění prostředků

Pokud chcete pokračovat v dalších kurzech, přejděte na Další kroky.

Zastavení výpočetní instance

Pokud ji teď nebudete používat, zastavte výpočetní instanci:

  1. V levém podokně studia vyberte Výpočty.
  2. V horní části stránky vyberte Výpočetní instance.
  3. V seznamu vyberte výpočetní instanci.
  4. V horní části stránky 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:

  1. Na webu Azure Portal do vyhledávacího pole zadejte skupiny prostředků a vyberte je z výsledků.

  2. V seznamu vyberte skupinu prostředků, kterou jste vytvořili.

  3. Na stránce Přehled vyberte Odstranit skupinu prostředků.

    Snímek obrazovky s výběrem pro odstranění skupiny prostředků na webu Azure Portal

  4. Zadejte název skupiny prostředků. Poté vyberte Odstranit.

Další kroky

Další informace najdete v těchto zdrojích informací:

Tento kurz ukazuje 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: