Azure Machine Learning-környezetek kezelése a CLI > SDK-val (v2)
ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)
Az Azure Machine Lekörnyezzetek meghatározzák a feladatok vagy üzemelő példányok végrehajtási környezeteit, és magukban foglalják a kód függőségeit. Az Azure Machine Learning a környezeti specifikációval hozza létre azt a Docker-tárolót, amelyben a betanítási vagy pontozási kód a megadott számítási célon fut. A környezet definiálható condra-specifikációból, Rocker-rendszerképből vagy Mikrokörnyezetből.
Ebből a cikkből megtudhatja, hogyan hozhat létre és kezelhet Azure Machine Learning-környezeteket az SDK & CLI (v2) használatával.
Előfeltételek
A cikkben ismertetett lépések végrehajtása előtt győződjön meg arról, hogy rendelkezik a következő előfeltételekkel:
Egy Azure Machine Learning-munkaterület. Ha nincs ilyenje, a gyorsútmutató lépéseit követve hozzon létre egyet a munkaterület erőforrásainak létrehozása című cikkben.
Az Azure CLI és a
ml
bővítmény vagy az Azure Machine Learning Python SDK v2:Az Azure CLI és a bővítmény telepítéséhez lásd a parancssori felület (v2) telepítését, beállítását és használatát.
Fontos
A jelen cikkben szereplő CLI-példák feltételezik, hogy a Bash (vagy kompatibilis) rendszerhéjat használja. Például linuxos rendszerből vagy Linuxos Windows-alrendszer.
A Python SDK v2 telepítéséhez használja a következő parancsot:
pip install azure-ai-ml azure-identity
Ha frissíteni szeretné az SDK meglévő telepítését a legújabb verzióra, használja a következő parancsot:
pip install --upgrade azure-ai-ml azure-identity
További információ: Az Azure Machine Learninghez készült Python SDK v2 telepítése.
Tipp.
A teljes körű fejlesztési környezethez használja a Visual Studio Code-ot és az Azure Machine Learning-bővítményt az Azure Machine Learning-erőforrások kezeléséhez és a gépi tanulási modellek betanításához.
Példák klónozása adattár
A betanítási példák futtatásához először klónozza a példák adattárát. A CLI-példák esetében váltson a cli
könyvtárra. Az SDK-példák esetében váltson a sdk/python/assets/environment
könyvtárra:
git clone --depth 1 https://github.com/Azure/azureml-examples
Vegye figyelembe, hogy --depth 1
csak a legújabb véglegesítést klónozza az adattárba, ami csökkenti a művelet befejezéséhez szükséges időt.
Csatlakozás a munkaterülethez
Tipp.
Az alábbi fülekkel kiválaszthatja a környezetek használatához használni kívánt metódust. Ha kiválaszt egy lapot, a cikk összes lapja automatikusan ugyanarra a lapra vált. Bármikor kijelölhet egy másik lapot.
Az Azure CLI használatakor azonosító paraméterekre van szüksége – egy előfizetésre, egy erőforráscsoportra és a munkaterület nevére. Bár ezeket a paramétereket minden parancshoz megadhatja, beállíthatja az összes parancshoz használt alapértelmezett értékeket is. Az alapértelmezett értékek beállításához használja az alábbi parancsokat. Cserélje le <subscription ID>
a , <Azure Machine Learning workspace name>
és <resource group>
a konfiguráció értékeit:
az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
Válogatott környezetek
Az Azure Machine Learningben kétféle környezet létezik: válogatott és egyéni környezetek. A válogatott környezetek olyan előre definiált környezetek, amelyek népszerű ML-keretrendszereket és eszközöket tartalmaznak. Az egyéni környezetek felhasználó által definiált környezetek, amelyek a következőn keresztül az ml environment create
hozhatók létre:
A válogatott környezeteket az Azure Machine Learning biztosítja, és alapértelmezés szerint elérhetők. Az Azure Machine Learning rendszeresen frissíti ezeket a környezeteket a legújabb keretrendszerverzió-kiadásokkal, és karbantartja őket a hibajavításokhoz és a biztonsági javításokhoz. Ezeket gyorsítótárazott Docker-rendszerképek készítik, amelyek csökkentik a feladat-előkészítés költségeit és a modell üzembe helyezésének idejét.
Ezeket a válogatott környezeteket a dobozon kívül is használhatja betanításhoz vagy üzembe helyezéshez, ha a környezet egy adott verziójára vagy legújabb verziójára hivatkozik. Használja a következő szintaxist: azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number>
vagy azureml://registries/azureml/environment/<curated-environment-name>/labels/latest
. A saját egyéni környezetek hivatkozásaként is használhatja őket, ha módosítja azokat a Docker-fájlokat, amelyek ezeket a válogatott környezeteket támasztják alá.
Az elérhető válogatott környezetek készletét az Azure Machine Learning Studio felhasználói felületén, vagy a parancssori felület (v2) használatával tekintheti meg az ml environment list
.
Tipp.
Amikor a parancssori felületen vagy az SDK-ban válogatott környezetekkel dolgozik, a környezet neve a válogatott környezet nevével AzureML-
kezdődik. Az Azure Machine Learning Studio használatakor nem rendelkezik ezzel az előtaggal. Ennek a különbségnek az az oka, hogy a studio felhasználói felülete külön lapon jeleníti meg a válogatott és az egyéni környezeteket, így az előtag nem szükséges. A parancssori felület és az SDK nem rendelkezik ezzel az elkülönítéssel, ezért az előtag a válogatott és az egyéni környezetek megkülönböztetésére szolgál.
Egyéni környezet létrehozása
Egy környezetet docker-rendszerképből, Egy Docker buildkörnyezetből és egy Conda-specifikációból határozhat meg Docker-rendszerképekkel.
Környezet létrehozása Docker-rendszerképből
Ha egy Docker-rendszerképből szeretne környezetet definiálni, adja meg a rendszerkép URI-ját egy beállításjegyzékben, például a Docker Hubban vagy az Azure Container Registryben.
Az alábbi példa egy YAML-specifikációs fájl egy Docker-rendszerképből definiált környezethez. A Docker Hub hivatalos PyTorch-adattárából származó kép a image
YAML-fájlban található tulajdonságon keresztül van megadva.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-example
image: pytorch/pytorch:latest
description: Environment created from a Docker image.
A környezet létrehozása:
az ml environment create --file assets/environment/docker-image.yml
Tipp.
Az Azure Machine Learning cpu- és GPU-alapú Ubuntu Linux-alapú alaprendszerképeket tart fenn gyakori rendszerfüggőségekkel. A GPU-képek például minicondát, OpenMPI-t, CUDA-t, cuDNN-t és NCCL-t tartalmaznak. Ezeket a képeket használhatja a környezetekhez, vagy saját egyéni rendszerképek létrehozásakor referenciaként használhatja a megfelelő Docker-fájlokat.
Az alaprendszerképek és a hozzájuk tartozó Docker-fájlok készletét az AzureML-Containers adattárban találja.
Környezet létrehozása Docker-buildkörnyezetből
Ahelyett, hogy előre összeállított rendszerképből definiálhat környezetet, egy Docker-buildkörnyezetből is definiálhat egyet. Ehhez adja meg a buildkörnyezetként szolgáló könyvtárat. Ennek a könyvtárnak tartalmaznia kell egy (legfeljebb 1 MB méretű) Dockerfile-fájlt és a rendszerkép létrehozásához szükséges egyéb fájlokat.
Az alábbi példa egy YAML-specifikációs fájl egy buildkörnyezetből definiált környezethez. A buildkörnyezet mappájának helyi elérési útja a build.path
mezőben van megadva, és a buildkörnyezet mappájában lévő Dockerfile relatív elérési útja meg van adva a build.dockerfile_path
mezőben. Ha build.dockerfile_path
nincs megadva a YAML-fájlban, az Azure Machine Learning a buildkörnyezet gyökerében található Dockerfile
Docker-fájlt keresi.
Ebben a példában a buildkörnyezet tartalmaz egy Dockerfile nevű Dockerfile
fájlt, és egy requirements.txt
olyan fájlt, amelyre a Python-csomagok telepítéséhez a Dockerfile-ban hivatkozunk.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-context-example
build:
path: docker-contexts/python-and-pip
A környezet létrehozása:
az ml environment create --file assets/environment/docker-context.yml
Az Azure Machine Learning elkezdi a rendszerkép létrehozását a buildkörnyezetből a környezet létrehozásakor. Megfigyelheti a build állapotát, és megtekintheti a buildnaplókat a stúdió felhasználói felületén.
Környezet létrehozása conda-specifikációból
A környezeteket egy szabványos conda YAML-konfigurációs fájllal határozhatja meg, amely tartalmazza a conda környezet függőségeit. Erről a szabványos formátumról további információt a környezet manuális létrehozása című témakörben talál.
Meg kell adnia egy alap Docker-rendszerképet is ehhez a környezethez. Az Azure Machine Learning a conda környezetet a docker-rendszerképre építi. Ha néhány Python-függőséget telepít a Docker-lemezképbe, ezek a csomagok nem fognak létezni a végrehajtási környezetben, így futásidejű hibákhoz vezetnek. Az Azure Machine Learning alapértelmezés szerint létrehoz egy Conda-környezetet a megadott függőségekkel, és az alaprendszerképre telepített Python-kódtárak helyett ebben a környezetben futtatja a feladatot.
Az alábbi példa egy YAML-specifikációs fájl egy conda-specifikációból definiált környezethez. Itt az Azure Machine Learning-környezet YAML-fájljából származó conda-fájl relatív elérési útja a conda_file
tulajdonságon keresztül van megadva. A conda-specifikációt a tulajdonság használatával conda_file
is definiálhatja ahelyett, hogy külön fájlban definiálja.
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json
name: docker-image-plus-conda-example
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04
conda_file: conda-yamls/pydata.yml
description: Environment created from a Docker image plus Conda environment.
A környezet létrehozása:
az ml environment create --file assets/environment/docker-image-plus-conda.yaml
Az Azure Machine Learning létrehozza a végső Docker-rendszerképet ebből a környezeti specifikációból, amikor a környezetet egy feladatban vagy üzembe helyezésben használják. Manuálisan is aktiválhatja a környezet felépítését a stúdió felhasználói felületén.
Környezetek kezelése
Az SDK és a CLI (v2) lehetővé teszi az Azure Machine Learning-környezet eszközeinek életciklusának kezelését is.
Lista
Listázhatja a munkaterület összes környezetét:
Adja meg az összes környezeti verziót egy adott név alatt:
Megjelenítés
Egy adott környezet részleteinek lekérése:
Frissítés
Adott környezet mutable tulajdonságainak frissítése:
az ml environment update --name docker-image-example --version 1 --set description="This is an updated description."
Fontos
Környezetek esetén csak description
és tags
frissíthető. Minden más tulajdonság nem módosítható; Ha ezen tulajdonságok bármelyikét módosítania kell, létre kell hoznia a környezet új verzióját.
Archívum
A környezet archiválása alapértelmezés szerint elrejti azt a lista lekérdezéseiből (az ml environment list
). Továbbra is hivatkozhat és használhat archivált környezetet a munkafolyamatokban. Archiválhatja a környezet összes verzióját, vagy csak egy adott verziót.
Ha nem ad meg verziót, a megadott név alatt lévő környezet összes verziója archiválva lesz. Ha egy archivált környezeti tárolóban hoz létre új környezeti verziót, az új verzió is automatikusan archiválva lesz.
A környezet összes verziójának archiválása:
Adott környezeti verzió archiválása:
Fontos
A környezet verziójának archiválása nem törli a gyorsítótárazott lemezképet a tárolóregisztrációs adatbázisban. Ha törölni szeretné egy adott környezethez társított gyorsítótárazott lemezképet, használhatja az az acr-adattár törlés parancsát a környezet társított adattárában.
Környezetek használata betanításhoz
Ha egyéni környezetet szeretne használni egy betanítási feladathoz, adja meg a environment
feladat YAML-konfigurációjának mezőjét. Hivatkozhat egy meglévő regisztrált Azure Machine Learning-környezetre environment: azureml:<environment-name>:<environment-version>
a környezet legújabb verziójára való hivatkozáshoz vagy environment: azureml:<environment-name>@latest
a környezet specifikációjának beágyazott meghatározásához. Ha beágyazott környezetet határoz meg, ne adja meg a mezőket és version
a name
mezőket, mivel ezek a környezetek "regisztráció nélküli" környezetekként lesznek kezelve, és nem lesznek nyomon követve a környezeti objektumregisztrációs adatbázisban.
Egy betanítási feladat elküldésekor egy új környezet kiépítése több percet is igénybe vehet. Az időtartam a szükséges függőségek méretétől függ. A környezeteket a szolgáltatás gyorsítótárazza. Tehát amíg a környezetdefiníció változatlan marad, a teljes beállítási időt csak egyszer kell megadnia.
A környezetek feladatokban való használatáról további információt a Modellek betanítása című témakörben talál.
Környezetek használata modelltelepítésekhez
A modelltelepítésekhez környezeteket is használhat az online és a kötegelt pontozáshoz. Ehhez adja meg a mezőt az environment
üzembehelyezési YAML-konfigurációban.
A környezetek üzembe helyezések során történő használatáról további információt a gépi tanulási modell üzembe helyezése és pontszáma online végpont használatával című témakörben talál.