Aracılığıyla paylaş


Azure Machine Learning ile GitHub Actions kullanma

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Azure Machine Learning'de bir modeli eğitmek için GitHub Actions'ı kullanmaya başlayın.

Bu makalede, Azure Machine Learning'de makine öğrenmesi modeli oluşturup dağıtan bir GitHub Actions iş akışı oluşturmayı öğreneceksiniz. NYC Taxi veri kümesinde bir scikit-learn doğrusal regresyon modeli eğiteceksiniz.

GitHub Actions, deponuzdaki /.github/workflows/ yolda bir iş akışı YAML (.yml) dosyası kullanır. Bu tanım, iş akışını oluşturan çeşitli adımları ve parametreleri içerir.

Önkoşullar

Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

  • Azure Machine Learning çalışma alanı. Yoksa, oluşturmak için Hızlı Başlangıç: Çalışma alanı kaynakları oluşturma makalesindeki adımları kullanın.

  • Python SDK v2'yi yüklemek için aşağıdaki komutu kullanın:

    pip install azure-ai-ml azure-identity
    

    SDK'nın mevcut yüklemesini en son sürüme güncelleştirmek için aşağıdaki komutu kullanın:

    pip install --upgrade azure-ai-ml azure-identity
    

    Daha fazla bilgi için bkz . Azure Machine Learning için Python SDK v2'yi yükleme.

1. Adım: Kodu alma

GitHub'da aşağıdaki deponun çatalını oluşturun:

https://github.com/azure/azureml-examples

Çatallanmış deponuzu yerel olarak kopyalayın.

git clone https://github.com/YOUR-USERNAME/azureml-examples

2. Adım: Azure ile kimlik doğrulaması

Öncelikle Azure'da kimlik doğrulaması yapmayı tanımlamanız gerekir. Hizmet sorumlusu veya OpenID Connect kullanabilirsiniz.

Dağıtım kimlik bilgileri oluşturma

Azure CLI'da az ad sp create-for-rbac komutuyla bir hizmet sorumlusu oluşturun. Azure portalında veya Deneyin düğmesini seçerek bu komutu Azure Cloud Shell ile çalıştırın.

az ad sp create-for-rbac --name "myML" --role contributor \
                            --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name> \
                            --json-auth

parametresi --json-auth Azure CLI sürümlerinde >= 2.51.0 kullanılabilir. Bu --sdk-auth kullanımdan önceki sürümler kullanımdan kaldırma uyarısıyla kullanılır.

Yukarıdaki örnekte yer tutucuları abonelik kimliğiniz, kaynak grubu adınız ve uygulama adınızla değiştirin. Çıktı, Aşağıdakine benzer şekilde App Service uygulamanıza erişim sağlayan rol ataması kimlik bilgilerine sahip bir JSON nesnesidir. Bu JSON nesnesini daha sonra için kopyalayın.

  {
    "clientId": "<GUID>",
    "clientSecret": "<GUID>",
    "subscriptionId": "<GUID>",
    "tenantId": "<GUID>",
    (...)
  }

Gizli dizi oluşturma

  1. GitHub'da deponuza gidin.

  2. Gezinti menüsünde Ayarlar'a gidin.

  3. Güvenlik > Gizli Dizileri ve değişkenler Eylemler'i> seçin.

    Gizli dizi ekleme ekran görüntüsü

  4. Yeni depo gizli dizisi'ni seçin.

  5. Azure CLI komutundaki JSON çıkışının tamamını gizli dizinin değer alanına yapıştırın. Gizli diziye adını AZURE_CREDENTIALSverin.

  6. Add secret (Gizli dizi ekle) öğesini seçin.

3. Adım: Azure Machine Learning çalışma alanınıza bağlanmak için güncelleştirme setup.sh

CLI kurulum dosyası değişkenlerini çalışma alanınızla eşleşecek şekilde güncelleştirmeniz gerekir.

  1. Çatallanmış deponuzda adresine azureml-examples/cli/gidin.

  2. Dosyadaki bu değişkenleri düzenleyin setup.sh ve güncelleştirin.

    Değişken Açıklama
    GROUP Kaynak grubunun adı
    KONUM Çalışma alanınızın konumu (örnek: eastus2)
    ÇALIŞMA ALANI Azure Machine Learning çalışma alanının adı

4. Adım: İşlem kümenizin adıyla güncelleştirme pipeline.yml

Azure Machine Learning işlem hattınızı dağıtmak için bir pipeline.yml dosya kullanacaksınız. Bu bir makine öğrenmesi işlem hattıdır ve DevOps işlem hattı değildir. Bu güncelleştirmeyi yalnızca bilgisayar kümenizin adı dışında bir ad cpu-cluster kullanıyorsanız yapmanız gerekir.

  1. Çatallanmış deponuzda adresine azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.ymlgidin.
  2. öğesini her gördüğünüzde compute: azureml:cpu-clusterdeğerini cpu-cluster işlem kümenizin adıyla güncelleştirin. Örneğin, kümenizin adı my-clusterise yeni değeriniz olacaktır azureml:my-cluster. Beş güncelleştirme vardır.

5. Adım: GitHub Actions iş akışınızı çalıştırma

İş akışınız Azure'da kimlik doğrulaması yapar, Azure Machine Learning CLI'sini ayarlar ve Azure Machine Learning'de bir modeli eğitmek için CLI'yi kullanır.

İş akışı dosyanız bir tetikleyici bölümünden ve işlerden oluşur:

  • Tetikleyici, bölümünde iş akışını on başlatır. İş akışı varsayılan olarak bir cron zamanlaması üzerinde ve eşleşen dallardan ve yollardan çekme isteği yapıldığında çalışır. İş akışlarını tetikleyen olaylar hakkında daha fazla bilgi edinin.
  • İş akışının işler bölümünde kodu kullanıma alır ve hizmet sorumlusu gizli dizinizle Azure'da oturum açarsınız.
  • İşler bölümü, Machine Learning CLI'yi (v2) yükleyen ve ayarlayan bir kurulum eylemi de içerir. CLI yüklendikten sonra iş çalıştırma eylemi, NYC taksi verileriyle bir model eğitmek için Azure Machine Learning pipeline.yml dosyanızı çalıştırır.

İş akışınızı etkinleştirme

  1. Çatallanmış deponuzda iş akışınızın böyle göründüğünü açın .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml ve doğrulayın.

    name: cli-jobs-pipelines-nyc-taxi-pipeline
    on:
      workflow_dispatch:
      schedule:
        - cron: "0 0/4 * * *"
      pull_request:
        branches:
          - main
          - sdk-preview
        paths:
          - cli/jobs/pipelines/nyc-taxi/**
          - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml
          - cli/run-pipeline-jobs.sh
          - cli/setup.sh
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - name: check out repo
          uses: actions/checkout@v2
        - name: azure login
          uses: azure/login@v1
          with:
            creds: ${{secrets.AZURE_CREDENTIALS}}
        - name: setup
          run: bash setup.sh
          working-directory: cli
          continue-on-error: true
        - name: run job
          run: bash -x ../../../run-job.sh pipeline.yml
          working-directory: cli/jobs/pipelines/nyc-taxi
    
  2. Çalıştırmaları görüntüle'yi seçin.

  3. İş akışlarımı anlıyorum'ı seçerek iş akışlarını etkinleştirin, devam edin ve etkinleştirin.

  4. cli-jobs-pipelines-nyc-taxi-pipeline iş akışını seçin ve İş akışını etkinleştir'i seçin. GitHub Actions iş akışını etkinleştirme işleminin ekran görüntüsü.

  5. İş akışını çalıştır'ı seçin ve İş akışını şimdi çalıştır seçeneğini belirleyin. GitHub Actions iş akışını çalıştırma işleminin ekran görüntüsü.

6. Adım: İş akışı çalıştırmanızı doğrulama

  1. Tamamlanmış iş akışı çalıştırmanızı açın ve derleme işinin başarıyla çalıştırıldığını doğrulayın. İşin yanında yeşil bir onay işareti görürsünüz.

  2. Azure Machine Learning stüdyosu açın ve nyc-taxi-pipeline-example adresine gidin. İşinizin her bir bölümünün (hazırlık, dönüşüm, eğit, tahmin, puan) tamamlandığını ve yeşil bir onay işareti gördüğünüzü doğrulayın.

    Başarılı Machine Learning Studio çalıştırmasının ekran görüntüsü.

Kaynakları temizleme

Kaynak grubunuz ve deponuz artık gerekli olmadığında, kaynak grubunu ve GitHub deponuzu silerek dağıttığınız kaynakları temizleyin.

Sonraki adımlar