1. Concept
Vector 라이브러리는 "벡터"(임베딩)를 위한 데이터베이스로, 임베딩 모델을 통해 텍스트, 이미지, 오디오 및 기타 데이터에서 변환된 고차원 벡터를 저장하고 유사성(예: 코사인, 내적, L2 거리)을 기반으로 최근접 이웃 검색 기능을 제공합니다. 정확히 일치하는 키워드 검색만 수행하는 것과 비교할 때 벡터 라이브러리는 의미론적 검색, 추천, RAG 및 기타 작업에 대해 "의미론적으로 유사한" 콘텐츠를 찾는 데 능숙합니다.
2. 왜 필요한가
요? 기존 검색은 단어 얼굴만 일치시킬 수 있습니다. 벡터 검색은 "유사한 의미"를 이해할 수 있습니다. 예를 들어 "건강한 간식"을 쿼리할 때 벡터 검색은 "건강"이라는 단어만 포함된 텍스트 대신 "저칼로리 간식, 그래놀라 바"와 같은 의미론적으로 유사한 결과를 반환할 수 있습니다. 대규모 모델과 도킹할 때 벡터 라이브러리는 문제와 가장 관련성이 높은 외부 지식을 프롬프트로 다시 검색하여 "조작"을 크게 줄일 수도 있습니다.
3. 워크플로(단순화 버전)
1) 임베딩 모델을 사용하여 데이터를 벡터로 변환하고 메타데이터와 함께 벡터 라이브러리에 씁니다.
2) 속도, 메모리 및 회상력의 균형을 맞추기 위한 인덱싱(일반적으로 HNSW, IVF, PQ 또는 Exact Flat);
3) 쿼리 중에 문제도 벡터로 인코딩되어 k개의 최근접 이웃 검색(kNN/ANN)을 수행한 후 점수 및 필터 조건에 따라 결과를 반환합니다.
4) 검색 시나리오에서 "혼합 검색"을 수행할 수 있습니다: BM25 키워드 점수는 관련성과 재현성을 고려하기 위해 벡터 유사성과 융합됩니다.
4. 핵심 포인트 지표에 대한 빠른 개요
- : 종종 recall@k, 대기 시간(p95/99), 처리량 및 비용을 살펴봅니다.
- 거리 측정: 코사인과 내적은 텍스트에 자주 사용됩니다. L2는 일반적으로 부분 시각적 임베딩에 사용됩니다. 벡터 정규화가 필요한지 확인합니다.
- 인덱스 선택: HNSW 또는 소규모로 정확한 검색 가능; 데이터의 양이 수천만 개일 때 IVF/PQ와 같은 클러스터링 및 양자화 기술은 일반적으로 메모리를 절약하고 속도를 높이는 데 사용됩니다.
- 데이터 및 일관성: 말뭉치 업데이트는 다시 빌드/증분 인덱싱되어야 합니다. 임베딩 모델을 업그레이드한 후 "재임베드" 및 버전 관리를 고려합니다.
- 생태학적 형태: 전용 벡터 라이브러리(예: Milvus, Weaviate)와 범용 데이터베이스/검색 엔진(예: PostgreSQL+pgvector, OpenSearch/Elastic)의 벡터 기능이 모두 있습니다.
5. 일반적인 응용 프로그램
시맨틱 검색, RAG 검색 증강 생성, 유사 콘텐츠 중복 제거, 추천 리콜, 다중 모드 검색(그래픽, 텍스트, 오디오 및 비디오), 이상 탐지 및 메트릭 학습 등