Azure Machine Tanulás 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 Tanulás a környezeti specifikáció használatával hozza létre azt a Docker-tárolót, amelyben a betanítási vagy pontozási kód fut a megadott számítási célon. 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 Tanulás 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 Tanulás 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ó: A Python SDK v2 telepítése az Azure Machine Tanulás.

Tipp.

A teljes körű fejlesztési környezethez használja a Visual Studio Code-ot és az Azure Machine Tanulás bővítményt az Azure Machine Tanulás erőforrásainak 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ületre

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 minden parancshoz megadhatja ezeket a paramétereket, 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-Tanulás 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 createhozhatók létre:

A válogatott környezeteket az Azure Machine Tanulás biztosítja, és alapértelmezés szerint elérhetők. Az Azure Machine Tanulás 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 Tanulás studio felhasználói felületén, vagy a parancssori felület (v2) használatával tekintheti megaz ml environment list.

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 Tanulás 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 Tanulás a buildkörnyezet gyökerében elnevezett Dockerfile Docker-fájlt keres.

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 Tanulás megkezdi 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 Tanulás 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 Tanulás 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 használata helyett ebben a környezetben hajtja végre 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 Tanulás környezeti YAML-fájlbó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 Tanulás a végső Docker-rendszerképet ebből a környezeti specifikációból hozza létre, 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 Tanulás környezeti eszközök életciklusának kezelését is.

Lista

Listázhatja a munkaterület összes környezetét:

az ml environment list

Adja meg az összes környezeti verziót egy adott név alatt:

az ml environment list --name docker-image-example

Megjelenítés

Egy adott környezet részleteinek lekérése:

az ml environment show --name docker-image-example --version 1

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áltként lesz beállítva.

A környezet összes verziójának archiválása:

az ml environment archive --name docker-image-example

Adott környezeti verzió archiválása:

az ml environment archive --name docker-image-example --version 1

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-Tanulás-környezetre a környezet legújabb verzióján keresztül environment: azureml:<environment-name>:<environment-version> vagy environment: azureml:<environment-name>@latest (a környezet legújabb verziójára való hivatkozáshoz), vagy meghatározhat egy környezeti specifikációt a szövegben. 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.

Következő lépések