Frissítés v2-re
Az Azure Machine Learning 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.
Fontos
A "v1" és a "v2" megjelölés az ügyfelek által a szolgáltatással való interakcióhoz használt API-, SDK- és CLI-bővítményre vonatkozik, és nem magára az Azure Machine Learning szolgáltatásra. A szolgáltatáshoz vagy a meglévő munkaterületekhez nincs frissítési folyamat, csak az ügyfélkódhoz. Az Azure Machine Learning-munkaterületek az 1. és a 2. verziójú API-kkal is használhatók. Az új funkciók azonban csak a v2 API-kon keresztül lesznek elérhetők.
A v2-ről további információt a v2-ről talál. A v1 és a v2 SDK közötti különbségek leképezése a példakóddal rendelkező cikkekre mutató hivatkozásokkal: Python SDK v1 és v2 leképezése.
Előfeltételek
- Az Azure Machine Learning é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 – jelenleg előzetes verzióban 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 Learning új funkciói csak a 2. verzióban 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 fejleszthet platformként az Azure Machine Learningben, közvetlenül programozási nyelveken, SDK nélkül, vagy személyes beállítások szerint. |
CLI | 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 Learning é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 |
Oktatás | Szkript futtatása |
Oktatás | Helyi futtatások |
Oktatás | Hiperparaméter finomhangolása |
Oktatás | Párhuzamos futtatás |
Oktatás | Folyamatok |
Oktatá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 Learning adott 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 .
Kapcsolat (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, az alábbiak szerint automatikusan V2-típusokba lesznek leképezve:
- 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-ben a "kísérletek", a "futtatások" és a "folyamatok" feladatokba vannak összesítve. 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, amely meghatározza azokat a pipeline
gyermekfeladatokat, 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:
- Szkript futtatása
- Helyi futtatások
- Hiperparaméter finomhangolása
- Párhuzamos futtatás
- Folyamatok
- AutoML
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 előre összeállított tervezői összetevők nem használhatók v2 adategységekkel.
Nem hozhat létre folyamatokat 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 ugyanúgy működnek, mint amilyenek, de az SDK/CLI v1 használata modellek ACI-n vagy AKS-en való üzembe helyezéséhez webszolgáltatásokként már örököltnek minősül. Ú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 titkos kódok betanítási szkriptből való elérésekor használhatja a számítás felügyelt identitását vagy az identitását.
A Key Vaultról további információt a hitelesítési hitelesítő adatok titkos kulcsainak használata az Azure Machine Learning-betanítási feladatokban című témakörben talál.
Forgatókönyvek a gépi tanulási életciklusban
Az Azure Machine Learning használatával a gépi tanulási életciklusban gyakran előfordul néhány forgatókönyv. Á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 Learning-erőforrások létrehozására is.
Ha csapata csak az Azure Machine Learninget használja, érdemes lehet inkább YAML-fájlokon és parancssori felületen keresztül kiépítenie a munkaterületet és az egyéb erőforrásokat.
Prototípus-modellek
A prototípus-modellekhez a v2-t javasoljuk. Érdemes lehet a parancssori felületet használni az Azure Machine Learning interaktív használatához, míg a modell betanítási kódja Python vagy bármely más programozási nyelv. Alternatív megoldásként teljes veremű megközelítést is alkalmazhat a Pythonnal kizárólag az Azure Machine Learning SDK használatával, vagy vegyes megközelítést az Azure Machine Learning Python SDK-val é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, command
sweep
amely 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. Ön és csapata érdemes lehet erre a paradigmára váltani a v2-re való frissítés során.
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
. 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. Az 1. verzióban létrehozott modell például használható a felügyelt következtetés végrehajtására a v2-ben.
Ha a meglévő v1-kód bizonyos 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. Az 1. verzióban létrehozott modell például 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 .