Geliştirme ve üretim için ortamları ayarlama

Tamamlandı

DevOps'ta ortam , bir kaynak koleksiyonunu ifade eder. Bu kaynaklar bir uygulamayı veya makine öğrenmesi projeleriyle birlikte bir modeli dağıtmak için kullanılır.

Sürekli teslim için ortamları kullanma

Kaç ortamla çalıştığınız kuruluşunuza bağlıdır. Genellikle en az iki ortam vardır: geliştirme veya geliştirme ve üretim ya da üretim. Ayrıca, hazırlama veya üretim öncesi (üretim öncesi) ortam gibi ortamlar ekleyebilirsiniz.

Sürekli teslimde tipik bir yaklaşım şu şekildedir:

  1. Geliştirme ortamında model eğitimiyle denemeler yapın.
  2. Modeli dağıtmak ve test etmek için en iyi modeli hazırlama veya önceden üretim ortamına taşıyın.
  3. Son olarak, son kullanıcıların kullanabilmesi için modeli dağıtmak için modeli üretim ortamına bırakın.

Not

Bu modülde ortamların DevOps yorumuna bakacağız. Azure Machine Learning'in betiği çalıştırmak için gereken Python paketlerinin koleksiyonunu açıklamak için de ortamlar terimini kullandığını unutmayın. Bu iki ortam kavramı birbirinden bağımsızdır. Azure Machine Learning ortamları hakkında daha fazla bilgi edinin.

Azure Machine Learning ortamlarını düzenleme

MLOps'yi uyguladığınızda ve makine öğrenmesi modelleriyle büyük ölçekte çalışırken, farklı aşamalar için ayrı ortamlarla çalışmak en iyi yöntemdir.

Ekibinizin görüntülenmesinde geliştirme, önceden üretim ve üretim ortamı kullanılır. Ekibinizdeki herkes tüm ortamlara erişim sağlamamalıdır. Veri bilimciler geliştirme ortamında yalnızca üretim dışı verilerle çalışabilirken, makine öğrenmesi mühendisleri modeli üretim verileriyle önceden oluşturulmuş ve üretim ortamına dağıtmak için çalışır.

Ayrı ortamlara sahip olmak, kaynaklara erişimi denetlemeyi kolaylaştırır. Daha sonra her ortam ayrı bir Azure Machine Learning çalışma alanıyla ilişkilendirilebilir.

Birden çok ortam kurulumu diyagramı.

Azure'da, iş arkadaşlarınıza çalışmak için ihtiyaç duydukları kaynakların alt kümesine doğru erişim düzeyini vermek için rol tabanlı erişim denetimini (RBAC) kullanacaksınız.

Alternatif olarak, yalnızca bir Azure Machine Learning çalışma alanı kullanabilirsiniz. Geliştirme ve üretim için tek bir çalışma alanı kullandığınızda daha küçük bir Azure ayak izi ve daha az yönetim yükü elde edersiniz. Ancak RBAC hem geliştirme hem de üretim için geçerli olur ve bu da insanlara kaynaklara çok az veya çok fazla erişim verdiğiniz anlamına gelebilir.

Model geliştirmenin farklı aşamalarında ortamlarla çalışmak için, GitHub Actions ile azure pipeline veya iş akışı çalıştırırken bir ortamı hedefleyebilirsiniz.

Azure DevOps ortamları

Azure DevOps'ta ortamlarla çalışmak için önce ortamlar oluşturmanız gerekir. Ardından, azure pipeline içinde hangi ortama dağıtmak istediğinizi belirtebilirsiniz.

  1. Azure DevOps'ta İşlem Hatları menüsünü genişletin.
  2. Ortamlar'ı seçin.
  3. Yeni bir ortam oluşturun.
  4. Ortamınıza bir ad verin.
  5. Kaynaklar için Hiçbiri'ni seçin. İşlem hattının kendisinde belirli bir Azure Machine Learning çalışma alanını hedeflersiniz.
  6. Oluştur’u seçin.

Azure DevOps'ta yeni ortam oluşturma işleminin ekran görüntüsü.

Azure DevOps'ta ortamları oluşturduktan ve her ortamla ilişkilendirilmiş farklı Azure Machine Learning çalışma alanlarına sahip olduktan sonra, Azure Pipelines YAML dosyasında hangi ortama dağıtmak istediğinizi belirtebilirsiniz:

trigger: 
- main

stages:
- stage: deployDev
  displayName: 'Deploy to development environment'
  jobs:
    - deployment: publishPipeline
      displayName: 'Model Training'
      pool:
        vmImage: 'Ubuntu-18.04'
      environment: dev
      strategy:
       runOnce:
         deploy:
          steps:
          - template: aml-steps.yml
            parameters:
              serviceconnectionname: 'spn-aml-workspace-dev'

YAML dosyasındaki değeri environment , devmodelin geliştirme ortamında eğitildiğini gösteren değeridir. Hizmet bağlantısı aracılığıyla, model eğitimi için hangi Azure Machine Learning çalışma alanını kullanmak istediğinizi belirtirsiniz.

İpucu

Azure DevOps ile ortam oluşturma ve hedefleme hakkında daha fazla bilgi edinin.

GitHub ortamları

ortamları GitHub Actions ile kullanmak için önce bir ortam oluşturmanız gerekir. Daha sonra iş akışınızda bir ortam kullanabilirsiniz.

GitHub deponuzda (depo) ortam oluşturmak için:

  1. Deponuzun içindeki Ayarlar sekmesine gidin.
  2. Ortamlar'ı seçin.
  3. Yeni bir ortam oluşturun.
  4. Bir ad girin.
  5. Ortamı yapılandır'ı seçin.

GitHub'da yeni ortam oluşturma işleminin ekran görüntüsü.

Bir ortamı belirli bir Azure Machine Learning çalışma alanıyla ilişkilendirmek için, bir Azure Machine Learning çalışma alanına yalnızca bu ortama erişim vermek için bir ortam gizli dizisi oluşturabilirsiniz.

Bir iş akışında ortam kullanmak için, yaml dosyasına ekleyerek hangi ortama dağıtmak istediğinizi ekleyebilirsiniz:

name: Train model

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest
    environment:
        name: dev 
    steps:
    - name: check out repo
      uses: actions/checkout@v2
    - name: install az ml extension
      run: az extension add -n ml -y
    - name: azure login
      uses: azure/login@v1
      with:
        creds: ${{secrets.AZURE_CREDENTIALS}}
    - name: set current directory
      run: cd src
    - name: run pipeline
      run: az ml job create --file src/aml_service/pipeline-job.yml --resource-group dev-ml-rg --workspace-name dev-ml-ws

Örnekte gizli dizi, AZURE_CREDENTIALS bu ortam için kullanılan Azure Machine Learning çalışma alanına bağlantı bilgilerini içerir.

İpucu

GitHub Actions ile ortam oluşturma ve kullanma hakkında daha fazla bilgi edinin.