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


AZ MLOps beállítása az Azure DevOpsszal

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Az Azure Machine Learning lehetővé teszi, hogy integrálható legyen az Azure DevOps-folyamattal a gépi tanulási életciklus automatizálásához. Az automatizálható műveletek némelyike a következő:

  • Az Azure Machine Learning-infrastruktúra üzembe helyezése
  • Adat-előkészítés (kinyerési, átalakítási, betöltési műveletek)
  • Gépi tanulási modellek betanítása igény szerinti felskálázással és vertikális felskálázással
  • Gépi tanulási modellek üzembe helyezése nyilvános vagy privát webszolgáltatásként
  • Üzembe helyezett gépi tanulási modellek monitorozása (például teljesítményelemzéshez)

Ebben a cikkben megismerkedhet az Azure Machine Learning használatával egy teljes körű MLOps-folyamat beállításával, amely lineáris regressziót futtat a taxidíjak előrejelzéséhez az NYC-ben. A folyamat összetevőkből áll, amelyek mindegyike különböző függvényeket szolgál ki, amelyek regisztrálhatók a munkaterületen, verziószámozottak és újra felhasználhatók különböző bemenetekkel és kimenetekkel. Az MLOps és az AzureMLOps (v2) megoldásgyorsítóhoz ajánlott Azure-architektúrát fogja használni egy MLOps-projekt gyors beállításához az Azure Machine Learningben.

Tipp.

Javasoljuk, hogy a megoldások implementálása előtt ismerje meg az MLOpshoz ajánlott Azure-architektúrák némelyikét. Az adott Gépi tanulási projekthez a legjobb architektúrát kell kiválasztania.

Előfeltételek

Feljegyzés

A Git 2.27-es vagy újabb verziójára van szükség. A Git-parancs telepítésével kapcsolatos további információkért tekintse meg https://git-scm.com/downloads és válassza ki az operációs rendszert

Fontos

A cikkben szereplő CLI-parancsokat Bash használatával teszteltük. Ha másik rendszerhéjat használ, hibák léphetnek fel.

Hitelesítés beállítása az Azure-ral és a DevOpsszal

Mielőtt beállíthat egy MLOps-projektet az Azure Machine Learning használatával, be kell állítania az Azure DevOps hitelesítését.

Szolgáltatásnév létrehozása

A bemutató használatához szükség van egy vagy két szolgáltatási alapelv létrehozására attól függően, hogy hány környezeten szeretne dolgozni (Dev, Prod vagy Both). Ezek az alapelvek az alábbi módszerek egyikével hozhatók létre:

  1. Indítsa el az Azure Cloud Shellt.

    Tipp.

    A Cloud Shell első indításakor a rendszer kérni fogja, hogy hozzon létre egy tárfiókot a Cloud Shellhez.

  2. Ha a rendszer kéri, válassza a Basht a Cloud Shellben használt környezetként. A környezeteket a felső navigációs sáv legördülő menüjében is módosíthatja

    Képernyőkép a Cloud Shell-környezet legördülő listájáról.

  3. Másolja a következő bash-parancsokat a számítógépre, és frissítse a projectName, subscriptionId és környezeti változókat a projekt értékeivel. Ha Dev és Prod környezetet is hoz létre, ezt a szkriptet minden környezethez egyszer kell futtatnia, és mindegyikhez létre kell hoznia egy szolgáltatásnevet. Ez a parancs a közreműködői szerepkört is megadja a szolgáltatásnévnek a megadott előfizetésben. Ez szükséges ahhoz, hogy az Azure DevOps megfelelően használja az adott előfizetés erőforrásait.

    projectName="<your project name>"
    roleName="Contributor"
    subscriptionId="<subscription Id>"
    environment="<Dev|Prod>" #First letter should be capitalized
    servicePrincipalName="Azure-ARM-${environment}-${projectName}"
    # Verify the ID of the active subscription
    echo "Using subscription ID $subscriptionID"
    echo "Creating SP for RBAC with name $servicePrincipalName, with role $roleName and in scopes     /subscriptions/$subscriptionId"
    az ad sp create-for-rbac --name $servicePrincipalName --role $roleName --scopes /subscriptions/$subscriptionId
    echo "Please ensure that the information created here is properly save for future use."
    
  4. Másolja a szerkesztett parancsokat az Azure Shellbe, és futtassa őket (Ctrl + Shift + v).

  5. A parancsok futtatása után a szolgáltatásnévvel kapcsolatos információk jelennek meg. Mentse ezeket az adatokat biztonságos helyre, és a bemutató későbbi részében az Azure DevOps konfigurálásához fogjuk használni.

    {
       "appId": "<application id>",
       "displayName": "Azure-ARM-dev-Sample_Project_Name",
       "password": "<password>",
       "tenant": "<tenant id>"
    }
    
  6. Ismételje meg a 3 . lépést, ha szolgáltatásneveket hoz létre Dev és Prod környezetekhez. Ebben a bemutatóban csak egy környezetet hozunk létre, amely a Prod.

  7. A szolgáltatásnevek létrehozása után zárja be a Cloud Shellt.

Az Azure DevOps beállítása

  1. Lépjen az Azure DevOpsra.

  2. Válassza az új projekt létrehozása (Az oktatóanyag projektjének mlopsv2 elnevezése) lehetőséget.

    Képernyőkép az ADO-projektről.

  3. A projekt Projektbeállítások területén (a projektoldal bal alsó sarkában) válassza a Szolgáltatáskapcsolatok lehetőséget.

  4. Válassza a Szolgáltatáskapcsolat létrehozása lehetőséget.

    Képernyőkép az ADO Új szolgáltatás kapcsolat gombjáról.

  5. Válassza az Azure Resource Managert, válassza a Tovább, a Szolgáltatásnév (manuális) lehetőséget, a Tovább lehetőséget, majd a hatókörszintű előfizetést.

    • Előfizetés neve – Használja annak az előfizetésnek a nevét, amelyben a szolgáltatásnév található.
    • Előfizetés azonosítója – Az 1. lépésben használt bemenet használata subscriptionId előfizetés-azonosítóként
    • Szolgáltatásnév azonosítója – Az 1. lépés kimenetének használata appId szolgáltatásnév-azonosítóként
    • Szolgáltatásnévkulcs – Az 1. lépés kimenetének használata password egyszerű szolgáltatáskulcsként
    • Bérlőazonosító – Az 1. lépés kimenetének használata tenant bérlőazonosítóként
  6. Adja a szolgáltatáskapcsolatnak az Azure-ARM-Prod nevet.

  7. Válassza a Hozzáférési engedély megadása az összes folyamathoz, majd az Ellenőrzés és a Mentés lehetőséget.

Az Azure DevOps telepítése sikeresen befejeződött.

Forrásadattár beállítása az Azure DevOpsszal

  1. Nyissa meg az Azure DevOpsban létrehozott projektet

  2. Nyissa meg az Adattár szakaszt, és válassza az Adattár importálása lehetőséget

    Képernyőkép az Azure DevOps importálási adattáráról első alkalommal.

  3. Adja meg https://github.com/Azure/mlops-v2-ado-demo a Klónozás URL-címet. Válassza az importálást a lap alján

    Képernyőkép az Azure DevOps MLOps demó-adattárának importálásáról.

  4. A Projekt beállításainak megnyitása a bal oldali navigációs ablak alján

  5. Az Adattárak szakaszban válassza az Adattárak lehetőséget. Válassza ki az előző lépésben létrehozott adattárat A Biztonság lap kiválasztása

  6. A Felhasználói engedélyek szakaszban válassza ki az mlopsv2 Build Service felhasználót. Módosítsa az Engedélyezés engedély hozzájárulási engedélyét, valamint a Fiók létrehozása engedélyt engedélyezésre. Képernyőkép az Azure DevOps-engedélyekről.

  7. Nyissa meg a Folyamatok szakaszt a bal oldali navigációs panelen, és válassza ki a Folyamat létrehozása gomb melletti 3 függőleges pontot. Válassza a Biztonság kezelése lehetőséget

    Képernyőkép a folyamat biztonságáról.

  8. Válassza ki a projekt mlopsv2 Build Service-fiókját a Felhasználók szakaszban. A szerkesztési folyamat engedélyének módosítása Engedélyezésre

    Képernyőkép a Biztonság hozzáadása parancsról.

Feljegyzés

Ezzel befejeződött az előfeltétel szakasz, és a megoldásgyorsító üzembe helyezése ennek megfelelően történhet.

Infrastruktúra üzembe helyezése az Azure DevOpson keresztül

Ez a lépés üzembe helyezi a betanítási folyamatot az előző lépésekben létrehozott Azure Machine Learning-munkaterületen.

Tipp.

Az MLOps v2 adattár kivétele és az infrastruktúra üzembe helyezése előtt győződjön meg arról, hogy ismeri a megoldásgyorsító architektúramintáit. Példákban a klasszikus ML-projekttípust fogja használni.

Azure-infrastruktúra-folyamat futtatása

  1. Nyissa meg az adattárat, mlops-v2-ado-demoés válassza ki a config-infra-prod.yml fájlt.

    Fontos

    Győződjön meg arról, hogy az adattár fő ágát választotta ki.

    Képernyőkép az adattárról az ADO-ban.

    Ez a konfigurációs fájl a névteret és a postfixet használja, és az összetevők nevét adja meg az egyediség biztosítása érdekében. Frissítse a konfiguráció alábbi szakaszát tetszés szerint.

     namespace: [5 max random new letters]
     postfix: [4 max random new digits]
     location: eastus
    

    Feljegyzés

    Ha olyan Mélytanulási számítási feladatot futtat, mint a CV vagy az NLP, győződjön meg arról, hogy a GPU-számítás elérhető az üzembe helyezési zónában.

  2. Válassza a Véglegesítés lehetőséget, és küldje le a kódot az értékek folyamatba való beolvasásához.

  3. Ugrás a Folyamatok szakaszra

    Képernyőkép az ADO-folyamatokról.

  4. Válassza a Folyamat létrehozása lehetőséget.

  5. Válassza az Azure Repos Git lehetőséget.

    Képernyőkép az ADO Where's code-ról.

  6. Válassza ki az előző szakaszból klónozott adattárat mlops-v2-ado-demo

  7. Meglévő Azure Pipelines YAML-fájl kiválasztása

    Képernyőkép az Azure DevOps Pipeline konfigurálási lépéséről.

  8. Jelölje ki az main ágat, és válassza mlops/devops-pipelines/cli-ado-deploy-infra.ymla Folytatás lehetőséget.

  9. Futtassa a folyamatot; a befejezés néhány percet vesz igénybe. A folyamatnak a következő összetevőket kell létrehoznia:

    • A munkaterület erőforráscsoportja, beleértve a tárfiókot, a tárolóregisztrációs adatbázist, az Application Insightst, a Keyvaultot és magát az Azure Machine Learning-munkaterületet.
    • A munkaterületen létrejön egy számítási fürt is.
  10. Most üzembe helyezi az MLOps-projekt infrastruktúráját. Képernyőkép az ADO Infra Pipeline képernyőről.

    Feljegyzés

    A nem sikerült áthelyezni és újra felhasználni a meglévő adattárat a szükséges helymegjelenésekre , figyelmen kívül hagyható.

Minta betanítási és üzembe helyezési forgatókönyv

A megoldásgyorsító kódokat és adatokat tartalmaz egy végpontok közötti mintagép-tanulási folyamathoz, amely lineáris regressziót futtat a nyc-beli taxidíjak előrejelzéséhez. A folyamat összetevőkből áll, amelyek mindegyike különböző függvényeket szolgál ki, amelyek regisztrálhatók a munkaterületen, verziószámozottak és újra felhasználhatók különböző bemenetekkel és kimenetekkel. A Computer Vision- és NLP-forgatókönyvek mintafolyamatai és munkafolyamatai különböző lépésekkel és üzembe helyezési lépésekkel rendelkeznek.

Ez a betanítási folyamat a következő lépéseket tartalmazza:

Adatok előkészítése

  • Ez az összetevő több taxiadatkészletet (sárga és zöld) vesz igénybe, és egyesíti/szűri az adatokat, és előkészíti a vonat/val és a kiértékelési adatkészleteket.
  • Bemenet: Helyi adatok a ./data/ területen (több .csv fájl)
  • Kimenet: Önállóan előkészített adatkészlet (.csv) és betanított/val/test adathalmazok.

Modell betanítása

  • Ez az összetevő egy lineáris regresszort képez be a betanítási készlettel.
  • Bemenet: Betanítási adatkészlet
  • Kimenet: Betanított modell (pickle formátum)

Modell kiértékelése

  • Ez az összetevő a betanított modellt használja a tesztkészlet taxidíjainak előrejelzésére.
  • Bemenet: ML-modell és tesztadatkészlet
  • Kimenet: A modell teljesítménye és egy üzembe helyezési jelző, függetlenül attól, hogy üzembe kívánja-e helyezni vagy sem.
  • Ez az összetevő összehasonlítja a modell teljesítményét az új tesztadatkészlet összes korábbi üzembe helyezett modelljével, és eldönti, hogy előlépteti-e a modellt éles környezetben. A modell éles környezetben való előléptetéséhez regisztrálja a modellt az AML-munkaterületen.

Modell regisztrálása

  • Ez az összetevő pontozza a modellt annak alapján, hogy az előrejelzések mennyire pontosak a tesztkészletben.
  • Bemenet: Betanított modell és üzembe helyezési jelző.
  • Kimenet: Regisztrált modell az Azure Machine Learningben.

Modellbetanítási folyamat üzembe helyezése

  1. Ugrás az ADO-folyamatokra

    Képernyőkép az ADO-folyamatokról.

  2. Válassza a New pipeline (Új folyamat) lehetőséget.

    Képernyőkép az ADO Új folyamat gombjáról.

  3. Válassza az Azure Repos Git lehetőséget.

    Képernyőkép az ADO Where's code-ról.

  4. Válassza ki az előző szakaszból klónozott adattárat mlopsv2

  5. Meglévő Azure Pipelines YAML-fájl kiválasztása

    Képernyőkép az ADO-folyamat konfigurálási lépésről szóló oldaláról.

  6. Válassza ki main ágként, majd válassza /mlops/devops-pipelines/deploy-model-training-pipeline.ymla Folytatás lehetőséget.

  7. A folyamat mentése és futtatása

Feljegyzés

Ezen a ponton az infrastruktúra konfigurálva van, és üzembe van helyezve az MLOps-architektúra prototípus-ciklusa. készen áll a betanított modell éles környezetbe való áthelyezésére.

A betanított modell üzembe helyezése

Ez a forgatókönyv előre összeállított munkafolyamatokat tartalmaz a betanított modellek üzembe helyezésének két módszeréhez, a kötegelt pontozáshoz vagy egy modell üzembe helyezéséhez egy végponton valós idejű pontozás céljából. Futtathat vagy mindkét munkafolyamatot a modell teljesítményének teszteléséhez az Azure ML-munkaterületen. Ebben a példában valós idejű pontozást fogunk használni.

Ml-modell végpontja üzembe helyezése

  1. Ugrás az ADO-folyamatokra

    Képernyőkép az ADO-folyamatokról.

  2. Válassza a New pipeline (Új folyamat) lehetőséget.

    Képernyőkép a végpont ADO Új folyamat gombjáról.

  3. Válassza az Azure Repos Git lehetőséget.

    Képernyőkép az ADO Where's code-ról.

  4. Válassza ki az előző szakaszból klónozott adattárat mlopsv2

  5. Meglévő Azure Pipelines YAML-fájl kiválasztása

    Képernyőkép az Azure DevOps Pipeline konfigurálási lépéséről.

  6. Válassza ki main ágként, majd válassza a Felügyelt online végpont lehetőséget/mlops/devops-pipelines/deploy-online-endpoint-pipeline.yml, majd a Folytatás lehetőséget.

  7. Az online végpontneveknek egyedinek kell lenniük, ezért váltson taxi-online-$(namespace)$(postfix)$(environment) másik egyedi névre, majd válassza a Futtatás lehetőséget. Ha nem sikerül, nem kell módosítania az alapértelmezett beállítást.

    Képernyőkép az Azure DevOps batch üzembe helyezési szkriptéről.

    Fontos

    Ha a futtatás egy meglévő online végpontnév miatt meghiúsul, hozza létre újra a folyamatot a korábban leírtak szerint, és módosítsa [a végpont neve] értéket [a végpont neve (véletlenszerű szám)] értékre .

  8. Amikor a futtatás befejeződik, a következő képhez hasonló kimenet jelenik meg:

    Képernyőkép az ADO-folyamat kötegelt futtatási eredményoldaláról.

  9. Az üzembe helyezés teszteléséhez lépjen az AzureML-munkaterület Végpontok lapjára, válassza ki a végpontot, és kattintson a Teszt fülre. A végpont teszteléséhez használhatja a klónozott adattárban /data/taxi-request.json található minta bemeneti adatokat.

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

  1. Ha nem használja tovább a folyamatot, törölje az Azure DevOps-projektet.
  2. Az Azure Portalon törölje az erőforráscsoportot és az Azure Machine Learning-példányt.

Következő lépések