pavanmantha's picture
Add new SentenceTransformer model.
4ad8185 verified
|
raw
history blame
28.1 kB
metadata
language:
  - en
license: apache-2.0
library_name: sentence-transformers
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
datasets: []
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
widget:
  - source_sentence: >-
      On December 15, 2022, the European Union Member States formally adopted
      the EU’s Pillar Two Directive, which generally provides for a minimum
      effective tax rate of 15%.
    sentences:
      - >-
        What were the key business segments of The Goldman Sachs Group, Inc. as
        reported in their 2023 financial disclosures?
      - >-
        What are the aspects of the EU Pillar Two Directive adopted in December
        2022?
      - >-
        How does customer size and geography affect the determination of SSP for
        products and services?
  - source_sentence: >-
      Schwab's management of credit risk involves policies and procedures that
      include setting and reviewing credit limits, monitoring of credit limits
      and quality of counterparties, and adjusting margin, PAL, option, and
      futures requirements for certain securities and instruments.
    sentences:
      - What measures does Schwab take to manage credit risk?
      - >-
        How might a 10% change in the obsolescence reserve percentage impact net
        earnings?
      - >-
        How did the discount rates for Depop and Elo7 change during their 2022
        impairments analysis?
  - source_sentence: >-
      While we believe that our ESG goals align with our long-term growth
      strategy and financial and operational priorities, they are aspirational
      and may change, and there is no guarantee or promise that they will be
      met.
    sentences:
      - >-
        What is the relationship between the ESG goals and the long-term growth
        strategy?
      - >-
        What was the total revenue in millions for 2023 according to the
        disaggregated revenue information by segment?
      - How much did the net cumulative medical payments amount to in 2023?
  - source_sentence: >-
      The total unrealized losses on U.S. Treasury securities amounted to $134
      million.
    sentences:
      - >-
        What critical audit matters were identified related to the revenue
        recognition in the Connectivity & Platforms businesses at Comcast in
        2023?
      - >-
        What were the total unrealized losses on U.S. Treasury securities as of
        the last reporting date?
      - >-
        How is Revenue per Available Room (RevPAR) calculated and what does it
        indicate?
  - source_sentence: >-
      The Chief Executive etc. does not manage segment results or allocate
      resources to segments when considering these costs and they are therefore
      excluded from our definition of segment income.
    sentences:
      - How are tax returns affecting the company's tax provisions when audited?
      - >-
        What was the increase in sales and marketing expenses for the year ended
        December 31, 2023 compared to 2022?
      - >-
        What components are excluded from segment income definition according to
        company management?
pipeline_tag: sentence-similarity
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.7142857142857143
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.83
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8585714285714285
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9042857142857142
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7142857142857143
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.27666666666666667
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.1717142857142857
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09042857142857141
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7142857142857143
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.83
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8585714285714285
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9042857142857142
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.8098414318705203
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7796729024943311
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7831593716959953
            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.7157142857142857
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8242857142857143
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8542857142857143
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8942857142857142
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7157142857142857
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.27476190476190476
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17085714285714285
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08942857142857143
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7157142857142857
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8242857142857143
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8542857142857143
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8942857142857142
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.805674034217217
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7771672335600905
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7814319590791096
            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.7057142857142857
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8185714285714286
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8528571428571429
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8928571428571429
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7057142857142857
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.27285714285714285
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17057142857142857
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08928571428571427
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7057142857142857
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8185714285714286
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8528571428571429
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8928571428571429
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7998364446362882
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7700413832199544
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7739467761950781
            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.8057142857142857
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8385714285714285
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8871428571428571
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6871428571428572
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.26857142857142857
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.1677142857142857
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.0887142857142857
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6871428571428572
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8057142857142857
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8385714285714285
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8871428571428571
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7864888199817319
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7544109977324263
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7584408188949701
            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("pavanmantha/bge-base-en-sec10k-embed")
# Run inference
sentences = [
    'The Chief Executive etc. does not manage segment results or allocate resources to segments when considering these costs and they are therefore excluded from our definition of segment income.',
    'What components are excluded from segment income definition according to company management?',
    'What was the increase in sales and marketing expenses for the year ended December 31, 2023 compared to 2022?',
]
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.7143
cosine_accuracy@3 0.83
cosine_accuracy@5 0.8586
cosine_accuracy@10 0.9043
cosine_precision@1 0.7143
cosine_precision@3 0.2767
cosine_precision@5 0.1717
cosine_precision@10 0.0904
cosine_recall@1 0.7143
cosine_recall@3 0.83
cosine_recall@5 0.8586
cosine_recall@10 0.9043
cosine_ndcg@10 0.8098
cosine_mrr@10 0.7797
cosine_map@100 0.7832

Information Retrieval

Metric Value
cosine_accuracy@1 0.7157
cosine_accuracy@3 0.8243
cosine_accuracy@5 0.8543
cosine_accuracy@10 0.8943
cosine_precision@1 0.7157
cosine_precision@3 0.2748
cosine_precision@5 0.1709
cosine_precision@10 0.0894
cosine_recall@1 0.7157
cosine_recall@3 0.8243
cosine_recall@5 0.8543
cosine_recall@10 0.8943
cosine_ndcg@10 0.8057
cosine_mrr@10 0.7772
cosine_map@100 0.7814

Information Retrieval

Metric Value
cosine_accuracy@1 0.7057
cosine_accuracy@3 0.8186
cosine_accuracy@5 0.8529
cosine_accuracy@10 0.8929
cosine_precision@1 0.7057
cosine_precision@3 0.2729
cosine_precision@5 0.1706
cosine_precision@10 0.0893
cosine_recall@1 0.7057
cosine_recall@3 0.8186
cosine_recall@5 0.8529
cosine_recall@10 0.8929
cosine_ndcg@10 0.7998
cosine_mrr@10 0.77
cosine_map@100 0.7739

Information Retrieval

Metric Value
cosine_accuracy@1 0.6871
cosine_accuracy@3 0.8057
cosine_accuracy@5 0.8386
cosine_accuracy@10 0.8871
cosine_precision@1 0.6871
cosine_precision@3 0.2686
cosine_precision@5 0.1677
cosine_precision@10 0.0887
cosine_recall@1 0.6871
cosine_recall@3 0.8057
cosine_recall@5 0.8386
cosine_recall@10 0.8871
cosine_ndcg@10 0.7865
cosine_mrr@10 0.7544
cosine_map@100 0.7584

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: 9 tokens
    • mean: 46.84 tokens
    • max: 326 tokens
    • min: 8 tokens
    • mean: 20.44 tokens
    • max: 43 tokens
  • Samples:
    positive anchor
    The federal banking regulators’ guidance on sound incentive compensation practices sets forth three key principles for incentive compensation arrangements that are designed to help ensure such plans do not encourage imprudent risk-taking and align with the safety and soundness of the organization. These principles include balancing risk with financial results, compatibility with internal controls and risk management, and support from strong corporate governance with effective oversight by the board. What are the three principles set forth by federal banking regulators' guidance on incentive compensation practices?
    Delta Air Lines generated a free cash flow of $2,003 million in 2023. This figure was adjusted for several factors including net redemptions of short-term investments and a pilot agreement payment of $735 million. How much free cash flow did Delta Air Lines generate in 2023?
    Inherent in the qualitative assessment are estimates and assumptions about our consideration of events and circumstances that may indicate a potential impairment, including industry and market conditions, expected cost pressures, expected financial performance, and general macroeconomic conditions. What does the qualitative assessment of goodwill consider regarding possible impairment?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128
        ],
        "matryoshka_weights": [
            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
  • fp16: True
  • tf32: False
  • 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: False
  • fp16: True
  • 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, '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
  • 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_768_cosine_map@100
0.8122 10 1.1625 - - - -
0.9746 12 - 0.7429 0.7568 0.7688 0.7724
1.6244 20 0.4282 - - - -
1.9492 24 - 0.7541 0.7691 0.7802 0.7828
2.4365 30 0.3086 - - - -
2.9239 36 - 0.7581 0.7731 0.7810 0.7838
3.2487 40 0.2432 - - - -
3.8985 48 - 0.7584 0.7739 0.7814 0.7832
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.13
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2
  • Accelerate: 0.31.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}
}