본문 바로가기
AI/MLOps

[Workflow] Workflow Management 이론

by merona99 2024. 11. 15.
반응형
Workflow

Workflow Management 이론

참고강의: 10개의 프로젝트로 한 번에 끝내는 MLOps 파이프라인 구현 초격차 패키지 Online.

 

 

이번시간에는 Workflow를 사용하는 이유와 개념에 대해서 알아보자.

 

 

[목차]

  1. Workflow Management 란?
  2. MLOps 에서의 Workflow Management
  3. 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

https://theaisummer.com/apache-airflow-tutorial/

 

기능 및 특징

  • 정의 및 기능
    • Apache Airflow는 Python으로 작성된 오픈 소스 워크플로우 관리도구
    • 데이터 엔지니어링 및 머신러닝 파이프라인의 스케줄링과 관리에 탁월
  • Directed Acyclic Graphs (DAGs): 작업 간 의존성을 DAG 형태로 정의하여 복잡한 워크플로우를 효과적으로 관리
DAG형태 란?
상단의 Airflow 그림처럼 work의 흐름을 도식화해서 나타나낸 것이다. 
  • 동적 파이프라인 생성: Python 스크립트를 사용하여 동적으로 워크플로우를 생성하고 조정
  • 확장성과 유연성: 다양한 Executor 지원으로 분산 환경에서의 확장성을 제공

 

MLOps에서의 활용 예시

  • 데이터 처리 및 ETL 작업: 대규모 데이터셋의 정제, 변환 및 로딩 작업을 자동화하고 스케줄링
  • 모델 트레이닝 파이프라인: 머신러닝 모델의 트레이닝 과정을 자동화하고, 데이터 전처리에서 모델 트레이닝, 결과 평가까지 일련의 단계를 관리

3-2) Kubeflow

kuberflow는 쿠버네티스가 하는 일의 범위를 조금 벗어나는 것들을 포함한다.

 

https://www.kubeflow.org/docs/components/central-dash/overview/

 

 

기능 및 특징

  • 정의 및 기능: 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

댓글