728x90
이 글이 도움되셨다면 광고 클릭 부탁드립니다 : )
아래 part1에 이어 MLOps 도입 가이드 도서 정리하였습니다. 본 포스팅에서는 상용 배포, 모니터링과 피드백 루프 챕터에 대한 내용을 다룹니다.
2022.10.27 - [Review/도서 리뷰] - [도서 리뷰] Introducing MLOps, MLOps 도입가이드 part1
Ch6. 상용배포
머신러닝 상용 배포 시 알아야 할 개념 및 고려사항, 배포 프로세스 구축 방식 및 영향력 파악
- CI/CD 파이프 라인
- CI/CD는 지속적인 통합(Continuous Integration)과 지속적인 전달(Continuous Delivery, 배포) -> 더 자주 더 빨리 출시하면서도 품질과 리스크 통제 가능
- 파이프라인 예시(한 번에 완벽한 파이프라인 구축은 어려움, 점차 확장/추가해야 함)
- 모델 구축 : 모델 아티팩트 생성 -> 아티팩트를 장기 보관소에 저장 -> 기본 점검 수행 -> 공정성 및 설명 가능성 보고서 생성
- 테스트 환경에 배포 : 머신러닝의 성능 및 계산 성능 검증을 위한 테스트 수행 -> 수동 검증
- 상용 환경에 배포 : 모델의 카나리(canary) 배포 -> 모델 완전 배포
- 머신러닝 아티팩트 개발
- CI 파이프라인의 목표는
- 여러 contributor의 작업을 통합할 때 불필요한 노력을 들이지 않도록 하는 것
- 개발 내역 간 충돌로 인한 버그 감지
- 중앙화된 버전 관리 시스템 사용 필요
- Git활용 -> 변경사항을 선명하게 기록, 이전 버전의 코드로 안전하게 롤백 가능, 병합하기 전에 각자 작업이 가능
- 아티팩트?
- 코드와 데이터를 중앙 저장소에 저장한 뒤, 테스트 및 배포 가능한 프로젝트 번들
- 아트팩트화 필요한 요소
- 모델 및 전처리 관련 코드,
- 하이퍼파라미터와 설정,
- 학습 데이터와 검증 데이터,
- 실행 가능한 형태의 학습된 모델,
- 버전을 지정한 라이브러리, 환경 변수 등의 실행 환경
- 문서화
- 테스트 시나리오 관련 코드와 데이터
- 테스트용 파이프라인
- 아티팩트에 포함된 모델의 다양한 속성을 검증 가능
- 소스상의 이슈를 가능한 쉽게 진단 가능
- 정상 데이터, 특이 데이터, 최신 상용 데이터로 테스트
- 이러한 테스트를 최대한 자동화해야 함, 효율적인 MLOps의 핵심 요소
- CI 파이프라인의 목표는
- 배포 전략
- 배포 파이프라인을 이해하려면 자주 혼동되는 개념 구별 필수
- 통합, Integration
- 중앙 repository에 대한 기여 contribution 부분을 병합(일반적으로 개별 기능에 대한 git 분기를 main 분기에 병합함)하고 다소 복잡한 테스트를 수행하는 프로세스
- 전달, Delivery
- CI/CD의 CD부분에서 사용되는 것과 같이, 상용 환경에 배치할 준비가 된 모델에서 완전 패키징되고 검증된 버전을 발하는 프로세스
- 배포, Deployment
- 대상 인프라에서 모델의 새 버전을 실행하는 프로세스
- 완전히 자동화된 배포가 항상 실용적이거나 바람직한 것은 아님
- 지속적인 전달은 지속적인 배포에 필수적이지만, 지속적인 배포 없이 지속적인 전달만으로도 엄청난 가치 제공 가능
- 출시, Release
- 모델의 어떤 버전을 배포한다고 해서 반드시 상용 환경의 workload가 새 버전으로 전달되는 것은 아니기 때문에 출시는 또 다른 단계라 할 수 있음
- 통합, Integration
- 모델 배포의 종류
- 일괄 스코어링, batch scoring
- 실시간 스코어링, real-time scoring
- 모델 상용 배포 시 고려 사항
- Downtime 줄이기(멈추는 시간, 무중단 배포 같은 개념)
- 신규 시스템을 구축 -> 기능적인 검정이 끝나면 workload를 기존에서 신규 시스템으로 바꾸는 것(신규 시스템이 정상 상태를 유지하면 이전 시스템 종료)
- 카나리 출시/배포
- 리스크 완화 가능, 모델의 안정적인 버전은 상용 환경에 유지한 채 workload 일정 비율을 새 모델에 전달
- Downtime 줄이기(멈추는 시간, 무중단 배포 같은 개념)
- 상용 환경의 유지보수
- 자원 모니터링(CPU, 메모리, 디스크…), 상태 점검(모델 온라인 여부, 지연시간 분석), 머신러닝 지표 모니터링(모델 정확성, 이전 모델과 성능 비교)
- 배포 파이프라인을 이해하려면 자주 혼동되는 개념 구별 필수
- 컨테이너화
- 모델 버전을 관리하는 것은 단순히 버전 제어 시스템에 코드를 저장하는 것 이상임
- 특히, 환경에 대한 상세 내용(python 라이브러리 종류 및 버전, 종속성…)
- 두 모델 간에 종속된 라이브러리의 종류나 버전에 차이가 있을 수 있음
- 모델 하나에 오작동이 발생하면 공동 호스팅 된 다른 모델의 성능도 저하될 수 있음
- 컨테이너화하여 응용 프로그램을 패키징하여 서버로 전송하고 타 프로그램과 격리된 상태로 실행 가능
- 도커 활용
- 동일한 여러 개의 도커 호스트가 필요할 수 있음 -> 관리/배포 어려움
- 쿠버네티스
- 컨테이너 오케스트레이션의 표준이 된 오픈 소스 플랫폼
- 쿠버네티스 클러스터라고 불리는 도커 호스트 그룹에서 애플리케이션을 실행할 수 있는 선언적, Declarative API 제공
- 컨테이너를 설정하고 모니터링하고 업그레이드, 중지하고 연결하는 단계를 코드로 표현하는 대신, 사용자가 원하는 상태를 구성 파일에 저장하며 쿠버네티스가 알아서 처리하고 유지보수함
- 쿠버네티스와 결합된 도커는 머신러닝 모델을 포함한 응용 프로그램을 호스팅 할 수 있는 강력한 인프라를 제공할 수 있음
- 모델 버전을 관리하는 것은 단순히 버전 제어 시스템에 코드를 저장하는 것 이상임
- 배포 확장
- 상용 환경에서 대규모 데이터에 모델을 적용할 수 있는 기능, 매우 많은 수의 모델을 학습시킬 수 있는 능력이 가능하도록 확장
- 요구사항과 도전 과제
- 실시간/일괄 스코어링 배포 방법과 상관없이 시스템은 여러 서버상의 스코어링 로그를 읽고 추출할 수 있어야 함
- 모델 하나를 여러 서버에 배포하면, 시스템은 여러 서버에 걸쳐 모델에 대한 모든 정보의 매핑 및 집계를 처리할 수 있어야함
- 한 모델의 여러 가지 버전을 배포하는 경우, 시스템은 여러 서버에 걸쳐 모델의 버전 별 정보의 매핑 및 집계를 처리할 수 있어야함
Ch7. 모니터링과 피드백 루프
- 잘못하면 비즈니스에 부정적인 영향을 즉각적으로 미칠 수 있기 때문에 아주 중요한 부분
- 머신러닝 모델은 두 가지 관점에서 모니터링해야 함
- 자원 관점 (+모델이 상용 환경에서 올바르게 실행되는 거 있는지 확인)
- 시스템이 살아 있는지, CPU, RAM, 네트워크 사용량, 디스크 공간이 예상한 수준 안에 있는지
- 성능 관점
- 모델이 새로운 데이터 패턴을 정확하게 표현하는지, 설계단계에서 예상한 수준의 성능을 보이는지
- 자원 관점 (+모델이 상용 환경에서 올바르게 실행되는 거 있는지 확인)
- 모델 재학습 주기 결정 요소
- 도메인 : 사이버 보안, 실시간 거래와 같은 분야의 모델은 지속적인 변화에 맞춰 정기적 업데이트 필요
- 비용 : 재학습 비용을 들일만큼의 성능 개선할 가치가 있는지 고려
- 모델 성능 : 새 데이터를 충분히 수집하였는지 고려
- 모델 성능 저하 모니터링
- 실측 데이터 평가
- 데이터 수집, 실측 데이터 기반 재학습에는 레이블 작업이 필요함
- 이상 거래 탐지 모델에서 실측 데이터는 특정 거래가 실제로 사기인지 여부가 될 것
- 수집된 데이터(True/False 레이블 된)를 기반으로 모델 성능 도출하고 학습 모델 성능 지표와 비교
- 데이터 수집, 실측 데이터 기반 재학습에는 레이블 작업이 필요함
- 입력값 드리프트 감지
- 드리프트 : 데이터 분포의 이동
- 학습 데이터와 배포 후 들어오는 데이터가 다르지 않은지
- 실측 데이터 평가
- 데이터 드리프트 감지
- 적시 대응을 위해 실측 데이터를 기다리지 않고 피처 값 기반으로 모델 작동 모니터링 필요함
- 예시
- 표본 선택의 편향 : 학습 표본이 모집단을 대표하지 않는 경우
- 끊임없이 변화하는 환경
- 탐지 기법
- 일변량 통계 테스트 : 분포 동일한지 검정
- 도메인 분류기 : 원본 데이터와 개발 데이터를 구분하는 모델 학습 -> 모델이 성능으로 드리프트 수준 예측
- 피드백 루프
- 효과적인 머신러닝 프로젝트에서는 데이터 피드백 루프 형태를 구현함
- 모니터링 단계 모델 성능을 확인해 수집한 데이터로 다시 모델 개발에 사용
반응형
'Review > 도서 리뷰' 카테고리의 다른 글
[도서 리뷰] 코드 밖 커뮤니케이션 (7) | 2024.10.17 |
---|---|
[도서 리뷰] Introducing MLOps, MLOps 도입가이드 part1 (0) | 2022.10.27 |
[도서 리뷰] 핸즈온 비지도 학습 | 3장 차원축소 (1) | 2022.10.19 |
[도서 리뷰] XAI 설명 가능한 인공지능, 인공지능을 해부하다 (1) | 2022.10.19 |
[도서 리뷰] 효율적인 R프로그래밍 (0) | 2022.10.19 |