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:
- Instans komputasi Azure Pembelajaran Mesin
- Kluster komputasi Azure Machine Learning
- Kluster Azure Kubernetes Service
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
Ruang kerja Azure Machine Learning. Untuk informasi selengkapnya, lihat Membuat sumber daya ruang kerja.
Ekstensi Azure CLI untuk layanan Azure Machine Learning, Azure Machine Learning Python SDK, atau Ekstensi Visual Studio Code Azure Machine Learning.
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.
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.
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.
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.
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.
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.
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
- Gunakan sumber daya komputasi untuk mengonfigurasi dan mengirimkan pelatihan.
- Tutorial: Melatih dan menyebarkan model menggunakan target komputasi terkelola untuk melatih model.
- Pelajari cara menyetel hyperparameter secara efisien untuk membuat model yang lebih baik.
- Setelah Anda memiliki model terlatih, pelajari cara dan tempat menyebarkan model.
- Menggunakan Azure Machine Learning dengan Azure Virtual Networks