Mik azok az Azure Machine Learning-környezetek?
Az Azure Machine Tanulás környezetek annak a környezetnek a beágyazása, ahol a gépi tanulási betanítás 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 Gépi Tanulás munkaterületen, 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 Tanulás 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 Tanulás 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 Tanulás Python SDK, az Azure Machine Tanulás CLI, az Azure Machine Tanulás 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 Tanulás 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 Tanulás 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 Tanulás újra felhasználja a gyorsítótárazott lemezké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 Tanulás Studióban, vagy használja MLClient.environments
a környezet lekéréséhez és vizsgálatához.
Annak megállapításához, hogy a gyorsítótárazott rendszerképet újra szeretné-e használni, vagy újat szeretne létrehozni, az Azure Machine Tanulás kiszámítja a környezet definíciójának kivonatértékét, é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. Frissítések támogatott képek kéthetente jelennek meg, és a rendszer nem vállal 30 napnál régebbi biztonsági réseket a kép legújabb verziójában. 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-Tanulás-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 Azure Machine-Tanulás az őket használó eszközöket.
Az alaprendszerképekkel kapcsolatos további információkért tekintse meg az alábbi hivatkozásokat:
- Az Azure Machine Tanulás gitHub-adattár alaprendszerképét.
- 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 Tanulás.
- Tekintse meg a Python SDK környezeti osztályra vonatkozó referenciadokumentációját.