Megosztás a következőn keresztül:


Modellek betanítása az Azure Machine Learning CLI-vel, az SDK-val és a REST API-val

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

Az Azure Machine Learning többféle módot kínál az ML-betanítási feladatok beküldésére. Ebből a cikkből megtudhatja, 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 Learninghez.
  • 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 Learning 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 használatához telepítse az Azure Machine Learning SDK v2 for Pythont.

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

A jelen cikkben szereplő kódrészletek az Azure Machine Learning-példák GitHub-adattárában található példákon 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ének idejé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

Amikor a felhőben tanít be, csatlakoznia kell az Azure Machine Learning-munkaterülethez, és ki kell választania egy számítási erőforrást a betanítási feladat futtatásához.

1. Csatlakozás a munkaterülethez

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. A MLClient névtérből származó azure.ai.ml részletek segítségével megszerezheti a szükséges Azure Machine Learning-munkaterülethez tartozó referencia-hozzáférést. A hitelesítéshez használja az alapértelmezett Azure-hitelesítést. A hitelesítő adatok konfigurálásáról és a munkaterülethez való csatlakozásról ebben a példában talál további információt.

#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 Learning számítási fürt egy teljes mértékben felügyelt számítási erőforrás, amellyel futtathatja a betanítási feladatot. Az alábbi példákban egy számítástechnikai fürtöt hoz létre, amelynek neve cpu-cluster.

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 használjon egy command olyan parancsot, amely végrehajtja a main.py Alatt található ./sdk/python/jobs/single-step/lightgbm/iris/src/Python-szkriptet. A parancsot job formájában küldi el az Azure Machine Learningnek.

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

Az előző 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 - parancs, amelyet futtatni kell.
  • environment - a betanítási szkript futtatásához szükséges környezet. Ebben a példában az Azure Machine Learning által AzureML-lightgbm-3.3@latestbiztosított, válogatott vagy kész környezetet használjuk. 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 command kifejezés használatával hivatkozzon a ${{inputs.<input_name>}} bemenetekre. Ha fájlokat vagy mappákat szeretne bemenetként használni, használja 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 szolgáltatás egy URL-címet ad vissza a feladat állapotához az Azure Machine Learning 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 Learning-munkaterületen.

Tipp.

A betanítási feladat visszaad egy tulajdonságot name . Használja ezt a nevet a modell elérési útjának részeként.

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 Learning-példák GitHub-adattárát.

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: