티스토리 뷰

IT

MLMOps 구축 가이드 by 김 남기

비즈붓다 2024. 12. 8. 15:38
728x90

 

[ 밑줄/연결 ]

 

(ML 시스템 구성)

 

(분석 환경)

JupyterLab을 활용. 데이터 탐색, 시각화, 분석 및 모델 개발

데이터 과학자들이 파이썬, R, 다양한 언어를 사용하여 데이터를 탐색하고 실험을 수행하며,결과를 인터랙티브하게 확인가능

 

(ML 모델 파이프라인)

ML 파이프라인 개발은 아파치 Airflow, MLflow, Kuberflow 등의 오픈소스 도구를 사용

Airflow 관리 플랫폼: 데이터 수집, 전처리, 피처 엔지니어링, 모델 훈련, 모델 평가 및 배포단계를 체계적으로 관리할 수 있게 지원함

 

(ML 모델 서비스(API)

ML 모델을 서비스하기 위해 도커 컨테이너르 활용

도커를 사용하면 ML 모델과 모델에 필요한 의존성을 패키지로 묶어서 쉽게 배포 가능

 

(저장소(Repository)

저장소는  로컬 디스크와 MariaDB 데이터베이스로 이루어져 있음

 

로컬 디스크

데이터를 인코딩한 피처값과 인코딩을 저장하는 곳

ㅇ 지속적 학습을 위해 생성된 ML 모델 파일을 안전하게 보관한다. 

 

MariaDB

ㅇ Feature Store를 활용되며, 피처를 데이터베이스 테이블에 저장함. 이를 통해 데이터 추출과 처리가 용이해지고, 모델에 필요한 피처를 효과적으로 활용할 수 있다.

ㅇ ML 모델의 메타데이터를 보관하는 Metadata 시스템 저장소. 모델과 관련된 로그와 정보를 저장함. 모델  API로부터 수집된 피처값과 스코어값, 지속적 학습을 수행한 로그, 모델 성능 지표 등이 여기에 저장됨. 이를 통해 모델의 품질을 평가하고 문제 해결을 위한 데이터를 수집하며, 모델의 성능을 지속적으로 개성함

 

(데이터 과학자의 ML 모델 개발을 위한 업무 프로세스)

데이터 수집 --> 데이터 처리 --> 데이터 클렌징(Outlier, N/A) -->  EDA --> 모델링 및 알고리즘 개발

ㅇ 데이터 클렌징 : 오류, 중복, 불일치, 부정확한 값 등을 식별하고 수정/제거하여 데이터의 신뢰성을 확보. 

ㅇ EDA(Exploratory Data Analysis, 탐색적 데이터 분석) 

 

(데이터 과학자의 ML 모델 개발의 과정)

데이터 추출 --> 데이터 전처리 --> 모델 학습 --> 모델 예측

 

데이터 추출

ㅇ 배치 데이터 처리 : SQL을 통해 DB를 사용하거나  Airflow, Spark 같은 오픈 소스를 이용

ㅇ 실시간 데이터 처리 : 카프카(Kafka)를 이용하여  Flink, NiFi 또는 StreamSets 같은 오픈 소스를 사용하여 처리

 

ML 파이프라인

하나의 워크플로우로 이루어지며, 데이터 추출, 데이터 유효성 검사, 데이터 전처리, 모델 학습, 모델 평가 및 검증, 그리고 예측과 같은 단계를 작업(Task)로 구현하고 실행할 수 있다.

 

데이터 파이프라인은 데이터를 수집, 전처리, 저장, 분석하는 과정을 자동화화고 효율적으로 처리하는 방법을 말하며, 데이터의 흐름을 관리하여 데이터의 가공 과정을 관리한다. 

 

Airflow는 ML 파이프라인의 워크플로우를 관리하기 유용한 데이터 파이프라인을 구축, 스케줄링, 모니터링 및 관리하는 오픈 소스 플랫폼

 

DAG를 사용하여 작업을 정의하고, 각 작업은 하나 이상의 Task로 구성된다. 

Task는 노드로 표현되며, 노드는 서로 연결되어 작업 흐름을 나타낸다. DAG를 사용하여 데이터 처리에 대한 작업 흐름을 정의하면, Airflow는 작업을 스케줄링하고 자동으로 실행한다. 

 

DAG(Directed Acyclic Graph)

Airflow에서 작업 흐름은 DAG로 정의된다.

방향성이 있고, 사이클이 없는 그래프로 Airflow에서 작업 실행 순서를 결정한다.

DAG 객체에서는 작업(Task)의 순서 및 종속성이 정의된다.

 

작업(Task)

DAG에서 실행되는 작업 단위를 나타낸다.

 

Aiflow는 웹 서버, 스케줄러, 실행자 크게 세 가지 요소로 구성된다.

 

----------------------------

MLOps 

기계 학습 모델의 개발과 운영을 효율적으로 관리하기 위한 방법론

모델 개발, 테스트, 배포 그리고 모니터링까지 ML모델을 운영 서비스로 적용하기까지 복잡한 단계를 효과적으로 관리하고, 더 빠르게 모델을 개발하여, 안정으로 운영할 수 있게 도와주는 ML 엔지니어링 문화 및 방식

 

지속적 학습

새로운 데이터, 코드 변경 또는 일정에 따라 새로운 학습 설정을 통해 학습 파이프라인을 반복적으로 실행하는 것

 

예측 서빙

모델 추론을 위해 운영 환경에 배포된 모델을 서비스에 제공하는 것

모델이 대상 환경에 배포된 후, 모델 서비스는 예측 요청을 수락하고 예측의 결과를 응답으로 제공하기 시작한다. 

ㅇ REST 또는 gRPC 같은 I/F를 사용하여 높은 빈도의 단건 요청 또는 미니 배치와 같은 여러 건의 요청에 대한 실시간  온라안 추론

ㅇ 실시간 이벤트 처리 파이프라인을 통한 스트리밍 추론

ㅇ 일반적으로 ETL 프로세스와 통합되는 벌크 데이터를 이용한 오프라인 배치 추론

ㅇ 임베디드 시스템 또는 Edge 디바이스의 일부로 임베디드 추론

ㅇ 모델을 해석하고 예측에 대한 설명을 제공

 

데이터 및 모델 관리

MLOps 라이프사이클 전체에 걸쳐 교차되는 중심 기능으로 ML 아키텍트를 관리하여 감사(Auditability), 추적성 및 규정 준수를 지원하고 ML 자산의 공유성, 재사용성 그리고 탐색성을 향상할 수 있다.

 

데이터 세트 및 피처 관리

모델 학습을 위한 고품질의 데이터를 생성, 유지 및 재사용하는 것을 지원

ML모델에 사용되는 피쳐와 데이터 세트를 통합적으로 관리하는 저장소에 제공 --> 재사용성을 높이고 학습-서빙 왜곡의 문제를 완화하는 데 도움이 된다.

 

ML 메타데이터 추적

각 프로세스에 의해서 생성된 아티팩트는 프로세스 실행에 대한 정보와 함께 ML 아티팩트 저장소에 자동으로 저장된다.

ML 메타데이터에는 파이프라인 실행 ID, 트리거, 프로세스 유형, 단계, 시작 및 종료 시간, 상태, 환경 구성 및 매개 변수값 등이 포함될 수 있다.

모델의 아티팩트에는 데이터 세트와 스키마, 통계 데이터, 하이퍼파라미터, ML모델, 모델의 평가 지표 등이 포함된다.

 

(머신러닝 시스템의 숨겨진 기술 부채)

 

일반적으로 현실 세계에서는 지속적이고 대규모의 유지보수 비용을 발생시킴

 

복잡한 모델이 경계를 침식함

외부 데이터 의존, 명시적 동작 지정 어려움 --> 엄격한 추상화 경계를 강제하기 어려움

 

코드 종속성보다 큰 데이터의 종속성 비용

 

 

[ 자평 ]

 

직장생활을 하다 보면 경험을 해 본 적도 없고, 정확하게 그것이 뭔지도 모르는데 그냥 멋져 보이라고 사용하는 용어들이 있다..

그런 말들 중 하나가 MLOps이었다.

도대체 그것이 왜, 무엇을, 어떻게 하는 것인지? 알고 싶어서 봤다.

전문 개발자용 책이라 필요한 부분만 훑어 봤다.

댓글