Hiperparametre Ayarı için GitHub Actions iş akışı

Machine Learning için CI/CD

Ravi Bhadauria

Machine Learning Instructor

Dallanma iş akışı

  • Eğitim ve hiperparametre ayarı için ayrı özellik dalları
    • Hedeflenen iş tetiklenir
    • Diğer iş tetiklenmez
    • if koşulu ile uygulanır
  • Hiperparametre ayarı
    • Analiz için istatistik tablosu yazdırır
    • Parametre değişiklikleriyle otomatik yeni PR açar
  • Eğitim
    • Eğitim PR’ında yeni parametre dosyasını okur
Machine Learning için CI/CD

Koşulları ayarlama

Hiperparametre Ayarı
jobs:
  hp_tune_and_publish_report:
    # Run when branch name starts with hp_tune/
    if: startsWith(github.head_ref, 'hp_tune/')

steps: ... - name: | DVC pipeline for hyperparameter tuning run: dvc repro -f hp_tune
Eğitim
jobs:
  train_and_publish_report:
    # Run when branch name starts with train/
    if: startsWith(github.head_ref, 'train/')

steps: ... - name: Run DVC pipeline for training run: dvc repro train
Machine Learning için CI/CD

İş akışı izinlerini ayarlama

Depo Ayarları > Actions > General

İş akışı izinlerini yapılandırma ayarları sayfası ekran görüntüsü

Machine Learning için CI/CD

Hiperparametre ayarı işinin başlatılması

  • Dal adının hp_tune/ ile başladığından emin olun

Hiperparametre ayarı işinin çalıştığı ve eğitim işinin atlandığı GHA iş akışı ekran görüntüsü

Machine Learning için CI/CD

Hiperparametre ayarı iş metrikleri

Izgara araması sonuçlarının yorum olarak göründüğü PR ekran görüntüsü

Machine Learning için CI/CD

Hiperparametre çalışmasından eğitim PR’ı oluşturma

steps:
  - name: Create training branch
    env:
      REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
    run: |
      # Branch name begins with train/
      export BRANCH_NAME=train/$(git rev-parse --short "${{ github.sha }}")

# Create PR for training cml pr create \ --user-email [email protected] \ --user-name HPBot \ --message "Hyperparameter tuning" \ --branch $BRANCH_NAME \ --target-branch main \ rfc_best_params.json
Machine Learning için CI/CD

Yeni eğitim dalı PR’ı

GHA iş akışının sonucu olarak oluşturulan yeni model eğitimi PR’ının üst ekran görüntüsü

GHA iş akışının sonucu olarak oluşturulan yeni model eğitimi PR’ının alt ekran görüntüsü

Machine Learning için CI/CD

Yeni eğitim dalı PR’ı

Yeni model eğitimi PR’ında en iyi parametre dosyası farkı ekran görüntüsü

Machine Learning için CI/CD

Eğitim çalıştırmasını elle başlatma

  • GITHUB_TOKEN, kendi oluşturduğu PR’larda iş akışlarını tetikleyemez

    • Yinelenen çalıştırmaları önler
  • Geçici çözümler

    • Uygun izinlere sahip Kişisel erişim belirteci kullanın
      steps:
        - env:
            GITHUB_TOKEN: ${{ secrets.MY_TOKEN }}
      
    • GHA hattında hiperparametre ayarından hemen sonra eğitim işini çalıştırın
    • Zorla iterek çalıştırmayı tetikleyin (incelemeyi zorlar)
      -> git checkout train/1f34fs
      -> git commit --amend --no-edit && git push -f
      
1 https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow
Machine Learning için CI/CD

Eğitim işinin başlatılması

Eğitim işinin çalıştığı ve hiperparametre ayarı işinin atlandığı GHA iş akışı ekran görüntüsü

Machine Learning için CI/CD

Hadi pratik yapalım!

Machine Learning için CI/CD

Preparing Video For Download...