moritzglnr's picture
Add new SentenceTransformer model.
2bb2883 verified
|
raw
history blame
28.1 kB
metadata
base_model: BAAI/bge-base-en-v1.5
datasets: []
language:
  - en
library_name: sentence-transformers
license: apache-2.0
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
pipeline_tag: sentence-similarity
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:6300
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
widget:
  - source_sentence: >-
      R&D expense increased by $304 million, or 14.9%, led by Intelligent Edge,
      HPC & AI and Storage in fiscal 2023.
    sentences:
      - >-
        What was the growth rate of Visa Inc.'s overall total nominal volume
        from 2021 to 2022?
      - >-
        How much did Hewlett Packard Enterprise's R&D expenses increase in
        fiscal 2023?
      - What is the purpose of the Global Day of Joy at Hasbro?
  - source_sentence: >-
      In 2022 and continuing into 2023, the Russia-Ukraine conflict was a
      catalyst for an energy crisis in Europe. Government interventions related
      to the energy crisis resulting from the Russia-Ukraine conflict, such as
      the Market Correction Mechanism (price cap), or interventions that may be
      proposed in the future related to the Russia-Ukraine conflict or the
      conflict in Israel and Gaza could also have a negative impact on our
      business.
    sentences:
      - What are Garmin's core strategies for reducing its environmental impact?
      - >-
        What are the potential consequences of the Russia-Ukraine conflict on a
        company's business?
      - What factors influence HP's critical accounting estimates?
  - source_sentence: >-
      The increase in other income, net was primarily due to an increase in
      interest income as a result of higher cash balances and higher interest
      rates.
    sentences:
      - >-
        What was the primary reason for the increase in other income, net during
        the noted period?
      - >-
        What led to the increase in room expenses at Las Vegas Sands Corp. in
        2023?
      - >-
        What was the provision for income taxes for the year ended June 30,
        2023?
  - source_sentence: >-
      When an investment declines below cost basis, management evaluates whether
      the decline in fair value is other than temporary. If deemed other than
      temporary, an impairment charge is recorded.
    sentences:
      - >-
        What are the requirements for Gilead's cell therapy products under the
        FDA's Risk Evaluation and Mitigation Strategy program?
      - >-
        What are the four focus areas declared by the company to strengthen
        their performance going forward?
      - >-
        What triggers the requirement for management to record an impairment
        charge for investments?
  - source_sentence: >-
      The total gross fair value of derivatives was listed as $422,232 million
      as per the latest financial data without adjustments for counterparty
      netting or collateral.
    sentences:
      - >-
        What was the total gross fair value of derivatives as of December 2023
        before netting adjustments in the consolidated financial statements?
      - >-
        How does the company handle the recording and disclosure of contingent
        liabilities?
      - >-
        What is the significance of reporting financial results on a constant
        currency basis?
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.7071428571428572
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8214285714285714
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8614285714285714
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9042857142857142
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7071428571428572
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2738095238095238
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17228571428571426
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09042857142857141
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7071428571428572
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8214285714285714
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8614285714285714
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9042857142857142
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.8050065074948352
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7732902494331064
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.776990609765374
            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.7014285714285714
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8214285714285714
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8657142857142858
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9057142857142857
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7014285714285714
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2738095238095238
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17314285714285713
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09057142857142855
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7014285714285714
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8214285714285714
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8657142857142858
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9057142857142857
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.8035496957871646
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7707964852607707
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7744696266512991
            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.8157142857142857
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.86
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9014285714285715
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6885714285714286
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.27190476190476187
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.172
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09014285714285714
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6885714285714286
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8157142857142857
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.86
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9014285714285715
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7959304086509564
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7620759637188204
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7656989001700307
            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.6871428571428572
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7871428571428571
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8257142857142857
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8828571428571429
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6871428571428572
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2623809523809524
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16514285714285712
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08828571428571427
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6871428571428572
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7871428571428571
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8257142857142857
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8828571428571429
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7805054661054854
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7483526077097503
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7524860233992903
            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.64
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7557142857142857
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.7828571428571428
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8428571428571429
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.64
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.25190476190476185
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.15657142857142856
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08428571428571427
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.64
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7557142857142857
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.7828571428571428
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8428571428571429
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7386047605712329
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7057772108843535
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7112870933540941
            name: Cosine Map@100

BGE base Financial Matryoshka

This is a sentence-transformers model finetuned from BAAI/bge-base-en-v1.5. 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 tokens
  • Similarity Function: Cosine Similarity
  • 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("moritzglnr/bge-base-financial-matryoshka")
# Run inference
sentences = [
    'The total gross fair value of derivatives was listed as $422,232 million as per the latest financial data without adjustments for counterparty netting or collateral.',
    'What was the total gross fair value of derivatives as of December 2023 before netting adjustments in the consolidated financial statements?',
    'How does the company handle the recording and disclosure of contingent liabilities?',
]
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.7071
cosine_accuracy@3 0.8214
cosine_accuracy@5 0.8614
cosine_accuracy@10 0.9043
cosine_precision@1 0.7071
cosine_precision@3 0.2738
cosine_precision@5 0.1723
cosine_precision@10 0.0904
cosine_recall@1 0.7071
cosine_recall@3 0.8214
cosine_recall@5 0.8614
cosine_recall@10 0.9043
cosine_ndcg@10 0.805
cosine_mrr@10 0.7733
cosine_map@100 0.777

Information Retrieval

Metric Value
cosine_accuracy@1 0.7014
cosine_accuracy@3 0.8214
cosine_accuracy@5 0.8657
cosine_accuracy@10 0.9057
cosine_precision@1 0.7014
cosine_precision@3 0.2738
cosine_precision@5 0.1731
cosine_precision@10 0.0906
cosine_recall@1 0.7014
cosine_recall@3 0.8214
cosine_recall@5 0.8657
cosine_recall@10 0.9057
cosine_ndcg@10 0.8035
cosine_mrr@10 0.7708
cosine_map@100 0.7745

Information Retrieval

Metric Value
cosine_accuracy@1 0.6886
cosine_accuracy@3 0.8157
cosine_accuracy@5 0.86
cosine_accuracy@10 0.9014
cosine_precision@1 0.6886
cosine_precision@3 0.2719
cosine_precision@5 0.172
cosine_precision@10 0.0901
cosine_recall@1 0.6886
cosine_recall@3 0.8157
cosine_recall@5 0.86
cosine_recall@10 0.9014
cosine_ndcg@10 0.7959
cosine_mrr@10 0.7621
cosine_map@100 0.7657

Information Retrieval

Metric Value
cosine_accuracy@1 0.6871
cosine_accuracy@3 0.7871
cosine_accuracy@5 0.8257
cosine_accuracy@10 0.8829
cosine_precision@1 0.6871
cosine_precision@3 0.2624
cosine_precision@5 0.1651
cosine_precision@10 0.0883
cosine_recall@1 0.6871
cosine_recall@3 0.7871
cosine_recall@5 0.8257
cosine_recall@10 0.8829
cosine_ndcg@10 0.7805
cosine_mrr@10 0.7484
cosine_map@100 0.7525

Information Retrieval

Metric Value
cosine_accuracy@1 0.64
cosine_accuracy@3 0.7557
cosine_accuracy@5 0.7829
cosine_accuracy@10 0.8429
cosine_precision@1 0.64
cosine_precision@3 0.2519
cosine_precision@5 0.1566
cosine_precision@10 0.0843
cosine_recall@1 0.64
cosine_recall@3 0.7557
cosine_recall@5 0.7829
cosine_recall@10 0.8429
cosine_ndcg@10 0.7386
cosine_mrr@10 0.7058
cosine_map@100 0.7113

Training Details

Training Dataset

Unnamed Dataset

  • 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.41 tokens
    • max: 371 tokens
    • min: 2 tokens
    • mean: 20.32 tokens
    • max: 51 tokens
  • Samples:
    positive anchor
    The 2023 Form 10-K for Delta Air Lines, Inc. includes various types of financial statements such as consolidated balance sheets, consolidated statements of operations, comprehensive income, cash flows, and stockholders' equity. What are the primary types of financial statements included in Delta Air Lines, Inc.'s 2023 Form 10-K?
    Critical accounting estimates are those that involve a significant level of estimation uncertainty and have had or are reasonably likely to have a material impact on HP's financial condition or results of operations. What factors influence HP's critical accounting estimates?
    The requisite service period for both employee stock options and RSUs is generally four years from the grant date. What is the recognition period for Etsy's stock options and RSUs granted to employees?
  • 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

  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • tf32: False
  • load_best_model_at_end: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • 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: 1
  • 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
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: False
  • 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, '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_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss dim_128_cosine_map@100 dim_256_cosine_map@100 dim_512_cosine_map@100 dim_64_cosine_map@100 dim_768_cosine_map@100
0.8122 10 1.4747 - - - - -
0.9746 12 - 0.7525 0.7657 0.7745 0.7113 0.777
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.9
  • Sentence Transformers: 3.0.1
  • Transformers: 4.40.2
  • PyTorch: 2.3.1
  • Accelerate: 0.32.1
  • 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",
}

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