Modellek betanítása az Azure Machine Tanulás CLI, SDK és REST API használatával

ÉRVÉNYES:Azure CLI ml-bővítmény v2 (aktuális)Python SDK azure-ai-ml v2 (aktuális)

Az Azure Machine Tanulás többféle módon is beküldheti az ml-betanítási feladatokat. Ebben a cikkben megtanulhatja, hogyan küldhet be feladatokat az alábbi módszerekkel:

  • Azure CLI-bővítmény gépi tanuláshoz: A ml bővítmény, más néven CLI v2.
  • Python SDK v2 az Azure Machine Tanulás.
  • REST API: A CLI és az SDK által létrehozott API.

Előfeltételek

  • Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot. Próbálja ki az Azure Machine Tanulás ingyenes vagy fizetős verzióját.
  • Egy Azure Machine Learning-munkaterület. Ha nincs ilyenje, az erőforrások létrehozása című cikk lépéseit követve kezdheti el a cikket.

Az SDK-információk használatához telepítse az Azure Machine Tanulás SDK v2 for Pythont.

A példák adattárának klónozása

A jelen cikkben szereplő kódrészletek az Azure Machine Tanulás GitHub-adattár példáin alapulnak. Az adattár fejlesztői környezetbe való klónozásához használja a következő parancsot:

git clone --depth 1 https://github.com/Azure/azureml-examples

Tipp.

Csak a legújabb véglegesítés klónozására használható --depth 1 az adattárban, ami csökkenti a művelet befejezéséhez szükséges időt.

Példafeladat

A cikkben szereplő példák az íriszvirág-adatkészletet használják egy MLFlow-modell betanítása érdekében.

Betanítása a felhőben

A felhőbe való betanításkor csatlakoznia kell az Azure Machine Tanulás-munkaterülethez, és ki kell választania egy számítási erőforrást, amely a betanítási feladat futtatásához lesz használva.

1. Csatlakozás a munkaterületre

Tipp.

Az alábbi fülekkel kiválaszthatja a modell betanítása során használni kívánt módszert. Ha kiválaszt egy lapot, a cikk összes lapja automatikusan ugyanarra a lapra vált. Bármikor kijelölhet egy másik lapot.

A munkaterülethez való csatlakozáshoz azonosító paraméterekre van szükség – előfizetésre, erőforráscsoportra és munkaterület nevére. Ezeket a részleteket a MLClientazure.ai.ml névtérben fogja használni, hogy lekérje a leírót a szükséges Azure Machine Tanulás munkaterületre. A hitelesítéshez az alapértelmezett Azure-hitelesítést kell használnia. Ebben a példában további részleteket talál a hitelesítő adatok konfigurálásáról és a munkaterülethez való csatlakozásról.

#import required libraries
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential

#Enter details of your Azure Machine Learning workspace
subscription_id = '<SUBSCRIPTION_ID>'
resource_group = '<RESOURCE_GROUP>'
workspace = '<AZUREML_WORKSPACE_NAME>'

#connect to the workspace
ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace)

2. Számítási erőforrás létrehozása betanításhoz

Feljegyzés

A kiszolgáló nélküli számítás kipróbálásához hagyja ki ezt a lépést, és folytassa a 3-ra. Küldje el a betanítási feladatot.

Az Azure Machine Tanulás számítási fürt egy teljes mértékben felügyelt számítási erőforrás, amely a betanítási feladat futtatásához használható. Az alábbi példákban létrejön egy nevesített cpu-compute számítási fürt.

from azure.ai.ml.entities import AmlCompute

# specify aml compute name.
cpu_compute_target = "cpu-cluster"

try:
    ml_client.compute.get(cpu_compute_target)
except Exception:
    print("Creating a new cpu compute target...")
    compute = AmlCompute(
        name=cpu_compute_target, size="STANDARD_D2_V2", min_instances=0, max_instances=4
    )
    ml_client.compute.begin_create_or_update(compute).result()

3. A betanítási feladat elküldése

A szkript futtatásához olyan command parancsot fog használni, amely a ./sdk/python/jobs/egylépéses/lightgbm/iris/src/ területen található main.py Python-szkriptet hajtja végre. A parancs futtatásához küldje el job az Azure Machine Tanulás.

Feljegyzés

A kiszolgáló nélküli számítás használatához törölje compute="cpu-cluster" ezt a kódot.

from azure.ai.ml import command, Input

# define the command
command_job = command(
    code="./src",
    command="python main.py --iris-csv ${{inputs.iris_csv}} --learning-rate ${{inputs.learning_rate}} --boosting ${{inputs.boosting}}",
    environment="AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu@latest",
    inputs={
        "iris_csv": Input(
            type="uri_file",
            path="https://azuremlexamples.blob.core.windows.net/datasets/iris.csv",
        ),
        "learning_rate": 0.9,
        "boosting": "gbdt",
    },
    compute="cpu-cluster",
)
# submit the command
returned_job = ml_client.jobs.create_or_update(command_job)
# get a URL for the status of the job
returned_job.studio_url

A fenti példákban a következőt konfigurálta:

  • code - elérési út, ahol a parancs futtatásához szükséges kód található
  • command - futtatandó parancs
  • environment - a betanítási szkript futtatásához szükséges környezet. Ebben a példában az Azure Machine Tanulás által AzureML-lightgbm-3.2-ubuntu18.04-py37-cpubiztosított válogatott vagy kész környezetet használjuk. Ennek a környezetnek a legújabb verzióját használjuk az @latest irányelv használatával. Egyéni környezeteket is használhat egy alap docker-rendszerkép megadásával és egy conda yaml megadásával.
  • inputs - a parancshoz névérték párokat használó bemenetek szótára. A kulcs a feladat környezetében lévő bemenet neve, az érték pedig a bemeneti érték. A bemenetekre a command kifejezés hivatkozik ${{inputs.<input_name>}} . Ha fájlokat vagy mappákat szeretne bemenetként használni, használhatja az osztályt Input . További információ: SDK és CLI v2 kifejezések.

További információkért tekintse meg a referenciadokumentációt.

A feladat elküldésekor a rendszer egy URL-címet ad vissza a feladat állapotához az Azure Machine Tanulás studióban. A feladat előrehaladásának megtekintéséhez használja a studio felhasználói felületét. A feladat aktuális állapotát is returned_job.status ellenőrizheti.

A betanított modell regisztrálása

Az alábbi példák bemutatják, hogyan regisztrálhat modellt az Azure Machine Tanulás-munkaterületen.

Tipp.

A name betanítási feladat által visszaadott tulajdonság a modell elérési útjának részeként használatos.

from azure.ai.ml.entities import Model
from azure.ai.ml.constants import AssetTypes

run_model = Model(
    path="azureml://jobs/{}/outputs/artifacts/paths/model/".format(returned_job.name),
    name="run-model-example",
    description="Model created from run.",
    type=AssetTypes.MLFLOW_MODEL
)

ml_client.models.create_or_update(run_model)

Következő lépések

Most, hogy már rendelkezik egy betanított modellel, megtudhatja , hogyan helyezheti üzembe online végponttal.

További példákért tekintse meg az Azure Machine Tanulás GitHub-adattárat.

A cikkben használt Azure CLI-parancsokkal, Python SDK-osztályokkal vagy REST API-kkal kapcsolatos további információkért tekintse meg a következő referenciadokumentációt: