Hyperparameter Tuning के लिए GitHub Actions workflow

Machine Learning के लिए CI/CD

Ravi Bhadauria

Machine Learning Instructor

ब्रांचिंग workflow

  • ट्रेनिंग और हाइपरपैरामीटर ट्यूनिंग के लिए अलग फीचर ब्रांचेज़
    • मनचाहा जॉब ट्रिगर होना चाहिए
    • दूसरा जॉब ट्रिगर नहीं होना चाहिए
    • if कंडीशन से लागू
  • हाइपरपैरामीटर ट्यूनिंग
    • विश्लेषण के लिए स्टैटिस्टिक्स टेबल प्रिंट करें
    • पैरामीटर बदलावों के साथ नया PR अपने-आप खोलें
  • ट्रेनिंग
    • ट्रेनिंग PR में नया पैरामीटर फ़ाइल पढ़ें
Machine Learning के लिए CI/CD

कंडीशनल सेट करना

हाइपरपैरामीटर ट्यूनिंग
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
ट्रेनिंग
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 के लिए CI/CD

Workflow permissions सेटअप

Repository Settings > Actions > General

वर्कफ़्लो permissions कॉन्फ़िगर करने के लिए सेटिंग्स पेज का स्क्रीनशॉट

Machine Learning के लिए CI/CD

हाइपरपैरामीटर ट्यूनिंग जॉब शुरूआत

  • ब्रांच नाम को hp_tune/ से प्रीफ़िक्स करना सुनिश्चित करें

GHA वर्कफ़्लो का स्क्रीनशॉट जिसमें हाइपरपैरामीटर ट्यूनिंग जॉब रन हो रहा है और ट्रेनिंग जॉब स्किप्ड है

Machine Learning के लिए CI/CD

हाइपरपैरामीटर ट्यूनिंग जॉब मेट्रिक्स

PR का स्क्रीनशॉट जिसमें GridSearch परिणाम एक कमेंट के रूप में दिखे हैं

Machine Learning के लिए CI/CD

हाइपरपैरामीटर रन से ट्रेनिंग PR बनाना

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 के लिए CI/CD

नया ट्रेनिंग ब्रांच PR

ऊपर का स्क्रीनशॉट: GHA वर्कफ़्लो के परिणामस्वरूप बना नया मॉडल ट्रेनिंग PR

नीचे का स्क्रीनशॉट: GHA वर्कफ़्लो के परिणामस्वरूप बना नया मॉडल ट्रेनिंग PR

Machine Learning के लिए CI/CD

नया ट्रेनिंग ब्रांच PR

नए मॉडल ट्रेनिंग PR में बेस्ट पैरामीटर फ़ाइल का डिफ का स्क्रीनशॉट

Machine Learning के लिए CI/CD

ट्रेनिंग रन मैन्युअली शुरू करना

  • GITHUB_TOKEN खुद बनाए गए PR पर workflows ट्रिगर नहीं कर सकता

    • recursive रन से बचाव
  • वर्कअराउंड्स

    • उचित permissions वाले Personal access token का उपयोग करें
      steps:
        - env:
            GITHUB_TOKEN: ${{ secrets.MY_TOKEN }}
      
    • GHA pipeline में हाइपरपैरामीटर ट्यूनिंग के तुरंत बाद ट्रेनिंग जॉब चलाएँ
    • रन ट्रिगर करने के लिए force push करें (inspection को बाध्य करता है)
      -> 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 के लिए CI/CD

ट्रेनिंग जॉब शुरूआत

GHA वर्कफ़्लो का स्क्रीनशॉट जिसमें ट्रेनिंग जॉब रन हो रहा है और हाइपरपैरामीटर ट्यूनिंग जॉब स्किप्ड है

Machine Learning के लिए CI/CD

अभ्यास करते हैं!

Machine Learning के लिए CI/CD

Preparing Video For Download...