반응형
Workflow
Workflow Management 이론
참고강의: 10개의 프로젝트로 한 번에 끝내는 MLOps 파이프라인 구현 초격차 패키지 Online.
이번시간에는 Workflow를 사용하는 이유와 개념에 대해서 알아보자.
[목차]
- Workflow Management 란?
- MLOps 에서의 Workflow Management
- Workflow Management 관리도구
1. Workflow Management 란?
1-1) Workflow Management 란?
정의
- 비즈니스나 기술 프로세스의 설계, 실행, 모니터링 및 최적화를 포함하는 전체적인 접근 방식
- MLOps에서 workflow management는 머신러닝 프로젝트의 다양한 단계와 작업을 체계적으로 조율하고 관리하는 프로세스에 중점을 맞춤
구체적 정의
- 프로세스 설계 및 모델링
- 기능 : 프로젝트 모든 단계 (데이터 수집, 전처리, 모델 트레이닝 등)을 체계적으로 설계하고 모델링
- 목적 : 각 단계의 역할, 순서, 의존성을 명확히 하여 프로젝트의 전체적인 흐름을 이해하고 관리
- 자동화 및 실행
- 기능 : 정의된 workflow에 따라 작업을 자동으로 실행. 수동 작업의 필요성을 줄이고 일관성과 효율성을 높임
- 목적 : 반복적인 작업을 자동화하여 오류를 줄이고, 속도를 향상
- 모니터링 및 관리
- 기능 : workflow의 각 단계를 모니터링하고, 성능 지표를 추적
- 목적 : 문제 발생 시 신속한 대응을 가능하게 하고, 전체 프로세스의 효율성을 지속적으로 관리
- 최적화 및 개선
- 기능 : workflow의 성능 데이터를 분석하여 프로세스를 지속적을 최적화하고 개선
- 목적 : 프로젝트의 성능과 결과물의 질을 향상시키기 위해 지속적 개선을 도모
1-2) Workflow Management 중요성
- 효율성 증대
- 자동화: 반복적이고 수동적인 작업을 자동화하여, 직원들이 더 창의적이고 전략적인 작업에 집중 가능
- 시간 절약: 프로세스의 자동화와 최적화를 통해 전체적인 작업 시간을 단축
- 오류 감소: 동 작업에서 발생하기 쉬운 오류를 줄이고, 일관성을 유지
- 투명성 및 추적 가능성
- 상태 모니터링: 프로젝트의 각 단계를 실시간으로 추적하고, 상태를 명확하게 파악할 수 있습니다.
- 문서화: 작업의 기록을 자동으로 생성하여, 추후 분석과 감사에 활용
- 의사 결정 지원
- 데이터 기반 의사결정: 수집된 데이터를 분석하여 보다 정보에 기반한 의사결정을 지원
- 개선: 지속적인 모니터링을 통해 프로세스의 약점을 파악하고 개선
- 확장성
- 확장성: 비즈니스가 성장하면서 발생하는 복잡성을 관리하고, 새로운 요구 사항에 적응
- 리소스 최적화: 필요에 따라 리소스를 할당하고 조정하여, 비용 효율성
2. MLOps 에서의 Workflow Management
정의
- MLOps에서의 workflow management는 데이터 수집, 처리, 모델 트레이닝 및 배포에 이르는 전체 머신러닝 파이프라인을 체계적으로 계획하고 실행하는 과정
- 목적 : 효율적이고 일관된 머신러닝 파이프라인을 구축하여, 프로젝트 성공률을 높이고 오류를 최소화
Workflow Management 주요 구성 요소
- 데이터 준비: 데이터 수집, 정제, 전처리, feature engineering 등의 단계를 포함
- 모델 개발: 알고리즘 선택, 모델 트레이닝, 하이퍼 파라메터 튜닝 등을 관리
- 평가 및 검증: 모델 성능을 평가하고 검증 프로세스를 수행
- 배포 및 모니터링: 트레이닝된 모델을 프로덕션 환경에 배포하고, 지속적으로 모니터링
예시
- 자동화된 데이터처리 파이프라인
- 예시: 금융 기업에서 실시간 거래 데이터를 처리하기 위한 파이프라인을 구축
- 세부사항: Apache Kafka를 사용하여 실시간 데이터 스트림을 수집하고, Apache Spark를 통해 데이터를 전처리하고 feature를 구축
- 분산 모델 트레이닝
- 예시: 대규모 이미지 데이터셋을 사용하는 딥러닝 모델을 개발
- 세부사항: TensorFlow와 Kubernetes를 사용하여 여러 GPU에서 모델을 동시에 트레이닝한다. 이는 트레이닝 시간을 단축하고 효율을 높임
✅ Orchestrator vs Workflow Management
어떻게 보면 Workflow Management는 오케스트로와 유사한면이 많다고 보인다.
오케스트로는 컨테이너의 실패, 신뢰성에 초점이 맞춰져 있다면
Workflow Management는 워크의 flow를 잘 관리해주는 것(오케스트로보다 조금 더 포괄적임)에 초점이 맞춰져 있다.
쿠버네티스또한 어느정도 workflow의 기능을 하지만 모니터링과 같은 역할은 부족하다.
일반적으로 Workflow Management를 통해서 task의 흐름을 잘 관리하고, 컨테이너를 배포하거나 업데이트를 하는 유기적인 관계는 Orchestrator를 사용한다.
조금씩 목적에 따라 차이점이 있다는 것을 알아두고 넘어가자!
3. Workflow Management 관리도구
3-1) Apache Airflow
기능 및 특징
- 정의 및 기능
- Apache Airflow는 Python으로 작성된 오픈 소스 워크플로우 관리도구
- 데이터 엔지니어링 및 머신러닝 파이프라인의 스케줄링과 관리에 탁월
- Directed Acyclic Graphs (DAGs): 작업 간 의존성을 DAG 형태로 정의하여 복잡한 워크플로우를 효과적으로 관리
✅ DAG형태 란?
상단의 Airflow 그림처럼 work의 흐름을 도식화해서 나타나낸 것이다.
- 동적 파이프라인 생성: Python 스크립트를 사용하여 동적으로 워크플로우를 생성하고 조정
- 확장성과 유연성: 다양한 Executor 지원으로 분산 환경에서의 확장성을 제공
MLOps에서의 활용 예시
- 데이터 처리 및 ETL 작업: 대규모 데이터셋의 정제, 변환 및 로딩 작업을 자동화하고 스케줄링
- 모델 트레이닝 파이프라인: 머신러닝 모델의 트레이닝 과정을 자동화하고, 데이터 전처리에서 모델 트레이닝, 결과 평가까지 일련의 단계를 관리
3-2) Kubeflow
kuberflow는 쿠버네티스가 하는 일의 범위를 조금 벗어나는 것들을 포함한다.
기능 및 특징
- 정의 및 기능: Kubeflow는 Kubernetes 위에서 머신러닝 워크플로우를 구축, 실행, 관리하기 위한 오픈 소스 플랫폼
- Kubernetes 기반: Kubernetes의 확장성과 유연성을 활용하여 머신러닝 파이프라인을 관리
- 다양한 머신러닝 툴 통합: TensorFlow, PyTorch 등 다양한 머신러닝 도구와 프레임워크를 지원
MLOps에서의 활용 예시
- 분산 모델 트레이닝: 대규모 데이터셋을 다루는 복잡한 머신러닝 모델을 분산 환경에서 트레이닝
- 모델 서빙 및 배포: 트레이닝된 모델을 쿠버네티스 클러스터에 배포하고, 효율적인 리소스 관리와 스케일링을 통해 모델 서빙을 최적화
// 여담으로 실무에서 데이터 엔지니어링쪽은 대부분 airflow를 사용한다고 한다.
모니터링이나 상태 체크 성능이 너무 좋기 때문이다.
반응형
'AI > MLOps' 카테고리의 다른 글
[Jenkins] CI/CD 이론 (0) | 2024.11.21 |
---|---|
[Workflow] Airflow Workflow Management 실습 (0) | 2024.11.16 |
[쿠버네티스] Orchestrator 실습 (0) | 2024.11.14 |
[쿠버네티스] Orchestarator 이론 (0) | 2024.11.11 |
[Docker] Docker 실습 - Container (0) | 2024.11.09 |
댓글