Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use Stffens/bge-small-rrf-v1 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Stffens/bge-small-rrf-v1")
sentences = [
"blood clots",
"Herbal infusions as a source of calcium, magnesium, iron, zinc and copper in human nutrition.\nThe study material consisted of five herbs: chamomile (flowers), mint (leaves), St John's wort (flowers and leaves), sage (leaves) and nettle (leaves), sourced from three producers. The calcium, magnesium, iron, zinc and copper contents were determined for both dried herb samples and prepared infusions, and the extraction rates were calculated. Mineral components were determined using atomic absorption spectrometry",
"Vegetarian diets and incidence of diabetes in the Adventist Health Study-2\nAim To evaluate the relationship of diet to incident diabetes among non-Black and Black participants in the Adventist Health Study-2. Methods and Results Participants were 15,200 men and 26,187 women (17.3% Blacks) across the U.S. and Canada who were free of diabetes and who provided demographic, anthropometric, lifestyle and dietary data. Participants were grouped as vegan, lacto ovo vegetarian, pesco vegetarian, semi-vegetarian or ",
"Green tea: nature's defense against malignancies.\nThe current practice of introducing phytochemicals to support the immune system or fight against diseases is based on centuries old traditions. Nutritional support is a recent advancement in the domain of diet-based therapies; green tea and its constituents are one of the important components of these strategies to prevent and cure various malignancies. The anti-carcinogenic and anti-mutagenic activities of green tea were highlighted some years ago suggestin"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from BAAI/bge-small-en-v1.5. It maps sentences & paragraphs to a 384-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': True, 'architecture': 'BertModel'})
(1): Pooling({'word_embedding_dimension': 384, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
(2): Normalize()
)
First install the Sentence Transformers library:
pip install -U sentence-transformers
Then you can load this model and run inference.
from sentence_transformers import SentenceTransformer
# Download from the 🤗 Hub
model = SentenceTransformer("sentence_transformers_model_id")
# Run inference
sentences = [
'poisonous plants',
'Antioxidant, antimutagenic, and antitumor effects of pine needles (Pinus densiflora).\nPine needles (Pinus densiflora Siebold et Zuccarini) have long been used as a traditional health-promoting medicinal food in Korea. To investigate their potential anticancer effects, antioxidant, antimutagenic, and antitumor activities were assessed in vitro and/or in vivo. Pine needle ethanol extract (PNE) significantly inhibited Fe(2+)-induced lipid peroxidation and scavenged 1,1-diphenyl- 2-picrylhydrazyl radical in vit',
"Dietary sources of inorganic microparticles and their intake in healthy subjects and patients with Crohn's disease.\nDietary microparticles are non-biological, bacterial-sized particles. Endogenous sources are derived from intestinal Ca and phosphate secretion. Exogenous sources are mainly titanium dioxide (TiO2) and mixed silicates (Psil); they are resistant to degradation and accumulate in human Peyer's patch macrophages and there is some evidence that they exacerbate inflammation in Crohn's disease (CD). ",
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.5729, 0.4656],
# [0.5729, 1.0000, 0.5740],
# [0.4656, 0.5740, 1.0000]])
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
serotonin |
The potential toxicity of artificial sweeteners. |
industrial toxins |
Marine Food Pollutants as a Risk Factor for Hypoinsulinemia and Type 2 Diabetes |
Update on Herbalife® |
Bioavailability of vitamin D₂ from UV-B-irradiated button mushrooms in healthy adults deficient in serum 25-hydroxyvitamin D: a randomized controll... |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false,
"directions": [
"query_to_doc"
],
"partition_mode": "joint",
"hardness_mode": null,
"hardness_strength": 0.0
}
per_device_train_batch_size: 64per_device_eval_batch_size: 64num_train_epochs: 2multi_dataset_batch_sampler: round_robindo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 64per_device_eval_batch_size: 64gradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 2max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: Nonewarmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}accelerator_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: Nonegroup_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: Truepush_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_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_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: Trueuse_cache: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.4219 | 500 | 3.5716 |
| 0.8439 | 1000 | 3.2683 |
| 1.2658 | 1500 | 3.1075 |
| 1.6878 | 2000 | 3.0246 |
@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",
}
@misc{oord2019representationlearningcontrastivepredictive,
title={Representation Learning with Contrastive Predictive Coding},
author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
year={2019},
eprint={1807.03748},
archivePrefix={arXiv},
primaryClass={cs.LG},
url={https://arxiv.org/abs/1807.03748},
}
Base model
BAAI/bge-small-en-v1.5