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).

Diagram of an environment in machine learning workflow

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:

  1. Alaprendszerkép letöltése és a Docker-lépések végrehajtása
  2. 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.

Diagram of environment caching and Docker images

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áulnumpy), 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.1vá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 a latest 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:

Következő lépések