Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use pujithapsx/finetuned-bge-reranker-address-25l with sentence-transformers:
from sentence_transformers import CrossEncoder
model = CrossEncoder("pujithapsx/finetuned-bge-reranker-address-25l")
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)This is a Cross Encoder model finetuned from BAAI/bge-reranker-v2-m3 using the sentence-transformers library. It computes scores for pairs of texts, which can be used for text reranking and semantic search.
First install the Sentence Transformers library:
pip install -U sentence-transformers
Then you can load this model and run inference.
from sentence_transformers import CrossEncoder
# Download from the 🤗 Hub
model = CrossEncoder("pujithapsx/finetuned-bge-reranker-address-25l")
# Get scores for pairs of texts
pairs = [
['c/o gupta mg road indore', 'c/o gupta mg road ahmedabad'],
['d-101 sector 62 noida', 'd-102 sector 62 noida'],
['h.no 45-67 jayanagar bangalore', 'h.no 4567 jayanagar bangalore'],
['45 8th main indiranagar bangalore', 'indiranagar 45 8th main bangalore'],
['mvp colony visakhapatnam', 'mvp colony hyderabad'],
]
scores = model.predict(pairs)
print(scores.shape)
# (5,)
# Or rank different texts based on similarity to a single text
ranks = model.rank(
'c/o gupta mg road indore',
[
'c/o gupta mg road ahmedabad',
'd-102 sector 62 noida',
'h.no 4567 jayanagar bangalore',
'indiranagar 45 8th main bangalore',
'mvp colony hyderabad',
]
)
# [{'corpus_id': ..., 'score': ...}, {'corpus_id': ..., 'score': ...}, ...]
entity-matching-evalCrossEncoderClassificationEvaluator| Metric | Value |
|---|---|
| accuracy | 0.9716 |
| accuracy_threshold | 0.0042 |
| f1 | 0.974 |
| f1_threshold | 0.0042 |
| precision | 0.9615 |
| recall | 0.9868 |
| average_precision | 0.984 |
sentence1, sentence2, and label| sentence1 | sentence2 | label | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| sentence1 | sentence2 | label |
|---|---|---|
a-301 royal residency indore |
a-301 royal res indore |
1 |
kukatpally hyderabad plot 45 |
plot 45 phase 2 kukatpally hyderabad |
1 |
a-301 royal residency indore |
a-301 royal res indore |
1 |
BinaryCrossEntropyLoss with these parameters:{
"activation_fn": "torch.nn.modules.linear.Identity",
"pos_weight": null
}
sentence1, sentence2, and label| sentence1 | sentence2 | label | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| sentence1 | sentence2 | label |
|---|---|---|
c/o gupta mg road indore |
c/o gupta mg road ahmedabad |
0 |
d-101 sector 62 noida |
d-102 sector 62 noida |
0 |
h.no 45-67 jayanagar bangalore |
h.no 4567 jayanagar bangalore |
1 |
BinaryCrossEntropyLoss with these parameters:{
"activation_fn": "torch.nn.modules.linear.Identity",
"pos_weight": null
}
eval_strategy: stepsper_device_eval_batch_size: 16learning_rate: 2e-05weight_decay: 0.01warmup_steps: 36remove_unused_columns: Falseload_best_model_at_end: Trueoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 16per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 2e-05weight_decay: 0.01adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 3max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: 0.0warmup_steps: 36log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falsebf16: Falsefp16: Falsefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Falselabel_names: Noneload_best_model_at_end: Trueignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsehub_revision: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters: auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | Validation Loss | entity-matching-eval_average_precision |
|---|---|---|---|---|
| 0.1463 | 18 | 0.3776 | - | - |
| 0.2927 | 36 | 0.1942 | 0.5548 | 0.9583 |
| 0.4390 | 54 | 0.3252 | - | - |
| 0.5854 | 72 | 0.2161 | 0.3014 | 0.9740 |
| 0.7317 | 90 | 0.4467 | - | - |
| 0.8780 | 108 | 0.1705 | 0.1924 | 0.9899 |
| 1.0244 | 126 | 0.2846 | - | - |
| 1.1707 | 144 | 0.143 | 0.2629 | 0.9878 |
| 1.3171 | 162 | 0.1257 | - | - |
| 1.4634 | 180 | 0.1296 | 0.3058 | 0.9818 |
| 1.6098 | 198 | 0.1998 | - | - |
| 1.7561 | 216 | 0.0981 | 0.1660 | 0.9853 |
| 1.9024 | 234 | 0.1277 | - | - |
| 2.0488 | 252 | 0.0216 | 0.1888 | 0.9906 |
| 2.1951 | 270 | 0.1826 | - | - |
| 2.3415 | 288 | 0.0567 | 0.2956 | 0.9594 |
| 2.4878 | 306 | 0.0929 | - | - |
| 2.6341 | 324 | 0.0754 | 0.2090 | 0.9807 |
| 2.7805 | 342 | 0.0239 | - | - |
| 2.9268 | 360 | 0.0268 | 0.2494 | 0.9840 |
@inproceedings{reimers-2019-sentence-bert,
title = "Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks",
author = "Reimers, Nils and Gurevych, Iryna",
booktitle = "Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing",
month = "11",
year = "2019",
publisher = "Association for Computational Linguistics",
url = "https://arxiv.org/abs/1908.10084",
}
Base model
BAAI/bge-reranker-v2-m3