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/ yolundaki iş akışı YAML (.yml) dosyasını 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 depoyu fork edin.

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ı

İlk olarak Azure'da kimlik doğrulaması yapmayı tanımlayın. Önerilen, daha güvenli seçenek, OpenID Connect'i bir Microsoft Entra uygulaması veya kullanıcı tarafından atanan yönetilen kimlikle kullanarak oturum açmaktır. Gerekirse, bir hizmet ana bilgisayarı ve gizli anahtar kullanarak 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ı

  • `Azure portalı, Azure CLI veya Azure PowerShell ile hizmet ilkesi kullanarak bir Microsoft Entra uygulaması oluşturun.`
  • GitHub Actions iş akışınızda daha sonra kullanmak üzere İstemci Kimliği, Abonelik Kimliği ve Dizin (kiracı) kimliği değerlerini kopyalayın.
  • Azure portalı, Azure CLI veya Azure PowerShell ile hizmet sorumlunuza uygun bir rol atayın.
  • GitHub Actions tarafından verilen belirteçlere GitHub deponuzda güvenmek için bir Microsoft Entra uygulamasında federe kimlik bilgisi yapılandırın.

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

Gizli anahtarlar oluştur

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. Seç Güvenlik Sırları ve değişkenler > Eylemler.

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

  3. Yeni depo gizlisini 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 görev ortam sırlarına erişemez.

  4. AZURE_CLIENT_ID, AZURE_TENANT_ID ve AZURE_SUBSCRIPTION_ID için gizli 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 anahtar 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ştirin.

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

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

    Değişken Açıklama
    GROUP Kaynak grubunun adı
    LOCATION Çalışma alanınızın konumu (örnek: eastus2)
    WORKSPACE 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ın. İşlem hattı, DevOps işlem hattı değil makine öğrenmesi işlem hattıdır. Bu güncellemeyi yalnızca işlem kümeniz için cpu-cluster dışında bir ad kullanıyorsanız yapmanız gerekir.

  1. Çatallanmış deponuzda azureml-examples/cli/jobs/pipelines/nyc-taxi/pipeline.yml konumuna gidin.
  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, on bölümünde iş akışını 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 görevler bölümünde kodu alır ve OpenID Connect kullanarak Azure giriş işlemiyle 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 .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml dosyasını açın ve iş akışınızın buna benzer olduğunu doğrulayın.

    Not

    Depodaki iş akışı dosyası, burada gösterilmeyen ek adımları (önyükleme ve doğrulama gibi) içerebilir. Aşağıdaki örnekte temel adımlar gösterilmektedir.

    name: cli-jobs-pipelines-nyc-taxi-pipeline
    on:
      workflow_dispatch:
      schedule:
        - cron: "0 0/4 * * *"
      pull_request:
        branches:
          - main
        paths:
          - cli/jobs/pipelines/nyc-taxi/**
          - .github/workflows/cli-jobs-pipelines-nyc-taxi-pipeline.yml
          - cli/run-pipeline-jobs.sh
          - cli/setup.sh
    permissions:
      id-token: write
    jobs:
      build:
        runs-on: ubuntu-latest
        steps:
        - name: check out repo
          uses: actions/checkout@v4
        - 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çeneğini işaretleyerek iş akışlarını 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 studio'yu 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 deponuza artık ihtiyacınız kalmadığında, kaynak grubunu ve GitHub deponuzu silerek dağıttığınız kaynakları temizleyin.

Sonraki adımlar