경고
시맨틱 커널 벡터 저장소 기능은 프리뷰 상태이며, 릴리스 전에 제한된 상황에서도 비호환적인 변경이 필요한 개선이 발생할 수 있습니다.
현재 지원되지 않음
개요
Faiss Vector Store 커넥터는 외부 데이터베이스를 사용하지 않고 메모리 및 벡터의 데이터를 Faiss 인덱스에 저장하는 의미 체계 커널에서 제공하는 벡터 저장소 구현입니다. 다른 레코드 부분에는 InMemoryVectorCollection
을 사용하고 검색에는 Faiss 인덱스를 사용합니다.
이 벡터 저장소는 프로토타입 시나리오 또는 고속 메모리 내 작업이 필요한 경우에 유용합니다.
커넥터의 특징은 다음과 같습니다.
시작
의미 체계 커널 패키지를 프로젝트에 추가합니다.
pip install semantic-kernel[faiss]
아래 코드 조각에서는 'DataModel'이라는 데이터 모델 클래스가 정의되어 있다고 가정합니다.
from semantic_kernel.connectors.faiss import FaissStore
vector_store = FaissStore()
vector_collection = vector_store.get_collection("collection_name", DataModel)
명명된 컬렉션에 대한 직접 참조를 생성할 수 있습니다.
from semantic_kernel.connectors.faiss import FaissCollection
vector_collection = FaissCollection(DataModel, collection_name="collection_name")
사용자 지정 인덱스
Faiss 커넥터는 플랫 인덱스 유형으로 제한됩니다.
Faiss 인덱스의 복잡성을 감안할 때 faiss-gpu 패키지 빌드 및 해당 인덱스 사용을 포함하여 사용자 고유의 인덱스를 자유롭게 만들 수 있습니다. 이렇게 하면 벡터 필드에 정의된 모든 메트릭이 무시됩니다. datamodel에 여러 벡터가 있는 경우 원하는 인덱스에 대해서만 사용자 지정 인덱스를 전달하고 기본 제공 인덱스를 만들 수 있으며 플랫 인덱스와 모델에 정의된 메트릭을 사용할 수 있습니다.
주목할 점은, 인덱스에 학습이 필요한 경우에는 꼭 그렇게 하십시오. 인덱스를 사용할 때마다 인덱스의 is_trained
특성에 대한 검사가 수행됩니다.
인덱스는 컬렉션의 indexes
속성에서 항상 사용할 수 있습니다(사용자 지정 또는 기본 제공). 이를 사용하여 인덱스를 가져와 원하는 작업을 수행할 수 있으므로 나중에 학습을 수행할 수 있습니다. 이에 대해 CRUD를 사용하기 전에 이 작업을 수행해야 합니다.
사용자 지정 인덱스를 넘기려면 다음 중 하나를 사용하세요.
import faiss
from semantic_kernel.connectors.faiss import FaissCollection
index = faiss.IndexHNSW(d=768, M=16, efConstruction=200) # or some other index
vector_collection = FaissCollection(
record_type=DataModel,
collection_name="collection_name",
indexes={"vector_field_name": index}
)
또는:
import faiss
from semantic_kernel.connectors.faiss import FaissCollection
index = faiss.IndexHNSW(d=768, M=16, efConstruction=200) # or some other index
vector_collection = FaissCollection(
record_type=DataModel,
collection_name="collection_name",
)
await vector_collection.ensure_collection_exists(
indexes={"vector_field_name": index}
)
# or when you have only one vector field:
await vector_collection.ensure_collection_exists(
index=index
)