Matryoshka Representation Learning
Paper • 2205.13147 • Published • 27
How to use DGSMsRzJ6xC2JthtHG9W/nomic-v2-tuned-1.3 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("DGSMsRzJ6xC2JthtHG9W/nomic-v2-tuned-1.3", trust_remote_code=True)
sentences = [
"Хозяйственное товарищество желает реорганизоваться в некоммерческий фонд. Возможно ли преобразование хозяйственного товарищества в некоммерческую организацию согласно представленному тексту статьи закона?",
"1. Если иное не предусмотрено договором подряда, работа выполняется иждивением подрядчика - из его материалов, его силами и средствами. 2. Подрядчик несет ответственность за ненадлежащее качество предоставленных им материалов и оборудования, а также за предоставление материалов и оборудования, обремененных правами третьих лиц.",
"1. Хозяйственные товарищества и общества одного вида могут преобразовываться в хозяйственные товарищества и общества другого вида или в производственные кооперативы по решению общего собрания участников в порядке, установленном настоящим Кодексом и законами о хозяйственных обществах. (В редакции Федерального закона от 05.05.2014 № 99-ФЗ ) 2. При преобразовании товарищества в общество каждый полный товарищ, ставший участником (акционером) общества, в течение двух лет несет субсидиарную ответственность всем своим имуществом по обязательствам, перешедшим к обществу от товарищества. Отчуждение бывшим товарищем принадлежавших ему долей (акций) не освобождает его от такой ответственности. Правила, изложенные в настоящем пункте, соответственно применяются при преобразовании товарищества в производственный кооператив. 3. Хозяйственные товарищества и общества не могут быть реорганизованы в некоммерческие организации, а также в унитарные коммерческие организации. (Дополнение пунктом - Федеральный закон от 05.05.2014 № 99-ФЗ )",
"На родителя, лишенного родительских прав, суд может возложить ответственность за вред, причиненный его несовершеннолетним ребенком в течение трех лет после лишения родителя родительских прав, если поведение ребенка, повлекшее причинение вреда, явилось следствием ненадлежащего осуществления родительских обязанностей."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from nomic-ai/nomic-embed-text-v2-moe 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.
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: NomicBertModel
(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()
)
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("DGSMsRzJ6xC2JthtHG9W/nomic-v2-tuned-1.3")
# Run inference
sentences = [
'Влияет ли дата составления передаточного акта на определение правопреемства по обязательствам?',
'1. Передаточный акт должен содержать положения о правопреемстве по всем обязательствам реорганизованного юридического лица в отношении всех его кредиторов и должников, включая обязательства, оспариваемые сторонами, а также порядок определения правопреемства в связи с изменением вида, состава, стоимости имущества, возникновением, изменением, прекращением прав и обязанностей реорганизуемого юридического лица, которые могут произойти после даты, на которую составлен передаточный акт. 2. Передаточный акт утверждается учредителями (участниками) юридического лица или органом, принявшим решение о реорганизации юридического лица, и представляется вместе с учредительными документами для государственной регистрации юридических лиц, создаваемых в результате реорганизации, или внесения изменений в учредительные документы существующих юридических лиц. Непредставление вместе с учредительными документами передаточного акта, отсутствие в нем положений о правопреемстве по всем обязательствам реорганизованного юридического лица влекут отказ в государственной регистрации юридических лиц, создаваемых в результате реорганизации. (Статья в редакции Федерального закона от 05.05.2014 № 99-ФЗ )',
'Стоимость имущества, передаваемого личному фонду (за исключением наследственного фонда) его учредителем при создании личного фонда, не может быть менее ста миллионов рублей, при этом стоимость этого имущества определяется на основании оценки его рыночной стоимости. 5. Личный фонд вправе заниматься предпринимательской деятельностью, соответствующей целям, определенным уставом личного фонда, и необходимой для достижения этих целей. Для осуществления предпринимательской деятельности личный фонд вправе создавать хозяйственные общества или участвовать в них. 6. Учредитель личного фонда несет субсидиарную ответственность по обязательствам этого личного фонда при недостаточности его имущества, а личный фонд, за исключением наследственного фонда, несет субсидиарную ответственность своим имуществом по обязательствам учредителя личного фонда в течение трех лет со дня его создания. В исключительных случаях, если кредиторы личного фонда или учредителя личного фонда по уважительным причинам не имели возможности обратиться с требованиями к учредителю личного фонда или личному фонду в течение указанного срока, этот срок может быть продлен судом, но не более чем на пять лет со дня создания личного фонда. 7. Решение учредителя личного фонда об учреждении личного фонда подлежит нотариальному удостоверению. Завещание, условия которого предусматривают создание наследственного фонда, должно включать в себя решение завещателя об учреждении наследственного фонда, устав фонда, а также условия управления наследственным фондом. Такое завещание подлежит нотариальному удостоверению. 8. Учредительным документом личного фонда является его устав. Учредитель личного фонда вправе утвердить условия управления личным фондом и иные внутренние документы личного фонда, обязательные для всех органов личного фонда. Устав личного фонда и условия управления личным фондом подлежат нотариальному удостоверению.',
]
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]
dim_768, dim_512, dim_256, dim_128 and dim_64InformationRetrievalEvaluator| Metric | dim_768 | dim_512 | dim_256 | dim_128 | dim_64 |
|---|---|---|---|---|---|
| cosine_accuracy@1 | 0.0109 | 0.0088 | 0.0073 | 0.0083 | 0.0094 |
| cosine_accuracy@3 | 0.0254 | 0.0222 | 0.0214 | 0.0205 | 0.0214 |
| cosine_accuracy@5 | 0.051 | 0.0485 | 0.0476 | 0.0442 | 0.0414 |
| cosine_accuracy@10 | 0.1663 | 0.1629 | 0.1563 | 0.1476 | 0.1365 |
| cosine_precision@1 | 0.0109 | 0.0088 | 0.0073 | 0.0083 | 0.0094 |
| cosine_precision@3 | 0.0085 | 0.0074 | 0.0071 | 0.0068 | 0.0071 |
| cosine_precision@5 | 0.0102 | 0.0097 | 0.0095 | 0.0088 | 0.0083 |
| cosine_precision@10 | 0.0166 | 0.0163 | 0.0156 | 0.0148 | 0.0136 |
| cosine_recall@1 | 0.0109 | 0.0088 | 0.0073 | 0.0083 | 0.0094 |
| cosine_recall@3 | 0.0254 | 0.0222 | 0.0214 | 0.0205 | 0.0214 |
| cosine_recall@5 | 0.051 | 0.0485 | 0.0476 | 0.0442 | 0.0414 |
| cosine_recall@10 | 0.1663 | 0.1629 | 0.1563 | 0.1476 | 0.1365 |
| cosine_ndcg@10 | 0.0657 | 0.063 | 0.0602 | 0.0573 | 0.0545 |
| cosine_mrr@10 | 0.0369 | 0.0344 | 0.0326 | 0.0314 | 0.0311 |
| cosine_map@100 | 0.0776 | 0.0749 | 0.073 | 0.0705 | 0.0675 |
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
Найдите в документе информацию о том, кто подписал данный документ и где это произошло. |
Не подлежат возврату в качестве неосновательного обогащения: 1) имущество, переданное во исполнение обязательства до наступления срока исполнения, если обязательством не предусмотрено иное; 2) имущество, переданное во исполнение обязательства по истечении срока исковой давности; 3) заработная плата и приравненные к ней платежи, пенсии, пособия, стипендии, возмещение вреда, причиненного жизни или здоровью, алименты и иные денежные суммы, предоставленные гражданину в качестве средства к существованию, при отсутствии недобросовестности с его стороны и счетной ошибки; 4) денежные суммы и иное имущество, предоставленные во исполнение несуществующего обязательства, если приобретатель докажет, что лицо, требующее возврата имущества, знало об отсутствии обязательства либо предоставило имущество в целях благотворительности. Президент Российской Федерации Б.Ельцин Москва, Кремль 26 января 1996 года № 14-ФЗ |
Заявитель хочет добавить в заявку на полезную модель новый, незначительный элемент, не влияющий на основной функционал. Изменит ли добавление этого элемента заявку на полезную модель по существу? Как это соотносится с пунктом 3? |
указание на технический результат, который обеспечивается изобретением или полезной моделью и не связан с техническим результатом, содержащимся в тех же документах. 3. Дополнительные материалы изменяют заявку на промышленный образец по существу, если они содержат изображения изделия, на которых: представлен иной промышленный образец, не удовлетворяющий требованию единства промышленного образца в отношении промышленного образца или группы промышленных образцов, раскрытых на изображениях, принятых к рассмотрению; представлены существенные признаки промышленного образца, отсутствующие на изображениях, представленных на дату подачи заявки, либо представлены изображения изделия, с которых удалены существенные признаки промышленного образца, имеющиеся на изображениях, представленных на дату подачи заявки. 4. Изменения сведений об авторе, о заявителе, в том числе при передаче права на получение патента другому лицу либо вследствие изменения имени автора, имени или наименования заявителя, а та... |
Предположим, патент на изобретение был выдан 1 января 2020 года. Какова максимальная дата окончания действия этого патента, учитывая возможность продления? |
У патентообладателя могут быть запрошены дополнительные материалы, если без них рассмотрение заявления невозможно. Дополнительные материалы должны быть представлены в течение трех месяцев со дня направления такого запроса. Если патентообладатель в этот срок не представит запрошенные материалы или не подаст ходатайство о продлении срока, заявление не удовлетворяется. Срок, установленный для представления дополнительных материалов, может быть продлен федеральным органом исполнительной власти по интеллектуальной собственности не более чем на десять месяцев. При продлении на основании абзаца первого настоящего пункта срока действия исключительного права выдается дополнительный патент с формулой, содержащей совокупность признаков запатентованного изобретения, характеризующую продукт, на применение которого получено разрешение. 3. Срок действия исключительного права на промышленный образец и удостоверяющего это право патента по заявлению патентообладателя может быть неоднократно продлен на п... |
MatryoshkaLoss with these parameters:{
"loss": "MultipleNegativesSymmetricRankingLoss",
"matryoshka_dims": [
768,
512,
256,
128,
64
],
"matryoshka_weights": [
1,
1,
1,
1,
1
],
"n_dims_per_step": -1
}
eval_strategy: epochper_device_train_batch_size: 32per_device_eval_batch_size: 16gradient_accumulation_steps: 16learning_rate: 2e-05num_train_epochs: 4lr_scheduler_type: cosinewarmup_ratio: 0.1bf16: Truetf32: Trueload_best_model_at_end: Trueoptim: adamw_torch_fusedbatch_sampler: no_duplicatesoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: epochprediction_loss_only: Trueper_device_train_batch_size: 32per_device_eval_batch_size: 16per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 16eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 4max_steps: -1lr_scheduler_type: cosinelr_scheduler_kwargs: {}warmup_ratio: 0.1warmup_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: Truefp16: Falsefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Truelocal_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: Trueignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_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_torch_fusedoptim_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: Falsehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseeval_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: Nonedispatch_batches: Nonesplit_batches: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseeval_use_gather_object: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportional| 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.1215 | 10 | 2.5137 | - | - | - | - | - |
| 0.2430 | 20 | 1.6684 | - | - | - | - | - |
| 0.3645 | 30 | 1.2518 | - | - | - | - | - |
| 0.4860 | 40 | 1.0449 | - | - | - | - | - |
| 0.6074 | 50 | 0.8091 | - | - | - | - | - |
| 0.7289 | 60 | 0.8413 | - | - | - | - | - |
| 0.8504 | 70 | 0.7185 | - | - | - | - | - |
| 0.9719 | 80 | 0.6312 | - | - | - | - | - |
| 0.9962 | 82 | - | 0.0598 | 0.0602 | 0.0589 | 0.0543 | 0.0482 |
| 1.0934 | 90 | 0.5904 | - | - | - | - | - |
| 1.2149 | 100 | 0.5254 | - | - | - | - | - |
| 1.3364 | 110 | 0.5023 | - | - | - | - | - |
| 1.4579 | 120 | 0.4618 | - | - | - | - | - |
| 1.5793 | 130 | 0.5092 | - | - | - | - | - |
| 1.7008 | 140 | 0.4446 | - | - | - | - | - |
| 1.8223 | 150 | 0.4493 | - | - | - | - | - |
| 1.9438 | 160 | 0.4418 | - | - | - | - | - |
| 1.9924 | 164 | - | 0.0635 | 0.0638 | 0.0622 | 0.0573 | 0.0535 |
| 2.0645 | 170 | 0.3665 | - | - | - | - | - |
| 2.1860 | 180 | 0.3319 | - | - | - | - | - |
| 2.3075 | 190 | 0.3337 | - | - | - | - | - |
| 2.4290 | 200 | 0.314 | - | - | - | - | - |
| 2.5505 | 210 | 0.3328 | - | - | - | - | - |
| 2.6720 | 220 | 0.3325 | - | - | - | - | - |
| 2.7935 | 230 | 0.3731 | - | - | - | - | - |
| 2.9150 | 240 | 0.3215 | - | - | - | - | - |
| 3.0 | 247 | - | 0.0622 | 0.0618 | 0.0629 | 0.0572 | 0.0556 |
| 3.0364 | 250 | 0.3023 | - | - | - | - | - |
| 3.1579 | 260 | 0.2794 | - | - | - | - | - |
| 3.2794 | 270 | 0.26 | - | - | - | - | - |
| 3.4009 | 280 | 0.2776 | - | - | - | - | - |
| 3.5224 | 290 | 0.2832 | - | - | - | - | - |
| 3.6439 | 300 | 0.2976 | - | - | - | - | - |
| 3.7654 | 310 | 0.2848 | - | - | - | - | - |
| 3.8869 | 320 | 0.2794 | - | - | - | - | - |
| 3.9841 | 328 | - | 0.0657 | 0.0630 | 0.0602 | 0.0573 | 0.0545 |
@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",
}
@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}
}
Base model
FacebookAI/xlm-roberta-base