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("IlhamEbdesk/bge-base-financial-matryoshka")
# Run inference
sentences = [
    "During September 2023, the Company entered into a third amended and restated revolving credit agreement with Bank of America, N.A., as administrative agent, swing line lender and a letter of credit issuer and lender and certain other financial institutions, as lenders thereto (the 'Amended Revolving Credit Agreement'), which provides the Company with commitments having a maximum aggregate principal amount of $1.25 billion, effective as of September 5, 2023. The Amended Revolving Credit Agreement also provides for a potential additional incremental commitment increase of up to $500.0 million subject to agreement of the lenders. The Amended Revolving Credit Agreement contains certain financial covenants setting forth leverage and coverage requirements, and certain other limitations typical of an investment grade facility, including with respect to liens, mergers and incurrence of indebtedness. The Amended Revolving Credit Agreement extends through September 5, 2028.",
    'What is the function of the amended revolving credit agreement that the Company entered into with Bank of America in September 2023?',
    'What position does Brad D. Smith currently hold?',
]
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.6617
cosine_accuracy@3 0.7933
cosine_accuracy@5 0.8365
cosine_accuracy@10 0.8851
cosine_precision@1 0.6617
cosine_precision@3 0.2644
cosine_precision@5 0.1673
cosine_precision@10 0.0885
cosine_recall@1 0.6617
cosine_recall@3 0.7933
cosine_recall@5 0.8365
cosine_recall@10 0.8851
cosine_ndcg@10 0.7731
cosine_mrr@10 0.7373
cosine_map@100 0.7413

Information Retrieval

Metric Value
cosine_accuracy@1 0.661
cosine_accuracy@3 0.7881
cosine_accuracy@5 0.8352
cosine_accuracy@10 0.8835
cosine_precision@1 0.661
cosine_precision@3 0.2627
cosine_precision@5 0.167
cosine_precision@10 0.0883
cosine_recall@1 0.661
cosine_recall@3 0.7881
cosine_recall@5 0.8352
cosine_recall@10 0.8835
cosine_ndcg@10 0.7713
cosine_mrr@10 0.7355
cosine_map@100 0.7397

Information Retrieval

Metric Value
cosine_accuracy@1 0.6508
cosine_accuracy@3 0.7795
cosine_accuracy@5 0.824
cosine_accuracy@10 0.874
cosine_precision@1 0.6508
cosine_precision@3 0.2598
cosine_precision@5 0.1648
cosine_precision@10 0.0874
cosine_recall@1 0.6508
cosine_recall@3 0.7795
cosine_recall@5 0.824
cosine_recall@10 0.874
cosine_ndcg@10 0.7614
cosine_mrr@10 0.7255
cosine_map@100 0.7298

Information Retrieval

Metric Value
cosine_accuracy@1 0.6217
cosine_accuracy@3 0.7541
cosine_accuracy@5 0.7987
cosine_accuracy@10 0.8546
cosine_precision@1 0.6217
cosine_precision@3 0.2514
cosine_precision@5 0.1597
cosine_precision@10 0.0855
cosine_recall@1 0.6217
cosine_recall@3 0.7541
cosine_recall@5 0.7987
cosine_recall@10 0.8546
cosine_ndcg@10 0.7369
cosine_mrr@10 0.6994
cosine_map@100 0.7043

Information Retrieval

Metric Value
cosine_accuracy@1 0.5648
cosine_accuracy@3 0.7027
cosine_accuracy@5 0.7478
cosine_accuracy@10 0.8013
cosine_precision@1 0.5648
cosine_precision@3 0.2342
cosine_precision@5 0.1496
cosine_precision@10 0.0801
cosine_recall@1 0.5648
cosine_recall@3 0.7027
cosine_recall@5 0.7478
cosine_recall@10 0.8013
cosine_ndcg@10 0.6818
cosine_mrr@10 0.6437
cosine_map@100 0.6495

Training Details

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
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step dim_128_cosine_map@100 dim_256_cosine_map@100 dim_512_cosine_map@100 dim_64_cosine_map@100 dim_768_cosine_map@100
0.7273 1 0.6707 0.7045 0.7171 0.6067 0.7188
1.4545 2 0.6912 0.7205 0.7302 0.6313 0.7327
2.9091 4 0.7043 0.7298 0.7397 0.6495 0.7413
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2+cu121
  • Accelerate: 0.32.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}
}
Downloads last month
26
Safetensors
Model size
109M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for IlhamEbdesk/bge-base-financial-matryoshka

Finetuned
(310)
this model

Evaluation results