Workflow GitHub Actions cho tinh chỉnh siêu tham số

CI/CD cho Machine Learning

Ravi Bhadauria

Machine Learning Instructor

Quy trình phân nhánh

  • Tách nhánh tính năng cho huấn luyện và tinh chỉnh siêu tham số
    • Job dự định sẽ được kích hoạt
    • Job còn lại không được kích hoạt
    • Dùng điều kiện if để triển khai
  • Tinh chỉnh siêu tham số
    • In bảng thống kê để phân tích
    • Tự động mở PR mới với thay đổi tham số
  • Huấn luyện
    • Đọc tệp tham số mới trong PR huấn luyện
CI/CD cho Machine Learning

Thiết lập điều kiện

Tinh chỉnh siêu tham số
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
Huấn luyện
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
CI/CD cho Machine Learning

Thiết lập quyền workflow

Repository Settings > Actions > General

Ảnh chụp trang cài đặt cấu hình quyền workflow

CI/CD cho Machine Learning

Khởi động job tinh chỉnh siêu tham số

  • Hãy chắc chắn đặt tiền tố tên nhánh là hp_tune/

Ảnh chụp workflow GHA hiển thị job tinh chỉnh chạy và job huấn luyện bị bỏ qua

CI/CD cho Machine Learning

Chỉ số job tinh chỉnh siêu tham số

Ảnh chụp PR hiển thị kết quả GridSearch dưới dạng bình luận

CI/CD cho Machine Learning

Tạo PR huấn luyện từ lượt chạy tinh chỉnh siêu tham số

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 cho Machine Learning

PR nhánh huấn luyện mới

Ảnh trên của PR huấn luyện mô hình mới được tạo từ workflow GHA

Ảnh dưới của PR huấn luyện mô hình mới được tạo từ workflow GHA

CI/CD cho Machine Learning

PR nhánh huấn luyện mới

Ảnh chụp diff tệp tham số tốt nhất trong PR huấn luyện mới

CI/CD cho Machine Learning

Khởi động chạy huấn luyện thủ công

  • GITHUB_TOKEN không thể kích hoạt workflow trên PR do chính nó tạo

    • Ngăn chạy đệ quy
  • Cách xử lý

    • Dùng Personal access token với quyền phù hợp
      steps:
        - env:
            GITHUB_TOKEN: ${{ secrets.MY_TOKEN }}
      
    • Chạy job huấn luyện ngay sau tinh chỉnh trong pipeline GHA
    • Force push để kích hoạt chạy (bắt buộc rà soát)
      -> 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 cho Machine Learning

Khởi động job huấn luyện

Ảnh chụp workflow GHA hiển thị job huấn luyện chạy và job tinh chỉnh bị bỏ qua

CI/CD cho Machine Learning

Ayo berlatih!

CI/CD cho Machine Learning

Preparing Video For Download...