[Designing Machine Learning Systems] 머신러닝의 인간적 측면
사용자와 시스템 개발자가 ML 시스템과 상호 작용하는 방법을 알아본다.
사용자와 시스템 개발자가 ML 시스템과 상호 작용하는 방법을 알아본다.
ML 시스템에 적합한 인프라를 설정하는 방법을 알아본다.
데이터 분포 시프트에 모델을 적응시키려면 ML 모델을 지속적으로 업데이트해야 한다. 이 장에서는 연속 학습이 무엇이며 어떤 난제가 있는지 알아본다. 그리고 연속 학습을 현실화하기 위한 4단계 계획을 세운다.
모델 배포 후에도 이슈를 탐지하기 위해 성능을 지속적으로 모니터링해야 하며 발생한 이슈를 수정하는 업데이트를 계속 배포해야 한다.
반복 프로세스의 또 다른 부분인 모델 배포를 알아본다. 배포는 일반적으로 ‘모델을 실행하고 액세스 가능하게 함’을 의미하는 포괄적인 용어이다.
데이터와 피처 엔지니어링에 들인 노력이 출력(예측)값을 제공하는 시스템으로 결실을 맺는 첫번째 단계
⌜Practical lessons from predicting clicks on ads at facebook⌟에서는 올바른 피처를 보유하는 것이 ML 모델을 개발하는 데 가장 중요하다고 말한다. 책의 필자도 협업했던 많은 회사에서 실행 가능한 모델이 있는 한 올바른 피처를 보유하는 것이 하이퍼파라미터 조정 같은 알고리즘 기법보다 큰 성능 향상을 이끌어내는 경우가 많았다고 한다.
데이터 과학 관점에서 데이터를 처리하는 방법을 살펴본다. ML 모델을 개발하고 개선하는 데 훈련 데이터는 매우 중요하다.
ML과 빅데이터는 밀접한 연관이 있다. 이 장에서는 데이터 엔지니어링의 기본을 다룬다. 일반적인 ML 프로젝트에서 사용하는 다양한 데이터 소스를 살펴보고 데이터를 저장하는 포맷을 알아본다. 데이터 저장은 해당 데이터를 *검색(retrieval)할 경우 필요하다. 저장된 데이터를 검색하기 위해 데이터 포맷뿐 아니라 데이터가 어떻게 구조화되었는지 알아야 한다. 데이터 모델은 특정 데이터 포맷으로 저장된 데이터가 구조화되는 방식을 정의한다.
ML 시스템 설계는 MLOps에 시스템으로 접근한다. 이는 비즈니스 요구 사항, 데이터 스택, 인프라, 배포와 모니터링 등 구성 요소와 각 요소에 속하는 이해관계자가 협업할 수 있도록 ML 시스템을 전반적으로 고려한다는 의미이다.
많은 사람들이 ‘머신러닝 시스템’이라고 하면 로지스틱 회귀나 신경망 같은 ML 알고리즘만 떠올리지만, 프로덕션 환경에서 ML 알고리즘은 시스템의 일부일 뿐이다. 프로덕션 환경에서는 고려해야하는 필수 요구사항과 배포, 운영 및 모니터링, 관리 과정을 전체적으로 고려하는 것이 필요하다는 것을 인지하면서 MLOps가 등장했다.
최근 공부한 것들을 활용하여 무언가를 스스로 만들어보고 싶다는 생각을 했다. 만들어보고 싶은 것을 만드는 과정에서 필요한 것들을 찾고 공부하고 활용하면서 발전했다는 이야기를 많이 들었고, 내가 좋아하고 관심있는 것을 다루며 더욱 몰입할 수 있을 것 같았기 때문이다. 이러한 이유로 예전부터 관심 있었던 금융 도메인에 ML을 접목한 무언가를 만들어 보려고 준비하고 있다.