ethanteh's picture
Add new SentenceTransformer model
11961bc 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: >-
      For example, brands based on major motion picture releases generally
      require less advertising as a result of the promotional activities around
      the motion picture release.
    sentences:
      - How many new hotels did Hilton open in the year ended December 31, 2023?
      - >-
        What impact do major motion picture releases have on Hasbro's
        advertising expenditures?
      - >-
        In which item of the report can the details of Legal proceedings be
        found by referencing?
  - source_sentence: >-
      Our retail stores are generally located in strip centers, shopping malls
      and pedestrian areas...  We target strip centers that are conveniently
      located, have a mass merchant or supermarket anchor tenant and have a high
      volume of customers.
    sentences:
      - >-
        What is the range of pages in IBM’s 2023 Annual Report to Stockholders
        where the Financial Statements and Supplementary Data are located?
      - How does GameStop's store location choice impact its business strategy?
      - >-
        In which part of the financial documents can detailed information about
        legal proceedings be found according to Item 3?
  - source_sentence: >-
      The increase in fulfillment costs in absolute dollars in 2023, compared to
      the prior year, is primarily due to increased sales and investments in our
      fulfillment network, partially offset by fulfillment network efficiencies.
    sentences:
      - What led to the increase in fulfillment costs in 2023?
      - >-
        Where in the Form 10-K can one find Note 15 which discusses legal
        proceedings?
      - >-
        What accounting method does the company use to account for investments
        in subsidiaries and partnerships where it does not control but has
        significant influence?
  - source_sentence: >-
      In December 2023, the FASB issued ASU No. 2023-09, ‘Income Taxes (Topic
      740): Improvements to Income Tax Disclosures.’ The ASU includes amendments
      requiring enhanced income tax disclosures, primarily related to
      standardization and disaggregation of rate reconciliation categories and
      income taxes paid by jurisdiction.
    sentences:
      - >-
        What are the total noncancelable purchase commitments as of December 31,
        2023, and how are they distributed over different time periods?
      - What are the primary objectives of the Company's investment policy?
      - >-
        What are the required amendments in the ASU No. 2023-09 regarding income
        tax disclosures?
  - source_sentence: >-
      Income Taxes We are subject to income taxes in the U.S. and in many
      foreign jurisdictions. Significant judgment is required in determining our
      provision for income taxes, our deferred tax assets and liabilities and
      any valuation allowance recorded against our net deferred tax assets that
      are not more likely than not to be realized.
    sentences:
      - How does the company treat income taxes in its financial reports?
      - >-
        How does YouTube contribute to users' experience according to the
        company's statement?
      - >-
        When did The Charles Schwab Corporation change its corporate
        headquarters from San Francisco to Westlake, Texas?
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.7028571428571428
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8185714285714286
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.85
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8914285714285715
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7028571428571428
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2728571428571428
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16999999999999998
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08914285714285713
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7028571428571428
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8185714285714286
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.85
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8914285714285715
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.798341878406338
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7685107709750566
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7724628591268551
            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.6985714285714286
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8157142857142857
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8528571428571429
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8985714285714286
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6985714285714286
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.27190476190476187
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17057142857142857
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08985714285714284
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6985714285714286
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8157142857142857
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8528571428571429
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8985714285714286
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7981564446782999
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7661643990929705
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7695965865934244
            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.6971428571428572
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8085714285714286
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8428571428571429
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8885714285714286
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6971428571428572
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2695238095238095
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16857142857142857
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08885714285714284
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6971428571428572
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8085714285714286
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8428571428571429
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8885714285714286
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7917977544361884
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7611133786848071
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.765197446517495
            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.8028571428571428
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8342857142857143
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8857142857142857
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6871428571428572
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2676190476190476
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16685714285714284
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08857142857142856
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6871428571428572
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8028571428571428
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8342857142857143
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8857142857142857
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7844783501102325
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7524892290249433
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.756590766205664
            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.6571428571428571
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7814285714285715
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8114285714285714
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8585714285714285
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6571428571428571
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2604761904761905
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16228571428571428
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08585714285714285
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6571428571428571
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7814285714285715
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8114285714285714
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8585714285714285
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7570464835011314
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7245481859410431
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.729409564724743
            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("ethanteh/bge-base-financial-matryoshka")
# Run inference
sentences = [
    'Income Taxes We are subject to income taxes in the U.S. and in many foreign jurisdictions. Significant judgment is required in determining our provision for income taxes, our deferred tax assets and liabilities and any valuation allowance recorded against our net deferred tax assets that are not more likely than not to be realized.',
    'How does the company treat income taxes in its financial reports?',
    "How does YouTube contribute to users' experience according to the company's statement?",
]
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.7029 0.6986 0.6971 0.6871 0.6571
cosine_accuracy@3 0.8186 0.8157 0.8086 0.8029 0.7814
cosine_accuracy@5 0.85 0.8529 0.8429 0.8343 0.8114
cosine_accuracy@10 0.8914 0.8986 0.8886 0.8857 0.8586
cosine_precision@1 0.7029 0.6986 0.6971 0.6871 0.6571
cosine_precision@3 0.2729 0.2719 0.2695 0.2676 0.2605
cosine_precision@5 0.17 0.1706 0.1686 0.1669 0.1623
cosine_precision@10 0.0891 0.0899 0.0889 0.0886 0.0859
cosine_recall@1 0.7029 0.6986 0.6971 0.6871 0.6571
cosine_recall@3 0.8186 0.8157 0.8086 0.8029 0.7814
cosine_recall@5 0.85 0.8529 0.8429 0.8343 0.8114
cosine_recall@10 0.8914 0.8986 0.8886 0.8857 0.8586
cosine_ndcg@10 0.7983 0.7982 0.7918 0.7845 0.757
cosine_mrr@10 0.7685 0.7662 0.7611 0.7525 0.7245
cosine_map@100 0.7725 0.7696 0.7652 0.7566 0.7294

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: 8 tokens
    • mean: 46.74 tokens
    • max: 512 tokens
    • min: 8 tokens
    • mean: 20.52 tokens
    • max: 39 tokens
  • Samples:
    positive anchor
    During 2021, as a result of the enactment of a tax law and the closing of various acquisitions, the company concluded that it is no longer its intention to reinvest its undistributed earnings of its foreign TRSs indefinitely outside the United States. What is the impact of a tax law change and acquisition closings on the company's intention regarding the reinvestment of undistributed earnings of its foreign TRSs?
    In the year ended December 31, 2023, EBIT-adjusted decreased primarily due to: (1) increased Cost primarily due to increased campaigns and other warranty-related costs of $2.0 billion, increased EV-related charges of $1.9 billion primarily due to $1.6 billion in inventory adjustments to reflect the net realizable value at period end. What factors contributed to the decrease in GM North America's EBIT-adjusted in 2023?
    Peloton's e-commerce platform offers a range of products and services, including Peloton Bikes, Bike+, Tread, and Row products, along with one-on-one sales consultations. What types of products and services does Peloton offer through its e-commerce platform?
  • 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
  • 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: 8
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • eval_accumulation_steps: None
  • torch_empty_cache_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: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • 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
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: 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.2030 10 9.6119 - - - - -
0.4061 20 6.108 - - - - -
0.6091 30 3.9303 - - - - -
0.8122 40 3.4657 - - - - -
1.0 50 3.6929 0.7928 0.7891 0.7849 0.7732 0.7465
1.2030 60 1.86 - - - - -
1.4061 70 1.3879 - - - - -
1.6091 80 1.4367 - - - - -
1.8122 90 1.1032 - - - - -
2.0 100 1.696 0.7996 0.7966 0.7899 0.7815 0.7563
2.2030 110 1.0769 - - - - -
2.4061 120 0.6618 - - - - -
2.6091 130 0.912 - - - - -
2.8122 140 0.6271 - - - - -
3.0 150 0.9949 0.7984 0.7973 0.7925 0.7835 0.7574
3.2030 160 0.5734 - - - - -
3.4061 170 0.4934 - - - - -
3.6091 180 0.6593 - - - - -
3.8122 190 0.5452 - - - - -
3.934 196 - 0.7983 0.7982 0.7918 0.7845 0.757
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.11
  • Sentence Transformers: 3.3.1
  • Transformers: 4.48.1
  • PyTorch: 2.5.1+cu121
  • Accelerate: 1.2.1
  • Datasets: 2.19.1
  • Tokenizers: 0.21.0

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