Pravallika2001's picture
Add new SentenceTransformer model
cc93841 verified
metadata
language:
  - en
license: apache-2.0
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:5822
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
base_model: nomic-ai/modernbert-embed-base
widget:
  - source_sentence: >-
      “deviation”).  “[D]eviations from the FAR may be granted . . . when
      necessary to meet the specific 

      needs and requirements of each agency.”  FAR 1.402.  “Class deviations
      affect more than one 

      contract” and “may be authorized by agency heads or their designees.”  FAR
      1.404. 
       
      13 Acquisition Policy Library & Resources  Class Deviations: CD-2020-14,
      U.S. General Services 

      Administration,
    sentences:
      - What section might GSA rely on if they choose?
      - Who can authorize class deviations?
      - What type of protest did the plaintiffs file?
  - source_sentence: >-
      record in this case to portray their assignment of rights position in a
      better light falls short of the 

      level of representation that this Court expects of a United States
      government agency.  The CIA 

      should know better than to make such an obviously unfounded argument,
      particularly in light of 

      the many allegations of bad faith that have been leveled by the plaintiff
      in these cases, including
    sentences:
      - What statement is included about the contents of the document?
      - >-
        What is the level of representation expected by the Court from a United
        States government agency?
      - >-
        What did the GSA determine should be included in the Polaris GWAC
        regarding task orders?
  - source_sentence: |-
      abogado cuando una parte o su abogado procede con temeridad o 
      frivolidad.  Pérez Rodríguez v. López Rodríguez, 210 DPR 163 (2022); 
      SLG González-Figueroa v. Pacheco Romero, 209 DPR 138, 145-150 
      (2022). 
      De esta manera, la imposición o concesión de honorarios de 
      abogado no procede en todos los casos. Depende, pues, de la 
      determinación discrecional que haga el tribunal en torno a si la parte
    sentences:
      - What action did the CIA arguably take in response to the plaintiff?
      - What year was the Pérez Rodríguez v. López Rodríguez case decided?
      - What exhibit is referenced in the declaration by Hackett?
  - source_sentence: >-
      properly before the Court on summary judgment.  The CIA has not moved for
      summary 

      judgment on this issue, or at least does not specifically address this
      issue in moving for summary 

      judgment in No. 11-443 or 11-444.  Additionally, although the plaintiff
      contends in its 

      opposition brief in No. 11-444 that “[t]he Court should order [the CIA] to
      promptly produce
    sentences:
      - >-
        In which case number does the plaintiff contend the CIA should promptly
        produce something?
      - >-
        What document did the plaintiff allegedly send to the defendant on April
        6, 2023?
      - What does the plaintiff suspect the name to be?
  - source_sentence: |-
      this information to represent the client effectively and, if necessary, 
      to advise the client to refrain from wrongful conduct. Almost 
      without exception, clients come to lawyers in order to determine 
      their rights and what is, in the complex of laws and regulations, 
      deemed to be legal and correct. Based on experience, lawyers know
    sentences:
      - >-
        Does the regulation’s definition of 'permanent' support the Government’s
        argument?
      - What may lawyers advise their clients to refrain from?
      - What distinction is made in Section 125.9(h)(1)(iii)?
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: ModernBERT Embed base Legal Matryoshka
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 768
          type: dim_768
        metrics:
          - type: cosine_accuracy@1
            value: 0.5517774343122102
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.6012364760432767
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.6877897990726429
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.7542503863987635
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5517774343122102
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.5193199381761978
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.3975270479134467
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.22967542503863986
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.20260175167439462
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.5188047398248326
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.6424523441524986
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.7390520350334878
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.6520552285814428
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.5986623242805615
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6393368807672634
            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.5564142194744977
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.5965996908809892
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.6723338485316847
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.7434312210200927
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5564142194744977
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.5188047398248326
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.39134466769706333
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.22658423493044821
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.2038897475528078
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.5184183410613086
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.6349819680577022
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.729392065945389
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.6476121678305687
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.5979428865827624
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6366019137471932
            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.5193199381761978
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.5656877897990726
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.6445131375579598
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.7156105100463679
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5193199381761978
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.4868624420401855
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.37156105100463677
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.21839258114374036
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.19178258629572387
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.48789283874291595
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.603039670273055
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.7029881504379186
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.6171714846474416
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.5638845955692942
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6045559010924416
            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.4482225656877898
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.4806800618238022
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.5734157650695518
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.678516228748068
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.4482225656877898
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.42091705306543026
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.323338485316847
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.20680061823802165
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.1609994848016486
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.4179546625450798
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.5238279237506439
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.6646058732612056
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.5579442201339713
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.4947738033904957
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.5372662887750875
            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.33384853168469864
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.36321483771251933
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.4528593508500773
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.5347758887171561
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.33384853168469864
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3168469860896445
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.25193199381761977
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.15950540958268933
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.1178516228748068
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.31530139103554866
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.41202988150437914
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.5142967542503863
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.4263181530641336
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.37517295944652945
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.41925093891654286
            name: Cosine Map@100

ModernBERT Embed base Legal Matryoshka

This is a sentence-transformers model finetuned from nomic-ai/modernbert-embed-base 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: nomic-ai/modernbert-embed-base
  • Maximum Sequence Length: 8192 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': 8192, 'do_lower_case': False}) with Transformer model: ModernBertModel 
  (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, '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("Pravallika2001/modernbert-embed-base-legal-matryoshka-1")
# Run inference
sentences = [
    'this information to represent the client effectively and, if necessary, \nto advise the client to refrain from wrongful conduct. Almost \nwithout exception, clients come to lawyers in order to determine \ntheir rights and what is, in the complex of laws and regulations, \ndeemed to be legal and correct. Based on experience, lawyers know',
    'What may lawyers advise their clients to refrain from?',
    "Does the regulation’s definition of 'permanent' support the Government’s argument?",
]
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.5518 0.5564 0.5193 0.4482 0.3338
cosine_accuracy@3 0.6012 0.5966 0.5657 0.4807 0.3632
cosine_accuracy@5 0.6878 0.6723 0.6445 0.5734 0.4529
cosine_accuracy@10 0.7543 0.7434 0.7156 0.6785 0.5348
cosine_precision@1 0.5518 0.5564 0.5193 0.4482 0.3338
cosine_precision@3 0.5193 0.5188 0.4869 0.4209 0.3168
cosine_precision@5 0.3975 0.3913 0.3716 0.3233 0.2519
cosine_precision@10 0.2297 0.2266 0.2184 0.2068 0.1595
cosine_recall@1 0.2026 0.2039 0.1918 0.161 0.1179
cosine_recall@3 0.5188 0.5184 0.4879 0.418 0.3153
cosine_recall@5 0.6425 0.635 0.603 0.5238 0.412
cosine_recall@10 0.7391 0.7294 0.703 0.6646 0.5143
cosine_ndcg@10 0.6521 0.6476 0.6172 0.5579 0.4263
cosine_mrr@10 0.5987 0.5979 0.5639 0.4948 0.3752
cosine_map@100 0.6393 0.6366 0.6046 0.5373 0.4193

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 5,822 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 15 tokens
    • mean: 97.03 tokens
    • max: 157 tokens
    • min: 7 tokens
    • mean: 16.65 tokens
    • max: 37 tokens
  • Samples:
    positive anchor
    communications was evidence of the defendant’s guilt; that is, what the defendant said in
    those communications was inculpatory. See id. at 645-52, 674-76. But the State had to
    establish that the communications were the handiwork of the defendant. It was in that
    context that temporal proximity came into play: The timing of the communications relative
    Which pages of the cited document discuss the defendant's communications and their evidentiary value?
    lawyer having supervisory authority over performance of specific
    legal work by another lawyer. Whether a lawyer has such
    supervisory authority in particular circumstances is a question of
    fact. Partners and lawyers with comparable authority have at least
    indirect responsibility for all work being done by the firm, while a
    partner or manager in charge of a particular matter ordinarily also
    Who has at least indirect responsibility for all work being done by the firm?
    cuando el demandado contesta la demanda y niega su
    responsabilidad total, aunque la acepte posteriormente;
    cuando se defiende injustificadamente de la acción que
    se presenta en su contra; cuando no admite
    francamente su responsabilidad limitada o parcial, a
    pesar de creer que la única razón que tiene para
    oponerse a la demanda es que la cuantía es exagerada;
    ¿Cuál es la razón que el demandado cree tener para oponerse a la demanda?
  • 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
  • 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: None
  • 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}
  • tp_size: 0
  • 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: None
  • 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_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.8791 10 89.4929 - - - - -
1.0 12 - 0.6233 0.6056 0.5715 0.5117 0.3814
1.7033 20 40.7733 - - - - -
2.0 24 - 0.6495 0.6425 0.6064 0.5491 0.4172
2.5275 30 29.6387 - - - - -
3.0 36 - 0.6512 0.6476 0.6172 0.5554 0.4252
3.3516 40 26.8564 - - - - -
3.7033 44 - 0.6521 0.6476 0.6172 0.5579 0.4263
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.11
  • Sentence Transformers: 3.4.1
  • Transformers: 4.50.0
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.5.2
  • Datasets: 3.4.1
  • Tokenizers: 0.21.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}
}