Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Layanan Azure DevOps | Azure DevOps Server 2022 dan Azure DevOps Server 2019
Anda dapat menggunakan alur Azure DevOps untuk mengotomatiskan siklus hidup pembelajaran mesin. Beberapa operasi yang dapat Anda otomatisasi adalah:
- Persiapan data (ekstrak, transformasi, operasi pemuatan).
- Melatih model pembelajaran mesin dengan peluasan skala dan peningkatan skala sesuai permintaan.
- Penyebaran model pembelajaran mesin sebagai layanan web publik atau privat.
- Memantau model pembelajaran mesin yang disebarkan (seperti untuk performa atau analisis penyimpangan data).
Artikel ini menjelaskan cara membuat alur Azure yang membangun model pembelajaran mesin dan menyebarkannya ke Azure Machine Learning.
Tutorial ini menggunakan ekstensi Azure Machine Learning Python SDK v2 dan Azure CLI ekstensi ML v2.
Prasyarat
- Selesaikan tutorial Membuat sumber daya untuk memulai untuk:
- Membuat ruang kerja.
- Buat kluster komputasi berbasis cloud untuk digunakan untuk melatih model Anda.
- Python 3.10 atau yang lebih baru diinstal untuk menjalankan skrip ML SDK v2 Azure secara lokal.
- Instal ekstensi Azure Machine Learning untuk Azure Pipelines. Anda dapat menginstal ekstensi ini dari Visual Studio marketplace.
Langkah 1: Dapatkan kode
Fork repositori berikut dari GitHub:
https://github.com/azure/azureml-examples
Langkah 2: Membuat proyek
Masuk ke Azure. Cari dan pilih organisasi Azure DevOps. Pilih Tampilkan organisasi saya. Pilih organisasi yang ingin Anda gunakan.
Dalam organisasi yang Anda pilih, buat proyek. Jika Anda tidak memiliki proyek apa pun di organisasi, Anda akan melihat layar Buat proyek untuk memulai . Jika tidak, pilih tombol Proyek Baru di pojok kanan atas dashboard.
Langkah 3: Membuat koneksi layanan
Anda dapat menggunakan koneksi layanan yang ada.
Anda memerlukan koneksi Azure Resource Manager untuk mengautentikasi dengan portal Azure.
Di Azure DevOps, pilih pengaturan Project, lalu pilih koneksi Service.
Pilih Buat koneksi layanan, pilih Azure Resource Manager, lalu pilih Baru.
Gunakan nilai default untuk Jenis identitas dan Kredensial.
Buat koneksi layanan Anda. Atur tingkat cakupan, langganan, grup sumber daya, dan nama koneksi pilihan Anda.
Langkah 4: Membuat alur
Buka Alur, lalu pilih Buat Alur.
Pilih GitHub sebagai lokasi kode sumber Anda.
Anda mungkin diarahkan ke GitHub untuk masuk. Jika sudah, masukkan kredensial GitHub Anda.
Saat Anda melihat daftar repositori, pilih repositori Anda.
Anda mungkin dialihkan ke GitHub untuk menginstal aplikasi Azure Pipelines. Jika sudah, pilih Setujui & instal.
Pilih Starter pipeline. Anda memperbarui templat jalur pipa awal.
Langkah 5: Buat alur YAML untuk mengirimkan pekerjaan Azure Machine Learning
Hapus starter pipeline dan ganti dengan kode YAML berikut. Dalam proses ini, Anda:
- Gunakan tugas versi Python untuk menyiapkan Python 3.10 dan menginstal persyaratan SDK.
- Gunakan tugas Bash untuk menjalankan skrip bash untuk Azure Machine Learning SDK dan CLI.
- Gunakan tugas Azure CLI untuk mengirimkan pekerjaan Azure Machine Learning.
Pilih salah satu tab berikut, bergantung pada apakah Anda menggunakan koneksi layanan Azure Resource Manager atau koneksi layanan generik. Dalam file YAML aliran, ganti nilai variabel dengan nilai yang sesuai dengan sumber daya Anda.
name: submit-azure-machine-learning-job
trigger:
- none
variables:
service-connection: 'machine-learning-connection' # replace with your service connection name
resource-group: 'machinelearning-rg' # replace with your resource group name
workspace: 'docs-ws' # replace with your workspace name
jobs:
- job: SubmitAzureMLJob
displayName: Submit AzureML Job
timeoutInMinutes: 300
pool:
vmImage: ubuntu-latest
steps:
- task: UsePythonVersion@0
displayName: Use Python >=3.10
inputs:
versionSpec: '>=3.10'
- bash: |
set -ex
az version
az extension add -n ml
displayName: 'Add AzureML Extension'
- task: AzureCLI@2
name: submit_azureml_job_task
displayName: Submit AzureML Job Task
inputs:
azureSubscription: $(service-connection)
workingDirectory: 'cli/jobs/pipelines-with-components/nyc_taxi_data_regression'
scriptLocation: inlineScript
scriptType: bash
inlineScript: |
# submit component job and get the run name
job_name=$(az ml job create --file single-job-pipeline.yml -g $(resource-group) -w $(workspace) --query name --output tsv)
# set output variable for next task
echo "##vso[task.setvariable variable=JOB_NAME;isOutput=true;]$job_name"
Langkah 6: Tunggu pekerjaan Azure Machine Learning selesai
Di langkah 5, Anda menambahkan tugas untuk mengajukan pekerjaan Azure Machine Learning. Dalam langkah ini, Anda menambahkan pekerjaan lain yang menunggu pekerjaan Azure Machine Learning selesai.
Penting
Kedua mekanisme tunggu dalam langkah ini (tugas AzureMLJobWaitTask@1 pada tab Azure Resource Manager dan pendaftaran webhook InvokeRESTAPI@1 pada tab Generik) bergantung pada Azure Machine Learning mengirim pemberitahuan RunTerminated kembali ke Azure DevOps ketika pekerjaan selesai. Jalur pemberitahuan ini saat ini sedang diselidiki dan mungkin tidak selesai seperti yang diharapkan, menyebabkan pekerjaan server WaitFor* kehabisan waktu alih-alih mencerminkan status pekerjaan Azure Machine Learning. Jika Anda menemukan perilaku ini, periksa status pekerjaan dari pekerjaan agen dengan menggunakan az ml job show --query status hingga status terminal (Completed, Failed, atau Canceled) dikembalikan, dan keluar dari tugas dengan status yang cocok.
Jika Anda menggunakan koneksi layanan Resource Manager, Anda dapat menggunakan ekstensi Pembelajaran Mesin. Anda dapat mencari ekstensi ini di Marketplace ekstensi Azure DevOps atau langsung masuk ke halaman ekstensi. Instal ekstensi Pembelajaran Mesin.
Penting
Jangan instal ekstensi Pembelajaran Mesin (klasik). Ini adalah ekstensi lama yang tidak menyediakan fungsionalitas yang sama.
Di jendela Tinjauan Pipeline, tambahkan Server Job. Di bagian langkah-langkah pekerjaan, pilih Perlihatkan asisten, lalu cari AzureML. Pilih tugas Tunggu Pekerjaan AzureML , lalu berikan informasi untuk pekerjaan tersebut.
Tugas ini memiliki empat input: Service Connection, Azure Resource Group Name, AzureML Workspace Name, dan AzureML Job Name. Berikan input ini. YAML yang dihasilkan untuk langkah-langkah ini mirip dengan contoh berikut:
Catatan
- Tugas tunggu pekerjaan Azure Machine Learning berjalan pada pekerjaan server, yang tidak menggunakan sumber daya kumpulan agen yang mahal dan tidak memerlukan biaya tambahan. Pekerjaan server (ditunjukkan oleh
pool: server) berjalan pada komputer yang sama dengan alur Anda. Untuk informasi selengkapnya, lihat Pekerjaan server. - Satu tugas tunggu dari Azure Machine Learning hanya dapat menunggu satu pekerjaan. Anda perlu menyiapkan tugas terpisah untuk setiap pekerjaan yang ingin Anda nantikan.
- Tugas tunggu pekerjaan Azure Machine Learning dapat menunggu maksimal dua hari. Batas ini adalah batas keras yang ditetapkan oleh alur Azure DevOps.
- job: WaitForAzureMLJobCompletion
displayName: Wait for AzureML Job Completion
pool: server
timeoutInMinutes: 0
dependsOn: SubmitAzureMLJob
variables:
# Save the name of the azureMl job submitted in the previous step to a variable. It will be used as an input to the AzureML Job Wait task.
azureml_job_name_from_submit_job: $[ dependencies.SubmitAzureMLJob.outputs['submit_azureml_job_task.JOB_NAME'] ]
steps:
- task: AzureMLJobWaitTask@1
inputs:
serviceConnection: $(service-connection)
resourceGroupName: $(resource-group)
azureMLWorkspaceName: $(workspace)
azureMLJobName: $(azureml_job_name_from_submit_job)
Langkah 7: Kirim pipeline dan verifikasi pengoperasian pipeline Anda
Pilih Simpan dan jalankan. Ketika mekanisme tunggu di Langkah 6 berfungsi seperti yang dirancang, alur menunggu pekerjaan Azure Machine Learning selesai dan mengakhiri tugas di bawah WaitForJobCompletion dengan status yang sama dengan pekerjaan Azure Machine Learning. Misalnya:
Azure Machine Learning tugas
Succeeded== Tugas Azure DevOps di bawah tugasWaitForJobCompletionSucceededAzure Machine Learning tugas
Failed== Tugas Azure DevOps di bawah tugasWaitForJobCompletionFailedAzure Machine Learning tugas
Cancelled== Tugas Azure DevOps di bawah tugasWaitForJobCompletionCancelled
Catatan
Karena masalah yang disebutkan di Langkah 6, pekerjaan WaitFor* mungkin mengalami time out, bukan mencerminkan status pekerjaan Azure Machine Learning. Gunakan Studio Azure Machine Learning untuk mengonfirmasi hasil pekerjaan aktual hingga jalur pemberitahuan dipulihkan.
Tips
Anda dapat melihat pekerjaan Azure Machine Learning lengkap di Studio Azure Machine Learning.
Membersihkan sumber daya
Jika Anda tidak berencana untuk terus menggunakan alur Anda, hapus proyek Azure DevOps Anda. Di portal Azure, hapus grup sumber daya dan instans Azure Machine Learning Anda.