Vector Database
About
- AI 어플리케이션들은 Vector Embeddings에 의존
- 임베딩은 AI 모델에 의해 생성되며, 많은 수의 속성/피쳐가 있어서 관리하기가 어려움
- AI 및 ML에서 이 피쳐들은 패턴, 관계 및 기본 구조를 이해하는데 필수적인 데이터의 다양한 디멘젼들을 표현
- 임베딩 모델을 통해서 인덱싱할 콘텐츠의 벡터 임베딩을 생성
- 벡터 임베딩들을 벡터DB에 삽입. 임베딩이 어디에서 생성되었는지 오리지널 콘텐츠에 대한 레퍼런스를 포함
- 어플리케이션이 쿼리를 하면, 같은 임베딩 모델을 이용하여 쿼리에 대한 임베딩을 생성하고, 이 임베딩으로 DB를 검색해서 비슷한 벡터 임베딩을 찾음
- 이 임베딩들은 오리지널 콘텐츠에 연결되어 있음
Vector Index 와 Vector DB의 차이점
- FAISS(Facebook AI Similarity Search) 같은 벡터 인덱스도 벡터 임베딩 검색을 개선하지만, DB의 기능을 가지고 있지는 않음
- Vector DB는 여러가지 장점을 가짐
- 데이터 관리 기능: 데이터의 삽입, 삭제, 갱신이 쉬움
- 메타데이터 저장 및 필터링: 각 벡터에 대한 메타데이터 저장이 가능
- 확장성: 분산 및 병렬처리 기능을 제공
- 실시간 업데이트 지원
- 백업 및 컬렉션 기능(일부 인덱스만 골라서 백업)
- 에코시스템 연동: ETL(Spark), 분석도구(Tableau, Segment), 시각화(Grafana) 등과 연동. AI 도구와의 연동(LangChain, LlamaIndex, ChatGPT Plugins)
- 데이터 보안 및 접근 권한 관리
Vector DB는 어떻게 동작하는가
- 알고리듬 : ANN, Random Projection, Product Quantization, Locality-sensitive hashing, Hierarchical Navigable Small World (HSNW)
- 유사성 측정
- 필터링
- 데이터베이스 오퍼레이션
요약
- NLP, 컴퓨터 비전 및 다른 AI 어플리케이션에서 벡터 임베딩이 폭발적으로 성장하면서 벡터 데이터베이스가 등장
- 프로덕션 시나리오에서 벡터 임베딩을 관리할 때 발생하는 문제점을 해결하기 위해 특수하게 만들어진게 벡터 데이터베이스
- 기존의 스칼라 기반 데이터 베이스 및 스탠드얼론 벡터 인덱스에 비해 상당한 이점을 제공
Vector DB 회사에 2년간 다니면서 배운 것들
- BM25는 검색에서 강력한 베이스라인임
- 벡터 검색은 근사적(Approximate)이지 정확(Exact)하지 않음
- 벡터DB는 임베딩만 저장하지 않음
- 벡터DB의 주용도는 생성AI가 아닌 ‘검색’
- 검색 결과 개수를 직접 지정해야 함
- 임베딩 종류는 다양함
- 임베딩 모델 선택을 위한 벤치마크
- MTEB의 대부분 모델은 영어 전용
- 임베딩의 역사: Static vs Contextual
- Sparse vector와 sparse embedding의 차이
- 텍스트 외 다양한 데이터 임베딩 가능
- 임베딩 차원수와 저장 비용
- “Chat with your docs” 튜토리얼은 생성AI의 헬로월드
- 임베딩 모델은 반복적으로 호출해야 함
- 벡터 유사도와 실질적 relevance는 다를 수 있음
- Cosine similarity와 cosine distance는 다름
- 벡터 정규화 시 cosine similarity와 dot product는 동일
- RAG의 R은 ‘vector search’가 아닌 ‘retrieval’
- 벡터 검색은 검색 도구의 하나일 뿐
- 키워드/벡터 검색의 적절한 적용
- 하이브리드 검색의 의미
- 필터링이 항상 속도를 올리진 않음
- 2단계 검색 파이프라인의 유용성
- 벡터 검색과 리랭킹의 차이
- 임베딩할 chunk 크기 선정의 어려움
- 벡터 인덱싱 라이브러리와 벡터DB의 차이
- LLM context 확장에도 RAG는 계속 진화
- 벡터 양자화로 97% 정보 줄여도 검색 유지
- 벡터 검색은 오타에 robust하지 않음
- 검색 품질 평가 지표 다양
- Precision-Recall trade-off 실전 예시
- 검색 결과의 순서 반영 지표
- 토크나이저의 영향력
- Out-of-domain과 out-of-vocabulary는 다름
- 쿼리 최적화의 필요성
- 벡터 검색 이후의 패러다임
- 정보검색(리트리벌)은 지금 가장 ‘핫’한 분야
See also
- Database
- VectorVFS - 파일 시스템을 벡터 데이터베이스로 활용
- MUVERA - 멀티 벡터 검색을 단일 벡터 수준으로 빠르게
- zvec - 초경량·초고속 인프로세스 벡터 DB
Favorite site
Article
이 문서를 가리키는 문서