Edit model card

BGE small 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("haophancs/bge-base-financial-matryoshka")
# Run inference
sentences = [
    "Under the Insurance Act, Chubb's Bermuda domiciled subsidiaries are prohibited from declaring or paying any dividends of more than 25 percent of total statutory capital and surplus, as shown in its previous financial year statutory balance sheet, unless at least seven days before payment of the dividends, it files with the BMA an affidavit signed by at least two directors of the relevant Bermuda domiciled subsidiary (one of whom must be a director resident in Bermuda) and by the relevant Bermuda domiciled subsidiary’s principal representative, that it will continue to meet its required solvency margins. Furthermore, Bermuda domiciled subsidiaries may only declare and pay a dividend from retained earnings and a dividend or distribution from contributed surplus if it has no reasonable grounds for believing that it is, or would after the payment be, unable to pay its liabilities as they become due, or if the realizable value of its assets would be less than the aggregate of its liabilities. In addition, Chubb's Bermuda domiciled subsidiaries must obtain the BMA's prior approval before reducing total statutory capital, as shown in its previous financial year's financial statements, by 15 percent or more.",
    'What are the restrictions and requirements for Bermuda domiciled subsidiaries regarding the distribution of dividends under the Insurance Act?',
    'What section deals with financial statements and supplementary data?',
]
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.7043
cosine_accuracy@3 0.8457
cosine_accuracy@5 0.88
cosine_accuracy@10 0.9243
cosine_precision@1 0.7043
cosine_precision@3 0.2819
cosine_precision@5 0.176
cosine_precision@10 0.0924
cosine_recall@1 0.7043
cosine_recall@3 0.8457
cosine_recall@5 0.88
cosine_recall@10 0.9243
cosine_ndcg@10 0.8154
cosine_mrr@10 0.7804
cosine_map@100 0.7829

Information Retrieval

Metric Value
cosine_accuracy@1 0.7057
cosine_accuracy@3 0.8471
cosine_accuracy@5 0.8686
cosine_accuracy@10 0.9243
cosine_precision@1 0.7057
cosine_precision@3 0.2824
cosine_precision@5 0.1737
cosine_precision@10 0.0924
cosine_recall@1 0.7057
cosine_recall@3 0.8471
cosine_recall@5 0.8686
cosine_recall@10 0.9243
cosine_ndcg@10 0.8151
cosine_mrr@10 0.7802
cosine_map@100 0.7828

Information Retrieval

Metric Value
cosine_accuracy@1 0.7071
cosine_accuracy@3 0.8386
cosine_accuracy@5 0.8757
cosine_accuracy@10 0.9229
cosine_precision@1 0.7071
cosine_precision@3 0.2795
cosine_precision@5 0.1751
cosine_precision@10 0.0923
cosine_recall@1 0.7071
cosine_recall@3 0.8386
cosine_recall@5 0.8757
cosine_recall@10 0.9229
cosine_ndcg@10 0.8152
cosine_mrr@10 0.7808
cosine_map@100 0.7833

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: 8 tokens
    • mean: 45.4 tokens
    • max: 252 tokens
    • min: 9 tokens
    • mean: 20.43 tokens
    • max: 45 tokens
  • Samples:
    positive anchor
    In 2023, $2.2 billion or 5% was primarily related to patient co-pay assistance, cash discounts for prompt payment, distributor fees, and sales return provisions. What was the amount of sales return provisions in 2023 as part of gross-to-net deductions?
    Cash and cash equivalents were $21.9 billion at the end of 2023 as compared to $14.1 billion at the end of 2022, showing a $7.8 billion increase. How much did cash and cash equivalents increase by the end of 2023 compared to the end of 2022?
    The net increase in cash and cash equivalents for UnitedHealthcare in 2023 compared to 2022 was $72 million. What was the net increase in cash and cash equivalents for UnitedHealthcare in 2023 compared to 2022?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            384
        ],
        "matryoshka_weights": [
            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: True
  • 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: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: True
  • 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_384_cosine_map@100 dim_512_cosine_map@100 dim_768_cosine_map@100
0.8122 10 0.8256 - - -
0.9746 12 - 0.7719 0.7679 0.7652
1.6244 20 0.2984 - - -
1.9492 24 - 0.7784 0.7810 0.7791
2.4365 30 0.201 - - -
2.9239 36 - 0.7835 0.7832 0.7828
3.2487 40 0.1705 - - -
3.8985 48 - 0.7833 0.7828 0.7829
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.12.2
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.2.0+cu121
  • 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
3
Safetensors
Model size
109M params
Tensor type
F32
·
Inference API
This model can be loaded on Inference API (serverless).

Finetuned from

Evaluation results