Text Ranking
sentence-transformers
Safetensors
Transformers
multilingual
t5gemma2
text2text-generation
reranker
encoder-decoder
FBNL
Retrieval
RAG
Instructions to use KaLM-Embedding/KaLM-Reranker-V1-Nano with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- sentence-transformers
How to use KaLM-Embedding/KaLM-Reranker-V1-Nano with sentence-transformers:
from sentence_transformers import CrossEncoder model = CrossEncoder("KaLM-Embedding/KaLM-Reranker-V1-Nano") query = "Which planet is known as the Red Planet?" passages = [ "Venus is often called Earth's twin because of its similar size and proximity.", "Mars, known for its reddish appearance, is often referred to as the Red Planet.", "Jupiter, the largest planet in our solar system, has a prominent red spot.", "Saturn, famous for its rings, is sometimes mistaken for the Red Planet." ] scores = model.predict([(query, passage) for passage in passages]) print(scores) - Transformers
How to use KaLM-Embedding/KaLM-Reranker-V1-Nano with Transformers:
# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("KaLM-Embedding/KaLM-Reranker-V1-Nano") model = AutoModelForMultimodalLM.from_pretrained("KaLM-Embedding/KaLM-Reranker-V1-Nano", device_map="auto") - Notebooks
- Google Colab
- Kaggle
Update kalm_reranker.py
Browse files- kalm_reranker.py +0 -8
kalm_reranker.py
CHANGED
|
@@ -62,7 +62,6 @@ class KaLMReranker:
|
|
| 62 |
if self.tokenizer.eos_token_id is None:
|
| 63 |
raise ValueError("The tokenizer must define a pad token or an EOS token.")
|
| 64 |
self.tokenizer.pad_token = self.tokenizer.eos_token
|
| 65 |
-
# Last-token indexing below assumes right padding, matching training.
|
| 66 |
self.tokenizer.padding_side = "right"
|
| 67 |
|
| 68 |
self.model = AutoModelForSeq2SeqLM.from_pretrained(
|
|
@@ -70,11 +69,6 @@ class KaLMReranker:
|
|
| 70 |
dtype=self.dtype,
|
| 71 |
**model_kwargs,
|
| 72 |
)
|
| 73 |
-
# Preserve model buffers in their checkpoint dtypes. In particular,
|
| 74 |
-
# T5Gemma2 keeps RoPE inverse-frequency buffers in FP32 even for BF16
|
| 75 |
-
# inference. Casting the whole module would silently change its scores.
|
| 76 |
-
# A few tied parameters can retain a nested config dtype on CPU, so only
|
| 77 |
-
# parameters that need correction are converted explicitly.
|
| 78 |
for parameter in self.model.parameters():
|
| 79 |
if parameter.is_floating_point() and parameter.dtype != self.dtype:
|
| 80 |
parameter.data = parameter.data.to(dtype=self.dtype)
|
|
@@ -280,8 +274,6 @@ class KaLMReranker:
|
|
| 280 |
if not isinstance(effective_batch_size, int) or effective_batch_size <= 0:
|
| 281 |
raise ValueError("batch_size must be a positive integer.")
|
| 282 |
|
| 283 |
-
# Match FlagEmbedding: sort by approximate text length to reduce padding,
|
| 284 |
-
# score contiguous batches, then restore the caller's original order.
|
| 285 |
length_sorted_indices = np.argsort(
|
| 286 |
[-(len(query) + len(document)) for query, document in validated_pairs]
|
| 287 |
)
|
|
|
|
| 62 |
if self.tokenizer.eos_token_id is None:
|
| 63 |
raise ValueError("The tokenizer must define a pad token or an EOS token.")
|
| 64 |
self.tokenizer.pad_token = self.tokenizer.eos_token
|
|
|
|
| 65 |
self.tokenizer.padding_side = "right"
|
| 66 |
|
| 67 |
self.model = AutoModelForSeq2SeqLM.from_pretrained(
|
|
|
|
| 69 |
dtype=self.dtype,
|
| 70 |
**model_kwargs,
|
| 71 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
for parameter in self.model.parameters():
|
| 73 |
if parameter.is_floating_point() and parameter.dtype != self.dtype:
|
| 74 |
parameter.data = parameter.data.to(dtype=self.dtype)
|
|
|
|
| 274 |
if not isinstance(effective_batch_size, int) or effective_batch_size <= 0:
|
| 275 |
raise ValueError("batch_size must be a positive integer.")
|
| 276 |
|
|
|
|
|
|
|
| 277 |
length_sorted_indices = np.argsort(
|
| 278 |
[-(len(query) + len(document)) for query, document in validated_pairs]
|
| 279 |
)
|