KerasHub: Pretrained Models / API documentation / Modeling API / TextEmbedderPreprocessor

TextEmbedderPreprocessor

[source]

TextEmbedderPreprocessor class

keras_hub.models.TextEmbedderPreprocessor(
    tokenizer, sequence_length=256, truncate="round_robin", **kwargs
)

Base class for text embedding preprocessing layers.

TextEmbedderPreprocessor tasks wrap a keras_hub.tokenizer.Tokenizer to create a preprocessing layer for text embedding tasks. It is intended to be paired with a keras_hub.models.TextEmbedder task.

All TextEmbedderPreprocessor take inputs three ordered inputs, x, y, and sample_weight. x, the first input, should always be included. It can be a single string, a batch of strings, or a tuple of batches of string segments that should be combined into a single sequence. See examples below. y and sample_weight are optional inputs that will be passed through unaltered.

The layer will output either x, an (x, y) tuple if labels were provided, or an (x, y, sample_weight) tuple if labels and sample weight were provided. x will be a dictionary with tokenized input, the exact contents of the dictionary will depend on the model being used.

All TextEmbedderPreprocessor tasks include a from_preset() constructor which can be used to load a pre-trained config and vocabularies. You can call the from_preset() constructor directly on this base class, in which case the correct class for your model will be automatically instantiated.

Examples

preprocessor = keras_hub.models.TextEmbedderPreprocessor.from_preset(
    "all_minilm_l6_v2_en",
    sequence_length=256, # Optional.
)

# Tokenize and pad/truncate a single sentence.
x = "The quick brown fox jumped."
x = preprocessor(x)

# Tokenize and pad/truncate a batch of sentences.
x = ["The quick brown fox jumped.", "Call me Ishmael."]
x = preprocessor(x)

[source]

from_preset method

TextEmbedderPreprocessor.from_preset(
    preset, config_file="preprocessor.json", **kwargs
)

Instantiate a keras_hub.models.Preprocessor from a model preset.

A preset is a directory of configs, weights and other file assets used to save and load a pre-trained model. The preset can be passed as one of:

  1. a built-in preset identifier like 'bert_base_en'
  2. a Kaggle Models handle like 'kaggle://user/bert/keras/bert_base_en'
  3. a Hugging Face handle like 'hf://user/bert_base_en'
  4. a path to a local preset directory like './bert_base_en'

For any Preprocessor subclass, you can run cls.presets.keys() to list all built-in presets available on the class.

As there are usually multiple preprocessing classes for a given model, this method should be called on a specific subclass like keras_hub.models.BertTextClassifierPreprocessor.from_preset().

Arguments

  • preset: string. A built-in preset identifier, a Kaggle Models handle, a Hugging Face handle, or a path to a local directory.

Examples

# Load a preprocessor for Gemma generation.
preprocessor = keras_hub.models.CausalLMPreprocessor.from_preset(
    "gemma_2b_en",
)

# Load a preprocessor for Bert classification.
preprocessor = keras_hub.models.TextClassifierPreprocessor.from_preset(
    "bert_base_en",
)
Preset Parameters Description
bert_tiny_en_uncased 4.39M 2-layer BERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.
bert_tiny_en_uncased_sst2 4.39M The bert_tiny_en_uncased backbone model fine-tuned on the SST-2 sentiment analysis dataset.
paraphrase_minilm_l3_v2_en 17.07M 3-layer MiniLM model for paraphrase detection. Ultra-fast with 384-dimensional sentence embeddings.
all_minilm_l6_v2_en 22.71M 6-layer MiniLM sentence embedding model. Maps sentences to 384-dimensional dense vectors. Trained on 1B+ sentence pairs for semantic similarity, search, and clustering.
all_minilm_l6_v1_en 22.71M 6-layer MiniLM sentence embedding model (v1). Maps sentences to 384-dimensional dense vectors.
paraphrase_minilm_l6_v2_en 22.71M 6-layer MiniLM model for paraphrase detection. Fast with 384-dimensional sentence embeddings.
multi_qa_minilm_l6_cos_v1_en 22.71M 6-layer MiniLM model for semantic search with cosine similarity. Trained on 215M QA pairs.
multi_qa_minilm_l6_dot_v1_en 22.71M 6-layer MiniLM model for semantic search with dot-product similarity. Trained on 215M QA pairs.
msmarco_minilm_l6_cos_v5_en 22.71M 6-layer MiniLM model for information retrieval with cosine similarity. Trained on MS MARCO passage ranking.
bge_small_v1.5_zh 23.95M 12-layer BGE small Chinese embedding model (v1.5). Maps sentences to 384-dimensional L2-normalized dense vectors. Optimized for dense retrieval on Chinese text.
bert_small_en_uncased 28.76M 4-layer BERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.
all_minilm_l12_v2_en 33.36M 12-layer MiniLM sentence embedding model. Maps sentences to 384-dimensional dense vectors. Higher accuracy than the L6 variant with moderate speed tradeoff.
paraphrase_minilm_l12_v2_en 33.36M 12-layer MiniLM model for paraphrase detection with 384-dimensional sentence embeddings.
msmarco_minilm_l12_cos_v5_en 33.36M 12-layer MiniLM model for information retrieval with cosine similarity. Trained on MS MARCO passage ranking.
bge_small_en 33.36M 12-layer BGE small English embedding model (v1). Maps sentences to 384-dimensional L2-normalized dense vectors. Optimized for dense retrieval and semantic similarity.
bge_small_v1.5_en 33.36M 12-layer BGE small English embedding model (v1.5). Maps sentences to 384-dimensional L2-normalized dense vectors. Optimized for dense retrieval and semantic similarity.
bert_medium_en_uncased 41.37M 8-layer BERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.
bert_base_zh 102.27M 12-layer BERT model. Trained on Chinese Wikipedia.
bge_base_zh 102.27M 12-layer BGE base Chinese embedding model (v1). Maps sentences to 768-dimensional L2-normalized dense vectors. Optimized for dense retrieval on Chinese text.
bge_base_v1.5_zh 102.27M 12-layer BGE base Chinese embedding model (v1.5). Maps sentences to 768-dimensional L2-normalized dense vectors. Optimized for dense retrieval on Chinese text.
bert_base_en 108.31M 12-layer BERT model where case is maintained. Trained on English Wikipedia + BooksCorpus.
bert_base_en_uncased 109.48M 12-layer BERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.
bge_base_en 109.48M 12-layer BGE base English embedding model (v1). Maps sentences to 768-dimensional L2-normalized dense vectors. Optimized for dense retrieval and semantic similarity.
bge_base_v1.5_en 109.48M 12-layer BGE base English embedding model (v1.5). Maps sentences to 768-dimensional L2-normalized dense vectors. Optimized for dense retrieval and semantic similarity.
bge_llm_embedder 109.48M BGE-LLM-Embedder: 12-layer embedding model for retrieval-augmented language model applications. Maps text to 768-dimensional dense vectors and supports knowledge, memory, demonstration, and tool retrieval tasks.
multilingual_e5_small 117.65M 12-layer multilingual E5 embedding model with 384-dimensional vectors. Fine-tuned for dense retrieval across 100+ languages using weakly-supervised contrastive pre-training. Prefix inputs with 'query: ' for queries and 'passage: ' for documents.
bert_base_multi 177.85M 12-layer BERT model where case is maintained. Trained on trained on Wikipedias of 104 languages
bge_large_zh 325.52M 24-layer BGE large Chinese embedding model (v1). Maps sentences to 1024-dimensional L2-normalized dense vectors. Highest accuracy in the BGE Chinese v1 family.
bge_large_v1.5_zh 325.52M 24-layer BGE large Chinese embedding model (v1.5). Maps sentences to 1024-dimensional L2-normalized dense vectors. Highest accuracy in the BGE Chinese v1.5 family.
bert_large_en 333.58M 24-layer BERT model where case is maintained. Trained on English Wikipedia + BooksCorpus.
bert_large_en_uncased 335.14M 24-layer BERT model where all input is lowercased. Trained on English Wikipedia + BooksCorpus.
bge_large_en 335.14M 24-layer BGE large English embedding model (v1). Maps sentences to 1024-dimensional L2-normalized dense vectors. Highest accuracy in the BGE English v1 family.
bge_large_v1.5_en 335.14M 24-layer BGE large English embedding model (v1.5). Maps sentences to 1024-dimensional L2-normalized dense vectors. Highest accuracy in the BGE English family.
gemma3_270m 268.10M 270-million parameter(170m embedding,100m transformer params) model, 18-layer, text-only designed for hyper-efficient AI, particularly for task-specific fine-tuning.
gemma3_instruct_270m 268.10M 270-million parameter(170m embedding,100m transformer params) model, 18-layer, text-only,instruction-tuned model designed for hyper-efficient AI, particularly for task-specific fine-tuning.
function_gemma_instruct_270m 268.10M A 270M Million parameter text-only model based on Gemma 3. This model is trained specifically for function calling improvements.
harrier_embedding_oss_270m 268.10M Microsoft harrier-oss-v1 270M multilingual text embedding model based on the Gemma3-270M architecture, fine-tuned for dense retrieval and semantic similarity across 94+ languages. Achieves 66.5 on Multilingual MTEB v2.
embedding_gemma3_300m 307.58M Embedding-focused Gemma 3 model (300M parameters, 24 layers).
gemma3_1b 999.89M 1 billion parameter, 26-layer, text-only pretrained Gemma3 model.
gemma3_instruct_1b 999.89M 1 billion parameter, 26-layer, text-only instruction-tuned Gemma3 model.
gemma3_4b_text 3.88B 4 billion parameter, 34-layer, text-only pretrained Gemma3 model.
gemma3_instruct_4b_text 3.88B 4 billion parameter, 34-layer, text-only instruction-tuned Gemma3 model.
gemma3_4b 4.30B 4 billion parameter, 34-layer, vision+text pretrained Gemma3 model.
gemma3_instruct_4b 4.30B 4 billion parameter, 34-layer, vision+text instruction-tuned Gemma3 model.
translategemma_4b_it 4.30B 4 billion parameter, 34-layer, multimodal instruction-tuned translation model based on Gemma 3. Supports text and image input for translation across 55 languages.
medgemma_4b 4.30B A 4 billion parameter model based on Gemma 3. This model is pre-trained for performance on medical text and image comprehension and is optimized for medical applications that involve a text generation component.
medgemma_instruct_4b 4.30B A 4 billion parameter model based on Gemma 3. This model is instruction-tuned for performance on medical text and image comprehension and is optimized for medical applications that involve a text generation component.
medgemma_1.5_instruct_4b 4.30B A 4 billion parameter,Instruct-tuned MedGemma 1.5 4B is an updated version of the Instruction-tuned MedGemma 4B model.
gemma3_12b_text 11.77B 12 billion parameter, 48-layer, text-only pretrained Gemma3 model.
gemma3_instruct_12b_text 11.77B 12 billion parameter, 48-layer, text-only instruction-tuned Gemma3 model.
gemma3_12b 12.19B 12 billion parameter, 48-layer, vision+text pretrained Gemma3 model.
gemma3_instruct_12b 12.19B 12 billion parameter, 48-layer, vision+text instruction-tuned Gemma3 model.
translategemma_12b_it 12.19B 12 billion parameter, 48-layer, multimodal instruction-tuned translation model based on Gemma 3. Supports text and image input for translation across 55 languages.
gemma3_27b_text 27.01B 27 billion parameter, 62-layer, text-only pretrained Gemma3 model.
gemma3_instruct_27b_text 27.01B 27 billion parameter, 62-layer, text-only instruction-tuned Gemma3 model.
medgemma_instruct_27b_text 27.01B A 27 billion parameter text-only model based on Gemma 3. This model is instruction-tuned (No images) for performance on medical text comprehension and is optimized for medical applications that involve a text generation component.
gemma3_27b 27.43B 27 billion parameter, 62-layer, vision+text pretrained Gemma3 model.
gemma3_instruct_27b 27.43B 27 billion parameter, 62-layer, vision+text instruction-tuned Gemma3 model.
translategemma_27b_it 27.43B 27 billion parameter, 62-layer, multimodal instruction-tuned translation model based on Gemma 3. Supports text and image input for translation across 55 languages.
medgemma_instruct_27b 27.43B A 27 billion parameter model based on Gemma 3. This model is instruction-tuned for performance on medical text and image comprehension and is optimized for medical applications that involve a text generation component.
qwen3_embedding_0.6b_en 595.78M This text embedding model features a 32k context length and offers flexible, user-defined embedding dimensions that can range from 32 to 1024.
qwen3_0.6b_en 596.05M 28-layer Qwen3 model with 596M parameters, optimized for efficiency and fast inference on resource-constrained devices.
harrier_embedding_oss_0.6b 596.05M Microsoft harrier-oss-v1 0.6B multilingual text embedding model based on the Qwen3-0.6B architecture, fine-tuned for dense retrieval and semantic similarity across 94+ languages. Achieves 69.0 on Multilingual MTEB v2.
qwen3_1.7b_en 1.72B 28-layer Qwen3 model with 1.72B parameters, offering a good balance between performance and resource usage.
qwen3_embedding_4b_en 4.02B This text embedding model features a 32k context length and offers flexible, user-defined embedding dimensions that can range from 32 to 2560.
qwen3_4b_en 4.02B 36-layer Qwen3 model with 4.02B parameters, offering improved reasoning capabilities and better performance than smaller variants.
qwen3_embedding_8b_en 8.19B This text embedding model features a 32k context length and offers flexible, user-defined embedding dimensions that can range from 32 to 4096.
qwen3_8b_en 8.19B 36-layer Qwen3 model with 8.19B parameters, featuring enhanced reasoning, coding, and instruction-following capabilities.
qwen3_14b_en 14.77B 40-layer Qwen3 model with 14.77B parameters, featuring advanced reasoning, coding, and multilingual capabilities.
qwen3_32b_en 32.76B 64-layer Qwen3 model with 32.76B parameters, featuring state-of-the-art performance across reasoning, coding, and general language tasks.
xlm_roberta_base_multi 277.45M 12-layer XLM-RoBERTa model where case is maintained. Trained on CommonCrawl in 100 languages.
multilingual_e5_base 277.45M 12-layer multilingual E5 embedding model with 768-dimensional vectors. Fine-tuned for dense retrieval across 100+ languages using weakly-supervised contrastive pre-training. Prefix inputs with 'query: ' for queries and 'passage: ' for documents.
xlm_roberta_large_multi 558.84M 24-layer XLM-RoBERTa model where case is maintained. Trained on CommonCrawl in 100 languages.
multilingual_e5_large 558.84M 24-layer multilingual E5 embedding model with 1024-dimensional vectors. Fine-tuned for dense retrieval across 100+ languages using weakly-supervised contrastive pre-training. Prefix inputs with 'query: ' for queries and 'passage: ' for documents.
bge_m3 566.70M 568M-parameter multilingual text embedding model supporting 100+ languages with sequences up to 8192 tokens. Uses CLS token pooling with L2 normalization. Supports dense, sparse, and multi-vector (ColBERT-style) retrieval. From BAAI.

[source]

save_to_preset method

TextEmbedderPreprocessor.save_to_preset(preset_dir)

Save preprocessor to a preset directory.

Arguments

  • preset_dir: The path to the local model preset directory.

tokenizer property

keras_hub.models.TextEmbedderPreprocessor.tokenizer

The tokenizer used to tokenize strings.