Frissítés v2-re

Az Azure Machine Tanulás v2 REST API-k, az Azure CLI-bővítmény és a Python SDK konzisztenciát és új funkciók készletét vezetik be az éles gépi tanulási életciklus felgyorsításához. Ez a cikk áttekintést nyújt a v2-re való frissítésről, és javaslatokkal segíti a v1, v2 vagy mindkettő kiválasztását.

Előfeltételek

  • Az Azure Machine Tanulás és a v1 Python SDK általános ismerete.
  • Mi az a v2?

Használjam a 2-et?

Ha új gépi tanulási projektet vagy munkafolyamatot indít, a v2-t kell használnia. A v2-t akkor érdemes használnia, ha a v2-ben kínált új funkciókat szeretné használni. Többek között az alábbi funkciók érhetők el:

  • Felügyelt következtetés
  • Újrahasználható összetevők a folyamatokban
  • Folyamatok továbbfejlesztett ütemezése
  • Felelős AI-irányítópult
  • Eszközök nyilvántartása

Egy új v2-projekt újra felhasználhatja a meglévő v1-erőforrásokat, például a munkaterületeket és a számítási feladatokat, valamint a meglévő eszközöket, például a v1 használatával létrehozott modelleket és környezeteket.

A v2 néhány funkcióbeli hiányossága a következő:

  • Spark-támogatás a feladatokban – ez jelenleg előzetes verzióban érhető el a 2. verzióban.
  • Közzétételi feladatok (folyamatok az 1. verzióban) végpontként. A folyamatokat azonban közzététel nélkül ütemezheti.
  • SQL-/adatbázis-adattárak támogatása.
  • Lehetőség a klasszikus előre összeállított összetevők használatára a tervezőben a v2-vel.

Ezután győződjön meg arról, hogy a v2-ben szükséges funkciók megfelelnek a szervezet követelményeinek, például általánosan elérhetők.

Fontos

Az Azure Machine Tanulás új funkciói csak a 2. v2-ben lesznek elindítva.

Melyik v2 API-t használjam?

A v2-felületeken a REST API, a CLI és a Python SDK segítségével érhető el. A használni kívánt felület a forgatókönyvtől és a beállításoktól függ.

API Jegyzetek
REST A legkevesebb függőség és többletterhelés. Alkalmazásokat hozhat létre az Azure Machine Tanulás platformként, közvetlenül olyan programozási nyelvekben, amelyekhez nincs megadva SDK, vagy személyes beállítások szerint.
parancssori felület Ci/CD-vel történő automatizáláshoz vagy személyes beállítások szerint ajánlott. Lehetővé teszi a YAML-fájlok gyors iterációját, valamint az Azure Machine Tanulás és az ML-modellkód közötti egyértelmű elkülönítést.
Python SDK Bonyolult szkripteléshez (például nagy folyamatfeladatok programozott generálása) vagy személyes beállítások szerint ajánlott. Lehetővé teszi a gyors iterációt YAML-fájlokkal vagy kizárólag Pythonban történő fejlesztéssel.

A Python SDK 1-ről v2-re való leképezése

Az SDK v1 és v2 összehasonlító kódleképezéséről az alábbi cikkekben olvashat.

Erőforrások és eszközök Cikk
Munkaterület Munkaterület-kezelés az SDK 1-ben és az SDK v2-ben
Adattár Adattárkezelés az SDK 1- és SDK v2-ben
Adatok Adategységek az SDK 1- és v2-ben
Compute Számításkezelés az SDK 1- és SDK v2-ben
Képzés Szkript futtatása
Képzés Helyi futtatások
Képzés Hiperparaméter finomhangolása
Képzés Párhuzamos futtatás
Képzés Folyamatok
Képzés AutoML
Modellek Modellkezelés az SDK 1- és SDK v2-ben
Telepítés Központi telepítési végpontok frissítése SDK v2-re

Erőforrások és eszközök az 1. és a 2. v2-ben

Ez a szakasz áttekintést nyújt az Azure Machine Tanulás egyes erőforrásairól és eszközeiről. A v2-ben való használatuk részleteiért tekintse meg az egyes entitások koncepciócikkét.

Munkaterület

A munkaterületeket nem kell frissíteni a v2-vel. Ugyanazt a munkaterületet használhatja, függetlenül attól, hogy 1- vagy v2-t használ.

Ha automatizálással hoz létre munkaterületeket, fontolja meg a munkaterületek 2-re való létrehozására szolgáló kód frissítését. Az Azure-erőforrásokat általában az Azure Resource Manager (és a Bicep) vagy hasonló erőforrás-kiépítési eszközök kezelik. A parancssori felület (v2) és a YAML-fájlok is használhatók.

Az SDK v1 és v2 kód összehasonlítása: Munkaterület-kezelés az SDK v1 és az SDK v2-ben.

Fontos

Ha a munkaterület privát végpontot használ, a jelölő automatikusan v1_legacy_mode engedélyezve lesz, megakadályozva a v2 API-k használatát. A részletekért tekintse meg , hogyan konfigurálhatja a hálózatelkülönítést a v2-vel .

Csatlakozás ion (munkaterület-kapcsolat az 1. verzióban)

Az 1.v-ből származó munkaterületi kapcsolatok megmaradnak a munkaterületen, és teljes mértékben elérhetők a v2-vel.

Az SDK v1 és v2 kód összehasonlítása: Munkaterület-kezelés az SDK v1 és az SDK v2-ben.

Adattár

A v1-zel létrehozott objektumtároló-adattártípusok teljes mértékben elérhetők a v2-ben való használatra. Az adatbázis-adattárak nem támogatottak; az objektumtárba (általában Az Azure Blobba) való exportálás az ajánlott áttelepítési útvonal.

Az SDK v1 és v2 kód összehasonlítása: Datastore management in SDK v1 and SDK v2.

Adatok (adathalmazok az 1. verzióban)

Az adathalmazok átnevezése adategységekre. A visszamenőleges kompatibilitás biztosított, ami azt jelenti, hogy V1-adatkészleteket használhat a V2-ben. Ha V1-adathalmazt használ egy V2-feladatban, láthatja, hogy azok automatikusan V2-típusokra vannak leképezve az alábbiak szerint:

  • V1 FileDataset = V2 Mappa (uri_folder)
  • V1 TabularDataset = V2 Table (mltable)

Meg kell jegyezni, hogy a továbbítási kompatibilitás nem biztosított, ami azt jelenti, hogy a V2 adategységek nem használhatók az 1. V-ben.

Ez a cikk többet is bemutat a 2. v2-ben tárolt adatok kezeléséről – Adatok olvasása és írása egy feladatban

Az SDK v1 és v2 kód összehasonlítása: Adategységek az SDK 1-ben és v2-ben.

Compute

A típus AmlCompute számítása, és ComputeInstance teljes mértékben elérhető a 2- es verzióban.

Az SDK v1 és v2 kód összehasonlítása: Számításkezelés az SDK v1 és SDK v2-ben.

Feladatok (kísérletek, futtatások, folyamatok az 1-es verzióban)

A v2 esetében a „kísérletek”, a „futtatások” és a „folyamatok” feladatokká vannak összevonva. Egy feladatnak van típusa. A legtöbb feladat command olyan feladat, amely parancsot futtat, például python main.py. A feladatok futtatása bármilyen programozási nyelv számára agnosztikus, így szkripteket futtathat bash , értelmezőket hívhat meg python , parancsokat futtathat vagy bármi mást futtathat curl . Egy másik gyakori feladattípus az pipeline, amely olyan gyermekfeladatokat határoz meg, amelyek bemeneti/kimeneti kapcsolatokkal rendelkezhetnek, és egy irányított aciklikus gráfot (DAG) alkotnak.

Az SDK 1- és v2-kód összehasonlítását lásd:

Tervező

A tervezővel saját v2-alapú egyéni összetevőkkel és a beállításjegyzék új előre összeállított összetevőivel hozhat létre folyamatokat. Ebben az esetben v1 vagy v2 adategységeket használhat a folyamatban.

A tervezővel továbbra is létrehozhat folyamatokat klasszikus előre összeállított összetevők és v1-adathalmaz-típusok (táblázatos, fájl) használatával. A meglévő klasszikus tervezői előre összeállított összetevők nem használhatók v2 adategységekkel.

A folyamat nem hozható létre a meglévő tervező klasszikus előre összeállított összetevői és a v2 egyéni összetevők használatával.

Modell

A v1-ből létrehozott modellek a v2-ben használhatók.

Az SDK v1 és v2 kód összehasonlítása: Modellkezelés az SDK v1-ben és SDK v2-ben

Végpont és üzembe helyezés (végpont és webszolgáltatás az 1. verzióban)

Az SDK/CLI 1-ben webszolgáltatásként telepíthet modelleket az ACI-n vagy az AKS-en. A meglévő v1-modell üzembe helyezései és webszolgáltatásai továbbra is a jelenlegi módon fognak működni, de az SDK/CLI v1 használata modellek ACI-n vagy AKS-en való üzembe helyezéséhez, mivel a webszolgáltatások már örököltnek minősülnek. Új modelltelepítések esetén javasoljuk, hogy frissítsen a 2- s verzióra. A v2-ben felügyelt végpontokat vagy Kubernetes-végpontokat kínálunk. Az alábbi táblázat útmutatást nyújt a javaslatunkhoz:

Végponttípus a v2-ben Frissítés innen: Jegyzetek
Helyi ACI A modell helyi üzembe helyezésének gyors tesztelése; nem éles környezetben.
Felügyelt online végpont ACI, AKS Nagyvállalati szintű felügyelt modell üzembehelyezési infrastruktúrája közel valós idejű válaszokkal és nagy teljesítményű skálázással az éles környezetben.
Felügyelt kötegvégpont ParallelRunStep egy folyamaton kötegelt pontozáshoz Nagyvállalati szintű felügyelt modell üzembehelyezési infrastruktúrája nagymértékben párhuzamos kötegelt feldolgozással éles környezetben.
Azure Kubernetes Service (AKS) ACI, AKS Saját AKS-fürt(ek) kezelése a modell üzembe helyezéséhez, rugalmasságot és részletes vezérlést biztosítva az informatikai többletköltségek árán.
Azure Arc Kubernetes n/a Saját Kubernetes-fürt(ek) kezelése más felhőkben vagy a helyszínen, rugalmasságot és részletes felügyeletet biztosítva az informatikai költségek mellett.

Az SDK 1- és v2-kód összehasonlítása: Központi telepítési végpontok frissítése SDK v2-re. A meglévő ACI-webszolgáltatásokból felügyelt online végpontokra való migrálás lépéseit a frissítési útmutatóban és a blogban találja.

Környezet

A v1-ből létrehozott környezetek a v2-ben használhatók. A v2-ben a környezetek új funkciókkal rendelkeznek, például helyi Docker-környezetből való létrehozással.

Titkos kódok kezelése

A Key Vault titkos kulcsainak kezelése a V2-ben jelentősen különbözik az 1. V-hez képest. A V1 set_secret és get_secret SDK metódusok nem érhetők el a V2-ben. Ehelyett közvetlen hozzáférést kell használni a Key Vault-ügyfélkódtárak használatával.

A Key Vaultról további információt a hitelesítési hitelesítő adatok titkos kulcsainak használata az Azure Machine-ben Tanulás betanítási feladatokban című témakörben talál.

Forgatókönyvek a gépi tanulási életciklusban

A gépi tanulási életciklusban az Azure Machine Tanulás használatával gyakran előfordulnak forgatókönyvek. Áttekintünk néhányat, és általános javaslatokat teszünk a v2-re való frissítéshez.

Az Azure beállítása

Az Azure az Azure Resource Manager-sablonokat javasolja (gyakran a Bicep használatával a könnyű használat érdekében), hogy erőforrásokat hozzon létre. Ugyanez jó módszer az Azure Machine Tanulás-erőforrások létrehozására is.

Ha csapata csak az Azure Machine Tanulás használja, érdemes lehet inkább YAML-fájlokon és parancssori felületen keresztül kiépíteni a munkaterületet és az egyéb erőforrásokat.

Prototípus-modellek

A prototípus-modellekhez a v2-t javasoljuk. Az Azure Machine Tanulás interaktív használatához érdemes lehet a parancssori felületet használni, míg a modell betanítási kódja Python vagy bármely más programozási nyelv. Alternatív megoldásként teljes veremalapú megközelítést alkalmazhat a Pythonnal kizárólag az Azure Machine Tanulás SDK-val, vagy vegyes megközelítést az Azure Machine Tanulás Python SDK- és YAML-fájlokkal.

Éles modell betanítása

Az éles modell betanításához a v2-t javasoljuk. A feladatok összevonják a terminológiát, és olyan konzisztenciát biztosítanak, commandsweepamely lehetővé teszi a típusok (például a ) és a Feladatok YAML-fájlokba való szerializálására szolgáló GitOps-barát folyamat közötti könnyebb átmenetet.

A v2 esetén el kell különválasztania a gépi tanulási kódot a vezérlősík kódjától. Ez az elkülönítés lehetővé teszi a könnyebb iterációt, és lehetővé teszi a helyi és a felhő közötti könnyebb átmenetet. Azt is javasoljuk, hogy az MLflow-t használja a nyomkövetéshez és a modellnaplózáshoz. A részletekért tekintse meg az MLflow koncepcióját ismertető cikket .

Éles modell üzembe helyezése

Az éles modell üzembe helyezéséhez a v2-t javasoljuk. A felügyelt végpontok elvonják az informatikai többletterhelést, és teljesíthető megoldást biztosítanak a modellek üzembe helyezéséhez és pontozásához, mind online (közel valós idejű) és kötegelt (nagymértékben párhuzamos) forgatókönyvekhez.

A Kubernetes-telepítések v2-n keresztül támogatottak az AKS-en vagy az Azure Arcon keresztül, lehetővé téve a szervezet által felügyelt Azure-felhő- és helyszíni üzembe helyezéseket.

Gépi tanulási műveletek (MLOps)

Az MLOps-munkafolyamatok általában ci/CD-t használnak egy külső eszközön keresztül. A CI/CD általában cli-t használ, de meghívhatja a Pythont, vagy közvetlenül használhatja a REST-et.

A 2-es verziójú MLOps megoldásgyorsítója fejlesztés alatt https://github.com/Azure/mlops-v2 áll, és referenciaként vagy a gépi tanulási életciklus beállításához és automatizálásához használható.

Megjegyzés a GitOpsról 2-vel

A v2-vel rendelkező kulcsfontosságú paradigma a gépi tanulási entitások YAML-fájlokként való szerializálása a forrásvezérléshez git, és jobb GitOps-megközelítéseket tesz lehetővé, mint az 1- es verzióval. Kényszerítheti például azt a szabályzatot, amellyel csak a CI/CD-folyamatokban használt szolgáltatásnév hozhat létre/frissíthet/törölhet néhány vagy minden entitást, biztosítva, hogy a módosítások egy szabályozott folyamaton, például lekéréses kérelmeken menjenek keresztül a szükséges véleményezőkkel. Mivel a forrásvezérlőben lévő fájlok YAML-nek számítanak, könnyen áttekinthetőek és nyomon követhetők a változások. A v2-re való frissítés során Ön és csapata fontolóra vehetik ennek a paradigmának a váltását.

A parancssori felülettel bármely entitás YAML-ábrázolását lekérheti a parancssori felületen keresztül az ml <entity> show --output yaml. Vegye figyelembe, hogy ez a kimenet rendszer által létrehozott tulajdonságokkal rendelkezik, amelyek figyelmen kívül hagyhatók vagy törölhetők.

Meglévő v1-kód frissítése 2-re

A v2-munkafolyamatokban újra felhasználhatja a meglévő v1-objektumokat. Például egy v1-ben létrehozott modell használható a felügyelt következtetés végrehajtására a v2-ben.

Ha a meglévő v1-kód egyes részeit v2-re szeretné frissíteni, tekintse meg a dokumentumban található összehasonlító hivatkozásokat.

Használhatom együtt az 1-et és a 2-et?

A v1 és a v2 együtt létezhet egy munkaterületen. A v2-munkafolyamatokban újra felhasználhatja a meglévő objektumokat. Például egy v1-ben létrehozott modell használható a felügyelt következtetés végrehajtására a v2-ben. Az olyan erőforrások, mint a munkaterület, a számítás és az adattár, kivételekkel működnek az 1. és a 2. v2-ben. A felhasználó meghívhatja a v1 Python SDK-t a munkaterület leírásának módosításához, majd a v2 PARANCSSOR-bővítmény használatával módosíthatja újra. A feladatok (kísérletek/futtatások/folyamatok az 1-es v1-es vagy v2-es Python SDK-ból) ugyanahhoz a munkaterülethez küldhetők. A munkaterületek v1- és v2-modell üzembehelyezési végpontokkal is rendelkezhetnek.

V1 és v2 kód együttes használata

Nem javasoljuk, hogy a v1 és a v2 SDK együttes használatát ugyanabban a kódban használja. Technikailag lehetséges az 1- és a 2-s verzió használata ugyanabban a kódban, mert különböző Azure-névtereket használnak. Azonban számos azonos nevű osztály található ezeken a névtereken (például Munkaterület, Modell), amelyek zavart okozhatnak, és megnehezíthetik a kód olvashatóságát és hibakeresését.

Fontos

Ha a munkaterület privát végpontot használ, a jelölő automatikusan v1_legacy_mode engedélyezve lesz, megakadályozva a v2 API-k használatát. A részletekért tekintse meg , hogyan konfigurálhatja a hálózatelkülönítést a v2-vel .

Következő lépések