michalwilkosz's picture
Add new SentenceTransformer model
6ac4d03 verified
metadata
language:
  - en
license: apache-2.0
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:6300
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
base_model: BAAI/bge-base-en-v1.5
widget:
  - source_sentence: Americas | $ | 7,631,647 | | | $ | 6,817,454 | | 79.3 | % | 84.1 | %
    sentences:
      - >-
        What therapeutic area does the folate receptor alpha antibody drug
        conjugate MBK-103 target?
      - >-
        What was the proportion of Americas' net revenue to the company's total
        net revenue in 2023, and how did it change from 2022?
      - >-
        What was the Company's income tax provision for the year ended December
        31, 2022?
  - source_sentence: >-
      The Company establishes SSP based on observable prices of products or
      services sold or priced separately in comparable circumstances to similar
      customers.
    sentences:
      - >-
        What were the lease terms and discount rates for operating leases as of
        March 31, 2023 and 2022?
      - >-
        What factors influence the Company's ability to establish Standalone
        Selling Prices (SSP) based on observable prices?
      - What number is associated with Item 8 in the document?
  - source_sentence: >-
      Our effective tax rates could be affected by numerous factors, such as
      changes in our business operations, acquisitions, investments, entry into
      new businesses and geographies, intercompany transactions, the relative
      amount of our foreign earnings, including earnings being lower than
      anticipated in jurisdictions where we have lower statutory rates and
      higher than anticipated in jurisdictions where we have higher statutory
      rates, losses incurred in jurisdictions for which we are not able to
      realize related tax benefits, the applicability of special tax regimes,
      changes in foreign exchange rates, changes in our stock price, changes to
      our forecasts of income and loss and the mix of jurisdictions to which
      they relate, changes in our deferred tax assets and liabilities and their
      valuation, changes in the laws, regulations, administrative practices,
      principles, and interpretations related to tax, including changes to the
      global tax framework, competition, and other laws and accounting rules in
      various jurisdictions.
    sentences:
      - >-
        What impact do tax laws and economic conditions have on the company's
        effective tax rates?
      - >-
        What is the purpose of Alphabet Inc.'s annual review of methodologies
        used in monitoring advertising metrics?
      - From which sources does Apple obtain certain essential components?
  - source_sentence: >-
      (Decrease) increase in cash, cash equivalents and restricted cash for
      fiscal year 2023 was a decrease of $182 million, starting with $4,763
      million at the beginning and ending with $4,581 million.
    sentences:
      - >-
        What is the minimum project cost for the development described in the
        Second Development Agreement involving MBS?
      - >-
        What does the No Surprises Act require providers to develop and
        disclose?
      - >-
        What was the change in cash and cash equivalents for Hewlett Packard
        Enterprise from the beginning to the end of the fiscal year 2023?
  - source_sentence: >-
      The total amount of gross unrecognized tax benefits as of December 30,
      2023 was $13,571.
    sentences:
      - >-
        What was the total amount of gross unrecognized tax benefits as of
        December 30, 2023?
      - >-
        What percentage of Kenvue Common Stock did Johnson & Johnson own as of
        the closing of the IPO?
      - >-
        What was the percentage change in sales from 2022 to 2023 for the Trauma
        segment in the U.S.?
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - cosine_accuracy@1
  - cosine_accuracy@3
  - cosine_accuracy@5
  - cosine_accuracy@10
  - cosine_precision@1
  - cosine_precision@3
  - cosine_precision@5
  - cosine_precision@10
  - cosine_recall@1
  - cosine_recall@3
  - cosine_recall@5
  - cosine_recall@10
  - cosine_ndcg@10
  - cosine_mrr@10
  - cosine_map@100
model-index:
  - name: BGE base Financial Matryoshka
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 768
          type: dim_768
        metrics:
          - type: cosine_accuracy@1
            value: 0.6928571428571428
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8142857142857143
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8471428571428572
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9014285714285715
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6928571428571428
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2714285714285714
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.1694285714285714
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09014285714285714
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6928571428571428
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8142857142857143
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8471428571428572
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9014285714285715
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7960400928582716
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7625391156462585
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7656459931357954
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 512
          type: dim_512
        metrics:
          - type: cosine_accuracy@1
            value: 0.7
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8142857142857143
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.85
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8928571428571429
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2714285714285714
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16999999999999998
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08928571428571426
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8142857142857143
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.85
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8928571428571429
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7962092633155669
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7652437641723353
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7690571344301111
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 256
          type: dim_256
        metrics:
          - type: cosine_accuracy@1
            value: 0.6885714285714286
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8085714285714286
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8485714285714285
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8928571428571429
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6885714285714286
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2695238095238095
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16971428571428568
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08928571428571427
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6885714285714286
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8085714285714286
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8485714285714285
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8928571428571429
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.790294082455236
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7575634920634915
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7608461966590305
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 128
          type: dim_128
        metrics:
          - type: cosine_accuracy@1
            value: 0.6771428571428572
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7971428571428572
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.83
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.89
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6771428571428572
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.26571428571428574
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16599999999999998
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.089
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6771428571428572
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7971428571428572
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.83
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.89
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7811390356263523
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7466921768707482
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7500930927741866
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 64
          type: dim_64
        metrics:
          - type: cosine_accuracy@1
            value: 0.6457142857142857
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7685714285714286
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8114285714285714
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8628571428571429
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6457142857142857
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2561904761904762
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16228571428571428
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08628571428571427
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6457142857142857
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7685714285714286
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8114285714285714
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8628571428571429
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7526448867884948
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7175549886621314
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.721601645358737
            name: Cosine Map@100

BGE base Financial Matryoshka

This is a sentence-transformers model finetuned from BAAI/bge-base-en-v1.5 on the json 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 Type: Sentence Transformer
  • Base model: BAAI/bge-base-en-v1.5
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json
  • Language: en
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': True}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 768, '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()
)

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("michalwilkosz/bge-base-financial-matryoshka")
# Run inference
sentences = [
    'The total amount of gross unrecognized tax benefits as of December 30, 2023 was $13,571.',
    'What was the total amount of gross unrecognized tax benefits as of December 30, 2023?',
    'What percentage of Kenvue Common Stock did Johnson & Johnson own as of the closing of the IPO?',
]
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 dim_768 dim_512 dim_256 dim_128 dim_64
cosine_accuracy@1 0.6929 0.7 0.6886 0.6771 0.6457
cosine_accuracy@3 0.8143 0.8143 0.8086 0.7971 0.7686
cosine_accuracy@5 0.8471 0.85 0.8486 0.83 0.8114
cosine_accuracy@10 0.9014 0.8929 0.8929 0.89 0.8629
cosine_precision@1 0.6929 0.7 0.6886 0.6771 0.6457
cosine_precision@3 0.2714 0.2714 0.2695 0.2657 0.2562
cosine_precision@5 0.1694 0.17 0.1697 0.166 0.1623
cosine_precision@10 0.0901 0.0893 0.0893 0.089 0.0863
cosine_recall@1 0.6929 0.7 0.6886 0.6771 0.6457
cosine_recall@3 0.8143 0.8143 0.8086 0.7971 0.7686
cosine_recall@5 0.8471 0.85 0.8486 0.83 0.8114
cosine_recall@10 0.9014 0.8929 0.8929 0.89 0.8629
cosine_ndcg@10 0.796 0.7962 0.7903 0.7811 0.7526
cosine_mrr@10 0.7625 0.7652 0.7576 0.7467 0.7176
cosine_map@100 0.7656 0.7691 0.7608 0.7501 0.7216

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 6,300 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 2 tokens
    • mean: 45.43 tokens
    • max: 301 tokens
    • min: 2 tokens
    • mean: 20.34 tokens
    • max: 46 tokens
  • Samples:
    positive anchor
    Almost all FedEx Office locations provide local pickup-and-delivery service for print jobs completed by FedEx Office. A FedEx courier picks up a customer’s print job at the customer’s location and then returns the finished product to the customer. What service does almost all FedEx Office locations provide for completed print jobs?
    Non-compliance with government laws and regulations may result in fines, limits on the ability to sell products, suspension of business activities, reputational damage, and legal liabilities. What are the consequences of failing to comply with government laws and regulations?
    Item 8 is labeled as Financial Statements and Supplementary Data. What is the title of Item 8 in the financial document?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 4
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • bf16: True
  • tf32: True
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • 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: 4
  • max_steps: -1
  • lr_scheduler_type: cosine
  • 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: True
  • 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: True
  • 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_fused
  • 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
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss dim_768_cosine_ndcg@10 dim_512_cosine_ndcg@10 dim_256_cosine_ndcg@10 dim_128_cosine_ndcg@10 dim_64_cosine_ndcg@10
0.8122 10 1.5678 - - - - -
0.9746 12 - 0.7840 0.7835 0.7763 0.7656 0.7360
1.6244 20 0.6336 - - - - -
1.9492 24 - 0.7960 0.7950 0.7903 0.7783 0.7500
2.4365 30 0.464 - - - - -
2.9239 36 - 0.7965 0.7969 0.7912 0.7825 0.7525
3.2487 40 0.3768 - - - - -
3.8985 48 - 0.7960 0.7962 0.7903 0.7811 0.7526
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.11
  • Sentence Transformers: 3.3.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2+cu121
  • Accelerate: 1.2.0
  • Datasets: 2.19.1
  • 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",
}

MatryoshkaLoss

@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning},
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

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}
}