여러 글로벌 부문에서 머신 러닝(ML)에 더 많은 투자를 하기 시작했습니다.
ML 모델은 초기에 전문가 팀이 시작하고 운영할 수 있지만 가장 큰 장애물 중 하나는 얻은 지식을 다음 모델로 이전하여 프로세스를 확장할 수 있도록 하는 것입니다.
모델 수명 주기 관리와 관련된 프로세스를 개선하고 표준화하기 위해 기계 학습 모델을 만드는 팀에서 MLOps 기술을 점점 더 많이 사용하고 있습니다.
계속해서 현재 사용 가능한 최고의 MLOps 도구 및 플랫폼에 대해 자세히 알아보고 도구, 개발자 및 절차적 관점에서 기계 학습을 더 쉽게 만드는 방법을 알아보세요.
MLOps 란 무엇입니까?
기계 학습 모델에 대한 정책, 규범 및 모범 사례를 만드는 기술을 "기계 학습 작업" 또는 "MLOps"라고 합니다.
MLOps는 개념에서 배포에 이르기까지 ML 개발의 전체 수명 주기가 전략 없이 많은 시간과 리소스를 투자하는 대신 최상의 결과를 위해 세심하게 문서화되고 관리되도록 보장하는 것을 목표로 합니다.
MLOps의 목표는 ML 운영자와 개발자를 위해 기계 학습 개발을 보다 확장 가능하게 만들고 ML 모델의 품질과 보안을 향상시키는 방식으로 모범 사례를 성문화하는 것입니다.
일부에서는 MLOps를 "기계 학습을 위한 DevOps"라고 부르는데, 이는 DevOps 원칙을 보다 전문화된 기술 개발 분야에 성공적으로 적용했기 때문입니다.
이것은 DevOps와 마찬가지로 팀과 도구 간의 지식 공유, 협업 및 모범 사례를 강조하기 때문에 MLOps에 대해 생각하는 데 유용한 방법입니다.
MLOps는 개발자, 데이터 과학자 및 운영 팀에게 협력을 위한 프레임워크를 제공하고 결과적으로 가장 강력한 ML 모델을 생성합니다.
MLOps 도구를 사용하는 이유
MLOps 도구는 ML 팀을 위해 광범위한 업무를 수행할 수 있지만 종종 플랫폼 관리와 개별 구성 요소 관리의 두 그룹으로 나뉩니다.
일부 MLOps 제품은 데이터 또는 메타데이터 관리와 같은 단일 핵심 기능에만 초점을 맞추는 반면, 다른 도구는 보다 포괄적인 전략을 채택하고 ML 수명 주기의 여러 측면을 제어하는 MLOps 플랫폼을 제공합니다.
전문가를 원하든 더 광범위한 도구를 원하든 팀에서 이러한 ML 개발 영역을 관리하는 데 도움이 되는 MLOps 솔루션을 찾으십시오.
- 데이터 처리
- 디자인 및 모델링
- 프로젝트 및 작업장 관리
- ML 모델 배포 및 지속적인 유지
- 일반적으로 풀 서비스 MLOps 플랫폼에서 제공되는 처음부터 끝까지 수명 주기 관리.
MLOps 도구
1. ML흐름
기계 학습 수명 주기는 오픈 소스 플랫폼 MLflow에 의해 제어되며 중앙 모델 등록, 배포 및 실험을 포함합니다.
MLflow는 개별적으로 또는 집합적으로 모든 규모의 팀에서 사용할 수 있습니다. 라이브러리는 도구와 관련이 없습니다.
모든 프로그래밍 언어 및 기계 학습 라이브러리에서 사용할 수 있습니다.
기계 학습 애플리케이션을 더 쉽게 교육, 배포 및 관리할 수 있도록 MLFlow는 다음을 포함한 여러 기계 학습 프레임워크와 상호 작용합니다. TensorFlow 그리고 파이토치.
또한 MLflow는 기존 기계 학습 프로그램 또는 라이브러리에 포함될 수 있는 사용하기 쉬운 API를 제공합니다.
MLflow에는 실험 추적 및 계획을 용이하게 하는 네 가지 주요 기능이 있습니다.
- MLflow 추적 – 기계 학습 코드 매개변수, 버전, 메트릭 및 아티팩트를 로깅하고 이후에 결과를 표시하고 대조하기 위한 API 및 UI
- MLflow 프로젝트 – 프로덕션으로 전송하거나 다른 데이터 과학자와 공유하기 위해 재사용 가능하고 재현 가능한 형식으로 기계 학습 코드 패키징
- MLflow 모델 – 다양한 ML 라이브러리의 다양한 모델 제공 및 추론 시스템에 모델 유지 및 배포
- MLflow 모델 레지스트리 – 모델 버전 관리, 단계 전환 및 주석을 포함하여 MLflow 모델의 전체 수명을 공동으로 관리할 수 있는 중앙 모델 저장소입니다.
2. 쿠베 플로우
Kubernetes용 ML 도구 상자를 Kubeflow라고 합니다. Docker 컨테이너 패키징 및 관리, 유지 관리 지원 기계 학습 시스템.
기계 학습 워크플로의 실행 오케스트레이션 및 배포를 단순화하여 기계 학습 모델의 확장성을 촉진합니다.
이는 다양한 ML 요구에 맞게 조정된 보완 도구 및 프레임워크의 신중하게 선택한 그룹을 포함하는 오픈 소스 프로젝트입니다.
긴 ML 교육 작업, 수동 실험, 반복성 및 DevOps 문제는 Kubeflow Pipelines로 처리할 수 있습니다.
교육, 파이프라인 개발 및 유지 관리를 포함한 여러 단계의 기계 학습 주피터 노트북, Kubeflow는 특화된 서비스와 통합을 제공합니다.
이를 통해 AI 워크로드의 수명을 관리하고 추적하는 것은 물론 머신 러닝(ML) 모델과 데이터 파이프라인을 Kubernetes 클러스터에 배포할 수 있습니다.
다음을 제공합니다.
- SDK를 활용하여 시스템과 상호 작용하기 위한 노트북
- 실행, 작업 및 실험을 제어하고 모니터링하기 위한 사용자 인터페이스(UI)
- 매번 다시 빌드할 필요 없이 종단 간 솔루션을 신속하게 설계하고 구성 요소와 파이프라인을 재사용합니다.
- Kubeflow의 핵심 구성 요소 또는 독립 실행형 설치로 Kubeflow Pipelines가 제공됩니다.
3. 데이터 버전 관리
기계 학습 프로젝트를 위한 오픈 소스 버전 제어 솔루션을 DVC 또는 데이터 버전 제어라고 합니다.
어떤 언어를 선택하든 파이프라인 정의에 도움이 되는 실험적인 도구입니다.
DVC는 코드, 데이터 버전 관리 및 재현성을 활용하여 ML 모델의 이전 버전에서 문제를 발견할 때 시간을 절약하는 데 도움이 됩니다.
또한 DVC 파이프라인을 사용하여 모델을 교육하고 팀 구성원에게 배포할 수 있습니다. 빅 데이터 구성 및 버전 관리는 DVC에서 처리할 수 있으며 데이터는 쉽게 액세스할 수 있는 방식으로 저장할 수 있습니다.
일부(제한된) 실험 추적 기능이 포함되어 있지만 대부분 데이터 및 파이프라인 버전 관리 및 관리에 중점을 둡니다.
다음을 제공합니다.
- 스토리지에 구애받지 않으므로 다양한 스토리지 유형을 사용할 수 있습니다.
- 추적 통계도 제공합니다.
- ML 단계를 DAG에 결합하고 전체 파이프라인을 처음부터 끝까지 실행하는 사전 구축된 수단
- 각 ML 모델의 전체 개발은 전체 코드와 데이터 출처를 사용하여 따를 수 있습니다.
- 실험을 위한 초기 구성, 입력 데이터 및 프로그램 코드를 충실히 보존하여 재현성.
4. 후피 동물
Pachyderm은 DVC와 유사한 기계 학습 및 데이터 과학용 버전 제어 프로그램입니다.
또한 다음을 사용하여 생성되었기 때문에 도커와 쿠버네티스, 모든 클라우드 플랫폼에서 기계 학습 애플리케이션을 실행하고 배포할 수 있습니다.
Pachyderm은 기계 학습 모델에 사용되는 각 데이터 조각을 추적하고 버전을 관리할 수 있도록 보장합니다.
기계 학습 모델을 생성, 배포, 관리 및 주시하는 데 사용됩니다. 모델 레지스트리, 모델 관리 시스템 및 CLI 도구 상자가 모두 포함되어 있습니다.
개발자는 Pachyderm의 데이터 기반을 사용하여 기계 학습 수명 주기를 자동화하고 확장할 수 있으며, 이는 반복성을 보장합니다.
엄격한 데이터 거버넌스 표준을 지원하고 데이터 처리 및 저장 비용을 낮추며 기업이 데이터 과학 이니셔티브를 보다 신속하게 출시할 수 있도록 지원합니다.
5. 폴리액손
Polyaxon 플랫폼을 사용하면 머신 러닝 프로젝트와 딥 러닝 애플리케이션을 전체 수명 주기 동안 복제하고 관리할 수 있습니다.
Polyaxon은 도구를 호스팅하고 관리할 수 있으며 모든 데이터 센터 또는 클라우드 제공업체에 배치할 수 있습니다. 가장 널리 사용되는 딥 러닝 프레임워크를 모두 지원하는 Torch, Tensorflow 및 MXNet과 같은
오케스트레이션과 관련하여 Polyaxon을 사용하면 CLI, 대시보드, SDK 또는 REST API를 통해 작업 및 테스트를 예약하여 클러스터를 최대한 활용할 수 있습니다.
다음을 제공합니다.
- 지금 바로 오픈 소스 버전을 사용할 수 있지만 기업을 위한 선택 사항도 포함되어 있습니다.
- 실행 오케스트레이션을 포함하여 전체 수명 주기를 다루지만 훨씬 더 많은 기능을 수행할 수 있습니다.
- 기술 참조 문서, 시작하기 지침, 학습 자료, 매뉴얼, 자습서, 변경 로그 등을 포함하는 매우 잘 문서화된 플랫폼입니다.
- 실험 통찰력 대시보드를 사용하면 각 최적화 실험을 주시하고 추적하고 평가할 수 있습니다.
6. 혜성
Comet은 실험과 모델을 추적, 대조, 설명 및 개선하는 메타 머신 러닝을 위한 플랫폼입니다.
모든 실험을 한 위치에서 보고 비교할 수 있습니다.
그것은 모든 기계 학습 작업, 코드가 수행되는 곳, 모든 기계 학습 라이브러리에서 작동합니다.
Comet은 실험을 빠르게 시각화하고 작업을 간소화하며 실험을 수행하려는 그룹, 개인, 학술 기관, 기업 및 기타 모든 사람에게 적합합니다.
데이터 과학자와 팀은 자체 호스팅 및 클라우드 기반 메타 기계 학습 플랫폼 Comet을 사용하여 실험과 모델을 추적, 명확히, 개선 및 비교할 수 있습니다.
다음을 제공합니다.
- 팀 구성원이 작업을 공유할 수 있는 많은 기능이 있습니다.
- 다른 기술에 간단하게 연결할 수 있는 여러 통합 기능이 있습니다.
- 현재 ML 라이브러리와 잘 작동
- 사용자 관리를 담당합니다.
- 코드, 하이퍼파라미터, 메트릭, 예측, 종속성 및 시스템 메트릭의 비교를 포함하여 실험 비교가 활성화됩니다.
- 샘플을 시각화할 수 있는 비전, 오디오, 텍스트 및 표 형식 데이터에 대한 고유한 모듈을 제공합니다.
7. 오투 나
Optuna는 머신 러닝과 딥 러닝은 물론 다른 분야에도 적용할 수 있는 자율 하이퍼파라미터 최적화 시스템입니다.
여기에는 선택(또는 링크)할 수 있는 다양한 첨단 알고리즘이 포함되어 있으며, 수많은 컴퓨터에 교육을 매우 간단하게 배포하고 매력적인 결과 시각화를 제공합니다.
PyTorch, TensorFlow, Keras, FastAI, sci-kit-learn, LightGBM 및 XGBoost와 같은 인기 있는 기계 학습 라이브러리가 모두 통합되어 있습니다.
유망해 보이지 않는 샘플을 신속하게 줄여 고객이 보다 신속하게 결과를 얻을 수 있도록 하는 최첨단 알고리즘을 제공합니다.
Python 기반 알고리즘을 사용하여 이상적인 하이퍼 매개변수를 자동으로 검색합니다. Optuna는 원본 코드를 변경하지 않고 많은 스레드에서 병렬 하이퍼파라미터 검색을 권장합니다.
다음을 제공합니다.
- 클러스터뿐만 아니라 단일 컴퓨터(다중 프로세스)(다중 노드)에 대한 분산 교육을 지원합니다.
- 수렴 속도를 높이고 컴퓨팅 사용량을 줄이기 위해 여러 가지 트리밍 기술을 지원합니다.
- 슬라이스 플롯, 등고선 플롯 및 평행 좌표와 같은 다양한 강력한 시각화 기능이 있습니다.
8. 케드로
Kedro는 데이터 과학 프로젝트를 위해 업데이트 및 유지 관리할 수 있는 코드 작성을 위한 무료 Python 프레임워크입니다.
소프트웨어 엔지니어링의 모범 사례에서 기계 학습 코드로 아이디어를 제공합니다. Python은 이 워크플로 오케스트레이션 도구의 기반입니다.
ML 프로세스를 더 간단하고 정확하게 만들기 위해 재현 가능하고 유지 관리 가능한 모듈식 워크플로를 개발할 수 있습니다.
Kedro는 모듈화, 책임 분리, 버전 관리와 같은 소프트웨어 엔지니어링 원칙을 기계 학습 환경에 통합합니다.
Cookiecutter Data Science를 기반으로 공통적이고 적응 가능한 프로젝트 프레임워크를 제공합니다.
여러 파일 시스템 및 파일 형식에 걸쳐 데이터를 저장하고 로드하는 데 사용되는 많은 단순 데이터 커넥터는 데이터 카탈로그에서 관리합니다. 이는 머신 러닝 프로젝트를 보다 효과적으로 만들고 데이터 파이프라인을 구축하는 것을 더 간단하게 만듭니다.
다음을 제공합니다.
- Kedro는 분산 또는 단독 시스템 배포를 허용합니다.
- 파이프라인 추상화를 사용하여 Python 코드와 워크플로 시각화 간의 종속성을 자동화할 수 있습니다.
- 재사용 가능한 모듈식 코드 사용을 통해 이 기술은 다양한 수준에서 팀 협업을 촉진하고 코딩 환경에서 생산성을 향상시킵니다.
- 주요 목표는 유지 관리 가능한 데이터 과학 프로그래밍을 작성하여 Jupyter 노트북, 일회성 스크립트 및 글루 코드의 단점을 극복하는 것입니다.
9. 벤토ML
BentoML을 사용하면 기계 학습 API 엔드포인트를 더 쉽게 구축할 수 있습니다.
학습된 기계 학습 모델을 프로덕션으로 이동하기 위한 일반적이지만 압축된 인프라를 제공합니다.
이를 통해 프로덕션 환경에서 사용하기 위해 학습된 모델을 패키징하고 모든 ML 프레임워크를 사용하여 해석할 수 있습니다. 오프라인 일괄 제공 및 온라인 API 제공이 모두 지원됩니다.
고성능 모델 서버와 유연한 워크플로우는 BentoML의 특징입니다.
또한 서버는 적응형 마이크로 배치를 제공합니다. 모델을 구성하고 배포 절차를 추적하기 위한 통합 접근 방식은 UI 대시보드에서 제공됩니다.
작동 메커니즘이 모듈식이고 구성이 재사용 가능하기 때문에 서버 다운타임이 없습니다. ML 모델을 제공, 구성 및 배포하기 위한 유연한 플랫폼입니다.
다음을 제공합니다.
- 그것은 적응할 수 있는 모듈식 디자인을 가지고 있습니다.
- 여러 플랫폼에 배포할 수 있습니다.
- 수평 크기 조정을 자동으로 처리할 수 없습니다.
- 단일 모델 형식, 모델 관리, 모델 패키징 및 고성능 모델 제공을 가능하게 합니다.
10. 셀던
데이터 과학자는 오픈 소스 Seldon Core 프레임워크를 사용하여 Kubernetes에서 기계 학습 모델과 실험을 대규모로 생성, 배포 및 관리할 수 있습니다.
TensorFlow, sci-kit-learn, Spark, R, Java 및 H2O는 TensorFlow에서 지원하는 툴킷 중 일부에 불과합니다.
또한 Kubeflow 및 RedHat의 OpenShift와 인터페이스합니다. Seldon 코어는 기계 학습 모델(ML 모델) 또는 언어 래퍼(Python, Java 등과 같은 언어)를 프로덕션 REST/GRPC 마이크로서비스로 변환합니다.
기계 학습 프로세스를 개선하기 위한 최고의 MLOps 도구 중 하나는 바로 이 도구입니다.
Seldon Core를 사용하여 ML 모델을 컨테이너화하고 사용성 및 보안을 테스트하는 것은 간단합니다.
다음을 제공합니다.
- 카나리아 배포와 같은 여러 대안을 사용하여 모델 배포를 더 간단하게 만들 수 있습니다.
- 특정 예측이 이루어진 이유를 이해하려면 모델 설명자를 사용하십시오.
- 문제가 발생하면 경고 시스템을 사용하여 생산 모델을 주시하십시오.
결론
MLOps는 기계 학습 작업을 개선하는 데 도움이 될 수 있습니다. MLOps는 배포 속도를 높이고 데이터 수집 및 디버깅을 더 간단하게 만들고 엔지니어와 데이터 과학자 간의 협업을 개선할 수 있습니다.
요구 사항에 가장 적합한 MLOps 도구를 선택하기 위해 이 게시물에서는 대부분이 오픈 소스인 10가지 인기 있는 MLOps 솔루션을 조사했습니다.
댓글을 남겨주세요.