Embeddings, Retrieval, and Reranking framework for computing dense, sparse, and cross-encoder embeddings using state-of-the-art transformer models
npx @tessl/cli install tessl/pypi-sentence-transformers@5.1.0The sentence-transformers package provides state-of-the-art sentence, text and image embeddings using transformer models. It supports training and fine-tuning of custom embedding models, offering a comprehensive toolkit for semantic search, clustering, and similarity tasks.
# Main transformer classes
from sentence_transformers import SentenceTransformer, CrossEncoder, SparseEncoder
# Training components (top-level imports)
from sentence_transformers import (
SentenceTransformerTrainer,
SentenceTransformerTrainingArguments,
CrossEncoderTrainer,
CrossEncoderTrainingArguments,
SparseEncoderTrainer,
SparseEncoderTrainingArguments
)
# Additional components (top-level imports from __all__)
from sentence_transformers import (
LoggingHandler,
SentencesDataset,
ParallelSentencesDataset,
InputExample,
DefaultBatchSampler,
MultiDatasetDefaultBatchSampler
)
# Utility functions (top-level imports)
from sentence_transformers import (
SimilarityFunction,
quantize_embeddings,
export_optimized_onnx_model,
export_dynamic_quantized_onnx_model,
export_static_quantized_openvino_model
)
from sentence_transformers.util import mine_hard_negatives
# Loss functions (module-level imports)
from sentence_transformers.losses import (
CosineSimilarityLoss,
MultipleNegativesRankingLoss,
TripletLoss,
MatryoshkaLoss
)
# Model components (module-level imports)
from sentence_transformers.models import Transformer, Pooling, Dense, Normalize
# Evaluation (module-level imports)
from sentence_transformers.evaluation import (
EmbeddingSimilarityEvaluator,
InformationRetrievalEvaluator,
BinaryClassificationEvaluator
)from sentence_transformers import SentenceTransformer
# Load a pre-trained model
model = SentenceTransformer('all-MiniLM-L6-v2')
# Encode sentences
sentences = ['This is an example sentence', 'Each sentence is converted']
embeddings = model.encode(sentences)
# Calculate similarity
similarity = model.similarity(embeddings[0], embeddings[1])
print(f"Similarity: {similarity}")from sentence_transformers import CrossEncoder
# Load cross-encoder model
cross_encoder = CrossEncoder('cross-encoder/ms-marco-MiniLM-L-6-v2')
# Score sentence pairs
pairs = [('How many people live in Berlin?', 'Berlin has a population of 3,520,031')]
scores = cross_encoder.predict(pairs)
print(f"Relevance score: {scores[0]}")The sentence-transformers package is built around several core concepts:
Models are composed of modular components that can be stacked:
Modern training uses the SentenceTransformerTrainer class with:
Encode text, documents, and queries into dense vector representations using pre-trained or custom models. Supports batch processing, multi-GPU inference, and various similarity functions.
Key APIs: SentenceTransformer.encode() { .api }
Learn more about Core Transformers →
Joint encoding of sentence pairs for tasks requiring direct comparison like reranking, textual entailment, and semantic textual similarity. Typically more accurate than bi-encoders for pairwise tasks.
Key APIs: CrossEncoder.predict() { .api }
Learn more about Cross-Encoders →
Generate sparse embeddings that combine the efficiency of traditional sparse retrieval with neural approaches. Ideal for large-scale retrieval systems where storage and computation efficiency are critical.
Key APIs: SparseEncoder.encode() { .api }
Learn more about Sparse Encoders →
Comprehensive training system supporting supervised fine-tuning, contrastive learning, and multi-task training. Built on HuggingFace Trainer with specialized components for embedding models.
Key APIs: SentenceTransformerTrainer.train() { .api }
Extensive collection of loss functions for different learning objectives including contrastive learning, triplet loss, multiple negatives ranking, and specialized losses for efficient training.
Key APIs: MultipleNegativesRankingLoss() { .api }
Learn more about Loss Functions →
Comprehensive evaluation framework for measuring model performance across various tasks including semantic similarity, information retrieval, classification, and clustering.
Key APIs: EmbeddingSimilarityEvaluator() { .api }
Tools for model optimization, quantization, export to different formats (ONNX, OpenVINO), similarity computation, and hard negative mining for improved training.
Key APIs: quantize_embeddings() { .api }
The package integrates seamlessly with the HuggingFace Model Hub, allowing you to:
batch_size parameter for efficiencyshow_progress_bar=False for production use