Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Makine öğrenmesi yaşam döngüsünü otomatikleştirmek için Azure DevOps işlem hattı kullanabilirsiniz. Otomatikleştirebileceğiniz işlemlerden bazıları şunlardır:
- Veri hazırlama (ayıklama, dönüştürme, yükleme işlemleri).
- İsteğe bağlı ölçeği genişletme ve ölçeği artırma ile makine öğrenmesi modellerini eğitin.
- Makine öğrenmesi modellerinin genel veya özel web hizmetleri olarak dağıtımı.
- Dağıtılan makine öğrenmesi modellerini izleme (performans veya veri kayması analizi gibi).
Bu makalede, makine öğrenmesi modeli oluşturan ve bunu Azure Machine Learning'ye dağıtan bir Azure işlem hattı oluşturma açıklanmaktadır.
Bu öğreticide Azure Machine Learning Python SDK v2 ve Azure CLI ML uzantısı v2 kullanılmaktadır.
Önkoşullar
-
Başlamak için kaynak oluşturma öğreticisini tamamlayın:
- Çalışma alanı oluşturun.
- Modelinizi eğitmek için kullanılacak bulut tabanlı bir işlem kümesi oluşturun.
- Azure ML SDK v2 betiklerini yerel olarak çalıştırmak için Python 3.10 veya üzeri yüklü.
- Azure Pipelines için Azure Machine Learning uzantısını yükleyin. Bu uzantıyı Visual Studio marketten yükleyebilirsiniz.
1. Adım: Kodu alma
Aşağıdaki depoyu GitHub’dan fork edin:
https://github.com/azure/azureml-examples
2. Adım: Proje oluşturma
Azure oturum açın. Azure DevOps kuruluşlar öğesini arayın ve seçin. Kuruluşlarımı görüntüle'yi seçin. Kullanmak istediğiniz kuruluşu seçin.
Seçtiğiniz kuruluş içinde bir proje oluşturun. Kuruluşunuzda hiç proje yoksa Başlamak için proje oluştur ekranını görürsünüz. Aksi takdirde, panonun sağ üst köşesindeki Yeni Project düğmesini seçin.
3. Adım: Hizmet bağlantısı oluşturma
Mevcut bir hizmet bağlantısını kullanabilirsiniz.
Azure portalında kimlik doğrulaması yapmak için bir Azure Resource Manager bağlantınız olmalıdır.
Azure DevOps Project settings ve ardından Service connections öğesini seçin.
Hizmet bağlantısı oluştur öğesini seçin, Azure Resource Manager'i seçin ve İleri'yi seçin.
Kimlik türü ve Kimlik Bilgisi için varsayılan değerleri kullanın.
Hizmet bağlantınızı oluşturun. Tercih ettiğiniz kapsam düzeyini, aboneliği, kaynak grubunu ve bağlantı adını ayarlayın.
4. Adım: İşlem hattı oluşturma
Boru Hatları'na gidin ve Boru Hattı Oluştur'u seçin.
Kaynak kodunuzun konumu olarak GitHub seçin.
Oturum açmak için GitHub yönlendirilebilirsiniz. Kullanıyorsanız, GitHub kimlik bilgilerinizi girin.
Depo listesini gördüğünüzde deponuzu seçin.
Azure Pipelines uygulamasını yüklemek için GitHub yönlendirilebilirsiniz. Kullanıyorsanız Onayla ve yükle'yi seçin.
Starter işlem hattını seçin. Başlangıç işlem hattı şablonunu güncelleştirirsiniz.
5. Adım: Azure Machine Learning işini göndermek için YAML işlem hattı oluşturma
Başlangıç işlem hattını silin ve aşağıdaki YAML koduyla değiştirin. Bu işlem hattında siz:
- Python 3.10'u ayarlamak ve SDK gereksinimlerini yüklemek için Python sürüm görevini kullanın.
- Azure Machine Learning SDK ve CLI için bash betiklerini çalıştırmak için Bash görevini kullanın.
- Azure Machine Learning işi göndermek için Azure CLI görevini kullanın.
Azure Resource Manager hizmet bağlantısı mı yoksa genel bir hizmet bağlantısı mı kullandığınıza bağlı olarak aşağıdaki sekmelerden birini seçin. İşlem hattı YAML'sinde değişkenlerin değerlerini kaynaklarınıza karşılık gelen değerlerle değiştirin.
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"
6. Adım: Azure Machine Learning işinin tamamlanmasını bekleyin
5. adımda, bir Azure Machine Learning görevi göndermek için bir görev eklediniz. Bu adımda, Azure Machine Learning işinin tamamlanmasını bekleyen başka bir iş eklersiniz.
Önemli
Bu adımdaki her iki bekleme mekanizması (Azure Resource Manager sekmesindeki AzureMLJobWaitTask@1 görevi ve Genel sekmesindeki InvokeRESTAPI@1 web kancası kaydı), iş bittiğinde Azure Machine Learning tarafından Azure DevOps'a bir RunTerminated bildirimi gönderilmesine bağlıdır. Bu bildirim yolu şu anda araştırılmakta olup, beklendiği gibi tamamlanmayabilir; bu da Azure Machine Learning iş durumunu yansıtmak yerine WaitFor* sunucu işinin zaman aşımına uğramasına neden olabilir. Bu davranışla karşılaşırsanız, bir terminal durumun (Completed, Failed veya Canceled) döndürüldüğünden emin olana kadar bir aracı işinden iş durumunu yoklayın ve eşleşen bir durumla görevi sonlandırın.
Resource Manager hizmet bağlantısı kullanıyorsanız Machine Learning uzantısını kullanabilirsiniz. Bu uzantıyı Azure DevOps uzantıları Market'nde arayabilir veya doğrudan extension sayfasına gidebilirsiniz. Machine Learning uzantısını yükleyin.
Önemli
Machine Learning (klasik) uzantısını yüklemeyin. Aynı işlevselliği sağlamayan eski bir uzantıdır.
Pipeline inceleme penceresinde bir Sunucu İşi ekleyin. İşin adımlar bölümünde Yardımcıyı göster'i seçin ve AzureML'yi arayın. AzureML İş Bekleme görevini seçin ve işin bilgilerini sağlayın.
Görevin dört girişi vardır: Service Connection, Azure Resource Group Name, AzureML Workspace Name ve AzureML Job Name. Bu girişleri sağlayın. Bu adımlar için elde edilen YAML, aşağıdaki örneğe benzer:
Not
- Azure Machine Learning işi bekleme görevi, ek ücret gerektirmeyen ve pahalı aracı havuzu kaynaklarını kullanmayan bir sunucu görevi üzerinde çalışır. Sunucu işleri (
pool: serverile belirtilen) işlem hattınızla aynı makinede çalışır. Daha fazla bilgi için bkz . Sunucu işleri. - Bir Azure Machine Learning iş bekleme görevi yalnızca bir iş bekleyebilir. Beklemek istediğiniz her iş için ayrı bir görev ayarlamanız gerekir.
- Azure Machine Learning iş bekleme görevi en fazla iki gün boyunca bekleyebilir. Bu sınır, Azure DevOps işlem hatları tarafından ayarlanan sabit bir sınırdır.
- 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)
7. Adım: İşlem hattını gönderme ve işlem hattı çalıştırmanızı doğrulama
Kaydet ve çalıştır'ı seçin. 6. Adım'daki bekleme mekanizması tasarlandığı gibi çalıştığında, işlem hattı Azure Machine Learning işinin tamamlanmasını bekler ve WaitForJobCompletion altındaki görevi Azure Machine Learning işiyle aynı durumla sonlandırır. Örneğin:
Azure Machine Learning işi
Succeeded== Azure DevOps GöreviWaitForJobCompletionişiSucceededAzure Machine Learning görevi
Failed== Azure DevOps GöreviWaitForJobCompletiongöreviFailedAzure Machine Learning işi
Cancelled== Azure DevOps iş altındaki GörevWaitForJobCompletionCancelled
Not
6. Adımda belirtilen sorun nedeniyle WaitFor* işi, Azure Machine Learning iş durumunu yansıtmak yerine zaman aşımına uğrayabilir. Bildirim yolu geri yüklenene kadar gerçek iş sonucunu onaylamak için Azure Machine Learning Stüdyosu kullanın.
Ipucu
Azure Machine Learning işinin tamamını Azure Machine Learning Stüdyosu içinde görüntüleyebilirsiniz.
Kaynakları temizleme
İşlem hattınızı kullanmaya devam etmek istemiyorsanız Azure DevOps projenizi silin. Azure portalında kaynak grubunuzu ve Azure Machine Learning örneğinizi silin.