2018년 1월 10일 엔지니어링

Elasticsearch의 머신 러닝을 이용한 주문형 예측

By Hendrik MuhsThomas Grabowski

Editor's Note (September 7, 2018): This post refers to X-Pack. Starting with the 6.3 release, the X-Pack code is now open and fully integrated as features into the Elastic Stack.

6.1 버전에서 도입된 최신 X-Pack 머신 러닝 기능은 주문형 예측입니다. 전에는, Elastic의 머신 러닝이 과거의 데이터를 사용해 “현재”에 대한 정상 범위의 값을 예측하고 이것을 우리가 실제로 보는 데이터와 비교하여 실시간으로 이상 징후를 파악할 수 있도록 설계되었습니다. 이제 6.1 버전에서는 머신 러닝이 데이터를 모델링하여 미래에 대한 여러 시간 간격을 예측할 수 있습니다.

이것을 “주문형 예측”이라고 부르는데, 사용자가 머신 러닝으로 구축된 예측 모델을 이용해 기존 머신 러닝 작업을 바탕으로 예상 일수 동안 해당 모델이 얼마나 증가할 것으로 기대되는지 예측할 수 있기 때문입니다. 예측된 결과는 Elasticsearch 인덱스에 기록되어 사용자가 실제 결과와 예측 모델을 비교할 수 있게 해줍니다.

머신 러닝과 예측을 이용한 용량 계획

과거의 성과가 미래의 결과를 나타내는 것은 아니라는 얘기를 많이 하곤 합니다. 그러나 용량 계획을 위해 결과를 예측하는 가장 좋은 방법은 과거의 성과 지표를 사용하는 것입니다.

특정 리소스가 언제 용량 한도에 도달하게 될 것인지 어떻게 알아낼 수 있을까요? 예를 들어, 서버의 디스크 공간을 모니터링하고 있는 경우, 언제 그 공간이 부족하게 될 것인지 예측해야 할 수 있습니다. Elastic의 예측 머신 러닝 모델을 사용하여 미래를 예측하고, 언제 시스템에 저장 공간을 추가해야 할 것인지 알아낼 수 있습니다.

용량 계획을 사용할 수 있는 또 다른 방법은 미래의 특정 시점의 볼륨 메트릭을 예측할 수 있도록 하는 것입니다. 한 가지 예를 들자면, 회사에서 월요일 오후에 고객 전화를 몇 통이나 받을 것으로 기대되는지 예측하려고 하는 것입니다. 과거의 데이터를 분석하고 복합적인 머신 러닝 모델을 사용함으로써, 인력과 리소스에 대한 결정을 내리는 데 필요한 정보를 얻게 됩니다.

예측 사용 시작하기

기존 머신 러닝 작업의 단일 메트릭 탐색기에서 예측을 실행할 수 있습니다. 시스템이 6.1 버전으로 업그레이드되면, 오른쪽 위 모서리에 예측 작업을 위한 새 옵션 버튼이 생깁니다.

머신 러닝 작업에 대한 예측 결과는 진한 노랑색 추세선으로 추정되며, 신뢰도 모델은 연한 노랑색 구간으로 표시됩니다. 연한 노랑색 구간의 폭이 좁으면, 예측에 대한 신뢰도가 높음을 나타냅니다. 예측 모델의 신뢰도가 낮을수록 연한 노랑색 구간의 폭은 넓어집니다.

예측 모델 구축 시 고려할 사항

결과를 보다 잘 이해하기 위해 예측 모델을 구축할 때 고려해야 할 세부사항이 몇 가지 있습니다. 예측 결과는 기대했던 것과 달라보일 수도 있으며, 모든 데이터 세트에 적용되는 것도 아닙니다.  

예측을 위해 머신 러닝 작업을 실행하려고 하기 전에 과거의 데이터를 충분히 수집할 것을 권장합니다. 가장 효율적인 것은 보통 약 3주 또는 3번의 전체 간격을 거친 주기적인 데이터입니다. 모델이 확실히 설정될 수 있기 전에, 러닝 단계에서 예측을 너무 일찍 실행하면 사용할 수 없는 결과를 표시할 가능성이 높습니다.

예측 신뢰도 수준이 합리적인 범위를 벗어나면, 예측 모델은 조기에 중단됩니다.  예측 작업이 중단되고 신뢰도 수준이 허용 가능 한도 밖으로 떨어졌다는 것을 나타내는 메시지가 아래와 같이 표시됩니다.

예측 결과는 모델 플롯이 ‘켜져 있는’ 경우 훨씬 더 이해하기 쉽습니다. 이것은 옵션이며, 단일 메트릭 작업에서는 기본값으로 켜져 있습니다. 멀티 메트릭 작업의 경우, 머신 러닝 작업 구성 내에서 ‘model-plot-config’ 옵션을 구성하여 모델 플롯 옵션을 켤 수 있습니다.

단일 메트릭 탐색기 외부에서 특정한 예측을 추적하는 데 도움이 되도록 각 예측마다 forecast_ID라고 하는 고유 ID가 붙게 되며, 따라서 모든 예측은 따로따로 쿼리 작업을 할 수 있습니다. 동일한 메트릭에 대해 여러 예측을 실행할 수 있지만, UI는 단일 메트릭에 대해 실행된 마지막 예측 다섯 개만 표시합니다. 그래도 모든 예측이 사용 가능하며 해당되는 인덱스 공간을 점유합니다. UI에서 실행하는 경우 예측 결과는 14일이 지나면 자동으로 삭제됩니다. 하지만 직접 API를 사용하여 데이터 만료일을 지정할 수 있습니다. 자세한 내용은 예측 설명서를 참조하세요.

Elastic 플래티넘 구독에 머신 러닝이 포함되지만 무료 체험판 X-Pack을 다운로드하여 직접 사용해 보실 수도 있습니다.