본문 바로가기
SingleStoreDB/사례연구

대용량 및 다차원 이미지 데이터를 SingleStore의 고성능 벡터 연산 함수로 처리하기

by 에이플랫폼 [Team SingleStore Korea] 2019. 11. 18.

SingleStore의 고성능 벡터 연산을 위한 함수들

SingleStore 벡터 함수(Vector Functions)

SingleStore는 두 벡터에 대한 유사율을 확인하기 위한 벡터함수를 제공합니다. DOT_PRODUCT 와 EUCLIDEAN_DISTANCE입니다. 이 두 벡터함수는 고속 고성능의 SIMD(Single-Instruction, Multiple-Data)를 구현하므로 하드웨어가 AVX2 명령어를 지원해야 합니다.

그림 1. SingleStore Vector functions

 

또한 벡터함수에 올바른 형식의 벡터를 Insert 하기 위한 내장 함수도 지원합니다. 두 벡터에 대해서는 VECTOR_SUB 내장 함수를 지원하며 부동 소수점 숫자와 배열에 대해서는 JSON_ARRAY_PACK 내장 함수를 사용하여 쉽게 벡터로의 변환을 도와줍니다. 이러한 벡터 유사성 매칭에 유용한 기능들은 복잡한 연산을 대규모로 매우 빠르게 실행할 수 있게 합니다.

DOT_PRODUCT 와 EUCLIDEAN_DISTANCE 벡터함수는 계산적으로 같은 값을 보여줍니다. SQRT (DOT_PRODUCT (VECTOR_SUB (v1, v2), VECTOR_SUB (v1, v2))) 와 EUCLIDEAN_DISTANCE (v1, v2)는 계산적으로 같은 값을 보여주지만 성능은 EUCLIDEAN_DISTANCE 가 더 효율적입니다. DOT_PRODUCT는 입력 벡터가 길이 1로 정규화 된 경우에 두 입력 벡터의 코사인 유사성을 계산하는데 사용되므로 경우에 따라 효과적으로 적용되는 벡터함수를 비교하여 사용합니다.

 

아래의 링크를 통해 SingleStore 벡터함수의 자세한 사용법에 대해 알아보실 수 있습니다.

 

Vector Functions

SingleStore DB includes the following built-in functions for working with vectors of 32-bit floating-point numbers, represented as blobs: DOT_PRODUCT VECTOR_SUB EUCLIDEAN_DISTANCE JSON_ARRAY_PACK Inserting Vectors as Blobs from an External Application As a best practice when inserting binary data in...

docs.singlestore.com


SingleStore Vector Functions 사용 사례

1. Thorn의 실시간 이미지 인식

그림 2. Thorn with SingleStore

 

Thorn은 이미지 인식 및 기계학습을 사용하여 실종 및 착취된 아동을 찾는 비영리 단체입니다. Thorn의 응용 프로그램은 찾고 있는 어린이를 얼굴 인식을 사용하여 이미지 처리한 다음에 미국 전국의 웹 사이트에서 지속적으로 수집되는 새로운 사진과 일치시킵니다. 새로운 사진은 딥 러닝 기반 접근 방식을 사용하여 벡터로 축소되고 벡터함수를 사용하여 유사성을 판단합니다.

Thorn이 겪었던 주요 기술적 과제는 지속적으로 업데이트되는 거대한 그림 데이터베이스와 실시간으로 매우 많은 그림 수를 일치시켜야 하는 것이었습니다.

SingleStore를 통해 Thorn은 고성능 벡터 DOT_PRODUCT 내장 기능을 사용하면서 얼굴을 나타내는 새로운 벡터를 몇 분 또는 몇 초 안에 삽입하고 쿼리할 수 ​​있게 되었습니다. 이로써 분석가는 일치하는 이미지를 더 빨리 찾을 수 있게 되었습니다.

 

The Magic of Fast Machine Learning [Strata Keynote Recording] - MemSQL Blog

In our keynote at Strata+Hadoop World, MemSQL shared how we are working with Thorn to provide a new approach to machine learning & more. Watch the recording now!

www.memsql.com

https://www.singlestore.com/blog/case-study-thorn-frees-up-resources-with-memsql-helios-to-identify-trafficked-children-faster/

Case Study: Thorn Frees Up Resources with SingleStore Managed Service to Identify Trafficked Children Faster - SingleStore Blog - MemSQL is Now SingleStore

Spotlight, the child sex trafficking investigations tool from nonprofit Thorn, uses MemSQL to help law enforcement find trafficked children, fast.

www.singlestore.com


2. Nyris의 실시간 이미지 검색

 

그림 3 Nyris with SingleStore

Nyris의 응용 프로그램은 사용자가 인식하는 이미지와 일치하는 제품 이미지를 웹 사이트에서 빠르게 찾아주고 참조된 제품 이미지를 통해 소비가 이루어지는 새로운 형태의 전자상거래를 가능하게 합니다. Nyris는 SingleStore를 통해 데이터베이스 내에서 빠른 DOT_PRODUCT 계산과 함께 딥 러닝을 사용하여 사용자가 인식하는 이미지를 밀리 초 단위의 100,000개 제품 저장소와 일치시킬 수 있어 판매 가능한 같은 제품을 빠르게 찾을 수 있습니다.

 

https://www.memsql.com/releases/reinvent2017/

 

MemSQL Makes Real-Time Image Recognition a Reality

MemSQL Makes Real-Time Image Recognition a Reality At AWS re:Invent 2017, the company showcases customers benefitting from image search SAN FRANCISCO, CA - November 28, 2017 - MemSQL, provider of the fastest real-time data warehouse, today announced it is presenting on the impact of using technology...

www.memsql.com


3. 표절 검출기로서의 SingleStore

 

정보화 시대를 맞아 카피 속도가 빨라지면서 표절 논란은 고질적인 사회문제로 자리 잡았습니다. 이를 해결하기 위한 다양한 표절 탐지도구들이 많이 나왔지만 광범위한 웹상에서 빠르고 높은 유사율을 보이지 못하는 것은 표절 탐지도구의 한계점으로 보고 있습니다. 그러나, SingleStore는 고속 벡터 연산을 구현하는 고성능 기능을 제공함으로써 빠른 탐지와 높은 유사율의 표절 검출기(plagiarism detector)를 가능하게 합니다.

표절 검출기를 구현하기 위해서는 단어의 의미를 벡터화하여 단어 간의 유사도를 고려해 주어야 합니다. SingleStore는 이를 위한 Vector functions 사용법 두 가지를 제시합니다.

방법 1.

JSON_ARRAY_PACK 함수를 사용하여 float의 json 배열을 벡터로 변환하고 EUCLIDEAN_DISTANCE 벡터함수로 유사도를 고려합니다.

방법 2.

Word2vec 과 같은 심층 신경망의 단어 벡터 모델을 사용하여 단어를 의미별로 분류하여 벡터로 변환하고 DOT_PRODUCT 벡터함수로 코사인 유사성을 고려합니다.


결론

Thorn, Nyris 와 표절 검출기의 활용 사례를 보면 데이터 세트가 너무 커서 실시간으로 단어나 그림을 일치시키기 위해서는 매우 높은 병렬 처리가 필요함을 알 수 있습니다. SingleStore는 분산 및 병렬 아키텍처인 데이터베이스로 이를 가능하게 합니다. 또한 고속 고성능 벡터 연산을 수행하기 위해 AVX2 명령어를 확장하면 대기 시간을 최소화할 수 있습니다.


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