Skip to main content

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'
)