본문 바로가기
SingleStoreDB/엔지니어링

ML을 위한 3가지 SingleStore 활용 영역

by 에이플랫폼 [Team SingleStore Korea] 2019. 8. 6.

머신러닝이란? 

머신러닝(ML)은 트레이닝 데이터에서 자동으로 작성되거나 "학습된" 분석 모델을 사용하여 데이터를 분석하는 방법입니다. 그 아이디어는 더 많은 데이터 포인트를 공급할수록 모델이 더 좋아져서 알고리즘이 시간이 지남에 따라 자동적으로 더 나아질 수 있게 한다는 것입니다.


머신러닝에는 학습(Training) 및 운영(Operationalization) 두 단계가 있습니다.

트레이닝은 이미 많이 알고 있는 데이터 셋(트레이닝 셋라고 함)를 확보하고, 패턴을 찾기 위해 데이터 셋를 탐색하여 모델을 개발합니다. 모델을 개발하면 운영화 단계로 넘어갑니다. 모델을 운영 시스템(Production System)에 배포(Deployment)하여 새로운 데이터를 스코어링하고, 시스템은 사용자에게 결과 값을 반환하는 것입니다.

머신러닝을 시작하는 방법

이런 단계들을 수행하기 위해 일반적으로 여러 가지 도구를 사용합니다. 데이터를 가져 오는 도구, 데이터를 정리하는 도구, 연산을 개선하기 위한 라이브러리 및 알고리즘을 테스트하기 위한 플랫폼이 필요합니다. 모델을 운영할 준비가 되면 모델을 실행하기 위한 호환 가능한 플랫폼과 결과를 처리하고 가시화 할 응용 프로그램이 필요합니다.

머신러닝 운영에 SingleStore 사용

SingleStore는 일반적으로 머신러닝 모델에서 발견되는 연산을 수행하는데 탁월한 분산 데이터베이스 플랫폼입니다. SingleStore는 사용자가 노트북에서 단일 노드 모델과 같이 작은 구성을 실행할 수 있기 때문에 트레이닝 데이터를 저장하기에 좋은 환경입니다. 또한 SingleStore는 MySQL과 호환되기 때문에 데이터 과학자는 알고리즘 개발에 SingleStore 인스턴스를 사용할 수도 있습니다.

SingleStore가 정말 특출한 부분은 운영 영역(Operationalization)에 있습니다. 알고리즘을 효과적으로 운용하기 위한 핵심 요구 사항들은 다음과 같습니다.

· 빠른 데이터 수집

· 빠른 연산

· 확장을 위한 스케일 아웃

· 기존 라이브러리와의 호환성

· 알고리즘을 표현하는 강력한 프로그래밍 언어

· 데이터 내구성, 가용성 및 신뢰성을 보장하는 운영 관리 능력

SingleStore는 이러한 요구 사항에 완벽하게 부합하며 몇 가지 다른 방법으로 ML 솔루션에서 사용될 수 있습니다.

SingleStore를 사용하여 ML을 운영하는 세 가지 영역

데이터베이스 외부 연산

SingleStore는 원시(Raw) 데이터를 저장하고 고객에게 결과를 제공하는 빠른 서비스 계층(Fast Service Layer)이 될 수 있습니다. 이는 Spark 클러스터와 같은 기존 인프라에서 모델을 만들때 유용합니다. 이것의 실 활용 사례로는 업스트림 생산 처리에 SingleStore를 사용하는 대규모 에너지 회사가 있습니다. 이 회사는 전 세계 곳곳에 유전 드릴 세트를 보유하고 있습니다. 드릴이 원격에 위치해 있는 경우가 많기 때문에 부품 비용과 인건비 때문에 드릴을 수리하는 데 비용이 많이 듭니다. 드릴이 고장나지 않도록 하는 것은 엄청난 비용 절감 효과를 가져옵니다. 이 드릴들에는 데이터를 지속적으로 Kafka 큐(Queue)로 보내주는 수 많은 센서들(열, 진동, 방향 등을 수집하는)이 장착되어 있습니다. 데이터는 이 큐에서 Spark 클러스터로 가져오고, 여기서 PMML(Predictive Model Markup Language) 모델은 드릴의 상태를 확인을 위한 연산을 합니다. 그리고 나서 스코어링된 데이터는 SingleStore에 저장되며 실시간으로 드릴 관리자들에게 제공됩니다. 이를 통해 관리자는 손상될 위험이 발생할 우려가 있는 드릴의 속도를 늦추거나 배치를 변경할 수 있습니다. 모델을 실행하면서도 높은 처리량(High throughput) 으로 스코어링된 데이터를 지속적으로 수집할 수 있는 데이터 플랫폼을 보유하는 것은 이 시나리오를 제공하는 데 매우 중요합니다. SingleStore는 현대식 스케일아웃 아키텍처와 정교한 쿼리 프로세서로서 업계 어느 데이터베이스보다 데이터 처리를 잘 대처할 수 있습니다.

Ingest에 대한 연산

일부 고객들은 별도의 계산 클러스터를 유지하기를 원하지 않지만, 여전히 기존의 통계나 ML 라이브러리를 사용하기를 원합니다. 이 경우, 그들은 SingleStore Pipelines 기능을 사용하여 쉽게 데이터를 데이터베이스에 수집할 수 있습니다. 그런 다음 고객은 데이터가 도착할 때 Pipleline의 변환(Transform) 기능을 사용하여 ML 스코어링 알고리즘을 실행할 수 있습니다. 변환(Transform)은 고객이 데이터베이스에 Insert 하기 전에 데이터에 대한 모든 코드를 실행할 수 있게 하는 기능입니다. 이 코드는 TensorFlow와 같은 기존 라이브러리를 쉽게 통합하거나 호출할 수 있습니다. 그런 다음 연산 결과 값을 데이터베이스에 Insert 합니다. SingleStore는 분산 시스템이고 SingleStore Pipeline은 병렬로 실행되기 때문에, 워크로드는 클러스터의 리소스에 걸쳐 고르게 분산되어 처리가 됩니다.

데이터베이스 내부 연산

때로는 특히 신규 데이터를 더 큰 과거 데이터 셋과 비교해야 할 때 가능한 한 해당 데이터에 가깝게 해서 스코어링 연산 하는 것이 더 효율적입니다. 이 경우 데이터베이스에서 알고리즘을 인코딩하는 언어(Language)가 필요합니다. 이 언어가 알고리즘과 핵심 연산을 빠르게 할 수 있을 만큼 뛰어나야 합니다. 이는기존 데이터에 대한 효율적인 질의를 가능하게 하고 다른 기능들과 함께 구성될 수 있어야 합니다

이 접근법을 성공적으로 사용한 조직의 한 예는 이미지 인식을 사용하여 실종되고 착취된 아이들을 찾는 비영리 단체인 Thorn이 있습니다. 이 어플리케이션은 그것의 시스템에서 착취당한 아이들의 사진을 보관하고 있고, 그 아이들의 얼굴을 전국의 웹사이트에서 지속적으로 추려지는 새로운 사진과 매칭시킵니다. 새로운 사진은 딥러링(Deep Learning)기반 접근법을 사용하여 벡터로 축소되며 원본 사진(Base Picture)의 벡터와 매칭을 해서 아이를 찾아 냅니다.

SingleStore를 사용하기 전에 매칭 프로세스는 몇 시간 또는 몇일이 걸릴 것입니다. SingleStore 고성능 벡터 DOT_PRODUCT 내장 기능을 사용하면 들어오는 사진을 몇 분 또는 몇 초 만에 처리할 수 있습니다. 또 다른 이미지 인식 예는 Nyris.io로, 빠른 데이터베이스 내 DOT_PRODUCT 연산과 결합된 딥러닝을 사용하여 제품 사진과 일치하는 유사한 기법을 사용합니다. 이 애플리케이션은 사용자가 제공한 이미지와 참조 제품 이미지를 신속하게 일치시켜 전자 상거래가 가능하도록 합니다.

2018 년 1 월 30 일


출처: https://www.singlestore.com/blog/machine-learning-and-memsql/

3 Ways to Operationalize Machine Learning with MemSQL- SingleStore Blog - MemSQL is Now SingleStore

MemSQL is a distributed database platform that excels at doing the kind of calculations typically found in a machine learning model. Learn more!

www.singlestore.com

​※ www.a-platform.biz | info@a-platform.biz