Legal-Embed-snowflake-arctic-embed-m-v2.0

This is a sentence-transformers model finetuned from Snowflake/snowflake-arctic-embed-m-v2.0 on the legal-rag-embedding-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: Snowflake/snowflake-arctic-embed-m-v2.0
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json
  • Language: en
  • License: apache-2.0

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("axondendriteplus/Legal-Embed-snowflake-arctic-embed-m-v2.0")
# Run inference
sentences = [
    '1996. In section 19 of the Depositories Act, 1996 (hereafter in this chapter referred to as the principal Act in this chapter), the following Explanation shall be inserted, namely:- Explanation. For the removal of doubts, it is hereby declared that power to issue directions under this section shall include and always be deemed to have been included the power to direct any person, who made profit or averted loss by indulging in any transaction or activity in contravention of the provisions of this Act or regulations made thereunder, to disgorge an amount equivalent to the wrongful gain made or loss averted by such contravention.',
    'What is the purpose of the Explanation inserted in section 19 of the Depositories Act, 1996?',
    'What are the qualifications required for a judge to be appointed to a Special Court under this Act?',
]
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.4691
cosine_accuracy@3 0.7469
cosine_accuracy@5 0.8457
cosine_accuracy@10 0.9136
cosine_precision@1 0.4691
cosine_precision@3 0.249
cosine_precision@5 0.1691
cosine_precision@10 0.0914
cosine_recall@1 0.4691
cosine_recall@3 0.7469
cosine_recall@5 0.8457
cosine_recall@10 0.9136
cosine_ndcg@10 0.6932
cosine_mrr@10 0.622
cosine_map@100 0.6259

Information Retrieval

Metric Value
cosine_accuracy@1 0.4506
cosine_accuracy@3 0.7531
cosine_accuracy@5 0.8272
cosine_accuracy@10 0.9074
cosine_precision@1 0.4506
cosine_precision@3 0.251
cosine_precision@5 0.1654
cosine_precision@10 0.0907
cosine_recall@1 0.4506
cosine_recall@3 0.7531
cosine_recall@5 0.8272
cosine_recall@10 0.9074
cosine_ndcg@10 0.6862
cosine_mrr@10 0.6142
cosine_map@100 0.6181

Information Retrieval

Metric Value
cosine_accuracy@1 0.4383
cosine_accuracy@3 0.7346
cosine_accuracy@5 0.8272
cosine_accuracy@10 0.8951
cosine_precision@1 0.4383
cosine_precision@3 0.2449
cosine_precision@5 0.1654
cosine_precision@10 0.0895
cosine_recall@1 0.4383
cosine_recall@3 0.7346
cosine_recall@5 0.8272
cosine_recall@10 0.8951
cosine_ndcg@10 0.6726
cosine_mrr@10 0.6003
cosine_map@100 0.6056

Information Retrieval

Metric Value
cosine_accuracy@1 0.4136
cosine_accuracy@3 0.6852
cosine_accuracy@5 0.7778
cosine_accuracy@10 0.8704
cosine_precision@1 0.4136
cosine_precision@3 0.2284
cosine_precision@5 0.1556
cosine_precision@10 0.087
cosine_recall@1 0.4136
cosine_recall@3 0.6852
cosine_recall@5 0.7778
cosine_recall@10 0.8704
cosine_ndcg@10 0.6397
cosine_mrr@10 0.5659
cosine_map@100 0.5719

Information Retrieval

Metric Value
cosine_accuracy@1 0.3457
cosine_accuracy@3 0.5802
cosine_accuracy@5 0.6852
cosine_accuracy@10 0.7901
cosine_precision@1 0.3457
cosine_precision@3 0.1934
cosine_precision@5 0.137
cosine_precision@10 0.079
cosine_recall@1 0.3457
cosine_recall@3 0.5802
cosine_recall@5 0.6852
cosine_recall@10 0.7901
cosine_ndcg@10 0.5603
cosine_mrr@10 0.4875
cosine_map@100 0.4943

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 1,456 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 110 tokens
    • mean: 795.06 tokens
    • max: 1042 tokens
    • min: 13 tokens
    • mean: 30.5 tokens
    • max: 215 tokens
  • Samples:
    positive anchor
    its continued obligations towards the holders of debt securities. We have satisfied ourselves about the ability of the issuer to service the debt securities. PLACE DATE: DEBENTURE TRUSTEE TO THE ISSUE WITH HIS SEAL Page - 65 - of 68 FORMAT OF DUE DILIGENCE CERTIFICATE TO BE GIVEN BY THE DEBENTURE TRUSTEE BEFORE OPENING OF THE ISSUE To, SECURITIES AND EXCHANGE BOARD OF INDIA Dear Sir / Madam, SUB. : ISSUE OF BY (Issuer) We, the Debenture Trustee (s) to the above mentioned forthcoming issue state as follows: (1) We have examined documents pertaining to the said issue and other relevant documents. (2) On the basis of such examination and discussions with the issuer, its Mayor/Deputy Mayor /Directors and other officers, other agencies and independent verification of the various relevant documents,- (a) WE CONFIRM that the issuer has made adequate provisions regarding escrow payment mechanism for repayment of debt obligations, and (b) We have satisfied ourselves about the ability of the iss... What specific provisions has the issuer made regarding the repayment of debt obligations?
    sums realised by way of penalties to Consolidated Fund of India 23L. Appeal to Securities Appellate Tribunal 23M. Offences 23N. Composition of certain offences 23-O. Power to grant immunity 24. Contravention by companies 25. Certain offences to be cognizable 26. Cognizance of offences by courts 26A. Establishment of Special Courts 26B. Offences triable by Special Courts 26C. Appeal and revision 26D. Application of Code to proceedings before Special Court 26E. Transitional Provisions MISCELLANEOUS 27. Title to dividends 27A. Right to receive income from collective investment scheme 27B. Right to receive income from mutual fund 28. Act not to apply in certain cases 29. Protection of action taken in good faith 29A. Power to delegate 29B. Powers of Board not to apply to International Financial Services Centre 30. Power to make rules 30A. Special Provisions related to commodity derivatives 30B. Special provisions related to pooled investment vehicle 31. Power of Securities and Exchange Boar... What powers does the Securities and Exchange Board of India have to make regulations according to the Securities Contracts (Regulation) Act, 1956?
    the depository or the securities market as a result of the default; and (c) the repetitive nature of the default. ] CHAPTER X PROCEDURE FOR ACTION IN CASE OF DEFAULT Liability for action in case of default 92. Without prejudice to the power of the Board to take action, under the provisions of the Act and the Depositories Act, if a depository or a participant:- (a) contravenes any of the provisions of the Act, the Depositories Act, the bye-laws, agreements and these regulations; (b) fails to furnish any information relating to its activity as a depository or participant as required under these regulations; (c) does not furnish the information called for by the Board under clause (a) of sub-section (1) of section 18 of the Depositories Act or furnishes information which is false or misleading in any material particular; (d) does not co-operate in any inspection or investigation or enquiry conducted by the Board; (e) fails to comply with any direction of the Board issued under section 18 ... What actions can the Board take against a depository or participant that fails to comply with the provisions of the Act or the Depositories Act?
  • 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: 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: 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: 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
  • 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
1.0 3 - 0.6688 0.6577 0.6456 0.6018 0.5202
2.0 6 - 0.6652 0.6624 0.6634 0.6147 0.5320
3.0 9 - 0.6868 0.6831 0.6678 0.6330 0.5537
3.3478 10 39.9839 - - - - -
4.0 12 - 0.6932 0.6862 0.6726 0.6397 0.5603
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.11
  • Sentence Transformers: 4.1.0
  • Transformers: 4.52.3
  • PyTorch: 2.7.0+cu126
  • Accelerate: 1.7.0
  • Datasets: 3.6.0
  • 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}
}
Downloads last month
1
Safetensors
Model size
305M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for axondendriteplus/Legal-Embed-snowflake-arctic-embed-m-v2.0

Finetuned
(9)
this model

Evaluation results