Edit model card

BERT base uncased trained on GooAQ triplets

This is a sentence-transformers model finetuned from google-bert/bert-base-uncased on the sentence-transformers/gooaq dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.

Model Details

Model Description

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
)

Usage

Direct Usage (Sentence Transformers)

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("tomaarsen/bert-base-uncased-gooaq")
# Run inference
sentences = [
    'what is the best drugstore shampoo for volume?',
    '[\'#8. ... \', \'#7. ... \', \'#6. Hask Biotin Boost Shampoo. ... \', \'#5. Pantene Pro-V Sheer Volume Shampoo. ... \', \'#4. John Frieda Luxurious Volume Touchably Full Shampoo. ... \', \'#3. Acure Vivacious Volume Peppermint Shampoo. ... \', \'#2. OGX Thick & Full Biotin & Collagen Shampoo. ... \', "#1. L\'Oréal Paris EverPure Sulfate Free Volume Shampoo."]',
    'In electricity, the phase refers to the distribution of a load. What is the difference between single-phase and three-phase power supplies? Single-phase power is a two-wire alternating current (ac) power circuit. ... Three-phase power is a three-wire ac power circuit with each phase ac signal 120 electrical degrees apart.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.7001
cosine_accuracy@3 0.8712
cosine_accuracy@5 0.9219
cosine_accuracy@10 0.9629
cosine_precision@1 0.7001
cosine_precision@3 0.2904
cosine_precision@5 0.1844
cosine_precision@10 0.0963
cosine_recall@1 0.7001
cosine_recall@3 0.8712
cosine_recall@5 0.9219
cosine_recall@10 0.9629
cosine_ndcg@10 0.8359
cosine_mrr@10 0.7946
cosine_map@100 0.7966
dot_accuracy@1 0.6709
dot_accuracy@3 0.8558
dot_accuracy@5 0.9096
dot_accuracy@10 0.9567
dot_precision@1 0.6709
dot_precision@3 0.2853
dot_precision@5 0.1819
dot_precision@10 0.0957
dot_recall@1 0.6709
dot_recall@3 0.8558
dot_recall@5 0.9096
dot_recall@10 0.9567
dot_ndcg@10 0.8178
dot_mrr@10 0.7728
dot_map@100 0.7751

Training Details

Training Dataset

sentence-transformers/gooaq

  • Dataset: sentence-transformers/gooaq at b089f72
  • Size: 3,002,496 training samples
  • Columns: question and answer
  • Approximate statistics based on the first 1000 samples:
    question answer
    type string string
    details
    • min: 8 tokens
    • mean: 11.95 tokens
    • max: 24 tokens
    • min: 17 tokens
    • mean: 60.83 tokens
    • max: 130 tokens
  • Samples:
    question answer
    what are the differences between internet and web? The Internet is a global network of networks while the Web, also referred formally as World Wide Web (www) is collection of information which is accessed via the Internet. Another way to look at this difference is; the Internet is infrastructure while the Web is service on top of that infrastructure.
    who is the most important person in a first aid situation? Subscribe to New First Aid For Free The main principle of incident management is that you are the most important person and your safety comes first! Your first actions when coming across the scene of an incident should be: Check for any dangers to yourself or bystanders. Manage any dangers found (if safe to do so)
    why is jibjab not working? Usually disabling your ad blockers for JibJab will resolve this issue. If you're still having issues loading the card after your ad blockers are disabled, you can try clearing your cache/cookies or updating and restarting your browser. As a last resort, you can try opening JibJab from a different browser.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Evaluation Dataset

sentence-transformers/gooaq

  • Dataset: sentence-transformers/gooaq at b089f72
  • Size: 10,000 evaluation samples
  • Columns: question and answer
  • Approximate statistics based on the first 1000 samples:
    question answer
    type string string
    details
    • min: 8 tokens
    • mean: 12.01 tokens
    • max: 34 tokens
    • min: 13 tokens
    • mean: 59.81 tokens
    • max: 145 tokens
  • Samples:
    question answer
    what are some common attributes/characteristics between animal and human? ['Culture.', 'Emotions.', 'Language.', 'Humour.', 'Tool Use.', 'Memory.', 'Self-Awareness.', 'Intelligence.']
    is folic acid the same as vitamin b? Vitamin B9, also called folate or folic acid, is one of 8 B vitamins. All B vitamins help the body convert food (carbohydrates) into fuel (glucose), which is used to produce energy. These B vitamins, often referred to as B-complex vitamins, also help the body use fats and protein.
    are bendy buses still in london? Bendy bus makes final journey for Transport for London. The last of London's bendy buses was taken off the roads on Friday night. ... The final route to be operated with bendy buses has been the 207 between Hayes and White City, and the last of the long vehicles was to run late on Friday.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 128
  • per_device_eval_batch_size: 128
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • bf16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 128
  • per_device_eval_batch_size: 128
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss loss gooaq-dev_cosine_map@100
0 0 - - 0.2018
0.0000 1 2.6207 - -
0.0213 500 0.9092 - -
0.0426 1000 0.2051 - -
0.0639 1500 0.1354 - -
0.0853 2000 0.1089 0.0719 0.7124
0.1066 2500 0.0916 - -
0.1279 3000 0.0812 - -
0.1492 3500 0.0716 - -
0.1705 4000 0.0658 0.0517 0.7432
0.1918 4500 0.0623 - -
0.2132 5000 0.0596 - -
0.2345 5500 0.0554 - -
0.2558 6000 0.0504 0.0401 0.7580
0.2771 6500 0.0498 - -
0.2984 7000 0.0483 - -
0.3197 7500 0.0487 - -
0.3410 8000 0.0458 0.0359 0.7652
0.3624 8500 0.0435 - -
0.3837 9000 0.0421 - -
0.4050 9500 0.0421 - -
0.4263 10000 0.0405 0.0329 0.7738
0.4476 10500 0.0392 - -
0.4689 11000 0.0388 - -
0.4903 11500 0.0388 - -
0.5116 12000 0.0361 0.0290 0.7810
0.5329 12500 0.0362 - -
0.5542 13000 0.0356 - -
0.5755 13500 0.0352 - -
0.5968 14000 0.0349 0.0267 0.7866
0.6182 14500 0.0334 - -
0.6395 15000 0.0323 - -
0.6608 15500 0.0325 - -
0.6821 16000 0.0316 0.0256 0.7879
0.7034 16500 0.0313 - -
0.7247 17000 0.0306 - -
0.7460 17500 0.0328 - -
0.7674 18000 0.0303 0.0238 0.7928
0.7887 18500 0.0301 - -
0.8100 19000 0.0291 - -
0.8313 19500 0.0286 - -
0.8526 20000 0.0295 0.0218 0.7952
0.8739 20500 0.0288 - -
0.8953 21000 0.0277 - -
0.9166 21500 0.0266 - -
0.9379 22000 0.0289 0.0218 0.7971
0.9592 22500 0.0286 - -
0.9805 23000 0.0275 - -
1.0 23457 - - 0.7966

Environmental Impact

Carbon emissions were measured using CodeCarbon.

  • Energy Consumed: 1.348 kWh
  • Carbon Emitted: 0.524 kg of CO2
  • Hours Used: 3.544 hours

Training Hardware

  • On Cloud: No
  • GPU Model: 1 x NVIDIA GeForce RTX 3090
  • CPU Model: 13th Gen Intel(R) Core(TM) i7-13700K
  • RAM Size: 31.78 GB

Framework Versions

  • Python: 3.11.6
  • Sentence Transformers: 3.1.0.dev0
  • Transformers: 4.41.2
  • PyTorch: 2.3.0+cu121
  • Accelerate: 0.31.0
  • Datasets: 2.20.0
  • Tokenizers: 0.19.1

Citation

BibTeX

Sentence Transformers

@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",
}

MultipleNegativesRankingLoss

@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply}, 
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}
Downloads last month
0
Safetensors
Model size
109M params
Tensor type
F32
·

Finetuned from

Dataset used to train tomaarsen/bert-base-uncased-gooaq

Evaluation results