[VectorDB] 벡터 데이터베이스 개념

김진만·2023년 7월 27일
0

VectorDB란..?

Large Language Model (LLM)의 솔루션이다.

기존 스칼라 기반 데이터베이스에서 임베딩 작업의 어려움을 해결
1. Vector Embedding (벡터로 표현됨) = [ 0.34, 0,12 , -0.03, 1.3 ]
2. Vector Embedding과 원본 콘텐츠와 같이 Vector DB에 Insertion
3. Apllication이 Query를 발행 하여 Embedding Model을 통해 Embedding을 생성하고, 해당 임베딩을 사용하여 Vector DB에서 유사한 Vector Embedding을 쿼리
(한 마디로 벡터값 비슷한 문장 갖고 온다는 뜻)

Vector DB 장점

  1. 데이터 관리: 삽입 삭제 업데이트와 벡터 인덱스를 사용하는 것보다 벡터 데이터를 쉽게 관리하고 유지할 수 있다.
  2. 메타데이터 저장 및 필터링: 벡터 항목 관련 메타데이터를 저장할 수 있다. 필터를 이용하여 DB쿼리 가능
  3. 확장성:데이터 양이 많아질 수록 분산 및 병렬 처리됨 ( 샤딩, 수평 분할 )
  4. 실시간 업데이트: 실시간 데이터 업데이트를 지원( 동적으로 변경 가능 )
  5. 백업 및 수집: 모든 데이터를 백업하는 일상적인 작업 처리(배치), Collections 형태로 백업 가능(NoSQL 특성)
  6. 에코시스템 통합: Spark, 태블로, 그라파나 같은?? 분석, 시각화 툴들과 생태계 연동 가능

작동 메커니즘

벡터 데이터베이스는 벡터에서 작동한다 -> 기존 디비에서 최적화, 쿼리 날리던 방식과는 다르다는 의미
Similarity Metrics 를 사용 ( 벡터 유사도를 보는 거겠죠 ?? )
-> 가장 유사한 벡터를 찾기
벡터 데이터베이스는 ANN(Approximate Nearest Neighbor) 검색에 모두 참여하는 서로 다른 알고리즘의 조합을 사용한다.
-> 해싱, 양자화, 그래프 기반 검색
대략적인 결과를 제공하기 때문에 제일 중요한 트레이드 오프(Trade-Off) 는 바로 ..!!
-> 정확도, 속도 이겠죠??
높은 정확도, 낮은 속도
낮은 정확도, 높은 속도
좋은 시스템은 높은 정확도 높은 속도(비용이 많이 들겠죠) 를 제공합니다(PineCone)

1.Indexing

2.Query

3.Post Processing

알고리즘

1. Random Projection( 무작위 투영 )

2. Product Quantization

3. Locality-sensitive hashing

4.Hierarchical Navigable Small World(HNSW)

유사성 측정

코사인 유사성:

벡터 공간에서 두 벡터 간의 각도의 코사인을 측정합니다. 범위는 -1에서 1까지이며, 여기서 1은 동일한 벡터를 나타내고, 0은 직교 벡터를 나타내고, -1은 정반대의 벡터를 나타냅니다.

유클리드 거리:

벡터 공간에서 두 벡터 사이의 직선 거리를 측정합니다. 범위는 0에서 무한대까지이며, 여기서 0은 동일한 벡터를 나타내고 값이 클수록 점점 더 다른 벡터를 나타냅니다.

내적:

두 벡터 크기의 곱과 두 벡터 사이 각도의 코사인 값을 측정합니다. 범위는 -∞에서 ∞까지이며 양수 값은 같은 방향을 가리키는 벡터를 나타내고 0은 직교 벡터를 나타내고 음수 값은 반대 방향을 가리키는 벡터를 나타냅니다.

필터링

사전 필터링:

이 접근 방식에서는 벡터 검색 전에 메타데이터 필터링이 수행됩니다. 이렇게 하면 검색 공간을 줄이는 데 도움이 되지만 시스템에서 메타데이터 필터 기준과 일치하지 않는 관련 결과를 간과할 수도 있습니다. 또한 광범위한 메타데이터 필터링으로 인해 계산 오버헤드가 추가되어 쿼리 프로세스가 느려질 수 있습니다.

사후 필터링:

이 접근 방식에서는 벡터 검색 후에 메타데이터 필터링이 수행됩니다. 이렇게 하면 모든 관련 결과를 고려하는 데 도움이 될 수 있지만 검색이 완료된 후 관련 없는 결과를 필터링해야 하므로 추가 오버헤드가 발생하고 쿼리 프로세스 속도가 느려질 수도 있습니다.

profile
충분한 전기와 컴퓨터 한 대와 내 이 몸만 남아 있다면 지구를 재건할 수 있습니다.

0개의 댓글