Skip to content

Vector Database

About

  • AI 어플리케이션들은 Vector Embeddings에 의존
    • 임베딩은 AI 모델에 의해 생성되며, 많은 수의 속성/피쳐가 있어서 관리하기가 어려움
    • AI 및 ML에서 이 피쳐들은 패턴, 관계 및 기본 구조를 이해하는데 필수적인 데이터의 다양한 디멘젼들을 표현
  • Pinecone 같은 벡터DB는 이런 임베딩 데이터를 최적화 하여 보관하고 쿼리하기 위해 특화된 DB
  • 벡터DB를 통해서 AI에 시맨틱 정보 검색, 장기 메모리 등의 고급 기능들을 구현 가능
    • 임베딩 모델을 통해서 인덱싱할 콘텐츠의 벡터 임베딩을 생성
    • 벡터 임베딩들을 벡터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년간 다니면서 배운 것들

  1. BM25는 검색에서 강력한 베이스라인임
  2. 벡터 검색은 근사적(Approximate)이지 정확(Exact)하지 않음
  3. 벡터DB는 임베딩만 저장하지 않음
  4. 벡터DB의 주용도는 생성AI가 아닌 ‘검색’
  5. 검색 결과 개수를 직접 지정해야 함
  6. 임베딩 종류는 다양함
  7. 임베딩 모델 선택을 위한 벤치마크
  8. MTEB의 대부분 모델은 영어 전용
  9. 임베딩의 역사: Static vs Contextual
  10. Sparse vector와 sparse embedding의 차이
  11. 텍스트 외 다양한 데이터 임베딩 가능
  12. 임베딩 차원수와 저장 비용
  13. “Chat with your docs” 튜토리얼은 생성AI의 헬로월드
  14. 임베딩 모델은 반복적으로 호출해야 함
  15. 벡터 유사도와 실질적 relevance는 다를 수 있음
  16. Cosine similarity와 cosine distance는 다름
  17. 벡터 정규화 시 cosine similarity와 dot product는 동일
  18. RAG의 R은 ‘vector search’가 아닌 ‘retrieval’
  19. 벡터 검색은 검색 도구의 하나일 뿐
  20. 키워드/벡터 검색의 적절한 적용
  21. 하이브리드 검색의 의미
  22. 필터링이 항상 속도를 올리진 않음
  23. 2단계 검색 파이프라인의 유용성
  24. 벡터 검색과 리랭킹의 차이
  25. 임베딩할 chunk 크기 선정의 어려움
  26. 벡터 인덱싱 라이브러리와 벡터DB의 차이
  27. LLM context 확장에도 RAG는 계속 진화
  28. 벡터 양자화로 97% 정보 줄여도 검색 유지
  29. 벡터 검색은 오타에 robust하지 않음
  30. 검색 품질 평가 지표 다양
  31. Precision-Recall trade-off 실전 예시
  32. 검색 결과의 순서 반영 지표
  33. 토크나이저의 영향력
  34. Out-of-domain과 out-of-vocabulary는 다름
  35. 쿼리 최적화의 필요성
  36. 벡터 검색 이후의 패러다임
  37. 정보검색(리트리벌)은 지금 가장 ‘핫’한 분야

See also

  • Database
  • VectorVFS - 파일 시스템을 벡터 데이터베이스로 활용
  • MUVERA - 멀티 벡터 검색을 단일 벡터 수준으로 빠르게

Favorite site

Article