Azure Machine Learning 파이프라인이란?
Azure Machine Learning 파이프라인은 기계 학습 작업 전체에 대한 독립 실행 워크플로입니다. Azure Machine Learning 파이프라인은 기계 학습 모델을 생성하는 모범 사례를 표준화하는 데 도움이 되며, 팀에서 대규모로 실행할 수 있도록 하고, 모델 빌드 효율성을 향상시킵니다.
Azure Machine Learning 파이프라인이 필요한 이유는 무엇인가요?
기계 학습 파이프라인의 핵심은 전체 기계 학습 작업을 다단계 워크플로로 분할하는 것입니다. 각 단계는 개별적으로 개발, 최적화, 구성 및 자동화할 수 있는 관리 가능한 구성 요소입니다. 단계는 잘 정의된 인터페이스를 통해 연결됩니다. Azure Machine Learning 파이프라인 서비스는 파이프라인 단계 간의 모든 종속성을 자동으로 오케스트레이션합니다. 이 모듈식 방법은 두 가지 주요 이점을 제공합니다.
MLOps 사례 표준화 및 확장 가능한 팀 협업 지원
MLOP(기계 학습 작업)는 기계 학습 모델을 빌드하고 모델을 프로덕션으로 가져오는 프로세스를 자동화합니다. 이는 복잡한 프로세스입니다. 일반적으로 서로 다른 기술을 갖춘 여러 팀의 협업이 필요합니다. 잘 정의된 기계 학습 파이프라인은 이 복잡한 프로세스를 다단계 워크플로로 추상화하여 각 팀에서 독립적으로 작업할 수 있도록 각 단계를 특정 작업에 매핑할 수 있습니다.
예를 들어 일반적인 기계 학습 프로젝트에는 데이터 수집, 데이터 준비, 모델 학습, 모델 평가 및 모델 배포 단계가 포함됩니다. 일반적으로 데이터 엔지니어는 데이터 단계에 집중하고, 데이터 과학자는 모델 학습 및 평가에 대부분의 시간을 소비하며, 기계 학습 엔지니어는 전체 워크플로의 모델 배포 및 자동화에 집중합니다. 기계 학습 파이프라인을 활용하여 각 팀에서 자체 단계를 빌드하기만 하면 됩니다. 단계를 빌드하는 가장 좋은 방법은 Machine Learning 파이프라인에서 한 단계를 수행하는 독립형 코드인 Azure Machine Learning 구성 요소(v2)를 사용하는 것입니다. 다른 사용자가 빌드한 이러한 모든 단계는 파이프라인 정의를 통해 결국에는 하나의 워크플로에 통합됩니다. 파이프라인은 프로젝트의 모든 사용자를 위한 협업 도구입니다. 파이프라인을 정의하는 프로세스 및 해당 모든 단계는 각 회사의 기본 설정 DevOps 사례에 따라 표준화할 수 있습니다. 파이프라인의 버전을 추가로 지정하고 자동화할 수 있습니다. ML 프로젝트가 파이프라인으로 설명되는 경우 최상의 MLOps 사례가 이미 적용되어 있습니다.
학습 효율성 및 비용 절감
기계 학습 파이프라인은 MLOps를 실행하는 도구일 뿐만 아니라 대규모 모델 학습의 효율성을 향상시키고 비용을 절감합니다. 예를 들어 최신 자연어 모델 학습 수행이 있습니다. 이 경우 대량의 데이터와 GPU 집약적인 변환기 모델 학습을 전처리해야 합니다. 매번 모델을 학습시키는 데 몇 시간에서 며칠이 걸립니다. 모델을 빌드하는 경우 데이터 과학자는 최상의 모델 성능을 얻기 위해 다양한 학습 코드 또는 하이퍼 매개 변수를 테스트하고 학습을 여러 번 실행하려고 합니다. 이러한 학습의 대부분에는 일반적으로 한 학습에서 다른 학습으로 변경하는 약간의 작업이 있습니다. 데이터 처리에서 모델 학습에 이르기까지 전체 학습이 수행될 때마다 상당한 낭비가 될 수 있습니다. 기계 학습 파이프라인을 사용하면 변경되지 않은 단계 결과를 자동으로 계산하고 이전 학습의 출력을 다시 사용할 수 있습니다. 또한 기계 학습 파이프라인은 서로 다른 계산 리소스에서 각 단계를 실행하도록 지원합니다. 따라서 상위 메모리 CPU 컴퓨터의 메모리 사용량이 많은 데이터 처리 작업 및 실행과 계산 집약적인 학습이 비용이 많이 드는 GPU 컴퓨터에서 실행될 수 있습니다. 특정 유형의 컴퓨터에서 실행할 단계를 적절하게 선택하면 학습 비용을 크게 줄일 수 있습니다.
시작 모범 사례
기계 학습 프로젝트에서 이미 가지고 있는 항목에 따라 기계 학습 파이프라인 빌드의 시작점이 달라질 수 있습니다. 파이프라인을 빌드하는 몇 가지 일반적인 방법이 있습니다.
첫 번째 방법은 일반적으로 이전에 파이프라인을 사용하지 않은 팀에 적용되며, MLOps와 같은 파이프라인을 활용하려고 합니다. 이 경우 데이터 과학자는 일반적으로 즐겨찾는 도구를 사용하여 로컬 환경에서 일부 기계 학습 모델을 개발했습니다. 기계 학습 엔지니어는 데이터 과학자의 출력을 프로덕션 환경으로 가져와야 합니다. 이 작업에서는 원본 Notebook 또는 python 코드에서 일부 불필요한 코드를 정리하고, 학습 입력을 로컬 데이터에서 매개 변수가 있는 값으로 변경하고, 필요에 따라 학습 코드를 여러 단계로 분할하고, 각 단계의 단위 테스트를 수행하고, 마지막으로 모든 단계를 파이프라인으로 래핑합니다.
팀이 파이프라인에 익숙해지고 파이프라인을 사용하여 더 많은 기계 학습 프로젝트를 수행하려는 경우 첫 번째 방법에서는 크기 조정이 어렵다는 것을 알 수 있습니다. 두 번째 방법은 각각 하나의 특정 기계 학습 문제를 해결하려고 시도하는 몇 가지 파이프라인 템플릿을 설정하는 것입니다. 템플릿은 단계 수, 각 단계의 입력 및 출력, 해당 연결을 포함한 파이프라인 구조를 미리 정의합니다. 새 기계 학습 프로젝트를 시작하기 위해 팀은 먼저 하나의 템플릿 리포지토리를 포크합니다. 그런 다음, 팀 리더는 멤버에게 작업해야 하는 단계를 할당합니다. 데이터 과학자와 데이터 엔지니어는 정기적으로 작업을 수행합니다. 결과에 만족하면 미리 정의된 단계에 맞게 코드를 구성합니다. 구조화된 코드가 체크 인되면 파이프라인을 실행하거나 자동화할 수 있습니다. 변경 내용이 있는 경우 각 멤버는 나머지 파이프라인 코드를 건드리지 않고 자신의 코드 조각에서만 작업하면 됩니다.
팀에서 기계 학습 파이프라인 및 재사용 가능한 구성 요소 컬렉션을 빌드하면 이전 파이프라인 또는 재사용 가능한 기존 구성 요소를 함께 복제하여 기계 학습 파이프라인 빌드를 시작할 수 있습니다. 이 단계에서 팀의 전반적인 생산성이 크게 향상됩니다.
Azure Machine Learning은 파이프라인을 빌드하는 다양한 방법을 제공합니다. DevOps 사례에 익숙한 사용자의 경우 CLI를 사용하는 것이 좋습니다. python에 익숙한 데이터 과학자의 경우 Azure Machine Learning SDK v2를 사용하여 파이프라인을 작성하는 것이 좋습니다. UI를 사용하려는 사용자는 디자이너에서 등록된 구성 요소를 사용하여 파이프라인을 빌드할 수 있습니다.
어떤 Azure 파이프라인 기술을 사용해야 하나요?
Azure 클라우드는 각기 용도가 다른 몇 가지 형식의 파이프라인을 제공합니다. 다음 표에는 다양한 파이프라인과 그 용도가 나열되어 있습니다.
시나리오 | 주 가상 사용자 | Azure 제품 | OSS 제품 | Canonical 파이프 | 강점 |
---|---|---|---|---|---|
모델 오케스트레이션(기계 학습) | 데이터 과학자 | Azure Machine Learning 파이프라인 | Kubeflow 파이프라인 | 데이터 -> 모델 | 배포, 캐싱, 코드 우선, 다시 사용 |
데이터 오케스트레이션(데이터 준비) | 데이터 엔지니어 | Azure Data Factory 파이프라인 | Apache Airflow | 데이터 -> 데이터 | 강력한 형식의 이동, 데이터 중심 활동 |
코드 및 앱 오케스트레이션(CI/CD) | 앱 개발자/Ops | Azure Pipelines | Jenkins | 코드 + 모델 -> 앱/서비스 | 가장 개방적이고 유연한 활동 지원, 승인 큐, 게이팅 단계 |
다음 단계
Azure Machine Learning 파이프라인은 초기 개발 단계부터 가치를 제공하는 강력한 기능을 갖추고 있습니다.
- Azure Machine Learning CLI v2로 파이프라인 정의
- Azure Machine Learning SDK v2로 파이프라인 정의
- 디자이너를 사용하여 파이프라인 정의
- CLI v2 파이프라인 예제 사용해 보기
- Python SDK v2 파이프라인 예제 사용해 보기
- 파이프라인에서 사용할 수 있는 SDK 및 CLI v2 식에 대해 알아봅니다.