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 bir 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ğitiyorsunuz.

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

  • Azure Machine Learning çalışma alanı. Çalışma alanı oluşturma adımları için bkz. Çalışma alanı oluşturma.

  • Python v2 için Azure Machine Learning SDK'sı. SDK'yı 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. Python için Azure Machine Learning Paketi istemci kitaplığı.

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. Önerilen, daha güvenli seçenek, Bir Microsoft Entra uygulaması veya kullanıcı tarafından atanan yönetilen kimlik kullanarak OpenID Connect ile oturum açmaktır. Gerekirse, hizmet sorumlusu ve gizli dizi ile oturum açmayı da kullanabilirsiniz. Bu yaklaşım daha az güvenlidir ve önerilmez.

Dağıtım kimlik bilgileri oluşturma

OIDC ile Azure Oturum Açma eylemini kullanmak için, Microsoft Entra uygulamasında veya kullanıcı tarafından atanan yönetilen kimlikte federasyon kimlik bilgilerini yapılandırmanız gerekir.

Seçenek 1: Microsoft Entra uygulaması

Seçenek 2: Kullanıcı tarafından atanan yönetilen kimlik

Gizli dizi oluşturma

Oturum açma eylemine uygulamanızın İstemci Kimliğini, Dizin (kiracı) Kimliğini ve Abonelik Kimliğini sağlamanız gerekir. Bu değerler doğrudan iş akışında sağlanabilir veya GitHub gizli dizilerinde depolanabilir ve iş akışınızda başvurulabilir. Değerleri GitHub gizli dizileri olarak kaydetmek daha güvenli bir seçenektir.

  1. GitHub'da deponuza gidin.

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

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

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

    Not

    Genel depolarda iş akışı güvenliğini geliştirmek için depo gizli dizileri yerine ortam gizli dizilerini kullanın. Ortam onay gerektiriyorsa, gerekli gözden geçirenlerden biri onaylayana kadar iş ortam gizli dizilerine erişemez.

  4. , AZURE_CLIENT_IDve AZURE_TENANT_IDiçin AZURE_SUBSCRIPTION_IDgizli diziler oluşturun. Bu değerleri GitHub gizli dizileriniz için Microsoft Entra uygulamanızdan veya kullanıcı tarafından atanan yönetilen kimlikten kopyalayın:

    GitHub gizli dizisi Microsoft Entra uygulaması veya kullanıcı tarafından atanan yönetilen kimlik
    AZURE_CLIENT_ID Müşteri Kimliği
    AZURE_ABONELİK_KİMLİĞİ Abonelik Kimliği
    AZURE_TENANT_ID Dizin (kiracı) kimliği

    Not

    Güvenlik nedeniyle, değerleri doğrudan iş akışına geçirmek yerine GitHub Gizli Dizilerini kullanmanızı öneririz.

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
    GRUP 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 kullanırsınız. İşlem hattı, DevOps işlem hattı değil makine öğrenmesi işlem hattıdır. 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 OpenID Connect kullanarak Azure oturum açma eylemiyle 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@v2
          with:
              client-id: ${{ secrets.AZURE_CLIENT_ID }}
              tenant-id: ${{ secrets.AZURE_TENANT_ID }}
              subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
        - 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