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 어플리케이션에서 벡터 임베딩이 폭발적으로 성장하면서 벡터 데이터베이스가 등장
- 프로덕션 시나리오에서 벡터 임베딩을 관리할 때 발생하는 문제점을 해결하기 위해 특수하게 만들어진게 벡터 데이터베이스
- 기존의 스칼라 기반 데이터 베이스 및 스탠드얼론 벡터 인덱스에 비해 상당한 이점을 제공
See also
Favorite site
Article