Edit model card

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}
}
Downloads last month
10
Safetensors
Model size
109M params
Tensor type
F32
·

Finetuned from

Evaluation results