Workflow GitHub Actions untuk Hyperparameter Tuning

CI/CD untuk Machine Learning

Ravi Bhadauria

Machine Learning Instructor

Workflow branching

  • Pisahkan branch fitur untuk training dan hyperparameter tuning
    • Job yang diinginkan harus jalan
    • Job lain tidak boleh jalan
    • Diatur dengan kondisi if
  • Hyperparameter tuning
    • Cetak tabel statistik untuk analisis
    • Otomatis buka PR baru dengan perubahan parameter
  • Training
    • Baca file parameter baru di PR training
CI/CD untuk Machine Learning

Mengatur kondisi

Hyperparameter Tuning
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 untuk hyperparameter tuning run: dvc repro -f hp_tune
Training
jobs:
  train_and_publish_report:
    # Run when branch name starts with train/
    if: startsWith(github.head_ref, 'train/')

steps: ... - name: Jalankan DVC pipeline untuk training run: dvc repro train
CI/CD untuk Machine Learning

Siapkan izin workflow

Repository Settings > Actions > General

Tangkapan layar halaman pengaturan untuk mengonfigurasi izin workflow

CI/CD untuk Machine Learning

Kickoff job hyperparameter tuning

  • Pastikan nama branch diawali hp_tune/

Tangkapan layar workflow GHA menampilkan job hyperparameter tuning berjalan dan job training dilewati

CI/CD untuk Machine Learning

Metrik job hyperparameter tuning

Tangkapan layar PR menampilkan hasil GridSearch sebagai komentar

CI/CD untuk Machine Learning

Membuat PR training dari run hyperparameter

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
CI/CD untuk Machine Learning

PR branch training baru

Tangkapan layar atas PR pelatihan model baru yang dibuat dari workflow GHA

Tangkapan layar bawah PR pelatihan model baru yang dibuat dari workflow GHA

CI/CD untuk Machine Learning

PR branch training baru

Tangkapan layar diff file parameter terbaik di PR pelatihan model baru

CI/CD untuk Machine Learning

Memulai run training secara manual

  • GITHUB_TOKEN tidak dapat memicu workflow pada PR yang dibuat sendiri

    • Mencegah run rekursif
  • Solusi

    • Gunakan Personal access token dengan izin yang tepat
      steps:
        - env:
            GITHUB_TOKEN: ${{ secrets.MY_TOKEN }}
      
    • Jalankan job training segera setelah hyperparameter tuning di pipeline GHA
    • Force push kode untuk memicu run (memaksa inspeksi)
      -> 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
CI/CD untuk Machine Learning

Kickoff job training

Tangkapan layar workflow GHA menampilkan job training berjalan dan job hyperparameter tuning dilewati

CI/CD untuk Machine Learning

Ayo berlatih!

CI/CD untuk Machine Learning

Preparing Video For Download...