Bagikan melalui


Latih model dengan Azure Machine Learning Python SDK (v1)

BERLAKU UNTUK: Python SDK azureml v1

Pelajari cara melampirkan sumber daya komputasi Azure ke ruang kerja Pembelajaran Mesin Azure Anda dengan SDK v1. Kemudian Anda dapat menggunakan sumber daya ini sebagai pelatihan dan inferensi komputasi target dalam tugas pembelajaran mesin Anda.

Di artikel ini, pelajari cara menyiapkan ruang kerja Anda untuk menggunakan sumber daya komputasi ini:

  • Komputer lokal Anda
  • Komputer virtual jarak jauh
  • Kumpulan Apache Spark (didukung olehAzure Synapse Analytics)
  • Azure HDInsight
  • Azure Batch
  • Azure Databricks - digunakan sebagai target komputasi pelatihan hanya dalam alur pembelajaran mesin
  • Azure Data Lake Analytics
  • Azure Container Instance
  • Azure Machine Learning Kubernetes

Untuk menggunakan target komputasi yang dikelola oleh Azure Machine Learning, lihat:

Penting

Item dalam artikel ini yang ditandai sebagai "pratinjau" saat ini dalam pratinjau publik. Versi pratinjau disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Prasyarat

Batasan

  • Jangan membuat beberapa lampiran simultan ke komputasi yang sama dari ruang kerja Anda. Misalnya, melampirkan satu kluster Azure Kubernetes Service ke ruang kerja menggunakan dua nama berbeda. Setiap lampiran baru akan merusak lampiran sebelumnya yang sudah ada.

    Jika Anda ingin memasang kembali target komputasi, misalnya untuk mengubah TLS atau pengaturan konfigurasi kluster lainnya, Anda harus terlebih dahulu menghapus lampiran yang ada.

Apa yang dimaksud dengan target komputasi?

Dengan Azure Machine Learning, Anda dapat melatih model Anda di berbagai sumber daya atau lingkungan, yang secara kolektif disebut sebagai target komputasi. Target komputasi adalah mesin lokal atau sumber daya cloud, seperti Azure Machine Learning Compute, Azure HDInsight, atau mesin virtual jarak jauh. Anda juga menggunakan target komputasi untuk penyebaran model seperti yang dijelaskan di "Di mana dan bagaimana menerapkan model Anda".

Komputer lokal

Ketika Anda menggunakan komputer lokal Anda untuk pelatihan, tidak perlu membuat target komputasi. Cukup kirimkan pelatihan dari mesin lokal Anda.

Ketika Anda menggunakan komputer lokal Anda untuk inferensi, Anda harus menginstal Docker. Untuk melakukan penyebaran, gunakan LocalWebservice.deploy_configuration() untuk menentukan port yang akan digunakan layanan web. Kemudian gunakan proses penyebaran normal seperti yang dijelaskan dalam Menyebarkan model dengan Azure Machine Learning.

Komputer virtual jarak jauh

Azure Machine Learning juga mendukung pemasangan Azure Virtual Machine. VM harus merupakan Azure Data Science Virtual Machine (DSVM). VM menawarkan pilihan alat dan kerangka kerja yang dikuratori untuk pengembangan pembelajaran mesin siklus hidup penuh. Untuk informasi selengkapnya tentang cara menggunakan DSVM dengan Azure Machine Learning, lihat Mengonfigurasi lingkungan pengembangan.

Tip

Alih-alih VM jarak jauh, sebaiknya gunakan instans komputasi Azure Machine Learning. Ini adalah solusi komputasi berbasis cloud yang dikelola sepenuhnya khusus untuk Azure Machine Learning. Untuk informasi selengkapnya, lihat membuat dan mengelola instans komputasi Azure Machine Learning.

  1. Buat:Azure Machine Learning tidak dapat membuat VM jarak jauh untuk Anda. Sebagai gantinya, Anda harus membuat VM lalu melampirkannya ke ruang kerja Azure Machine Learning Anda. Untuk informasi tentang membuat DSVM, lihat Menyediakan Mesin Virtual Data Science untuk Linux (Ubuntu).

    Peringatan

    Azure Machine Learning hanya mendukung mesin virtual yang menjalankan Ubuntu. Saat membuat VM atau memilih VM yang ada, Anda harus memilih VM yang menggunakan Ubuntu.

    Azure Machine Learning juga mengharuskan komputer virtual memiliki alamat IP publik.

  2. Lampirkan: Lampirkan DSVM ke ruang kerja Anda menggunakan Azure Pembelajaran Mesin studio.

    Peringatan

    Jangan membuat beberapa lampiran simultan ke DSVM yang sama dari ruang kerja Anda. Setiap lampiran baru akan merusak lampiran sebelumnya yang sudah ada.

  3. Konfigurasikan: Buat konfigurasi jalankan untuk target komputasi DSVM. Docker dan conda digunakan untuk membuat dan mengonfigurasi lingkungan pelatihan pada DSVM.

    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) 
    

Tip

Jika Anda ingin menghapus (mencopot) VM dari ruang kerja Anda, gunakan metode RemoteCompute.detach().

Azure Machine Learning tidak menghapus VM untuk Anda. Anda harus menghapus VM secara manual menggunakan portal Azure, CLI, atau SDK untuk VM Azure.

Kumpulan Apache Spark

Integrasi Azure Synapse Analytics dengan Azure Machine Learning (pratinjau) memungkinkan Anda melampirkan kumpulan Apache Spark yang didukung oleh Azure Synapse untuk eksplorasi dan persiapan data interaktif. Dengan integrasi ini, Anda dapat memiliki komputasi khusus untuk perselisihan data dalam skala besar. Untuk informasi selengkapnya, lihat Cara melampirkan kumpulan Apache Spark yang didukung oleh Azure Synapse Analytics.

Azure HDInsight

Azure HDInsight adalah platform populer untuk analitik data besar. Platform ini menyediakan Apache Spark, yang dapat digunakan untuk melatih model Anda.

  1. Buat: Azure Machine Learning tidak dapat membuat kluster HDInsight untuk Anda. Sebagai gantinya, Anda harus membuat kluster lalu melampirkannya ke ruang kerja Azure Machine Learning Anda. Untuk informasi selengkapnya, lihat Membuat Kluster Spark di HDInsight.

    Peringatan

    Azure Machine Learning memerlukan kluster HDInsight untuk memiliki alamat IP publik.

    Saat membuat kluster, Anda harus menentukan nama pengguna dan kata sandi SSH. Perhatikan nilai-nilai ini, karena Anda membutuhkannya untuk menggunakan HDInsight sebagai target komputasi.

    Setelah kluster dibuat, sambungkan dengan nama host hostname <clustername>-ssh.azurehdinsight.net, di mana <clustername> adalah nama kluster yang Anda sediakan.

  2. Lampirkan: Lampirkan kluster HDInsight ke ruang kerja Anda menggunakan Azure Pembelajaran Mesin studio.

    Peringatan

    Jangan membuat beberapa lampiran simultan ke HDInsight yang sama dari ruang kerja Anda. Setiap lampiran baru akan merusak lampiran sebelumnya yang sudah ada.

  3. Konfigurasikan: Buat konfigurasi jalankan untuk target komputasi HDI.

    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
    

Tip

Jika Anda ingin menghapus (mencopot) kluster HDInsight dari ruang kerja, gunakan metode HDInsightCompute.detach().

Azure Machine Learning tidak menghapus kluster HDInsight untuk Anda. Anda harus menghapus kluster HDInsight secara manual menggunakan portal Azure, CLI, atau SDK untuk Azure HDInsight.

Azure Batch

Azure Batch digunakan untuk menjalankan aplikasi paralel berskala besar dan komputasi performa tinggi (HPC) secara efisien di cloud. AzureBatchStep dapat digunakan dalam Alur Azure Machine Learning untuk mengirimkan pekerjaan ke kumpulan mesin Azure Batch.

Untuk melampirkan Azure Batch sebagai target komputasi, Anda harus menggunakan Azure Machine Learning SDK dan memberikan informasi berikut:

  • Nama komputasi Azure Batch: Nama bersahabat yang akan digunakan untuk komputasi dalam ruang kerja
  • Nama akun Azure Batch: Nama dari akun Azure Batch
  • Grup Sumber Daya: Grup sumber daya yang berisi akun Azure Batch.

Kode berikut menunjukkan cara melampirkan Azure Batch sebagai target komputasi:

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))

Peringatan

Jangan membuat beberapa lampiran simultan ke Azure Batch yang sama dari ruang kerja Anda. Setiap lampiran baru akan merusak lampiran sebelumnya yang sudah ada.

Azure Databricks

Azure Databricks adalah lingkungan berbasis Apache Spark di cloud Azure. Ini dapat digunakan sebagai target komputasi dengan alur Azure Machine Learning.

Penting

Pembelajaran Mesin Microsoft Azure tidak dapat membuat target komputasi Azure Databricks. Sebagai gantinya, Anda harus membuat ruang kerja Azure Databricks, lalu melampirkannya ke ruang kerja Azure Machine Learning Anda. Untuk membuat sumber daya ruang kerja, lihat dokumen Menjalankan pekerjaan Spark di Azure Databricks.

Untuk melampirkan ruang kerja Azure Databricks dari langganan Azure yang berbeda, Anda (akun Microsoft Entra Anda) harus diberikan peran Kontributor di ruang kerja Azure Databricks. Periksa akses Anda di portal Azure.

Untuk melampirkan Azure Databricks sebagai target komputasi, berikan informasi berikut:

  • Nama komputasi Databricks: Nama yang ingin Anda tetapkan ke sumber daya komputasi ini.
  • Nama ruang kerja Databricks: Nama dari ruang kerja Azure Databricks.
  • Token akses Databricks: Token akses yang digunakan untuk mengautentikasi ke Azure Databricks. Untuk membuat token akses, lihat dokumen Autentikasi.

Kode berikut ini menunjukkan cara melampirkan Azure Databricks sebagai target komputasi dengan Azure Machine Learning SDK:

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)

Untuk contoh yang lebih rinci, lihat contoh buku catatan di GitHub.

Peringatan

Jangan membuat beberapa lampiran simultan ke Azure Databricks yang sama dari ruang kerja Anda. Setiap lampiran baru akan merusak lampiran sebelumnya yang sudah ada.

Azure Data Lake Analytics

Azure Data Lake Analytics adalah platform analitik data besar di cloud Azure. Ini dapat digunakan sebagai target komputasi dengan alur Azure Machine Learning.

Membuat akun Azure Data Lake Analytics sebelum menggunakannya. Untuk membuat sumber daya ini, lihat dokumen Mulai menggunakan Azure Data Lake Analytics.

Untuk melampirkan Data Lake Analytics sebagai target komputasi, Anda harus menggunakan Azure Machine Learning SDK dan memberikan informasi berikut:

  • Nama komputasi: Nama yang ingin Anda tetapkan ke sumber daya komputasi ini.
  • Grup Sumber Daya: Grup sumber daya yang berisi akun Data Lake Analytics.
  • Nama akun: Nama akun dari Data Lake Analytics.

Kode berikut menunjukkan cara melampirkan Data Lake Analytics sebagai target komputasi:

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)

Untuk contoh yang lebih rinci, lihat contoh buku catatan di GitHub.

Peringatan

Jangan membuat beberapa lampiran simultan ke ADLA yang sama dari ruang kerja Anda. Setiap lampiran baru akan merusak lampiran sebelumnya yang sudah ada.

Tip

Alur Azure Machine Learning hanya dapat berfungsi dengan data yang disimpan di penyimpanan data default akun Data Lake Analytics. Jika data yang perlu Anda kerjakan berada di penyimpanan non-default, Anda bisa menggunakan DataTransferStep untuk menyalin data sebelum pelatihan.

Azure Container Instance

Azure Container Instances (ACI) dibuat secara dinamis saat Anda menyebarkan model. Anda tidak dapat membuat atau melampirkan ACI ke ruang kerja dengan cara lain. Untuk informasi selengkapnya, lihat Menerapkan model ke Azure Container Instances.

Kubernetes

Azure Machine Learning memberi Anda opsi berikut untuk melampirkan kluster Kubernetes Anda sendiri untuk pelatihan dan inferensi. Lihat Mengonfigurasi kluster Kubernetes untuk Azure Machine Learning.

Untuk melepaskan kluster Kubernetes dari ruang kerja Anda, gunakan metode berikut:

compute_target.detach()

Peringatan

Melepaskan kluster tidak menghapus kluster. Untuk menghapus kluster Azure Kubernetes Service, lihat Menggunakan Azure CLI dengan AKS. Untuk menghapus kluster Kubernetes yang didukung Azure Arc, lihat mulai cepat Azure Arc.

Contoh buku catatan

Lihat buku catatan ini untuk contoh pelatihan dengan berbagai target komputasi:

Pelajari cara menjalankan notebook dengan mengikuti artikel Menggunakan notebook Jupyter untuk menjelajahi layanan ini.

Langkah berikutnya