1 분 소요

벡터 데이터베이스

데이터

  • 비정형 데이터
    • 설계된 모델이나 구조로 구성되지 않은 데이터
    • 실세계에 존재하는 가장 많은 데이터
    • 예시: 오디오, 비디오, 텍스트 데이터 등
  • 정형 데이터
    • MySQL, PostgreSQL, mariaDB 등과 같은 관계형 데이터베이스에 저장
    • 혹은, 엑셀과 같은 스프레드시트에 저장
    • 사전에 정의된 구조로 매핑
    • 일관된 내부 구조

벡터 데이터베이스

  • AI/ML에 사용되는 벡터, 혹은 임베딩 된 벡터를 빠르게 인덱싱하기 위한 데이터베이스
  • 일반적으로 kNN(k-Nearest Neighbors) 인덱스로 구동
  • HNSW(Hierarchical Navigable Small World Graphs) 및 IVF(Inverted File Index) 알고리즘으로 구축
  • 벡터 데이터베이스는 데이터 관리, 내결함성, 인증 및 액세스 제어, 쿼리 엔진과 같은 추가 기능을 제공

벡터 데이터베이스의 작동원리

  1. 색인: 해싱, 양자화 또는 그래프 기반 기술을 사용하는 벡터 데이터베이스는 벡터를 주어진 데이터 구조에 매핑하여 벡터를 색인
    • 해싱: 지역성 기반 해싱(Locality-Sensitive Hashing, LSH)과 같은 해싱 알고리즘은 빠른 결과를 제공하고 대략적인 결과를 생성하므로 근사 최근접 유사 항목 검색에 가장 적합
    • 양자화: 곱 양자화(Product Quantization, PQ)와 같은 양자화 기술은 벡터를 더 작은 부분으로 나누고 해당 부분을 코드로 표현한 다음 해당 부분을 다시 합침. 결과는 벡터와 해당 구성 요소의 코드 표현. 생성된 코드북을 통해 쿼리를 코드로 나눈 다음 기존 코드북과 비교하여 결과 생성
    • 그래프 기반: HNSW 알고리즘과 같은 그래프 알고리즘은 노드를 사용하여 벡터를 표현. 노드를 클러스터링 한 후에 유사한 노드 사이에 엣지를 생성하여 계층적 그래프 생성. 생성된 그래프를 통해 쿼리 벡터와 가장 유사한 벡터 탐색
  2. 탐색: 벡터 데이터베이스는 쿼리를 받으면 인덱스 벡터와 쿼리 벡터를 비교하여 최근접 벡터 항목을 결정. 최근접 항목을 설정하기 위한 유사성 측정에는 아래와 같은 방법이 존재.
    • 코사인 유사도(Cosine Similarity)
    • 유클리드 거리(Euclidean Distance)
    • 내적(Dot Product)

벡터 데이터베이스가 사용되는 필드

  • 멀티모달 검색엔진
    • Image Search, Voice Search
  • LLM (Large Language Model)
  • Embedding Model Solution
  • 메타데이터 추출 자동화
  • 생성형 AI 외부 Knowledge Base 제공

벡터 데이터베이스를 사용하는 개발 필드

  • 기본적으로 벡터 검색 기반 환경 구축을 위한 데이터베이스
  • ML 등 모델 서비스를 사용하여 임베딩을 생성하고 벡터 데이터베이스를 하이드레이션
  • 최소한의 ML 전문 지식 필요
  • 데이터 사이언티스트 및 엔지니어
    • 임베딩 구축, 벡터 데이터베이스 운영, AI 솔루션 제공
  • 방대한 양의 벡터 데이터를 익숙한 데이터베이스 워크로드로 관리 가능

벡터 데이터베이스의 추가적 기능

  • 리소스 관리, 보안 제어, 확장성, 내결함성, 정교한 쿼리 언어

벡터 데이터베이스의 한계점

  • 기존 데이터베이스와 마찬가지로 확장성, 근사치 정확도, 지연 성능, 경제성 개선 필요
  • 보안, 안정성, 운영 지원, 워크로드 지원도 병행되어야함

2024년 기준 사용되고 있는 벡터 데이터베이스

  1. Pinecone
  2. Chroma
  3. Weaviate
  4. Qdrant
  5. Faiss

참고문헌

댓글남기기