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:
- Azure Machine Tanulás számítási példány
- Azure Machine Tanulás számítási fürt
- Azure Kubernetes Service cluster
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
Egy Azure Machine Learning-munkaterület. További információ: Munkaterület-erőforrások létrehozása.
Az Azure CLI-bővítmény a Machine Tanulás szolgáltatáshoz, az Azure Machine Tanulás Python SDK-hoz vagy az Azure Machine Tanulás Visual Studio Code-bővítményhez.
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.
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.
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.
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ó.
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.
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.
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
- A számítási erőforrás használatával konfigurálhat és küldhet be betanítási futtatásokat.
- Oktatóanyag: A modellek betanítása és üzembe helyezése felügyelt számítási célt használ a modellek betanítása érdekében.
- Megtudhatja, hogyan hangolhatja hatékonyan a hiperparamétereket a jobb modellek létrehozásához.
- Ha már rendelkezik betanított modellel, megtudhatja , hogyan és hol helyezhet üzembe modelleket.
- Az Azure Machine Tanulás használata azure-beli virtuális hálózatokkal