Vector Database(Vector Store)란?

브리·2024년 10월 24일

Vector Database가 뭘까?

-데이터를 벡터(다차원 수치 배열)로 저장하고 검색하는 데이터베이스
-벡터 간의 유사도(코사인 유사도, 유클리드 거리 등)를 기반으로 검색
-임베딩 모델을 활용해 생성된 vector를 저장하는데 단순히 vector만 저장하는 게 아니라 metadata도 저장해야 퀄리티와 신뢰도가 올라간다.
-검색 시에는 vector를 기준으로 유사도 검색을 하게 되는데 문서를 청킹하는 것이 반드시 필요하다. (속도 문제, 토큰 수 문제)

사용 이유

-텍스트, 이미지, 오디오 등 비정형 데이터의 특성을 수치 벡터로 변환 후 저장
-대규모 데이터에서 빠른 유사도 기반 검색을 가능하게 함
-전통적인 관계형 데이터베이스로는 처리하기 어려운 고차원 공간의 데이터를 다룸

작동 방식

-임베딩: 먼저 비정형 데이터를 벡터로 변환 (예: 텍스트 -> Word2Vec, BERT 같은 임베딩 모델 사용)
-인덱싱: 벡터를 효율적으로 검색하기 위해 특수한 인덱스 구조 사용 (예: FAISS, Annoy 등)
-유사도 검색: 벡터 간의 유사도를 계산하여 가장 비슷한 벡터(데이터)를 검색

사용 사례

-검색 엔진: 사용자의 검색 쿼리를 벡터로 변환 후, 유사한 문서나 이미지 검색
-추천 시스템: 사용자 행동 데이터를 벡터화하여, 유사한 취향을 가진 사용자에게 콘텐츠 추천
-자연어 처리: 문장이나 단어를 벡터로 변환하여 의미 유사도를 기반으로 한 응답 생성

장점

-대규모 비정형 데이터 처리에 적합
-빠르고 효율적인 유사도 기반 검색 가능
-AI/머신러닝 모델과 쉽게 통합 가능 (예: 벡터화된 데이터 사용)

단점

-높은 차원의 벡터는 처리 및 저장 비용이 큼
-벡터를 생성하는 임베딩 모델의 품질에 따라 검색 성능이 크게 좌우됨

더 공부해 볼 것

  • 임베딩 모델의 종류
    어플리케이션 개발에는 OpenAI 임베딩을 사용할 계획이나 한국말 임베딩은 upstage 임베딩 모델이 훨씬 낫다고 한다. 이거 말고도 엄청 많은 임베딩 모델이 있고 속도나 성능, 주제 적합성 등등 여러가지 면에서 차이가 있으니 내가 개발하려는 것에 잘 맞는 모델을 골라 쓰는 것도 중요하겠다.
profile
Brie the cheese🧀의 알고 싶고 배우고 싶은 모든 것의 기록

0개의 댓글