Intel의 Visual Data Management System (VDMS)은 그래프로 저장된 visual metadata를 통해 관련 visual 데이터를 검색하고 더 빠른 액세스를 위해 visual 데이터에 대한 머신 친화적인 개선을 가능하게 함으로써 클라우드 규모를 달성하는 것을 목표로 하는 대용량 “visual” 데이터의 효율적인 액세스를 위한 스토리지 솔루션입니다. VDMS는 MIT 라이선스로 제공됩니다. VDMS에 대한 자세한 내용은 이 페이지를 방문하고, LangChain API 참조는 여기에서 확인하세요.
VDMS는 다음을 지원합니다:
- K nearest neighbor 검색
- Euclidean distance (L2) 및 inner product (IP)
- 인덱싱 및 거리 계산을 위한 라이브러리: FaissFlat (기본값), FaissHNSWFlat, FaissIVFFlat, Flinng, TileDBDense, TileDBSparse
- 텍스트, 이미지 및 비디오에 대한 embedding
- Vector 및 metadata 검색
설정
VDMS vector store에 액세스하려면langchain-vdms 통합 패키지를 설치하고 공개적으로 사용 가능한 Docker 이미지를 통해 VDMS 서버를 배포해야 합니다.
간단하게 하기 위해 이 노트북은 포트 55555를 사용하여 로컬 호스트에 VDMS 서버를 배포합니다.
자격 증명
VDMS는 자격 증명 없이 사용할 수 있습니다.
모델 호출의 자동 추적을 활성화하려면 LangSmith API 키를 설정하세요:
초기화
VDMS Client를 사용하여 FAISS IndexFlat 인덱싱(기본값)과 Euclidean distance(기본값)를 유사도 검색을 위한 거리 메트릭으로 사용하는 VDMS vectorstore에 연결합니다.Vector store 관리
Vector store에 항목 추가
add_documents는 id가 고유한지 확인하지 않습니다. 이러한 이유로 추가하기 전에 기존 id 항목을 삭제하려면 upsert를 사용하세요.
Vector store의 항목 업데이트
Vector store에서 항목 삭제
Vector store 쿼리
Vector store가 생성되고 관련 문서가 추가되면 체인이나 에이전트를 실행하는 동안 쿼리하고 싶을 것입니다.직접 쿼리
간단한 유사도 검색은 다음과 같이 수행할 수 있습니다:Retriever로 변환하여 쿼리
체인에서 더 쉽게 사용할 수 있도록 vector store를 retriever로 변환할 수도 있습니다.Collection 삭제
이전에는id를 기반으로 문서를 제거했습니다. 여기서는 ID가 제공되지 않았으므로 모든 문서가 제거됩니다.
Retrieval-augmented generation 사용
이 vector store를 retrieval-augmented generation (RAG)에 사용하는 방법에 대한 가이드는 다음 섹션을 참조하세요:다른 엔진을 사용한 유사도 검색
VDMS는 인덱싱 및 거리 계산을 위한 다양한 라이브러리를 지원합니다: FaissFlat (기본값), FaissHNSWFlat, FaissIVFFlat, Flinng, TileDBDense, TileDBSparse. 기본적으로 vectorstore는 FaissFlat을 사용합니다. 아래에서 다른 엔진을 사용하는 몇 가지 예를 보여줍니다.Faiss HNSWFlat 및 Euclidean Distance를 사용한 유사도 검색
여기서는 Faiss IndexHNSWFlat 인덱싱과 L2를 유사도 검색을 위한 거리 메트릭으로 사용하여 VDMS에 문서를 추가합니다. 쿼리와 관련된 세 개의 문서(k=3)를 검색하고 문서와 함께 점수도 반환합니다.
Faiss IVFFlat 및 Inner Product (IP) Distance를 사용한 유사도 검색
Faiss IndexIVFFlat 인덱싱과 IP를 유사도 검색을 위한 거리 메트릭으로 사용하여 VDMS에 문서를 추가합니다. 쿼리와 관련된 세 개의 문서(k=3)를 검색하고 문서와 함께 점수도 반환합니다.
FLINNG 및 IP Distance를 사용한 유사도 검색
이 섹션에서는 Filters to Identify Near-Neighbor Groups (FLINNG) 인덱싱과 IP를 유사도 검색을 위한 거리 메트릭으로 사용하여 VDMS에 문서를 추가합니다. 쿼리와 관련된 세 개의 문서(k=3)를 검색하고 문서와 함께 점수도 반환합니다.
Metadata 필터링
작업하기 전에 collection을 좁히는 것이 도움이 될 수 있습니다. 예를 들어,get_by_constraints 메서드를 사용하여 metadata로 collection을 필터링할 수 있습니다. metadata를 필터링하기 위해 dictionary가 사용됩니다. 여기서는 langchain_id = "2"인 문서를 검색하고 vector store에서 제거합니다.
참고: id는 정수로 추가 metadata로 생성되었으며 langchain_id(내부 ID)는 각 항목에 대한 고유한 문자열입니다.
id가 정수이므로 ID 범위를 필터링하는 데 사용합니다.
VDMS Server 중지
API 참조
TODO: API 참조 추가Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.