GitHub 작업

완료됨

GitHub 사용하여 워크플로를 자동화하려는 경우 GitHub Actions를 사용합니다.

GitHub는 주로 코드 프로젝트를 호스트하는 데 사용됩니다. GitHub 리포지토리(리포지토리)에서 기계 학습 코드를 호스트하는 경우 코드를 자동으로 빌드, 테스트 및 배포하는 GitHub Actions를 만들 수 있습니다.

참고

Azure Machine Learning 파이프라인에서 GitHub Actions를 사용하려면 GitHub 리포지토리가 보안 연결을 통해 Azure Machine Learning 작업 영역에 액세스하도록 허용해야 합니다.

GitHub Actions를 사용하여 Azure Machine Learning 파이프라인을 실행하는 방법을 알아봅니다.

GitHub 작업 만들기

파이프라인 계층 구조 다이어그램

  1. 워크플로를 트리거할 이벤트를 정의합니다.
  2. 작업으로 구성된 워크플로를 실행합니다.
  3. 각각의 작업에는 하나 이상의 단계가 포함됩니다.
  4. Azure Machine Learning 파이프라인을 단계 중 하나로 실행합니다.
  5. Azure Machine Learning 파이프라인은 스크립트 또는 Azure Machine Learning 구성 요소로 이루어져 있습니다.

GitHub Actions 워크플로를 만들려면 YAML 파일에서 실행하려는 단계를 정의합니다. YAML 파일에는 다음이 포함됩니다.

  • 이벤트: 워크플로를 트리거할 방법입니다.
  • 작업: 실행기에서 실행하려는 단계의 그룹입니다. 기계 학습 워크로드의 경우 Ubuntu Linux 가상 머신을 사용할 가능성이 높습니다.
  • 단계: 실행하려는 스크립트나 동작입니다. 예를 들면 Azure Machine Learning 파이프라인(az ml job create)을 시작하는 CLI 명령과 같은 것입니다.

GitHub Actions에 사용되는 핵심 개념에 대해 자세히 알아봅니다.

변경 내용이 리포지토리로 푸시될 때마다 Azure Machine Learning 파이프라인을 실행하려면 다음과 같이 YAML 파일을 사용하면 됩니다.

name: Train model

on:
  push:
    branches: [ main ]

jobs:
  build:
    runs-on: ubuntu-latest 
    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

예제 워크플로는 다음과 같습니다.

  1. 리포지토리를 확인하여 실행기에서 사용할 수 있도록 합니다.
  2. CLI용 Azure Machine Learning 확장을 설치합니다.
  3. 미리 정의된 AZURE_CREDENTIALS를 사용하여 Azure에 로그인합니다.
  4. 프로덕션 코드가 모두 들어 있는 src 폴더로 이동합니다.
  5. Azure Machine Learning 파이프라인을 실행합니다.

GitHub Actions를 사용하여 워크플로 실행

워크플로를 정의하기 위해 YAML 파일을 만들었다고 가정합니다. YAML 파일은 리포지토리의 .github/workflows/ 디렉터리에 저장합니다.

워크플로를 보려면 리포지토리의 GitHub 작업 탭으로 이동합니다.

GitHub Actions 개요 스크린샷

GitHub에서 .github/workflows/ 디렉터리에 저장된 워크플로를 자동으로 선택합니다.

workflow_dispatch:를 워크플로 YAML 파일에 추가하는 경우 동작 탭에서 실행되도록 워크플로를 수동으로 트리거할 수 있습니다.

워크플로 YAML 파일에 지정된 이벤트를 사용하여 워크플로를 트리거할 수 있습니다. 이 예제에서는 리포지토리에 푸시하면 워크플로가 실행되도록 트리거됩니다. 항목을 변경하고 커밋을 리포지토리에 (Visual Studio Code를 통해 로컬로 또는 GitHub에서 직접) 푸시할 때마다 워크플로가 실행됩니다.

최신 실행을 선택하여 모든 단계가 성공적으로 실행되었는지 또는 어떤 오류 메시지를 받았는지 추가로 검사합니다.

성공적으로 실행된 워크플로의 스크린샷

워크플로가 Azure Machine Learning 파이프라인을 트리거하는 경우에도 Azure Machine Learning 파이프라인 내에서 오류가 발생할 수 있으므로 Azure Machine Learning 작업 영역에서 파이프라인 실행을 검토해야 합니다. 모든 오류 메시지는 Azure Machine Learning 파이프라인 실험 실행의 출력 폴더에서 볼 수 있습니다.