moresearch's picture
Add new SentenceTransformer model
d28da04 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: >-
      Capital expenditures, which primarily reflected investments in technical
      infrastructure, were $32.3 billion for the year ended December 31, 2023.
    sentences:
      - >-
        Where can you find the consolidated financial statements in the Annual
        Report on Form 10-K?
      - What were the total capital expenditures for Alphabet Inc. in 2023?
      - >-
        How did Chevron's development strategy in the Permian Basin contribute
        to its productivity?
  - source_sentence: >-
      You can identify forward-looking statements by the use of forward-looking
      terminology including “believes,” “expects,” “may,” “will,” “should,”
      “seeks,” “intends,” “plans,” “pro forma,” “estimates,” “anticipates,” or
      the negative of these words and phrases, other variations of these words
      and phrases or comparable terminology.
    sentences:
      - What does the forward-looking terminology in financial documents imply?
      - >-
        What seasons have higher domestic advertising revenue and what
        influences these patterns?
      - >-
        What is the role of Bank of America Corporation's management in relation
        to internal control over financial reporting?
  - source_sentence: >-
      For the year ended December 31, 2023, we recorded $3.6 million of foreign
      currency transaction losses.
    sentences:
      - >-
        What was the total foreign currency transaction loss recorded for the
        year ended December 31, 2023?
      - >-
        What credit ratings were assigned to the company by Standard & Poor’s
        and Moody’s at the end of 2022?
      - >-
        What are The Home Depot's strategies for increasing diversity, equity,
        and inclusion?
  - source_sentence: >-
      Gross margin contraction of 310 basis points primarily due to higher
      product costs, reflecting higher input costs and inbound freight and
      logistics costs and product mix, lower margins in NIKE Direct due to
      higher promotional activity and a lower mix of full-price sales.
    sentences:
      - What fiduciary duties might a company have under ERISA?
      - >-
        What were the significant contributors to the gross margin contraction
        and by how many basis points did it contract?
      - >-
        What typical reimbursement methods are used in the company's contracts
        with hospitals for inpatient and outpatient services?
  - source_sentence: >-
      As of December 31, 2023, we employed about 113,200 full-time persons of
      whom approximately 62,400 were located outside the United States. In the
      United States, we employed approximately 50,800 full-time persons.
    sentences:
      - >-
        What types of categories did eBay focus on in 2023, and how did they
        contribute to the company's gross merchandise volume?
      - >-
        What challenges do solar power system owners face with traditional
        string inverters?
      - >-
        How many full-time employees were employed by the company as of December
        31, 2023, and how are they distributed geographically?
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 384
          type: dim_384
        metrics:
          - type: cosine_accuracy@1
            value: 0.7157142857142857
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8485714285714285
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8742857142857143
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9171428571428571
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7157142857142857
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.28285714285714286
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17485714285714282
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09171428571428569
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7157142857142857
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8485714285714285
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8742857142857143
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9171428571428571
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.8198819637056249
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7885175736961447
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7918328646013278
            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.7157142857142857
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8485714285714285
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8785714285714286
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9142857142857143
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7157142857142857
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.28285714285714286
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17571428571428568
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09142857142857141
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7157142857142857
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8485714285714285
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8785714285714286
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9142857142857143
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.8187635355625659
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7878270975056689
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7911673353002208
            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.7057142857142857
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8371428571428572
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.8642857142857143
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.9085714285714286
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.7057142857142857
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.27904761904761904
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.17285714285714285
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.09085714285714284
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.7057142857142857
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8371428571428572
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.8642857142857143
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.9085714285714286
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.8090255333396114
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.777143424036281
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7807082191352167
            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.6728571428571428
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.8128571428571428
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.85
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8814285714285715
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.6728571428571428
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.27095238095238094
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.16999999999999998
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08814285714285712
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.6728571428571428
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.8128571428571428
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.85
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8814285714285715
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.782934506961568
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.7507721088435368
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.7551335288460688
            name: Cosine Map@100
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 32
          type: dim_32
        metrics:
          - type: cosine_accuracy@1
            value: 0.5957142857142858
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7414285714285714
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.7828571428571428
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8314285714285714
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5957142857142858
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2471428571428571
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.15657142857142856
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08314285714285713
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.5957142857142858
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7414285714285714
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.7828571428571428
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8314285714285714
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.7158751864189645
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.6787687074829931
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6839925227099907
            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("moresearch/bge-base-financial-matryoshka")
# Run inference
sentences = [
    'As of December 31, 2023, we employed about 113,200 full-time persons of whom approximately 62,400 were located outside the United States. In the United States, we employed approximately 50,800 full-time persons.',
    'How many full-time employees were employed by the company as of December 31, 2023, and how are they distributed geographically?',
    'What challenges do solar power system owners face with traditional string inverters?',
]
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_384 dim_256 dim_128 dim_64 dim_32
cosine_accuracy@1 0.7157 0.7157 0.7057 0.6729 0.5957
cosine_accuracy@3 0.8486 0.8486 0.8371 0.8129 0.7414
cosine_accuracy@5 0.8743 0.8786 0.8643 0.85 0.7829
cosine_accuracy@10 0.9171 0.9143 0.9086 0.8814 0.8314
cosine_precision@1 0.7157 0.7157 0.7057 0.6729 0.5957
cosine_precision@3 0.2829 0.2829 0.279 0.271 0.2471
cosine_precision@5 0.1749 0.1757 0.1729 0.17 0.1566
cosine_precision@10 0.0917 0.0914 0.0909 0.0881 0.0831
cosine_recall@1 0.7157 0.7157 0.7057 0.6729 0.5957
cosine_recall@3 0.8486 0.8486 0.8371 0.8129 0.7414
cosine_recall@5 0.8743 0.8786 0.8643 0.85 0.7829
cosine_recall@10 0.9171 0.9143 0.9086 0.8814 0.8314
cosine_ndcg@10 0.8199 0.8188 0.809 0.7829 0.7159
cosine_mrr@10 0.7885 0.7878 0.7771 0.7508 0.6788
cosine_map@100 0.7918 0.7912 0.7807 0.7551 0.684

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: 7 tokens
    • mean: 45.87 tokens
    • max: 288 tokens
    • min: 2 tokens
    • mean: 20.32 tokens
    • max: 41 tokens
  • Samples:
    positive anchor
    The company maintains a revolving credit facility that, unless extended, terminates on July 6, 2026. What is the expiration date of the company's revolving credit facility, unless extended?
    The management of Bank of America Corporation is responsible for establishing and maintaining adequate internal control over financial reporting. The Corporation’s internal control over financial reporting is designed to provide reasonable assurance about the reliability of financial reporting and the preparation of financial statements in accordance with accounting principles generally accepted in the United States of America. Management's responsibilities include maintaining records that, in reasonable detail, accurately and fairly reflect the transactions and dispositions of the assets of the Corporation; ensuring that transactions are recorded as necessary for the preparation of financial statements; and preventing or detecting unauthorized acquisition, use, or disposition of the Corporation’s assets that could have a material effect on the financial statements. What is the role of Bank of America Corporation's management in relation to internal control over financial reporting?
    In 2020, Gilead implemented multiple programs to train managers on inclusion and diversity topics and created strategies and initiatives focused on attracting, developing and retaining diverse talent and driving an inclusive culture in our workplace. What initiatives has Gilead undertaken to promote workplace diversity?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 4
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • bf16: True
  • tf32: 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
  • 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: True
  • 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
  • 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_384_cosine_ndcg@10 dim_256_cosine_ndcg@10 dim_128_cosine_ndcg@10 dim_64_cosine_ndcg@10 dim_32_cosine_ndcg@10
0.8122 10 1.5733 - - - - -
0.9746 12 - 0.8075 0.8045 0.7876 0.7643 0.6844
1.6244 20 0.6549 - - - - -
1.9492 24 - 0.8188 0.8169 0.8035 0.7789 0.7107
2.4365 30 0.4373 - - - - -
2.9239 36 - 0.8210 0.8183 0.8079 0.7835 0.7161
3.2487 40 0.3951 - - - - -
3.8985 48 - 0.8199 0.8188 0.809 0.7829 0.7159
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.3.1
  • Transformers: 4.46.3
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.1.1
  • Datasets: 3.1.0
  • Tokenizers: 0.20.3

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