ducmai-4203's picture
Add new SentenceTransformer model
3f3335c 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: >-
      The audit on Equifax Inc.'s internal control over financial reporting and
      consolidated financial statements as of December 31, 2023, was conducted
      by Ernst & Young LLP.
    sentences:
      - >-
        What percentage of HP's full-time leadership positions were held by
        women in the fiscal year 2023?
      - >-
        What accounting firm conducted the audit on Equifax Inc.'s internal
        control over financial reporting and consolidated financial statements
        as of December 31, 2023?
      - >-
        What was the total net sales reported by Costco Wholesale Corporation
        for the 53-week period ended September 3, 2023?
  - source_sentence: >-
      The company recruits and hires using local job fairs, social media, and
      community service partners, and supports employees through competitive
      pay, benefits, and human capital programs focused on professional growth,
      diversity, equity, and inclusion.
    sentences:
      - >-
        What position did Jon Faust hold before becoming the Global Controller
        at HP?
      - How does the company recruit and support its employees?
      - >-
        What was the main driver behind the increase in the provision for credit
        losses at Bank of America in 2023?
  - source_sentence: >-
      Management’s Report on Internal Control Over Financial Reporting outlines
      the responsibility of management in maintaining effective internal
      controls over financial reporting. This involves setting policies, using
      advanced systems for processing transactions, and maintaining a qualified
      staff to handle financial procedures. Regular assessments and corrective
      measures ensure these controls remain effective.
    sentences:
      - >-
        What is the role of management in maintaining internal control over
        financial reporting at a company?
      - >-
        How much cash and cash equivalents did the company have at the end of
        2023, and how does this compare to the end of 2022?
      - How does AT&T emphasize diversity in its hiring practices?
  - source_sentence: >-
      Net cash provided by operating activities increased from $1,681 million in
      2022 to $1,946 million in 2023, marking a 15.8% increase.
    sentences:
      - >-
        Are the consolidated financial statements and accompanying notes part of
        ITEM 8 in the Annual Report on Form 10-K?
      - >-
        What is the expected benefit of the Pasadena Refinery project for
        Chevron?
      - >-
        What was the percentage increase in net cash provided by operating
        activities from 2022 to 2023?
  - source_sentence: >-
      As of August 26, 2023, approximately 60 percent of AutoZoners were
      employed full-time.
    sentences:
      - >-
        What percentage of AutoZone employees were employed full-time as of
        August 26, 2023?
      - What type of information can be found under Item 8?
      - >-
        What type of fees are typically included in the management and franchise
        contracts for hotels, and how are they structured?
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.69
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8228571428571428
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8614285714285714
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8957142857142857
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.69
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2742857142857143
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17228571428571426
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08957142857142857
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.69
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8228571428571428
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8614285714285714
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8957142857142857
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7945358470918553
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.761935941043084
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7657245273513861
            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.6857142857142857
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8157142857142857
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8542857142857143
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.89
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6857142857142857
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.27190476190476187
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17085714285714285
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.089
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6857142857142857
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8157142857142857
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8542857142857143
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.89
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7904913359354251
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7583202947845803
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7625604889486977
            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.8214285714285714
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8471428571428572
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8842857142857142
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6885714285714286
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2738095238095238
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16942857142857143
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08842857142857143
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6885714285714286
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8214285714285714
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8471428571428572
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8842857142857142
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7896289953264028
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7590345804988659
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7635502971962614
            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.6585714285714286
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7928571428571428
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8385714285714285
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8714285714285714
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6585714285714286
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.26428571428571423
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16771428571428573
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08714285714285715
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6585714285714286
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7928571428571428
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8385714285714285
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8714285714285714
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.769471630453507
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7362562358276643
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7413221179326462
            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.6214285714285714
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7714285714285715
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8071428571428572
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8657142857142858
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6214285714285714
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2571428571428571
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16142857142857142
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08657142857142856
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6214285714285714
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7714285714285715
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8071428571428572
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8657142857142858
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7444608164978749
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7056712018140587
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7097197315690517
            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("ducmai-4203/bge-base-financial-matryoshka")
# Run inference
sentences = [
    'As of August 26, 2023, approximately 60 percent of AutoZoners were employed full-time.',
    'What percentage of AutoZone employees were employed full-time as of August 26, 2023?',
    'What type of information can be found under Item 8?',
]
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.69 0.6857 0.6886 0.6586 0.6214
cosine_accuracy@3 0.8229 0.8157 0.8214 0.7929 0.7714
cosine_accuracy@5 0.8614 0.8543 0.8471 0.8386 0.8071
cosine_accuracy@10 0.8957 0.89 0.8843 0.8714 0.8657
cosine_precision@1 0.69 0.6857 0.6886 0.6586 0.6214
cosine_precision@3 0.2743 0.2719 0.2738 0.2643 0.2571
cosine_precision@5 0.1723 0.1709 0.1694 0.1677 0.1614
cosine_precision@10 0.0896 0.089 0.0884 0.0871 0.0866
cosine_recall@1 0.69 0.6857 0.6886 0.6586 0.6214
cosine_recall@3 0.8229 0.8157 0.8214 0.7929 0.7714
cosine_recall@5 0.8614 0.8543 0.8471 0.8386 0.8071
cosine_recall@10 0.8957 0.89 0.8843 0.8714 0.8657
cosine_ndcg@10 0.7945 0.7905 0.7896 0.7695 0.7445
cosine_mrr@10 0.7619 0.7583 0.759 0.7363 0.7057
cosine_map@100 0.7657 0.7626 0.7636 0.7413 0.7097

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.65 tokens
    • max: 371 tokens
    • min: 2 tokens
    • mean: 20.53 tokens
    • max: 46 tokens
  • Samples:
    positive anchor
    Income before income taxes for the 52-weeks ended December 30, 2023 was $1,200,356. What was the total income before income taxes for the fiscal year ended December 30, 2023?
    The Global Supply Chain program was announced in the second quarter of 2018 and was completed in the fiscal fourth quarter of 2022. What significant change was made to the global supply chain program in the second quarter of 2018?
    The benefits of uncertain tax positions are recorded in our financial statements only after determining a more likely than not probability that the uncertain tax positions will withstand challenge, if any, from taxing authorities. Under what condition does a company record the benefits of uncertain tax positions in its financial statements?
  • 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
  • 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: 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, '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.6143 - - - - -
0.9746 12 - 0.7814 0.7768 0.7692 0.7546 0.7218
1.6244 20 0.6542 - - - - -
1.9492 24 - 0.7930 0.7882 0.7868 0.7674 0.7410
2.4365 30 0.5233 - - - - -
2.9239 36 - 0.7941 0.7899 0.7893 0.7699 0.7448
3.2487 40 0.4162 - - - - -
3.8985 48 - 0.7945 0.7905 0.7896 0.7695 0.7445
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.4.1
  • Transformers: 4.41.2
  • PyTorch: 2.5.1+cu121
  • Accelerate: 1.2.1
  • 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}
}