Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use rossieRuby/nyayadrishti-bert-v2 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("rossieRuby/nyayadrishti-bert-v2")
sentences = [
"What did the Court direct the State Government to do?",
"In the consolidated proceeding therefore the tribunal had to decide firstly whether the bunga was the property of the Golden Temple. If it decided that, all the claims would necessarily fall 338 through. But if it held that the bunga was not the property of the Golden Temple it had to adjudicate on the respective claims of Jaswant Singh, Kesar Singh and Balwant Singh. By majority, the tribunal held that the bunga was not the property of the Golden Temple. It therefore had to decide to which of the three claimants under section 5, if any, the bunga could be held to belong. It negatived the claims of Kesar Singh and Jaswant Singh. As to Balwant Singh 's claim it held by a majority that Balwant Singh had no personal or private right in the bunga. It further held that the bunga was wakf property dedicated to the pilgrims to the Golden Temple and that the descendants of Maharaja Sher Singh were the managers of the bunga.",
"The second meeting was held on the 29th March, 1952, and the third on the 14th of June, 1952. The expert member was not present at any other meeting except the first and on the 27th of 741 May, 1952, he wrote a letter to the Chief Commissioner stating that he was proceeding to Europe on the 3rdd June, 1952, for a period of three months.",
"It is necessary to mention in this connection that on September 21, 1984 this Court while granting special leave made an order of stay of operation of the High Court judgment pending hearing of the appeal. But subsequently on March 18, 1986 after hearing the learned counsels the interim order of stay was recalled in consideration of the fact that U.P. Public Service Commission had already cancelled the candidature of the appellant and withdrawn the recommendation made in his favour for the reason inter alia that he lacked in five years experience in Drug testing. This Court also directed the State Government to appoint a member or one Indian Administrative Service to function as the Food & Drug Controller, U.P. PG NO 42 It has been urged on behalf of the appellant, Dr. Bindal that the order of the Public Service Commission in cancelling the candidature of the appellant and withdrawing the recommendation made in his favour is wholly illegal and bad in as much as the Government has considered the certificates produced by the appellant and found that the appellant had the requisite experience of five years in Drug testing and as such he was appointed by the Government as Food and Drug Controller, U.P."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model trained. 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.
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
(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})
)
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("rossieRuby/nyayadrishti-bert-v2")
# Run inference
sentences = [
'What entry is mentioned in relation to tax on land?',
'In that connection, the following observations lay down the guide lines: "It is well settled that the entries in the three legislative lists have to be interpreted in their widest amplitude and there fore if a tax can reasonably be held to be a tax on land it will come within entry 49. Further it is equally well settled that tax on land may be based on the annual value of the land and would still be a tax on land and would not be beyond the com petence of the State legislature on the ground that it is a tax on income: (See Ralla Ram vs The province of East Punjab: It follows therefore that the use to which the land is put can be taken into account in imposing a tax (1) ; (2)Quoted in Liberty cinema: P. 484. 339 on it within the meaning of entry 49 of List II, for the annual value of land which can certainly be taken into account in imposing a tax for the purpose of this entry would necessarily depend upon the use to which the land is put." (p. 49).',
'Now it is true that the so called will of 1864 does not make provision for the grandsons, nor does it expressly confer an absolute estate on the legatees, but the witness is illiterate and had to depend on what he was told about the contents and meaning of the document, and what we have to test is the truth of his assertion that the plaintiff Mukand Ram and Kanhaiya Lal, and other members of the family, told him that Mst. Pato had given the property to her daughters and grandsons. If they told him this, as he says they did, then it operates as an admission against Mukand Ram and shifts the burden of proof to him because he was one of the persons who made the statement. The statements made by the others are not relevant except in so far as they prove the conduct of the family. The plaintiff (P.W. 11 in C.A. 91/50) admits that Mst. Pato divided the estate but says that it was only for convenience of management and that neither she nor her daughters had, or pretended to have, anything more than a life estate. He denies that there was any gift or family arrangement. But he had to admit that the grandsons also got properties at the same time. His explanation is that it was for the purposes of "shradh" and pilgrimage to Gaya and he says that though they were given possession they were not the "owners".',
]
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]
sentence_0, sentence_1, and label| sentence_0 | sentence_1 | label | |
|---|---|---|---|
| type | string | string | float |
| details |
|
|
|
| sentence_0 | sentence_1 | label |
|---|---|---|
Why did the respondents dispute the demurrage charges? |
The respondents disputed the right of the Port Trust to charge any demurrage for the period during which the goods were detained by the Customs authorities for analytical test. as well as for the Import Trade Control formalities. |
1.0 |
What was the paid up capital of the subsidiary Company? |
The paid up capital of the subsidiary Company was Rs. 7,91,100 divided into 7,911 shares of Rs. 100 each. |
1.0 |
How many parts does the schedule attached to the Act have? |
The schedule attached to the Act specifies, under two parts, the employments in respect of which the minimum wages of the employees can be fixed; and section 27 authorises the "appropriate Government", after giving three months ' notice of its intention to do so, to add to either part of the schedule, any other employment, in respect of which it is of the opinion that minimum rates of wages should be fixed under the Act. |
1.0 |
CosineSimilarityLoss with these parameters:{
"loss_fct": "torch.nn.modules.loss.MSELoss"
}
per_device_train_batch_size: 16per_device_eval_batch_size: 16num_train_epochs: 1multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 1max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.0warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Falsefp16: Falsefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}tp_size: 0fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters: auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 0.2667 | 500 | 0.2532 |
| 0.5333 | 1000 | 0.2527 |
| 0.8 | 1500 | 0.2524 |
@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",
}