SentenceTransformerEmbeddingFunction
SentenceTransformerEmbeddingFunction is a class in pymilvus that handles encoding text into embeddings using Sentence Transformer models to support embedding retrieval in Milvus.
pymilvus.model.dense.SentenceTransformerEmbeddingFunction
Constructor
Constructs a SentenceTransformerEmbeddingFunction for common use cases.
SentenceTransformerEmbeddingFunction(
model_name: str = "all-MiniLM-L6-v2",
batch_size: int = 32,
query_instruction: str = "",
doc_instruction: str = "",
device: str = "cpu",
normalize_embeddings: bool = True,
**kwargs
)
PARAMETERS:
-
model_name (string) -
The name of the Sentence Transformer model to use for encoding. The value defaults to all-MiniLM-L6-v2. You can use any of Sentence Transformers' pre-trained models. For a list of available models, refer to Pretrained models.
-
batch_size (int) -
The batch size used for the computation.
-
query_instruction (string) -
Prepends a contextual instruction to the query text to improve embedding quality for specific models (e.g., "Represent the Wikipedia question for retrieving supporting documents:").
-
doc_instruction (string) -
Prepends a contextual instruction to the document text to improve embedding quality for specific models (e.g., "Represent the Wikipedia document for retrieval:").
-
device (string) -
The device to use, with cpu for the CPU and cuda:n for the nth GPU device.
-
normalize_embeddings (bool)
Whether to normalize returned vectors to have length 1. In that case, the faster dot-product (util.dot_score) instead of cosine similarity can be used.
-
**kwargs
Allows additional keyword arguments to be passed to the model initialization. For more information, refer to SentenceTransformer.
Examples
from pymilvus import model
sentence_transformer_ef = model.dense.SentenceTransformerEmbeddingFunction(
model_name='all-MiniLM-L6-v2', # Specify the model name
device='cpu' # Specify the device to use, e.g., 'cpu' or 'cuda:0'
)