Review - 실리콘밸리의 MLOps

Michael Kim·2021년 7월 7일
0

[출처](Superb AI - https://careers.superb-ai.com/)
image

MLOps는 왜 중요한가?

머신러닝의 대부분 현실 적용 사례에서는 기초 데이터는 끊임없이 변하고, 이에 따라 Fearture Drift(피처 드리프트: 특징치가 목적에서 벗어나는 현상?) 문제 해결을 위해 모델 재학습이 필요하거나 전체 파이프라인(데이터 이동 및 전처리 시스템?)을 재설계해야 할 수도 있다. 비즈니스의 규제 요구 사항도 빠르게 변경될 수 있기 때문에, 더 잦은 모델 릴리즈 주기가 요구될 수 있다. 이에는 ML옵스가 운영 노하우, 머신러닝, 데이터 과학 지식이 결합되어 있다는 것을 의미한다.

+) 비슷한 DevOps는 무엇인가?
: DevOps는 Development Operations의 합성어다. S/W 개발자와 정보기술 전문가 간의 소통, 조율, 협업 환경을 지원하여, S/W 상품(서비스)를 보다 빨리 개발 및 배포하는 것을 목적으로 한다.

머신러닝 프로젝트의 역할 체계

주의할 점!: 구성원 1명의 역할이 하나로 제한되지 않으며, 1명이 다수의 역할을 수행하게 될 수도 있다. 이러한 특성은 작은 조직에서 더 잘 드러난다. 중요한 건 규모가 커질수록, 개인 구성원의 역할 범위가 더 전문화되고 고립되기 때문에 조직 내 협업이 더욱 요구된다.

데이터 사이언티스트

데이터 사이언티스트는 데이터 분석에 기반하여 문제의 해결 방법을 찾는 업무를 수행한다. 주요 목적은 데이터를 탐구하고 모델을 구축하는 일이지만, 작업 중 상당 시간을 이용 사례에 맞는 데이터 조작 업무에 집중하게 된다.

데이터 엔지니어

간단하게 데이터를 관리하는 업무를 수행한다. 다양한 경로를 통해 확보한 원시 데이터를 저장하는 관리 시스템을 구축하고, 데이터를 사용자에게 더 편리한 형태로 변환해 제공하는 일을 한다. 예를 들어, 이미지 데이터의 크기를 조절하거나 파일 형식을 변경하여 데이터 사이언티스트가 데이터 조작보다 데이터 분석에 더 집중할 수 있도록 돕는다.

머신러닝 엔지니어

데이터 사이언티스트가 이론적 개념을 탐구하고 증명하는 반면, 머신러닝 엔지니어는 이 개념들을 실 서비스에 배포 가능한 규모의 시스템을 구축하는 업무에 집중한다. 지속적 통합, 지속적 제공과 같은 개발 영역에 밀접한 일을 하며, 모데 ㄹ배포 전의 학습 및 테스트 자동화, 스케일링(전처리), 그리고 실 환경에 적용할 모델의 배포 및 모니터링 업무를 맡는다. 종종 데이터 사이언티스트가 작성한 코드를 재작성하고 재설계하는 일을 한다.

데브옵스 엔지니어

소프트웨어 공학과 클라우드 인프라(저장, 운영 및 관리)를 결합한 역할을 담당한다. 테스트와 신규 코드 배포 관련 자동화 업무를 수행하며, 상품(프로덕션) 환경을 관리하기도 한다. 그리고 프로젝트에서 데브옵스는 머신러닝 모델과 최종 사용자를 위한 어플의 연결고리가 된다. 예로, 웹 어플의 신규 추천 엔진을 배포하는 상황이 있을 때, 주로 사용자용 어플의 확작성, 안정성 그리고 반응성을 취우선 순위로 고려하고, 모니터링하는 업무를 맡는다. 이러한 데이터 수집, 학습, 모델 평가 등의 자동화는 데이터 사이언티스트가 추가 개발에만 집중할 수 있도록 돕는다.

IT, 비즈니스 책임자

IT 운영자는 자원 관리, 접근성 제어, 정보 보안 분야 업무를 맡는다.
비즈니스 책임자는 최종 사용자를 깊게 이해하고, 상품이 실제 사용 가치를 갖도록 팀을 지도한다. 어떤 종류의 예측이 실용성을 갖는지 정의하고, 어떤 리스크가 존재하는지 파악한다.

머신러닝은 기존의 소프트웨어와 어떻게 구분되는가?

전통적 소프트웨어 개발 방식에선 하나의 코드 버전이 하나의 소프트웨어 버전을 생성했으나, 머신러닝에선 하나의 코드 버전과 하나의 데이터셋 버전이 결합해 하나의 머신러닝 모델 버전을 생성한다.

image

데이터는 개발 프로세스에서 고려해야 할 새로운 변수다. 데이터 준비, 증강, 생성 등 여러 단계를 포함하는 전반적 머신러닝 시스템을 고려하기 시작하면 코드와 데이터 두 가지 모두의 버전을 관리하는 복잡도는 더욱 증가한다.

ML옵스 워크플로우(Works Flow)

ML옵스의 목적

모델의 ROI(투자 대비 효과)는 실제 사용되기 전까지 0이라고 볼 수 있다. 따라서 출시까지 소요되는 기간(Time to Market)은 머신러닝 프로젝트에서 가장 중요하게 고려하고 최적화해야 할 지표다.

"ML Ops의 목표는 가장 빠른 시간내에, 가장 적은 위험을 부담하며 아이디어 단계부터 상용화 단계까지 ML프로젝트를 진행할 수 있도록 기술적 마찰을 줄이는 것이다."

머신러닝의 위험 요인

  1. 지식 상실
    지식 상실은 여러 방식으로 일어날 수 있다. 회사를 그만두거나 오랫동안 다른 프로젝트를 진행하는 경우 종종 일어난다. 작업 도중 그만두었거나 오래전에 작업했던 모델을 이해하고 개발하려면 깃 저장소만으론 턱없이 부족하다. 원시 데이터로부터 코드, 환경, 구성, 매개변수 등 모델까지 포함한 전체 파이프라인을 추적할 수 있는 버전 관리 시스템 도입을 권장한다. 배운 것을 문서화하고, 잘 정리해놓자!!
  2. 프로덕션 실패 위험
    배포 후 실패 요인은 가장 간단한 문법 오류부터 데이터 스트림 변경, 예상치 못한 모델의 성능 변화까지 다양하다.
  • 모델 학습용 데이터가 의도한 형태와 같은지 확인해야한다. 데이터 수집과 저장 같은 이전 단계에서 변경됐을 수 있기 때문이다.
  • 학습 환경뿐 아니라 실제 환경에서도 모델의 정상 작동 여부를 확인해야한다. 과적합은 실질적 위험 요인으로 파이프라인과 프로세스가 이를 고려하도록 설계되어야 한다.
  • 인프라가 일관되게 작동하도록 확인해야 한다. 머신러닝 파이프라인은 입력값이 같다면 항상 동일한 결과를 내야 하며, 원하면 언제든지 이전 버전으로 돌아갈 수 있어야 한다.
  1. 규제, 윤리적 위험
    머신러닝 알고리즘은 사람이 명확하게 정의하지 않기 때문에, 엄격한 규제와 도덕적 기준이 적용되기도 한다. 쳇봇 '이루다'가 대표적인 예다 [이루다 논란 기사-]( 인공지능 신문 https://www.aitimes.kr/news/articleView.html?idxno=18912)

  2. 출시 기간
    머신러닝 상품에서 단일 모델의 단이 버전으로 끝나는 일은 매우 드물고, 장기적인 관점에서 지속 발전 가능한 머신러닝 역량을 구축하는 일이 더 중요하다. 모델은 보통 정기적 재학습이 필요하다. 기하급수적인 재학습이 일어나고, 임시방편적 워크플로우로 인해 혼란과 고객 불만족, 부진한 결과가 발생한다. 확장 가능한 사업 모델을 발굴하려면 제품을 단일 개체의 학습 모델로 바라보기보다 파이프라인 전체를 바라보는 넓은 시야가 필요하다.

    image

profile
정리하고 복습하고 일기도 쓰고

0개의 댓글