Azure Machine Learning 구성 요소란?

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

Azure Machine Learning 구성 요소는 기계 학습 파이프라인에서 한 단계를 수행하는 자체 포함된 코드 조각입니다. 구성 요소는 함수와 비슷하며 이름, 입력, 출력 및 본문을 포함하고 있습니다. 구성 요소는 Azure Machine Learning 파이프라인의 구성 요소입니다.

구성 요소는 다음과 같은 세 부분으로 구성됩니다.

  • 메타데이터: name, display_name, version, type 등
  • 인터페이스: 입/출력 사양(이름, 형식, 설명, 기본값 등)
  • 명령, 코드 및 환경: 구성 요소를 실행하는 데 필요한 명령, 코드 및 환경

Diagram of what a component looks like and how it looks in a pipeline. In addition to screenshots of a component in the CLI, SDK, and portal UI.

구성 요소를 사용해야 하는 이유는 무엇인가요?

엔지니어링 측면에서 전체 기계 학습 작업을 다단계 워크플로로 분할하도록 기계 학습 파이프라인을 빌드하는 것이 좋습니다. 그러면 모든 사용자가 특정 단계에서 독립적으로 작업할 수 있습니다. Azure Machine Learning에서 구성 요소는 파이프라인에서 재사용 가능한 하나의 단계를 나타냅니다. 구성 요소는 파이프라인 빌드의 생산성을 향상시키는 데 도움이 되도록 설계되었습니다. 특히 구성 요소에서 제공하는 기능은 다음과 같습니다.

  • 잘 정의된 인터페이스: 구성 요소에는 잘 정의된 인터페이스(입력 및 출력)가 필요합니다. 인터페이스를 사용하면 사용자가 단계를 빌드하고 단계를 쉽게 연결할 수 있습니다. 또한 인터페이스는 단계의 복잡한 논리를 숨기고 단계가 구현되는 방법을 이해하는 데 요구되는 부담을 제거합니다.

  • 공유 및 재사용: 파이프라인의 구성 요소로서 구성 요소는 파이프라인, 작업 영역 및 구독에서 쉽게 공유하고 다시 사용할 수 있습니다. 한 팀에서 빌드한 구성 요소는 다른 팀에서 검색하고 사용할 수 있습니다.

  • 버전 제어: 구성 요소의 버전이 관리됩니다. 구성 요소 생산자는 구성 요소를 계속 향상시키고 새 버전을 게시할 수 있습니다. 소비자는 파이프라인에서 특정 구성 요소 버전을 사용할 수 있습니다. 이렇게 하면 호환성 및 재현성이 제공됩니다.

단위 테스트 가능: 구성 요소는 자체 포함된 코드 조각입니다. 구성 요소에 대한 단위 테스트는 쉽게 작성할 수 있습니다.

구성 요소 및 파이프라인

기계 학습 파이프라인은 전체 기계 학습 작업에 대한 워크플로입니다. 구성 요소는 기계 학습 파이프라인의 구성 요소입니다. 구성 요소는 파이프라인의 컨텍스트 아래에 있어야 합니다.

구성 요소를 빌드하려면 먼저 기계 학습 파이프라인을 정의해야 합니다. 이를 위해 전체 기계 학습 작업을 다단계 워크플로로 분할해야 합니다. 각 단계는 구성 요소입니다. 예를 들어 기록 데이터를 사용하여 판매 예측 모델을 학습시키는 간단한 기계 학습 작업을 고려할 때 데이터 처리, 모델 학습 및 모델 평가 단계가 포함된 순차적 워크플로를 빌드할 수 있습니다. 복잡한 작업의 경우 더 세분화할 수 있습니다. 예를 들어 단일 데이터 처리 단계를 데이터 수집, 데이터 정리, 데이터 전처리 및 기능 엔지니어링 단계로 분할합니다.

워크플로의 단계가 정의되면 다음 단계로 파이프라인에서 각 단계를 연결하는 방법을 지정합니다. 예를 들어 데이터 처리 단계와 모델 학습 단계를 연결하기 위해 처리된 데이터가 포함된 폴더를 출력하도록 데이터 처리 구성 요소를 정의할 수 있습니다. 학습 구성 요소는 폴더를 입력으로 사용하고, 학습된 모델이 포함된 폴더를 출력합니다. 이러한 입력 및 출력 정의는 구성 요소 인터페이스 정의의 일부가 됩니다.

이제 단계를 실행하는 코드를 개발할 차례입니다. 기본 설정 언어(python, R 등)를 사용할 수 있습니다. 코드는 셸 명령으로 실행할 수 있어야 합니다. 개발하는 동안 이 단계를 실행하는 방법을 제어하기 위해 몇 가지 입력을 추가할 수 있습니다. 예를 들어 학습 단계의 경우 학습을 제어하기 위해 학습 속도, Epoch 수를 입력으로 추가할 수 있습니다. 이러한 추가 입력과 다른 단계와 연결하는 데 필요한 입력 및 출력은 구성 요소의 인터페이스입니다. 셸 명령의 인수는 입력 및 출력을 코드에 전달하는 데 사용됩니다. 명령과 코드를 실행할 환경을 지정해야 합니다. 환경은 큐레이팅된 Azure Machine Learning 환경, docker 이미지 또는 conda 환경일 수 있습니다.

마지막으로 코드, cmd, 환경, 입력, 출력, 메타데이터를 포함한 모든 항목을 하나의 구성 요소에 함께 패키지할 수 있습니다. 그런 다음, 이러한 구성 요소를 모두 연결하여 기계 학습 워크플로에 대한 파이프라인을 빌드합니다. 하나의 구성 요소는 여러 파이프라인에서 사용할 수 있습니다.

구성 요소를 빌드하는 방법에 대한 자세한 내용은 다음을 참조하세요.

다음 단계