Megosztás a következőn keresztül:


Oktatóanyag: modellfejlesztés felhőalapú munkaállomáson

Ez a cikk bemutatja, hogyan fejleszthet betanítási szkriptet egy jegyzetfüzet használatával egy Azure Machine Learning-felhőbeli munkaállomáson. Az oktatóanyag az első lépésekhez szükséges alapvető lépéseket ismerteti:

  • Állítsa be és konfigurálja a felhőbeli munkaállomást. A felhőalapú munkaállomást egy Azure Machine Learning számítási példány működteti, amely előre konfigurálva van környezetekkel a modellfejlesztési igények támogatására.
  • Felhőalapú fejlesztési környezetek használata.
  • Az MLflow használatával nyomon követheti a modellmetrikáit.

Előfeltételek

Az Azure Machine Learning használatához munkaterületre van szüksége. Ha nem rendelkezik ilyen erőforrással, végezze el a munkaterület létrehozásához szükséges erőforrások létrehozását, és tudjon meg többet a használatáról.

Fontos

Ha az Azure Machine Learning-munkaterület felügyelt virtuális hálózattal van konfigurálva, előfordulhat, hogy kimenő szabályokat kell hozzáadnia a nyilvános Python-csomagtárakhoz való hozzáférés engedélyezéséhez. További információ: Forgatókönyv: Nyilvános gépi tanulási csomagok elérése.

Számítás létrehozása vagy indítása

Számítási erőforrásokat a munkaterület Számítási szakaszában hozhat létre. A számítási példány egy felhőalapú munkaállomás, amelyet teljes mértékben az Azure Machine Learning felügyel. Ez az oktatóanyag-sorozat számítási példányt használ. Használhatja saját kód futtatására, modellek fejlesztésére és tesztelésére is.

  1. Jelentkezzen be az Azure Machine Learning Studióba.
  2. Válassza ki a munkaterületét, ha az még nincs megnyitva.
  3. A bal oldali panelen válassza a Számítás lehetőséget.
  4. Ha nincs számítási példány, a lap közepén látható az Új. Válassza az Új lehetőséget, és töltse ki az űrlapot. Az összes alapértelmezett beállítást használhatja.
  5. Ha rendelkezik számítási példánysal, válassza ki a listából. Ha le van állítva, válassza a Start lehetőséget.

A Visual Studio Code (VS Code) megnyitása

Miután rendelkezik egy futó számítási példánysal, különböző módokon érheti el. Ez az oktatóanyag bemutatja, hogyan használhatja a számítási példányt a Visual Studio Code-ból. A Visual Studio Code teljes körű integrált fejlesztési környezetet (IDE) biztosít a számítási példányok létrehozásához.

A számítási példányok listájában válassza ki a használni kívánt számítási példány VS Code (web) vagy VS Code (Asztali) hivatkozását. Ha a VS Code (Desktop) lehetőséget választja, egy üzenet jelenhet meg, amely megkérdezi, hogy meg szeretné-e nyitni az alkalmazást.

Képernyőkép a Visual Studio Code (Web vagy Desktop) indítására szolgáló hivatkozásokról.

Ez a Visual Studio Code-példány a számítási példányhoz és a munkaterület fájlrendszeréhez van csatolva. Még akkor is, ha az asztalon nyitja meg, a megjelenő fájlok a munkaterület fájljai.

Új környezet beállítása prototípus-készítéshez

A szkript futtatásához olyan környezetben kell dolgoznia, amely a kód által várt függőségekkel és kódtárakkal van konfigurálva. Ez a szakasz segít létrehozni egy, a kódhoz szabott környezetet. Az új Jupyter-kernel létrehozásához, amelyhez a jegyzetfüzet csatlakozik, egy YAML-fájlt használ, amely meghatározza a függőségeket.

  • Töltsön fel egy fájlt.

    A feltöltött fájlok egy Azure-fájlmegosztásban vannak tárolva, és ezek a fájlok az egyes számítási példányokra vannak csatlakoztatva, és meg vannak osztva a munkaterületen.

    1. Nyissa meg az azureml-examples/tutorials/get-started-notebooks/workstation_env.yml.

    2. Töltse le a Conda környezeti fájlt workstation_env.yml a számítógépre a lap jobb felső sarkában található három pont gombra (...), majd válassza a Letöltés lehetőséget.

    3. Húzza a fájlt a számítógépről a Visual Studio Code ablakba. A rendszer feltölti a fájlt a munkaterületre.

    4. Helyezze át a fájlt a felhasználónév mappájába.

      Képernyőkép a felhasználónév mappában lévő workstation_env.yml fájlról.

    5. Válassza ki a fájlt az előnézet megtekintéséhez. Tekintse át a megadott függőségeket. Ehhez hasonlót kell látnia:

    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
    
  • Hozzon létre egy kernelt.

    Most a terminál használatával hozzon létre egy új Jupyter-kernelt, amely a workstation_env.yml fájlon alapul.

    1. A Visual Studio Code tetején lévő menüben válassza az Új terminál terminál lehetőséget>.

    Képernyőkép a termináleszköz megnyitásáról a jegyzetfüzet eszköztárában.

    1. Tekintse meg az aktuális Conda-környezeteket. Az aktív környezet csillaggal (*) van megjelölve.

      conda env list
      
    2. Navigáljon a cd könyvtárba, ahová feltöltötte a workstation_env.yml fájlt. Ha például feltöltötte a felhasználói mappába, használja ezt a parancsot:

      cd Users/myusername
      
    3. Győződjön meg arról, hogy workstation_env.yml a mappában van.

      ls
      
    4. Hozza létre a környezetet a megadott Conda-fájl alapján. A környezet létrehozása néhány percet vesz igénybe.

      conda env create -f workstation_env.yml
      
    5. Aktiválja az új környezetet.

      conda activate workstation_env
      

      Feljegyzés

      Ha megjelenik a CommandNotFoundError, kövesse a futtatáshoz conda init bashszükséges utasításokat, zárja be a terminált, majd nyisson meg egy újat. Ezután próbálkozzon újra a conda activate workstation_env paranccsal.

    6. Ellenőrizze, hogy a megfelelő környezet aktív-e, és keresse meg ismét a *-gal megjelölt környezetet.

      conda env list
      
    7. Hozzon létre egy új Jupyter-kernelt, amely az aktív környezeten alapul.

      python -m ipykernel install --user --name workstation_env --display-name "Tutorial Workstation Env" 
      
    8. Zárja be a terminálablakot.

Most már van egy új kernele. Ezután megnyit egy jegyzetfüzetet, és ezt a kernelt fogja használni.

Jegyzetfüzet létrehozása

  1. A Visual Studio Code tetején lévő menüben válassza az Új fájl fájlja > lehetőséget.
  2. Nevezze el az új fájlt develop-tutorial.ipynb (vagy használjon másik nevet). Mindenképpen használja az .ipynb bővítményt.

A kernel beállítása

  1. Az új fájl jobb felső sarkában válassza a Kernel kiválasztása lehetőséget.
  2. Válassza ki az Azure ML számítási példányt (computeinstance-name).
  3. Válassza ki a létrehozott kernelt: Tutorial Workstation Env. Ha nem látja a kernelt, válassza a lista feletti frissítés gombot.

Betanítási szkript fejlesztése

Ebben a szakaszban egy Python-betanítási szkriptet fejleszt, amely az UCI-adatkészletből származó előkészített teszt- és betanítási adatkészletek használatával előrejelzi a hitelkártya alapértelmezett kifizetéseit.

Ez a kód sklearn-ot használ tanításra, és az MLflow-t a metrikák naplózására.

  1. Kezdje a betanítási szkriptben használni kívánt csomagokat és kódtárakat importáló kóddal.

    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. Ezután töltse be és dolgozza fel a kísérlet adatait. Ebben az oktatóanyagban egy internetes fájlból olvassa be az adatokat.

    # 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. Készítse elő az adatokat a betanításhoz.

    # 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. Adjon hozzá kódot az MLflow automatikus naplózásához, hogy követni tudja a metrikákat és az eredményeket. A modellfejlesztés iteratív jellegével az MLflow segít naplózni a modell paramétereit és eredményeit. A modell teljesítményének összehasonlításához és megértéséhez tekintse meg a különböző futtatásokat. A naplók kontextust is biztosítanak, amikor készen áll arra, hogy a fejlesztési fázisról a munkafolyamatok betanítási fázisára lépjen az Azure Machine Learningben.

    # set name for logging
    mlflow.set_experiment("Develop on cloud tutorial")
    # enable autologging with MLflow
    mlflow.sklearn.autolog()
  5. Modell betanítása.

    # 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()

    Feljegyzés

    Figyelmen kívül hagyhatja az MLflow-figyelmeztetéseket. A szükséges eredmények továbbra is nyomon lesznek követve.

  6. Válassza az Összes futtatása parancsot a kód felett.

Továbbhaladás

Most, hogy már rendelkezik modelleredményekkel, változtasson valamit, és futtassa újra a modellt. Próbálkozzon például egy másik besorolási technikával:

# 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()

Feljegyzés

Figyelmen kívül hagyhatja az MLflow-figyelmeztetéseket. A szükséges eredmények továbbra is nyomon lesznek követve.

A modell futtatásához válassza az Összes futtatása lehetőséget.

Az eredmények vizsgálata

Most, hogy két különböző modellt kipróbált, az MLFfow által nyomon követett eredményeket használva döntse el, melyik modell a jobb. Olyan metrikákra hivatkozhat, mint a pontosság vagy más, a forgatókönyvek szempontjából leginkább fontos mutatók. Ezeket az eredményeket részletesebben is áttekintheti az MLflow által létrehozott feladatok megtekintésével.

  1. Térjen vissza a munkaterületre az Azure Machine Learning Studióban.

  2. A bal oldali panelen válassza a Feladatok lehetőséget.

    Képernyőkép a bal oldali ablaktáblán lévő Feladatok elemről.

  3. Válassza a Fejlesztés felhőalapú oktatóanyagot.

  4. Két feladat jelenik meg, egy-egy a kipróbált modellekhez. A nevek automatikusan létre lettek hozva. Ha át szeretné nevezni a feladatot, vigye az egérmutatót a név fölé, és válassza a mellette lévő ceruza gombot.

  5. Válassza ki az első feladat hivatkozását. A név a lap tetején jelenik meg. A ceruzagombbal itt is átnevezheti.

  6. A lapon a feladatok részletei láthatók, például tulajdonságok, kimenetek, címkék és paraméterek. A Címkék területen megjelenik a modell típusát leíró estimator_name.

  7. Válassza a Metrikák lapot az MLflow által naplózott metrikák megtekintéséhez. (Az eredmények eltérőek lesznek, mert más betanítási készlettel rendelkezik.)

    Képernyőkép egy feladat metrikáiról.

  8. Az MLflow által létrehozott képek megtekintéséhez válassza a Képek lapot.

    Képernyőkép egy feladat képeiről.

  9. Térjen vissza, és tekintse át a másik modell metrikáit és rendszerképeit.

Python-szkript létrehozása

Most létrehoz egy Python-szkriptet a jegyzetfüzetből a modell betanításához.

  1. A Visual Studio Code-ban kattintson a jobb gombbal a jegyzetfüzetfájl nevére, és válassza a Jegyzetfüzet importálása szkriptbe lehetőséget.

  2. Válassza a Fájl > mentése lehetőséget az új szkriptfájl mentéséhez. Hívja train.py.

  3. Tekintse át a fájlt, és törölje a betanítási szkriptben nem kívánt kódot. Megtarthatja például a használni kívánt modell kódját, és törölheti a nem használni kívánt modell kódját.

    • Győződjön meg arról, hogy megtartja az automatikus naplózás kódját (mlflow.sklearn.autolog()).
    • Amikor interaktívan futtatja a Python-szkriptet (ahogy itt is teszi), megtarthatja a kísérlet nevét (mlflow.set_experiment("Develop on cloud tutorial")) meghatározó sort. Más nevet is adhat neki, ha a Feladatok szakaszban más bejegyzésként tekint rá. Amikor azonban előkészíti a szkriptet egy betanítási feladathoz, ez a sor nem érvényes, ezért el kell hagyni: a feladatdefiníció tartalmazza a kísérlet nevét.
    • Egyetlen modell betanításakor a futtatás megkezdésének és befejezésének sorai (mlflow.start_run() és mlflow.end_run()) nem szükségesek (nincs hatásuk), de benne hagyhatja őket.
  4. Ha végzett a szerkesztésekkel, mentse a fájlt.

Most már rendelkezik egy Python-szkripttel az előnyben részesített modell betanításához.

A Python-szkript futtatása

Egyelőre ezt a kódot a számítási példányon futtatja, amely az Azure Machine Learning fejlesztési környezete. Oktatóanyag: A modell betanítása bemutatja, hogyan futtathat egy betanítási szkriptet skálázhatóbb módon a nagyobb teljesítményű számítási erőforrásokon.

  1. Válassza ki az oktatóanyag korábbi részében létrehozott környezetet Python-verzióként (workstations_env). A jegyzetfüzet jobb alsó sarkában megjelenik a környezet neve. Jelölje ki, majd válassza ki a környezetet a Visual Studio Code tetején.

    Képernyőkép az új környezet kiválasztásáról.

  2. Futtassa a Python-szkriptet a kód fölött található Minden futtatása gombra kattintva.

    Képernyőkép a Futtatás gombról.

Feljegyzés

Figyelmen kívül hagyhatja az MLflow-figyelmeztetéseket. Továbbra is lekérheti az összes metrikát és képet az automatikus kitöltésből.

A szkript eredményeinek vizsgálata

Térjen vissza a munkaterületen lévő Feladatokhoz az Azure Machine Learning Studióban, és tekintse meg a betanítási szkript eredményeit. Ne feledje, hogy a betanítási adatok az egyes felosztásokkal változnak, így az eredmények különbözőek a végrehajtások között.

Az erőforrások eltávolítása

Ha további oktatóanyagokat szeretne folytatni, ugorjon a Következő lépésekre.

A számítási példány leállítása

Ha most nem fogja használni, állítsa le a számítási példányt:

  1. A stúdió bal oldali paneljén válassza a Számítás lehetőséget.
  2. A lap tetején válassza a Számítási példányok lehetőséget.
  3. A listában válassza ki a számítógépes példányt.
  4. A lap tetején válassza a Leállítás lehetőséget.

Az összes erőforrás törlése

Fontos

A létrehozott erőforrások előfeltételként használhatók más Azure Machine Learning-oktatóanyagokhoz és útmutatókhoz.

Ha nem tervezi használni a létrehozott erőforrások egyikét sem, törölje őket, hogy ne járjon költséggel:

  1. Az Azure Portal keresőmezőjében adja meg az erőforráscsoportokat , és válassza ki az eredmények közül.

  2. A listából válassza ki a létrehozott erőforráscsoportot.

  3. Az Áttekintés lapon válassza az Erőforráscsoport törlése lehetőséget.

    Képernyőkép egy erőforráscsoport azure portalon való törlésére vonatkozó kijelölésekről.

  4. Adja meg az erőforráscsoport nevét. Ezután válassza a Törlés elemet.

Következő lépések

További információkért tekintse meg az alábbi forrásanyagokat:

Ez az oktatóanyag bemutatja a modell létrehozásának korai lépéseit, és a prototípuskészítést ugyanazon a gépen, ahol a kód található. Az éles betanításhoz ismerje meg, hogyan használhatja ezt a betanítási szkriptet nagyobb teljesítményű távoli számítási erőforrásokon: