본문 바로가기
카테고리 없음

[AI 부트캠프] MLOps 실시간 강의 – 이인우 강사님

by 센코보 2025. 2. 1.

AI부트캠프에서 이번에 MLOps 프로젝트가 시작되기 전에 이인우 강사님의 실시간 강의가 있었습니다.

이인우 강사님은 KEST, 크몽, 티빙 등에서 Data Engineer ML Engineer 로서 많은 경험을 가지고 계시고 현재 벌크럼에서 AI 연구소장으로 재직중인 현직자 분이라서 현직에서의 여럼 경험들에 대한 다양한 인사이트들을 얻어갈 수 있을 것으로 기대되었습니다.

 

우선 이번 AI부트캠프에서 강의하는 MLOps 입문 챕터의 핵심은 머신러닝 전체 워크 플로우와 실제 일하는 방식을 이해하고, MLOps 가 필요한 이유에 대해서 알아가는 것이라는 설명을 해주셨습니다. 현업에서 일하는 방식을 이해하기 위해서 데이터 직군에 대해서도 알아보았습니다.

 

데이터 직군의 종류:

<데이터 분석가 (Data Analyst)>

주로 데이터를 가지고, 간단한 기초 분석을 하거나, NumpyPandas 혹은 R과 같은 EDA 과정을 할 수 있는 도구를 활용하여 데이터 분석 과정을 통해서 기업 비즈니스에 필요한 리포트들을 생산하는 역할

<데이터 엔지니어 (Data Engineer)>

주로 데이터 분석가나 데이터 과학자들이 사용하기 전에 데이터들을 기업에 잘 공급하는 역할. 데이터 플랫폼 개발, 데이터 파이프라인 개발등과 같은 업무들이 주요 업무

<데이터 과학자 (Data Scientist)>

해외에서 정의하는 데이터 과학자와 국내에서 정의하는 데이터 과학자의 개념이 조금 다름. 해외에서는 데이터 분석가와 데이터 엔지니어의 역량을 모두 가진 사람을 데이터 과학자라고 일컬음. 국내에서는 머신러닝이나 딥러닝 모델을 개발하거나, 좀 더 분석가의 역량에 가까운 형태로 정의되는 경우가 많음

<데이터 베이스 관리자(DataBase Admin)>

데이터베이스라는 소프트웨어를 관리하는 관리자. 요즘엔 데이터베이스 관리자가 따로 있는 기업들도 많지만, 데이터 엔지니어가 데이터베이스 관리자의 역할을 하는 경우도 상당히 많음.

<머신러닝 엔지니어(Machine Learning Engineer)>

머신러닝 개발에 관련된 전반적인 소프트웨어 엔지니어링에 관련된 일을 함. 특히 딥러닝 모델의 학습 및 배포 과정을 포함하기도 하며, 머신러닝 엔지니어가 어떤 기업에서는 데이터 엔지니어를 포함하기도 함

<비즈니스 분석가(Business Analyst)>

데이터 분석가에 가깝지만, 데이터를 분석할 때 비즈니스적인 측면의 데이터들만 다뤄서 분석하는 직군

 

아래의 표는 Metaflow 라는 도구의 도큐먼트에 나와있는 표인데, 데이터 과학자와 데이터 엔지니어(Infrastructure) 에게 요구되는 역량 중 어느 영역의 비중이 더 큰지 보여주는 표입니다,

 

 

직무측면에서 머신러닝의 모델은 데이터 과학자가 주도적으로 개발한다고 할 수 있습니다.

 

<머신러닝 시스템의 워크플로우>

1) 비즈니스 문제 정의 : 이 문제가 머신러닝으로 풀기 적합한 문제인가? 검토

- 직무전문가(Subject Matter Expert)는 달성해야 하거나 해결해야 하는 명확한 목표ㅡ 비즈니스 질의, KPI를 제시해야 함

- 비즈니스 목표가 명확하지 않으면 프로젝트가 산으로 감

- 비즈니스 목표 정의 시 프로젝트 이해 관계자들과 협의 필요

2) 데이터 탐색 및 전처리 : 데이터 수집, 정제 및 분석으로 품질 확보

- 적합한 데이터 찾기 -> EDA -> 특성 선택 -> 데이터 수집 및 파이프라인 정의

- 선택된 특성의 전처리 과정을 데이터 엔지니어와 협의하여 데이터 수집 파이프라인을 정의해야 하고, 아래와 같은 요소들을 고려해야 함

- 데이터 수집 흐름, 데이터 수집 주기, 뎅터 수집 양 혹은 기간, 데이터 저장 위치, 워크플로우 수행시간, 실패 혹은 예외 등의 장애 처리

3) 모델 학습 및 튜닝 : 알고리즘 선택과 하이퍼파라미터 최적화

 

<모델 학습 시 입출력 요소>

데이터셋

각종 파라미터

- 모델 파라미터 : 레이어의 가중치와 편향

- 수행 파라미터 : 날짜등의 일반적인 애플리케이션 수행에 필요한 동작 매개변수

- 하이퍼 파라미터 : 학습률, 배치 크기, 레이어 수등의 모델 학습 관련 사전 설정 값

학습된 모델(가중치 파일)

모델의 출력 데이터(추론결과)

모델 지표

수행 로그

4) 모델 검증 및 평가 : 테스트 데이터를 활용해 성능 평가

5) 모델 배포 : 실제 환경에서 사용할 수 있도록 시스템에 통합

<모델 배포시 고려사항>

모델의 일관성 및 버전 관리 -> ML Engineering

데이터의 스키마 및 버전 -> Data Engineering

태스크 수행 파라미터 -> DevOps Engineering

서빙 방식(REST API, gRPC, on-device ) -> DevOps Engineering

워크플로우 수행 시간 -> DevOps Engineering

컴퓨팅 자원 요구사항 -> DevOps Engineering

확장성 및 탄력성 -> DevOps Engineering

응답지연 요구사항 -> DevOps Engineering

모니터링과 로깅 -> DevOps Engineering

 

6) 모니터링 및 피드백 : 모델 성능 모니터링 및 지속적인 개선

각종 지표들을 모니터링하여 모델의 성능 및 서비스 문제를 조기에 감지하고 대처할 수 있어야 함

- 자원 모니터링

태스크별 CPU, GPU, 메모리, 디스크, 네트워크 등의 사용량

- 상태 점검(Health check)

- 머신러닝 지표 모니터링

오프라인 지표 : Train/Validation loss, NDCG

온라인 지표 : 실 데이터에 따른 성능 지표(클릭수, 유입수 등), 섀도우 혹은 A/B 테스트

- 각종 인프라 지표 모니터링

API 호출 수, 구간별 네트워크 지연 등

 

MLOps는 무엇이고 왜 필요할까?

MLOps(Machine Learning Operations)는 머신러닝 모델의 개발, 배포, 운영을 효율적으로 관리하기 위한 프로세스와 도구의 집합입니다.

소프트웨어 개발의 DevOps 개념을 머신러닝에 적용한 것으로, 모델 개발부터 실제 서비스 환경에서의 운영까지의 과정을 체계화하고 자동화합니다.

 

기존 머신 러닝 시스템의 문제

- 대부분의 전통적 조직에서 여러 머신러닝 모델을 개발하는 것과 그 모델들의 상용 환경 배포는 비교적 새로운 업무에 속했음

 

- 비교적 최근까지만 해도 적은 수의 모델만 관리 가능했음

- 전사 차원에서는 모델들과 비즈니스 연관도에 대해 이해하는 일에 관심이 거의 없었음

- 많은 의존성 : 데이터는 지속적으로 변화하고, 비즈니스 요구사항도 변경된

모델의 결과를 지속적으로 비즈니스에 반영하여, 상용 배포한 모델과 실제 데이터가 요구사항에 부합하도록 하면서 동시에 원래의 문제를 해결하거나 원래의 목표를 달성하도록 해야함

 

- 동일한 언어를 사용하지 않는 이해관계자들

머신러닝 모델 생애주기에는 사업 담당자, 데이터 과학자, IT 개발/운영 팀이 모두 관련되어 있지만, 대부분의 경우 상호 소통의 기준이 될 수 있는 동일한 도구 사용이나 기반 기술 공유가 이루어지지 않음

 

- 소프트웨어 개발을 모르는 데이터 과학자

대부분의 데이터 과학자는 모델 구축 혹은 평가에 특화된 전문적 지식과 경력을 가지고 있으며, 애플리케이션 작성에는 능숙하지 않음

시간이 흐름에 따라 일부 데이터 과학자는 모델 배포나 운영에 능숙해지기도 하지만, 상당수 데이터 과학자들은 여러 가지 역할을 맡게 되면 그 어떤 것도 완전하게 수행하지 못하게 됨

제한된 업무만 수행하는 데이터 과학자들은 운영해야 하는 모델이 늘어날수록 운영에 대한 리소스와 리스크가 커짐. 그렇다고 데이터 팀의 구성원을 순환 배치하면 데이터 과학자들은 자신이 만들지 않은 모델을 관리해야 하는 상황에 직면하게 되면서 문제가 더 복잡해 짐.

 

이러한 문제들을 해결하기 위한 방안?

MLOps!!!

 

#AI 부트캠프 # 딥러닝 #패스트캠퍼스 #부트캠프 #국비지원취업 #국비지원