MLOps의 다섯가지 핵심 기능인 개발, 배포, 모니터링, 반복, 거버넌스를 소개한다.
머신러닝은 컴퓨터 알고리즘의 총아로서, 명시적으로 프로그래밍되기보다는 자동으로 경험으로부터 배우고 성능을 개선한다.
알고리즘을 활용하여 학습 데이터라고도 불리는 표본 데이터를 분석하고, 예측을 수행하는 소프트웨어 모델을 구축한다.
비즈니스 목표는 당연히 성능 목표, 기술 인프라 요구사항, 비용 제약을 포함한다.
이러한 요소들은 모두 KPI로 선정할 수 있고, 상용 환경에서 모델의 비즈니스 성능 측정을 위한 모니터링 대상이 될 수 있다.
목표 설정시 변화 관리도 포함하여, 머신러닝 모델이 어떻게 구축되어야 하는지에 대한 가이드를 제공해야할 수도 있다.
머신러닝 모델 구축을 위해 데이터를 찾기 위한 핵심 질문은 다음과 같다.
데이터는 머신러닝 알고리즘의 근본요소이다.
탐색점 데이터 분석(EDA) 기법을 통해 데이터에 대한 가정을 세우고, 데이터 정제 시 필요한 사항을 확인하고, 의미가 있을 것으로 추정되는 특성을 선택한다.
특성 엔지니어링은 선택한 데이터 세트들에서 원시 데이터를 취득하고 문제를 해결하는 데 더 적합한 '특성'으로 전환하는 절차다.
새로운 머신러닝 모델을 학습시키고 최적화하는 절차는 반복적이다.
모델의 중요한 버전은 나중을 위해 저장해둬야 한다.
머신러닝의 목표는 모델을 개발한 환경에 대한 정보를 충분히 저장하여 동일한 결과를 보이는 모델을 처음부터 다시 만들어내는 것이다.
확실하게 재현 가능성을 확보하려면, 모든 자산과 매개변수를 버전 관리해야 하고, 모델의 학습과 검증에 사용한 데이터와 소프트웨어 환경 또한 버전 관리해야 한다.
학습된 모델에 대한 문서를 자동으로 생성하는 도구를 활용하여 모델 문서 작성을 자동화할 경우 작업 부담을 줄일 수 있다.
모델의 정상 여부를 검사하거나 특성 엔지니어링을 더 잘 수행하기 위해서는 그 '어떻게'가 중요하다.
데이터의 공정성이 요구사항인 경우, 요구된 공정성을 달성했는지 확인하는 과정에서도 '어떻게'가 필요하다.
모델의 제품화와 배포는 MLOps의 핵심 요소로서, 모델 개발과는 기술적으로 완전히 다른 과제다.
Model-as-a-service 혹은 실시간-스코어링 모델(Live-scoring Model)
임베디드 모델(Embedded Model)
컨테이너화
모델의 최대 자원 요구 수준을 리눅스 cqroups과 같은 기술을 활용하여 안전하게 달성할 수 있는 경우에는, 완전 자동화하여 하나의 단계로 이루어진 푸시-투-프로덕션 방식이 적합하다.
현실 세계는 계속 변화한다. 6개월 전에 이상거래 탐지 모델 구축 시 사용한 학습 데이터는 최근 3개월 내에 발생하기 시작한 새로운 형태의 사기를 반영하지 않는다.
얼마나 자주 모델을 재학습시켜야 하는가는 얼마나 빨리 현실 세계가 변하고 모델은 얼마나 정확해야 하는가에 달려 있다.
실측데이터
실측 데이터는 모델이 풀어야 하는 질문에 대한 정답이다.
입력값 드리프트
학습 데이터가 현실 세계를 정확히 반영하고 있다면 모델도 정확하게 예측할 것이라는 가정을 기반으로 한다.
배포된 모델에 대한 최근 요청에 큰 변화가 있다면, 모델 성능이 크게 떨어졌을 가능성이 높다.
돈으로 환산할 수 있는 수단이 없다면, 가장 좋은 선택지는 비즈니스 KPI를 효과적으로 모니터링하는 것이다.
모델의 새 버전을 개발해야 하는 이유는 모델 드리프트로 인한 모델 성능 저하다. 때로는 재정의한 비즈니스 목표 및 KPI를 반영해야 할 수도 있다.
최신 학습 데이터로 기존 모델을 재학습시키는 방식은 새 버전 개발을 반복하기 위한 가장 간단한 방식이다.
모델의 새 버전을 구축하고 나면, 다음 단계는 현재 배포된 버전과 지표를 기반으로 비교하는 것이다. 이 과정에서 두 모델을 동일한 개발용 데이터 세트로 평가해야 한다.
새 학습 데이터로 아주 '간단한' 자동화된 재학습 시나리오를 수행하더라도, 스코어링 데이터 보정, 데이터 정리 및 검증을 거친 여러 벌의 데이터 세트, 모델의 이전 버전, 신중하게 설계한 검사들이 필요하다.
불확실성을 경감시키기 위한 한 가지 방법으로 섀도우 테스트가 있다.
모델의 새 버전을 기존 모델과 함께 라이브 환경에 배포한다.
모든 실시간 스코어링은 기존 버전으로 처리하되, 새 버전에서 다시 처리하고 결과를 로그로 남긴다.
양쪽 버전에서 모두 충분히 스코어링하고 나면, 통계적으로 결과를 비교한다.
A/B 테스트에서는 기존 모델과 새 모델을 모두 라이브 환경에 배포한다.
입력값인 요청을 두 모델에 나눠서 전달한다.
각 요청은 기존 모델 혹은 새 모델에서 처리하고, 양쪽 모두에서 처리하지는 않는다.
멀티-암드 밴딧 테스트는 적응형이다.
입력값을 전달할 모델을 실제 결과에 따라 조정하여 결정하기 때문에 낮은 성능을 보이는 모델에는 입력값을 덜 전달하게 된다.
A/B 테스트에 비해 좀 더 복잡하지만, 성능이 떨어지는 모델로 트래픽을 전달하여 발생하는 비즈니스 비용을 절감할 수 있다.
비즈니스에 대한 일련의 통제이다.
모든 이해관계자에 대한 의무 사항을 수행하는 것이다.
의무 사항으로는 금융, 법률, 윤리적 의무가 있다.
MLOps에서 거버넌스 이니셔티브는 두 가지 범주 중 하나로 귀결된다.
MLOps 프로세스 내 각 단계를 공식화하고 관련 작업을 정의하는 데 중점을 둔다.
본 글은 데이터이쿠의 < MLOps 도입 가이드 - 기업에서 머신러닝 모델을 가장 효율적을 운영하는 방법>을 읽고 중요하다고 생각되는 부분을 정리한 것 입니다.
좋은 정보 감사합니다