Skip to main content
The HuggingFaceEmbeddings class provides integration with HuggingFace’s sentence-transformers library for local embedding generation.

Installation

pip install langchain-huggingface
pip install sentence-transformers

Usage

Basic usage

from langchain_huggingface import HuggingFaceEmbeddings

embed = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-mpnet-base-v2"
)

Embed single text

text = "The meaning of life is 42"
vector = embed.embed_query(text)
print(len(vector))

Embed multiple texts

texts = ["hello world", "goodbye world"]
vectors = embed.embed_documents(texts)
print(len(vectors))
print(len(vectors[0]))

Configuration

Supported models

Any sentence-transformers model from HuggingFace Hub:
  • sentence-transformers/all-mpnet-base-v2 - High quality, 768 dimensions
  • sentence-transformers/all-MiniLM-L6-v2 - Fast and efficient, 384 dimensions
  • sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 - Multilingual support
  • BAAI/bge-large-en-v1.5 - State-of-the-art English embeddings
  • BAAI/bge-small-en-v1.5 - Smaller, faster alternative
Browse all models at HuggingFace Hub.

Device selection

Run embeddings on GPU:
embed = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-mpnet-base-v2",
    model_kwargs={"device": "cuda"}
)
Run on CPU:
embed = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-mpnet-base-v2",
    model_kwargs={"device": "cpu"}
)

Advanced options

embed = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-mpnet-base-v2",
    model_kwargs={
        "device": "cuda",
        "trust_remote_code": True
    },
    encode_kwargs={
        "normalize_embeddings": True,
        "batch_size": 32
    },
    show_progress=True
)

Multi-GPU processing

Enable multi-GPU processing:
embed = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-mpnet-base-v2",
    multi_process=True
)

Custom cache folder

embed = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-mpnet-base-v2",
    cache_folder="/path/to/cache"
)

Parameters

model_name
string
default:"sentence-transformers/all-mpnet-base-v2"
Name of the sentence-transformers model to use.
cache_folder
string
Path to store models. Can also be set by SENTENCE_TRANSFORMERS_HOME environment variable.
model_kwargs
object
default:"{}"
Keyword arguments for the SentenceTransformer model, such as device, trust_remote_code, or token.
encode_kwargs
object
default:"{}"
Keyword arguments for the encode method, such as batch_size, normalize_embeddings, or precision.
query_encode_kwargs
object
default:"{}"
Separate keyword arguments for query encoding. Falls back to encode_kwargs if not provided.
multi_process
boolean
default:"false"
Run encoding on multiple GPUs.
show_progress
boolean
default:"false"
Whether to show a progress bar during embedding.

Build docs developers (and LLMs) love