[음악]
지금까지는
데이터를 통해 기계학습 모델을 어떻게 구축하는지에 초점이 맞춰졌습니다
품질을 어떻게 측정할지
작동하는지 아닌지 어떻게 알지
하지만 이것만으로는 똑똑한 애플리케이션을 못 만듭니다
그런 걸 만드려면 지금까지 배운 모든 것을
웹사이트에서 상품을 사게 될
소비자 앞에 들여놔야 합니다
이 과정이 실제로 어떻냐고요?
여러 가지로 다양한 면이 연결됩니다
모델 배포라고 부르는 것인데 모델이 실시간으로 예측을 하도록
만드는 작업입니다
좀 있다 설명드리죠
오프라인에서 훈련시킨 모델이 장기적으로도
계속 정확한 예측을 할 것인지를 어떻게 평가하는지 알아봅니다
관리 부분도 고려해봐야 합니다
모델이 아직 괜찮은지 판단하고 모델이 개선되면 어떻게 교체하며
일정 주기마다 모델이 아직 괜찮은지 데이터 재학습을 시켜야 할지
알아보기 위해 모니터링 하는 기준인
측정 결과를 어떻게 반영할지 알아봅니다
이런 부분들이 모두 맞아떨어져야 합니다
각각 따로 떨어진, 분리된 존재가 아니라
깊은 이해와 끊임없는 모델 개선을 위해 상호작용하는 부분들이기 때문입니다
처음부터 시작하죠
배포 부분부터 보겠습니다
다음 세팅을 고려해보죠
아주 멋진 상품 추천 시스템을 만드는데
수백만 상품 리뷰와 사용자 데이터를 사용한다고 합시다
학습한 모델을 노트북, 데스크탑,
클러스터로 옮기고자 합니다
사용자와 상호작용하는 웹사이트에 배포하려는 거죠
어떤 모습일까요?
전체 시스템은 과거 데이터로 시작합니다
데이터는 사용자, 리뷰,
선호도 등을 수집했을 것입니다
이 데이터로 모델을 추천 시스템 모듈에서 보았듯
훈련시키는데, 과거 데이터 처리는
주로 배치 오프라인 세팅에서 이루어집니다
모델을 예를 들어 데스크탑이나 클러스터에서
학습시키고 그 모델을 클라우드 같은데 배포합니다
이렇게 해서 예측을 하게 됩니다
이게 온라인과 실시간 쪽을 담당하는 시스템입니다
예로 웹사이트가 있으면
사용자 정보, 지금 뭘 하는지
어떤 페이지를 보는지
구입하고자 하는 상품이 뭔지 등의 정보를 줄 겁니다
그걸 토대로 실시간 예측을 통해
물어뜯는 기린 장난감을 보세요 라고 추천하는 거죠
기억하시죠?
한번 보시죠 지금 당장 사고 싶어질지도 모르니까요
사용자가 기린을 보고 살 수도 안 살 수도 있습니다
그게 시스템에서 나오는 일종의 피드백이죠
사용자가 샀나 안 샀나?
실시간 결정에 둘 다 영향을 끼칩니다
장기간 수집된 과거 데이터에 포함되어
데이터가 쌓일수록 모델을 개선할 수 있는 것이죠
전체적인 기계학습 배포 시스템의 모습입니다
[음악]