본문 바로가기

IT

[Milvus] 밀버스 소개 및 벡터데이터베이스 정의 알아보기

 

Vector database를 사용하는 이유 

중 가장 큰 이유는 비정형 데이터의 효율적인 저장과 분석을 위함으로 

Vector database는 벡터 형태로 데이터를 저장하고 인덱싱하여 빠르게 검색하고 분석할 수 있습니다. 

이는 텍스트, 이미지, 오디오, 비디오 등과 같이 구조화되지 않은 형태의 대규모 비정형 데이터를 다루는 기업들에게 매우 유용한 기능입니다.

 

또한, vector database는 데이터 간의 유사성을 계산하여 유사한 데이터를 찾아내는데도 효과적입니다. 

이를 통해 검색 결과의 정확성을 높이고, 관련성 있는 정보를 빠르게 추출할 수 있습니다. 

예를 들어, 제품 추천 시스템에서 고객이 선호하는 제품을 찾거나, 의료 분야에서 질병 패턴을 분석하는 등 다양한 분야에서 활용할 수 있습니다.

뿐만 아니라, vector database는 대용량의 데이터를 실시간으로 처리할 수 있는 기능을 제공하여 

실시간 분석 및 응용 프로그램에도 유용하게 활용될 수 있습니다.

 

Milvus 벡터 데이터베이스란 ?

Milvus 는 심층 신경망 및 기타 기계 학습(ML) 모델에서 생성된 대규모 임베딩 벡터를 저장, 색인화 및 관리한다는 단일 목표를 가지고 2019년에 만들어졌습니다 .

입력 벡터에 대한 쿼리를 처리하도록 특별히 설계된 데이터베이스로서 1조 규모의 벡터 인덱싱이 가능합니다. 

 

미리 정의된 패턴에 따라 정형 데이터를 주로 처리하는 기존 관계형 데이터베이스와 달리 Milvus는 비정형 데이터 에서 변환된 임베딩 벡터를 상향식으로 처리하도록 설계되었습니다 .

 

인터넷이 성장하고 발전함에 따라 이메일, 논문, IoT 센서 데이터, Facebook 사진, 단백질 구조 등을 비롯한 비정형 데이터가 점점 더 일반화되었습니다. 컴퓨터가 구조화되지 않은 데이터를 이해하고 처리하기 위해서는 임베딩 기술을 사용하여 이러한 데이터를 벡터로 변환합니다. 

 

Milvus는 이러한 벡터를 저장하고 색인화합니다. Milvus는 유사성 거리를 계산하여 두 벡터 간의 상관 관계를 분석할 수 있습니다. 두 임베딩 벡터가 매우 유사하다면 원본 데이터 소스도 유사하다는 의미입니다.

 

 

>  주요 개념

벡터 데이터베이스 및 유사성 검색의 세계를 처음 접하는 경우, 더 나은 이해를 위해 다음 주요 개념에 대한 설명을 읽어보세요. Milvus 용어집

 

Glossary

Glossary for Milvus v2.3.x

milvus.io

구조화되지 않은 데이터

이미지, 비디오, 오디오, 자연어를 포함한 비정형 데이터는 사전 정의된 모델이나 구성 방식을 따르지 않는 정보입니다. 이 데이터 유형은 전 세계 데이터의 약 80%를 차지하며, 다양한 인공지능(AI), 머신러닝(ML) 모델을 사용해 벡터로 변환할 수 있다.

벡터 삽입

임베딩 벡터는 이메일, IoT 센서 데이터, 인스타그램 사진, 단백질 구조 등과 같은 구조화되지 않은 데이터의 기능 추상화입니다. 수학적으로 말하면 임베딩 벡터는 부동 소수점 숫자 또는 바이너리의 배열입니다. 최신 임베딩 기술은 구조화되지 않은 데이터를 임베딩 벡터로 변환하는 데 사용됩니다.

벡터 유사성 검색은 벡터를 데이터베이스와 비교하여 쿼리 벡터와 가장 유사한 벡터를 찾는 프로세스입니다. ANN(Approximate Nearest Neighbor) 검색 알고리즘은 검색 프로세스를 가속화하는 데 사용됩니다. 두 임베딩 벡터가 매우 유사하다면 원본 데이터 소스도 유사하다는 의미입니다.

>  왜 밀버스인가?

  • 대규모 데이터세트에서 벡터 검색을 수행할 때 높은 성능을 발휘합니다.
  • 다국어 지원 및 도구 체인을 제공하는 개발자 중심 커뮤니티입니다.
  • 장애 발생 시에도 클라우드 확장성과 높은 신뢰성을 제공합니다.
  • 스칼라 필터링과 벡터 유사성 검색을 결합하여 하이브리드 검색을 수행합니다..

>  어떤 인덱스와 지표가 지원되나요?

인덱스는 데이터의 조직 단위입니다. 삽입된 엔터티를 검색하거나 쿼리하려면 먼저 인덱스 유형 및 유사성 메트릭을 선언해야 합니다. 인덱스 유형을 지정하지 않으면 Milvus는 기본적으로 무차별 검색을 수행합니다.

 

>  인덱스 유형

Milvus가 지원하는 대부분의 벡터 인덱스 유형은 다음을 포함하여 ANNS(Approximous Nearest Neighbors Search)를 사용합니다.

  • FLAT : FLAT은 수백만 규모의 소규모 데이터 세트에서 완벽하고 정확한 검색 결과를 찾는 시나리오에 가장 적합합니다.
  • IVF_FLAT : IVF_FLAT는 양자화 기반 인덱스이며 정확도와 쿼리 속도 간의 이상적인 균형을 추구하는 시나리오에 가장 적합합니다. GPU 버전 GPU_IVF_FLAT 도 있습니다 .
  • IVF_SQ8 : IVF_SQ8은 양자화 기반 인덱스이며 이러한 리소스가 매우 제한되어 있으므로 디스크, CPU 및 GPU 메모리 소비를 크게 줄이려는 시나리오에 가장 적합합니다.
  • IVF_PQ : IVF_PQ는 양자화 기반 인덱스이며 정확성을 희생하더라도 높은 쿼리 속도를 추구하는 시나리오에 가장 적합합니다. GPU 버전 GPU_IVF_PQ 도 있습니다 .
  • HNSW : HNSW는 그래프 기반 인덱스로 검색 효율성이 요구되는 시나리오에 가장 적합합니다.

자세한 내용은 벡터 인덱스를 참조하세요 .

 

> 유사성 측정항목

Milvus에서는 유사성 메트릭을 사용하여 벡터 간의 유사성을 측정합니다. 좋은 거리 측정법을 선택하면 분류 및 클러스터링 성능이 크게 향상됩니다. 입력 데이터 형식에 따라 최적의 성능을 위해 특정 유사성 메트릭이 선택됩니다.

부동 소수점 임베딩에 널리 사용되는 측정항목은 다음과 같습니다.

  • 유클리드 거리(L2) : 이 측정법은 일반적으로 컴퓨터 비전(CV) 분야에서 사용됩니다.
  • 내적(IP) : 이 메트릭은 일반적으로 자연어 처리(NLP) 분야에서 사용됩니다.

바이너리 임베딩에 널리 사용되는 측정항목은 다음과 같습니다.

  • Hamming : 자연어 처리(NLP) 분야에서 일반적으로 사용되는 지표입니다.
  • Jaccard : 이 측정법은 분자 유사성 검색 분야에서 일반적으로 사용됩니다.

자세한 내용은 유사성 메트릭을 참조하세요 .

 

> 예시 애플리케이션

Milvus를 사용하면 애플리케이션에 유사성 검색을 쉽게 추가할 수 있습니다. Milvus의 적용 사례는 다음과 같습니다.

  • 이미지 유사성 검색 : 이미지를 검색 가능하게 만들고 대규모 데이터베이스에서 가장 유사한 이미지를 즉시 반환합니다.
  • 비디오 유사성 검색 : 키 프레임을 벡터로 변환한 다음 그 결과를 Milvus에 공급하면 수십억 개의 비디오를 거의 실시간으로 검색하고 추천할 수 있습니다.
  • 오디오 유사성 검색 : 음성, 음악, 음향 효과, 표면 유사 사운드 등 대량의 오디오 데이터를 빠르게 쿼리합니다.
  • 추천 시스템 : 사용자 행동 및 요구 사항을 기반으로 정보나 제품을 추천합니다.
  • 질의응답 시스템 : 사용자의 질문에 자동으로 답변하는 대화형 디지털 QA 챗봇입니다.
  • DNA 서열 분류 : 유사한 DNA 서열을 비교하여 밀리초 단위로 유전자의 분류를 정확하게 분류합니다.
  • 텍스트 검색 엔진 : 키워드를 텍스트 데이터베이스와 비교하여 사용자가 원하는 정보를 찾을 수 있도록 도와줍니다.

더 많은 Milvus 애플리케이션 시나리오를 보려면 Milvus 튜토리얼  Milvus Adopters를 참조하세요 .

'IT' 카테고리의 다른 글

postman documentation publish  (0) 2025.04.16
[VScode] 주석 여러줄 처리 및 해제 단축키  (0) 2024.03.12