Share via


Train models with the Azure Machine Learning Python SDK (v1)

ÉRVÉNYES:Python SDK azureml v1

Megtudhatja, hogyan csatolhat Azure számítási erőforrásokat az Azure Machine Tanulás-munkaterülethez az SDK v1 használatával. Ezután ezeket az erőforrásokat használhatja betanítási és következtetési számítási célokként a gépi tanulási feladatokban.

Ebből a cikkből megtudhatja, hogyan állíthatja be a munkaterületet az alábbi számítási erőforrások használatára:

  • A helyi számítógép
  • Remote virtual machines
  • Apache Spark-készletek (az Azure Synapse Analytics segítségével)
  • Azure HDInsight
  • Azure Batch
  • Azure Databricks – csak gépi tanulási folyamatokban használható betanítási számítási célként
  • Azure Data Lake Analytics
  • Azure Container Instance
  • Azure Machine Tanulás Kubernetes

Az Azure Machine Tanulás által felügyelt számítási célok használatához lásd:

Fontos

A cikkben "előzetes verzióként" megjelölt elemek jelenleg nyilvános előzetes verzióban érhetők el. Az előzetes verzió szolgáltatásszint-szerződés nélkül érhető el, és éles számítási feladatokhoz nem ajánlott. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Előfeltételek

Korlátozások

  • Ne hozzon létre több egyidejű mellékletet ugyanahhoz a számításhoz a munkaterületről. Például egy Azure Kubernetes Service-fürt csatolása egy munkaterülethez két különböző névvel. Minden új melléklet megszakítja az előző melléklet(ek)et.

    Ha újra szeretne csatlakozni egy számítási célhoz, például módosítani szeretné a TLS-t vagy más fürtkonfigurációs beállítást, először el kell távolítania a meglévő mellékletet.

Mi az a számítási cél?

Az Azure Machine Tanulás segítségével különböző erőforrásokon vagy környezeteken taníthatja be a modellt, más néven számítási célokra. A számítási cél lehet helyi gép vagy felhőerőforrás, például Azure Machine Tanulás Compute, Azure HDInsight vagy távoli virtuális gép. Számítási célokat is használhat a modell üzembe helyezéséhez a "Hol és hogyan helyezheti üzembe a modelleket" című cikkben leírtak szerint.

Helyi számítógép

Amikor a helyi számítógépet használja a betanításhoz, nincs szükség számítási cél létrehozására. Egyszerűen küldje el a betanítási futtatásokat a helyi gépről.

Ha a helyi számítógépet használja a következtetéshez, telepítve kell lennie a Dockernek. Az üzembe helyezés végrehajtásához használja LocalWebservice.deploy_configuration() a webszolgáltatás által használt portot. Ezután használja a normál üzembe helyezési folyamatot az Azure Machine-Tanulás modellek üzembe helyezésében leírtak szerint.

Remote virtual machines

Az Azure Machine Tanulás az Azure-beli virtuális gépek csatolását is támogatja. The VM must be an Azure Data Science Virtual Machine (DSVM). A virtuális gép számos eszközt és keretrendszert kínál a teljes életciklusú gépi tanulás fejlesztéséhez. A DSVM Azure Machine-Tanulás való használatáról további információt a fejlesztési környezet konfigurálása című témakörben talál.

Tipp.

Instead of a remote VM, we recommend using the Azure Machine Learning compute instance. It is a fully managed, cloud-based compute solution that is specific to Azure Machine Learning. For more information, see create and manage Azure Machine Learning compute instance.

  1. Létrehozás: Az Azure Machine Tanulás nem hozhat létre távoli virtuális gépet. Ehelyett létre kell hoznia a virtuális gépet, majd csatolnia kell azt az Azure Machine Tanulás-munkaterülethez. A DSVM létrehozásáról további információt a linuxos Adattudomány virtuális gép (Ubuntu) üzembe helyezésével kapcsolatban talál.

    Figyelmeztetés:

    Az Azure Machine Tanulás csak az Ubuntu rendszerű virtuális gépeket támogatja. When you create a VM or choose an existing VM, you must select a VM that uses Ubuntu.

    Azure Machine Learning also requires the virtual machine to have a public IP address.

  2. Csatolás: Meglévő virtuális gép számítási célként való csatolásához meg kell adnia a virtuális gép erőforrás-azonosítóját, felhasználónevét és jelszavát. A virtuális gép erőforrás-azonosítója az előfizetés azonosítójával, az erőforráscsoport nevével és a virtuális gép nevével hozható létre a következő sztringformátummal: /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.Compute/virtualMachines/<vm_name>

    from azureml.core.compute import RemoteCompute, ComputeTarget
    
    # Create the compute config 
    compute_target_name = "attach-dsvm"
    
    attach_config = RemoteCompute.attach_configuration(resource_id='<resource_id>',
                                                    ssh_port=22,
                                                    username='<username>',
                                                    password="<password>")
    
    # Attach the compute
    compute = ComputeTarget.attach(ws, compute_target_name, attach_config)
    
    compute.wait_for_completion(show_output=True)
    

    Vagy csatolhatja a DSVM-et a munkaterületéhez az Azure Machine Tanulás Studióval.

    Figyelmeztetés:

    Ne hozzon létre több egyidejű mellékletet ugyanahhoz a DSVM-hez a munkaterületről. Minden új melléklet megszakítja az előző melléklet(ek)et.

  3. Konfigurálás: Hozzon létre egy futtatási konfigurációt a DSVM számítási célhoz. A Docker és a Conda használatával hozza létre és konfigurálja a betanítási környezetet a DSVM-en.

    from azureml.core import ScriptRunConfig
    from azureml.core.environment import Environment
    from azureml.core.conda_dependencies import CondaDependencies
    
    # Create environment
    myenv = Environment(name="myenv")
    
    # Specify the conda dependencies
    myenv.python.conda_dependencies = CondaDependencies.create(conda_packages=['scikit-learn'])
    
    # If no base image is explicitly specified the default CPU image "azureml.core.runconfig.DEFAULT_CPU_IMAGE" will be used
    # To use GPU in DSVM, you should specify the default GPU base Docker image or another GPU-enabled image:
    # myenv.docker.enabled = True
    # myenv.docker.base_image = azureml.core.runconfig.DEFAULT_GPU_IMAGE
    
    # Configure the run configuration with the Linux DSVM as the compute target and the environment defined above
    src = ScriptRunConfig(source_directory=".", script="train.py", compute_target=compute, environment=myenv) 
    

Tipp.

Ha el szeretne távolítani (leválasztani) egy virtuális gépet a munkaterületről, használja a RemoteCompute.detach() metódust.

Azure Machine Learning does not delete the VM for you. You must manually delete the VM using the Azure portal, CLI, or the SDK for Azure VM.

Apache Spark-készletek

Az Azure Synapse Analytics és az Azure Machine Tanulás (előzetes verzió) integrációja lehetővé teszi, hogy az Azure Synapse által támogatott Apache Spark-készletet csatoljon az interaktív adatfeltáráshoz és -előkészítéshez. Ezzel az integrációval dedikált számítással rendelkezhet a nagy léptékű adatátszervezéshez. További információ: Az Azure Synapse Analytics által működtetett Apache Spark-készletek csatolása.

Azure HDInsight

Az Azure HDInsight a big data-elemzések népszerű platformja. A platform apache Sparkot biztosít, amely a modell betanítása érdekében használható.

  1. Létrehozás: Az Azure Machine Tanulás nem hozhat létre HDInsight-fürtöt. Instead, you must create the cluster and then attach it to your Azure Machine Learning workspace. For more information, see Create a Spark Cluster in HDInsight.

    Figyelmeztetés:

    Azure Machine Learning requires the HDInsight cluster to have a public IP address.

    A fürt létrehozásakor meg kell adnia egy SSH-felhasználónevet és jelszót. Vegye figyelembe ezeket az értékeket, mivel szüksége van rájuk, hogy a HDInsightot számítási célként használják.

    A fürt létrehozása után csatlakozzon hozzá a fürtnév-ssh.azurehdinsight.net állomásnévvel<>, ahol <a fürt neve> a fürthöz megadott név.

  2. Csatolás: A HDInsight-fürt számítási célként való csatolásához meg kell adnia a HDInsight-fürt erőforrás-azonosítóját, felhasználónevét és jelszavát. A HDInsight-fürt erőforrás-azonosítója az előfizetés azonosítójával, az erőforráscsoport nevével és a HDInsight-fürt nevével hozható létre a következő sztringformátum használatával: /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.HDInsight/clusters/<cluster_name>

    from azureml.core.compute import ComputeTarget, HDInsightCompute
    from azureml.exceptions import ComputeTargetException
    
    try:
    # if you want to connect using SSH key instead of username/password you can provide parameters private_key_file and private_key_passphrase
    
    attach_config = HDInsightCompute.attach_configuration(resource_id='<resource_id>',
                                                          ssh_port=22, 
                                                          username='<ssh-username>', 
                                                          password='<ssh-pwd>')
    hdi_compute = ComputeTarget.attach(workspace=ws, 
                                       name='myhdi', 
                                       attach_configuration=attach_config)
    
    except ComputeTargetException as e:
    print("Caught = {}".format(e.message))
    
    hdi_compute.wait_for_completion(show_output=True)
    

    Vagy csatolhatja a HDInsight-fürtöt a munkaterülethez az Azure Machine Tanulás Studio használatával.

    Figyelmeztetés:

    Ne hozzon létre több egyidejű mellékletet ugyanarra a HDInsightra a munkaterületről. Minden új melléklet megszakítja az előző melléklet(ek)et.

  3. Konfigurálás: Hozzon létre egy futtatási konfigurációt a HDI számítási célhoz.

    from azureml.core.runconfig import RunConfiguration
    from azureml.core.conda_dependencies import CondaDependencies
    
    
    # use pyspark framework
    run_hdi = RunConfiguration(framework="pyspark")
    
    # Set compute target to the HDI cluster
    run_hdi.target = hdi_compute.name
    
    # specify CondaDependencies object to ask system installing numpy
    cd = CondaDependencies()
    cd.add_conda_package('numpy')
    run_hdi.environment.python.conda_dependencies = cd
    

Tipp.

Ha el szeretne távolítani (leválasztani) egy HDInsight-fürtöt a munkaterületről, használja a HDInsightCompute.detach() metódust.

Azure Machine Learning does not delete the HDInsight cluster for you. You must manually delete it using the Azure portal, CLI, or the SDK for Azure HDInsight.

Azure Batch

Az Azure Batch használatával nagy léptékű párhuzamos és nagy teljesítményű számítási (HPC) alkalmazásokat futtathat hatékonyan a felhőben. Az AzureBatchStep az Azure Machine Tanulás Pipeline-ban használható a feladatok Azure Batch-készletbe való beküldéséhez.

Az Azure Batch számítási célként való csatolásához az Azure Machine Tanulás SDK-t kell használnia, és meg kell adnia a következő információkat:

  • Azure Batch számítási név: A munkaterületen belüli számításhoz használandó rövid név
  • Azure Batch-fiók neve: Az Azure Batch-fiók neve
  • Erőforráscsoport: Az Azure Batch-fiókot tartalmazó erőforráscsoport.

Az alábbi kód bemutatja, hogyan csatolható az Azure Batch számítási célként:

from azureml.core.compute import ComputeTarget, BatchCompute
from azureml.exceptions import ComputeTargetException

# Name to associate with new compute in workspace
batch_compute_name = 'mybatchcompute'

# Batch account details needed to attach as compute to workspace
batch_account_name = "<batch_account_name>"  # Name of the Batch account
# Name of the resource group which contains this account
batch_resource_group = "<batch_resource_group>"

try:
    # check if the compute is already attached
    batch_compute = BatchCompute(ws, batch_compute_name)
except ComputeTargetException:
    print('Attaching Batch compute...')
    provisioning_config = BatchCompute.attach_configuration(
        resource_group=batch_resource_group, account_name=batch_account_name)
    batch_compute = ComputeTarget.attach(
        ws, batch_compute_name, provisioning_config)
    batch_compute.wait_for_completion()
    print("Provisioning state:{}".format(batch_compute.provisioning_state))
    print("Provisioning errors:{}".format(batch_compute.provisioning_errors))

print("Using Batch compute:{}".format(batch_compute.cluster_resource_id))

Figyelmeztetés:

Ne hozzon létre több egyidejű mellékletet ugyanarra az Azure Batchre a munkaterületről. Minden új melléklet megszakítja az előző melléklet(ek)et.

Azure Databricks

Az Azure Databricks egy Apache Spark-alapú környezet az Azure-felhőben. It can be used as a compute target with an Azure Machine Learning pipeline.

Fontos

Azure Machine Learning cannot create an Azure Databricks compute target. Instead, you must create an Azure Databricks workspace, and then attach it to your Azure Machine Learning workspace. To create a workspace resource, see the Run a Spark job on Azure Databricks document.

Egy Másik Azure-előfizetésből származó Azure Databricks-munkaterület csatolásához Önnek (a Microsoft Entra-fiókjának) meg kell adni a Közreműködő szerepkört az Azure Databricks-munkaterületen. Check your access in the Azure portal.

Az Azure Databricks számítási célként való csatolásához adja meg a következő információkat:

  • Databricks számítási név: A számítási erőforráshoz hozzárendelni kívánt név.
  • Databricks-munkaterület neve: Az Azure Databricks-munkaterület neve.
  • Databricks hozzáférési jogkivonat: Az Azure Databricks hitelesítéséhez használt hozzáférési jogkivonat. Hozzáférési jogkivonat létrehozásához tekintse meg a hitelesítési dokumentumot.

Az alábbi kód bemutatja, hogyan csatolható az Azure Databricks számítási célként az Azure Machine Tanulás SDK-hoz:

import os
from azureml.core.compute import ComputeTarget, DatabricksCompute
from azureml.exceptions import ComputeTargetException

databricks_compute_name = os.environ.get(
    "AML_DATABRICKS_COMPUTE_NAME", "<databricks_compute_name>")
databricks_workspace_name = os.environ.get(
    "AML_DATABRICKS_WORKSPACE", "<databricks_workspace_name>")
databricks_resource_group = os.environ.get(
    "AML_DATABRICKS_RESOURCE_GROUP", "<databricks_resource_group>")
databricks_access_token = os.environ.get(
    "AML_DATABRICKS_ACCESS_TOKEN", "<databricks_access_token>")

try:
    databricks_compute = ComputeTarget(
        workspace=ws, name=databricks_compute_name)
    print('Compute target already exists')
except ComputeTargetException:
    print('compute not found')
    print('databricks_compute_name {}'.format(databricks_compute_name))
    print('databricks_workspace_name {}'.format(databricks_workspace_name))
    print('databricks_access_token {}'.format(databricks_access_token))

    # Create attach config
    attach_config = DatabricksCompute.attach_configuration(resource_group=databricks_resource_group,
                                                           workspace_name=databricks_workspace_name,
                                                           access_token=databricks_access_token)
    databricks_compute = ComputeTarget.attach(
        ws,
        databricks_compute_name,
        attach_config
    )

    databricks_compute.wait_for_completion(True)

For a more detailed example, see an example notebook on GitHub.

Figyelmeztetés:

Ne hozzon létre több egyidejű mellékletet ugyanarra az Azure Databricksre a munkaterületről. Minden új melléklet megszakítja az előző melléklet(ek)et.

Azure Data Lake Analytics

Azure Data Lake Analytics is a big data analytics platform in the Azure cloud. It can be used as a compute target with an Azure Machine Learning pipeline.

Create an Azure Data Lake Analytics account before using it. To create this resource, see the Get started with Azure Data Lake Analytics document.

A Data Lake Analytics számítási célként való csatolásához az Azure Machine Tanulás SDK-t kell használnia, és meg kell adnia a következő információkat:

  • Számítási név: A számítási erőforráshoz hozzárendelni kívánt név.
  • Erőforráscsoport: A Data Lake Analytics-fiókot tartalmazó erőforráscsoport.
  • Fióknév: A Data Lake Analytics-fiók neve.

Az alábbi kód bemutatja, hogyan csatolható a Data Lake Analytics számítási célként:

import os
from azureml.core.compute import ComputeTarget, AdlaCompute
from azureml.exceptions import ComputeTargetException


adla_compute_name = os.environ.get(
    "AML_ADLA_COMPUTE_NAME", "<adla_compute_name>")
adla_resource_group = os.environ.get(
    "AML_ADLA_RESOURCE_GROUP", "<adla_resource_group>")
adla_account_name = os.environ.get(
    "AML_ADLA_ACCOUNT_NAME", "<adla_account_name>")

try:
    adla_compute = ComputeTarget(workspace=ws, name=adla_compute_name)
    print('Compute target already exists')
except ComputeTargetException:
    print('compute not found')
    print('adla_compute_name {}'.format(adla_compute_name))
    print('adla_resource_id {}'.format(adla_resource_group))
    print('adla_account_name {}'.format(adla_account_name))
    # create attach config
    attach_config = AdlaCompute.attach_configuration(resource_group=adla_resource_group,
                                                     account_name=adla_account_name)
    # Attach ADLA
    adla_compute = ComputeTarget.attach(
        ws,
        adla_compute_name,
        attach_config
    )

    adla_compute.wait_for_completion(True)

For a more detailed example, see an example notebook on GitHub.

Figyelmeztetés:

Ne hozzon létre több egyidejű mellékletet ugyanarra az ADLA-ra a munkaterületről. Minden új melléklet megszakítja az előző melléklet(ek)et.

Tipp.

Az Azure Machine Tanulás-folyamatok csak a Data Lake Analytics-fiók alapértelmezett adattárában tárolt adatokkal dolgozhatnak. Ha a használni kívánt adatok nem alapértelmezett tárolóban találhatóak, betanítás előtt másolhatja DataTransferStep az adatokat.

Azure Container Instance

Az Azure Container Instances (ACI) dinamikusan jön létre egy modell üzembe helyezésekor. Más módon nem hozhat létre és nem csatolhat ACI-t a munkaterülethez. További információ: Modell üzembe helyezése az Azure Container Instancesben.

Kubernetes

Az Azure Machine Tanulás lehetővé teszi saját Kubernetes-fürtök csatlakoztatását betanításhoz és következtetéshez. Lásd: Kubernetes-fürt konfigurálása az Azure Machine-Tanulás.

Kubernetes-fürt munkaterületről való leválasztásához használja a következő módszert:

compute_target.detach()

Figyelmeztetés:

A fürt leválasztása nem törli a fürtöt. Az Azure Kubernetes Service-fürt törléséről az Azure CLI használata az AKS-sel című témakörben olvashat. Az Azure Arc-kompatibilis Kubernetes-fürtök törléséhez tekintse meg az Azure Arc rövid útmutatót.

Jegyzetfüzet-példák

A különböző számítási célokkal kapcsolatos betanítási példákért tekintse meg ezeket a jegyzetfüzeteket:

A szolgáltatás megismerése Jupyter-notebookok használatával cikk útmutatását követve megtanulhatja, hogyan futtathat notebookokat.

Következő lépések