Melatih model dengan Azure Pembelajaran Mesin CLI, SDK, dan REST API

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Azure Pembelajaran Mesin menyediakan beberapa cara untuk mengirimkan pekerjaan pelatihan ML. Dalam artikel ini, Anda akan mempelajari cara mengirimkan pekerjaan menggunakan metode berikut:

  • Ekstensi Azure CLI untuk pembelajaran mesin: ml Ekstensi, juga disebut sebagai CLI v2.
  • Python SDK v2 untuk Azure Pembelajaran Mesin.
  • REST API: API tempat CLI dan SDK dibangun.

Prasyarat

Untuk menggunakan informasi SDK, instal Azure Pembelajaran Mesin SDK v2 untuk Python.

Mengkloning repositori contoh

Cuplikan kode dalam artikel ini didasarkan pada contoh dalam contoh Azure Pembelajaran Mesin repositori GitHub. Untuk mengkloning repositori ke lingkungan pengembangan Anda, gunakan perintah berikut:

git clone --depth 1 https://github.com/Azure/azureml-examples

Tip

Gunakan --depth 1 untuk mengkloning hanya penerapan terbaru ke repositori, yang mengurangi waktu untuk menyelesaikan operasi.

Contoh pekerjaan

Contoh dalam artikel ini menggunakan himpunan data bunga iris untuk melatih model MLFlow.

Melatih di cloud

Saat pelatihan di cloud, Anda harus tersambung ke ruang kerja Azure Pembelajaran Mesin dan memilih sumber daya komputasi yang akan digunakan untuk menjalankan pekerjaan pelatihan.

1. Hubungkan ke ruang kerja

Tip

Gunakan tab di bawah ini untuk memilih metode yang ingin Anda gunakan untuk melatih model. Memilih tab akan secara otomatis mengalihkan semua tab dalam artikel ini ke tab yang sama. Anda dapat memilih tab lain kapan saja.

Untuk menyambungkan ke ruang kerja, Anda memerlukan parameter pengidentifikasi - langganan, grup sumber daya, dan nama ruang kerja. Anda akan menggunakan detail ini di MLClient dari azure.ai.ml namespace layanan untuk mendapatkan handel ke ruang kerja Azure Pembelajaran Mesin yang diperlukan. Untuk mengautentikasi, Anda menggunakan otentikasi Azure default. Periksa contoh ini untuk detail selengkapnya tentang cara mengonfigurasi info masuk dan menyambungkan ke ruang kerja.

#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. Buat sumber daya komputasi untuk pelatihan

Catatan

Untuk mencoba komputasi tanpa server, lewati langkah ini dan lanjutkan ke 3. Kirim pekerjaan pelatihan.

Kluster komputasi Azure Pembelajaran Mesin adalah sumber daya komputasi terkelola penuh yang dapat digunakan untuk menjalankan pekerjaan pelatihan. Dalam contoh berikut, kluster komputasi bernama cpu-compute dibuat.

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. Kirim pekerjaan pelatihan

Untuk menjalankan skrip ini, Anda akan menggunakan command yang menjalankan skrip Python main.py yang terletak di bawah ./sdk/python/jobs/single-step/lightgbm/iris/src/. Perintah akan dijalankan dengan mengirimkannya sebagai job ke Azure Pembelajaran Mesin.

Catatan

Untuk menggunakan komputasi tanpa server, hapus compute="cpu-cluster" dalam kode ini.

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

Dalam contoh di atas, Anda mengonfigurasi:

  • code - jalur tempat kode untuk menjalankan perintah berada
  • command - perintah yang perlu dijalankan
  • environment - lingkungan yang diperlukan untuk menjalankan skrip pelatihan. Dalam contoh ini, kami menggunakan lingkungan yang dikumpulkan atau siap pakai yang disediakan oleh Azure Pembelajaran Mesin yang disebut AzureML-lightgbm-3.2-ubuntu18.04-py37-cpu. Kami menggunakan versi terbaru lingkungan ini dengan menggunakan direktif @latest . Anda juga dapat menggunakan lingkungan kustom dengan menentukan gambar docker dasar dan menentukan yaml conda di atasnya.
  • inputs - kamus input menggunakan pasangan nilai nama ke perintah. Kunci adalah nama untuk input dalam konteks pekerjaan dan nilai adalah nilai input. Masukan direferensikan dalam command menggunakan ekspresi ${{inputs.<input_name>}}. Untuk menggunakan file atau folder sebagai input, Anda dapat menggunakan kelas Input. Untuk informasi selengkapnya, lihat ekspresi SDK dan CLI v2.

Untuk informasi selengkapnya, lihat dokumentasi referensi.

Saat Anda mengirimkan pekerjaan, URL dikembalikan ke status pekerjaan di studio Azure Pembelajaran Mesin. Gunakan antarmuka pengguna studio untuk melihat kemajuan pekerjaan. Anda juga dapat menggunakan returned_job.status untuk memeriksa status pekerjaan saat ini.

Mendaftarkan model terlatih

Contoh berikut menunjukkan cara mendaftarkan model di ruang kerja Azure Pembelajaran Mesin Anda.

Tip

Properti name yang dikembalikan oleh pekerjaan pelatihan digunakan sebagai bagian dari jalur ke model.

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)

Langkah berikutnya

Sekarang setelah Anda memiliki model terlatih, pelajari cara menyebarkannya menggunakan titik akhir online.

Untuk contoh selengkapnya, lihat repositori GitHub contoh Azure Pembelajaran Mesin.

Untuk informasi selengkapnya tentang perintah Azure CLI, kelas Python SDK, atau REST API yang digunakan dalam artikel ini, lihat dokumentasi referensi berikut ini: