Mik azok az Azure Machine Learning-környezetek?
Az Azure Machine Learning-környezetek annak a környezetnek a beágyazása, ahol a gépi tanulás betanítása történik. Megadják a Python-csomagokat, valamint a betanítási és pontozási szkriptek körüli szoftverbeállításokat. A környezetek felügyelt és verziószámozott entitások a Machine Learning-munkaterületen belül, amelyek reprodukálható, naplózható és hordozható gépi tanulási munkafolyamatokat tesznek lehetővé különböző számítási célok között.
Objektumot Environment
a következő célra használhat:
- A betanítási szkript fejlesztése.
- Használja újra ugyanazt a környezetet az Azure Machine Learning Compute-ben a nagy léptékű modellbetanításhoz.
- A modell üzembe helyezése ugyanazzal a környezettel.
- Nyissa meg újra azt a környezetet, amelyben egy meglévő modell be van tanítva.
Az alábbi ábra bemutatja, hogyan használhat egyetlen Environment
objektumot a feladatkonfigurációban (betanításhoz), valamint a következtetési és üzembehelyezési konfigurációban (webszolgáltatás-üzemelő példányokhoz).
A környezet, a számítási cél és a betanítási szkript együttesen alkotja a feladatkonfigurációt: a betanítási feladat teljes specifikációját.
Környezettípusok
A környezetek nagyjából három kategóriába sorolhatók: válogatott, felhasználó által felügyelt és rendszer által felügyelt.
A válogatott környezeteket az Azure Machine Learning biztosítja, és alapértelmezés szerint elérhetők a munkaterületen. A használatukhoz a Python-csomagok és -beállítások gyűjteményei szolgálnak, amelyek segítenek a különböző gépi tanulási keretrendszerek használatának megkezdésében. Ezek az előre létrehozott környezetek gyorsabb üzembe helyezési időt is lehetővé teszik. A válogatott környezetek az AzureML Registryben vannak üzemeltetve. A teljes listát az azureml-beállításjegyzék környezeteiben találja.
Felhasználó által felügyelt környezetekben Ön a felelős a környezet beállításáért és a betanítási szkript által igényelt összes csomag telepítéséért a számítási célon. Ügyeljen arra is, hogy a modell üzembe helyezéséhez szükséges függőségeket is tartalmazza. A felhasználó által felügyelt környezet lehet BYOC (Saját tároló használata) vagy Docker buildkörnyezet, amely a rendszerkép-materializálást delegálja az AzureML-be.
Rendszer által felügyelt környezeteket használ, amikor azt szeretné , hogy a Conda kezelje a Python-környezetet. Egy új Conda-környezet a conda specifikációjából valósul meg egy alapszintű Docker-rendszerképen.
Környezetek létrehozása és kezelése
Olyan ügyfelekből hozhat létre környezeteket, mint az Azure Machine Learning Python SDK, az Azure Machine Learning CLI, az Azure Machine Learning Studio Környezetek lapja és a VS Code-bővítmény. Minden ügyfél lehetővé teszi, hogy szükség esetén testre szabja az alaprendszerképet, a Dockerfile-t és a Python-réteget.
Konkrét kódmintákért tekintse meg a Környezetek használata című szakasz "Környezet létrehozása" című szakaszát.
A környezetek a munkaterületen keresztül is könnyen kezelhetők, így a következőket végezheti el:
- Környezetek regisztrálása.
- Betanításhoz vagy üzembe helyezéshez használandó környezetek lekérése a munkaterületről.
- Hozzon létre egy új környezetpéldányt egy meglévő szerkesztésével.
- A környezetek időbeli változásainak megtekintése, ami biztosítja a reprodukálhatóságot.
- Docker-rendszerképeket hozhat létre automatikusan a környezetekből.
A "névtelen" környezetek automatikusan regisztrálva lesznek a munkaterületen egy kísérlet elküldésekor. Ezek nem lesznek felsorolva, de verzió szerint lekérhetők.
A kódmintákért lásd a Környezetek kezelése című szakaszt a környezetek használatáról.
Környezet létrehozása, gyorsítótárazása és újrafelhasználása
Az Azure Machine Learning környezetdefiníciókat készít Docker-rendszerképekbe. Emellett gyorsítótárazza a környezeteket, hogy újra felhasználhatók legyenek a későbbi betanítási feladatokban és a szolgáltatásvégpontok üzembe helyezésében. A betanítási szkript távoli futtatásához Létre kell hozatni egy Docker-rendszerképet. Alapértelmezés szerint az AzureML kezeli a rendszerkép-létrehozási célt az elérhető munkaterület kiszolgáló nélküli számítási kvótáján , ha nincs dedikált számítási készlet a munkaterülethez.
Feljegyzés
Az AzureML-munkaterület hálózati korlátozásaihoz dedikált, felhasználó által felügyelt rendszerkép-összeállítási számítási beállításokra lehet szükség. Kövesse az alábbi lépéseket a munkaterület erőforrásainak védelméhez.
Feladat elküldése környezet használatával
Amikor először küld el távoli feladatot egy környezet használatával, vagy manuálisan hoz létre környezeti példányt, az Azure Machine Learning létrehoz egy rendszerképet a megadott specifikációhoz. A rendszer gyorsítótárazza az eredményképet a munkaterülethez társított tárolóregisztrációs adatbázispéldányban. A válogatott környezetek már gyorsítótárazva vannak az AzureML Registryben. A feladat végrehajtásakor a rendszerképet a számítási cél kéri le a megfelelő tárolóregisztrációs adatbázisból.
Környezetek létrehozása Docker-rendszerképekként
Ha egy adott környezetdefiníció lemezképe még nem létezik az AzureML-munkaterülethez társított tárolóregisztrációs adatbázispéldányban, létrejön egy új rendszerkép. A rendszer által felügyelt környezetek esetében a rendszerkép összeállítása két lépésből áll:
- Alaprendszerkép letöltése és a Docker-lépések végrehajtása
- Conda-környezet létrehozása a környezetdefinícióban megadott conda-függőségek szerint.
A felhasználó által felügyelt környezetek esetében a docker-környezet a következőképpen lesz létrehozva. Ebben az esetben Ön a felelős a Python-csomagok telepítéséért, az alaprendszerképbe való beleszámításukkal vagy az egyéni Docker-lépések megadásával.
Kép gyorsítótárazása és újrafelhasználása
Ha ugyanazt a környezetdefiníciót használja egy másik feladathoz, az Azure Machine Learning újra felhasználja a gyorsítótárazott rendszerképet a munkaterülethez társított tárolóregisztrációs adatbázisból.
A gyorsítótárazott rendszerkép részleteinek megtekintéséhez tekintse meg a Környezetek lapot az Azure Machine Learning Studióban, vagy használja MLClient.environments
a környezet lekéréséhez és vizsgálatához.
Annak meghatározásához, hogy a gyorsítótárazott rendszerképet újra felhasználja-e, vagy újat hoz létre, az Azure Machine Learning kiszámít egy kivonatértéket a környezet definíciójából, és összehasonlítja azt a meglévő környezetek kivonatával. A kivonat egy környezet egyedi azonosítójaként szolgál, és a környezet definícióján alapul:
- Alaprendszerkép
- Egyéni docker-lépések
- Python-csomagok
A kivonatot nem befolyásolja a környezet neve vagy verziója. Ha átnevezi a környezetet, vagy újat hoz létre ugyanazokkal a beállításokkal és csomagokkal, mint egy másik környezet, akkor a kivonat értéke változatlan marad. A környezetdefiníció módosításai, például a Python-csomagok hozzáadása vagy eltávolítása, illetve a csomagverzió módosítása azonban módosítja az eredményként kapott kivonat értékét. A környezet függőségeinek vagy csatornáinak sorrendjének módosítása a kivonatot is módosítja, és új rendszerkép-összeállítást igényel. Hasonlóképpen, a válogatott környezetek bármilyen módosítása egyéni környezet létrehozását eredményezi.
Feljegyzés
A rendszer nem tud helyi módosításokat küldeni egy válogatott környezetbe a környezet nevének módosítása nélkül. Az "AzureML-" és a "Microsoft" előtagok kizárólag válogatott környezetekhez vannak fenntartva, és a feladatbeküldés sikertelen lesz, ha a név valamelyikkel kezdődik.
A rendszer összehasonlítja a környezet kiszámított kivonatértékét a Munkaterület tárolóregisztrációs adatbázisában szereplő értékekkel. Ha van egyezés, akkor a rendszer lekérte és felhasználja a gyorsítótárazott lemezképet, ellenkező esetben a rendszer elindítja a rendszerkép-összeállítást.
Az alábbi ábrán három környezetdefiníció látható. Ezek közül kettő különböző névvel és verzióval rendelkezik, de azonos alaplemezképekkel és Python-csomagokkal, amelyek ugyanazt a kivonatot és a megfelelő gyorsítótárazott lemezképet eredményezik. A harmadik környezet különböző Python-csomagokkal és -verziókkal rendelkezik, ami egy másik kivonatot és gyorsítótárazott lemezképet eredményez.
A munkaterület tárolóregisztrációs adatbázisában található tényleges gyorsítótárazott rendszerképek nevei hasonlóak a végén megjelenő kivonathoz azureml/azureml_e9607b2514b066c851012848913ba19f
.
Fontos
Ha nem rögzített csomagfüggőséggel rendelkező környezetet hoz létre (például
numpy
), a környezet a környezet létrehozásakor elérhető csomagverziót használja. Az egyező definíciót használó jövőbeli környezetek az eredeti verziót fogják használni.A csomag frissítéséhez adjon meg egy verziószámot a rendszerkép újraépítésének kényszerítéséhez. Erre egy példa a .-ra
numpy==1.18.1
változnanumpy
. Az új függőségek ( beleértve a beágyazottakat is ) telepítve lesznek, és egy korábban működő forgatókönyvet is megszakíthatnak.Ha nem rögzített alaprendszerképet használ, mint
mcr.microsoft.com/azureml/openmpi3.1.2-ubuntu18.04
a környezetdefinícióban, a rendszerképet minden alkalommal újraépítheti, amikor alatest
címke frissül. Ez segít a rendszerképnek a legújabb javítások és rendszerfrissítések fogadásában.
Képjavítás
A Microsoft feladata az alaprendszerképek javítása ismert biztonsági rések esetén. A támogatott képek frissítései kéthetente jelennek meg, és a rendszerkép legújabb verziójában nem jelennek meg a 30 napnál régebbi biztonsági rések. A javított képek új, nem módosítható címkével jelennek meg, és a :latest
címke a javított kép legújabb verziójára frissül.
Az újonnan javított rendszerkép használatához frissítenie kell a társított Azure Machine Learning-eszközöket. Ha például felügyelt online végponttal dolgozik, újra üzembe kell helyeznie a végpontot a javított rendszerkép használatához.
Ha saját rendszerképeket ad meg, önnek kell frissítenie és frissítenie az őket használó Azure Machine Learning-eszközöket.
Az alaprendszerképekkel kapcsolatos további információkért tekintse meg az alábbi hivatkozásokat:
- Az Azure Machine Learning alaprendszerképek GitHub-adattára.
- Modell online végponton történő üzembe helyezése egyéni tároló használatával
- Környezetek és tárolólemezképek kezelése
Következő lépések
- Megtudhatja, hogyan hozhat létre és használhat környezeteket az Azure Machine Learningben.
- Tekintse meg a Python SDK környezeti osztályra vonatkozó referenciadokumentációját.