Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 12
This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L6-v2 on the json dataset. It maps sentences & paragraphs to a 384-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': 256, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 384, '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("GbrlOl/ft-all-MiniLM-L6-v2-geotechnical-semanticidad-test-2")
# Run inference
sentences = [
'¿Qué compromisos ambientales voluntarios ha adquirido el titular del proyecto "Depósito de Relaves Filtrados Doña Rosa"?',
'Ordinario N° 57 de fecha 25 de Enero de 2011 \ninformó favorablemente. \n5. Que, en lo relativo a los efectos, características y circunstancias señalados en los literales “a”, "b", “c”, \n“d”, “e” y “f”, del artículo 11 de la Ley 19.300, y sobre la base de los antecedentes que constan en el \nexpediente de la evaluación, debe indicarse que el proyecto "Depósito de Relaves Filtrados Doña Rosa” \nno genera ni presenta ninguno de tales efectos, características y circunstancias. \n6.- Que, en el proceso de evolución de proyecto " Depósito de Relaves Filtrados Doña Rosa”, el titular \nha adquirido los siguientes compromisos ambientales voluntarios: \nEl proyecto contempla el monitoreo de aguas superficiales y subterráneas. Respecto a la periodicidad de \nmonitoreo, este será cuatrimestral durante los tres primeros años de operación del proyecto. Una vez \ncumplidos los tres años iniciales, se analizarán los resultados. Sobre la base de dicho análisis el titular \npropondrá fundadamente cambios a los parámetros, puntos y frecuencias de monitoreo, si es que los \nresultados así lo ameritan. \nEn la siguiente tabla se presentan las coordenadas de los puntos de control de calidad de aguas, tanto \nsuperficiales como subterráneas.',
'1). \n4.2 Del Proyecto de Depósito de Relaves \n4.2.1 Definición \n\x7f Cierre: Hecho que el depósito de relaves deje de operar por un plazo mayor de dos años o en forma \ndefinitiva o cuando se da por terminada su vida útil y se han efectuado las acciones tendientes a \nasegurar la obra en el tiempo. \n\x7f Proyecto de Depósitos de Relaves: el conjunto de estudios técnicos requeridos para la definición de \nun sistema de disposición de relaves, incluyendo etapas de investigación, prospección, diseño, \nevaluación y construcción, cuyos resultados se encuentran en una serie de documentos que para \ngarantizar la estabilidad física y química del depósito y su entorno, con el fin de proteger a las \npersonas, bienes y medio ambiente. (Art. 5). \n\x7f Cierre final: Conclusión definitiva de las actividades para el cierre de todas las labores, áreas \ne instalaciones de una unidad minera, que por razones operativas, no hayan podido cerrarse \ndurante la etapa productiva o comercial, de modo tal que se garantice el cumplimiento de los \nobjetivos de cierre contemplados en el Plan de Cierre de Minas aprobado y cuya adecuada \nejecución ha sido verificada a través de una auditoría integral dispuesta por la autoridad \ncompetente, sin perjuicio de las actividades de post cierre que deberán continuar ejecutándose en \nel marco de la legislación ambiental vigente. \n\x7f Estabilidad física: Comportamiento estable en el corto, mediano y largo plazo de los componentes o',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
query, sentence, and label| query | sentence | label | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| query | sentence | label |
|---|---|---|
¿Cuál es el volumen máximo estimado de aguas servidas generadas por el personal durante la etapa de construcción del proyecto? |
3.11.5.2. Efluentes Líquidos |
1 |
¿Dónde no deben ser depositados los materiales de baja calidad para evitar problemas de inestabilidad? |
Esto podría incluir material afectado por Steam Heated |
1 |
¿Cuál es la altura máxima del botadero Cachinalito? |
25 |
1 |
CoSENTLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "pairwise_cos_sim"
}
per_device_train_batch_size: 16per_device_eval_batch_size: 16learning_rate: 2e-05num_train_epochs: 100warmup_ratio: 0.1fp16: Truebatch_sampler: no_duplicatesoverwrite_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: 2e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 100max_steps: -1lr_scheduler_type: linearlr_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: Falsefp16: Truefp16_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}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_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: 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: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportional| Epoch | Step | Training Loss |
|---|---|---|
| 2.3902 | 100 | 4.7321 |
| 4.7805 | 200 | 2.4273 |
| 7.1463 | 300 | 0.9425 |
| 9.5366 | 400 | 0.2229 |
| 11.9268 | 500 | 0.1093 |
| 14.2927 | 600 | 0.0061 |
| 16.6829 | 700 | 0.0053 |
| 19.0488 | 800 | 0.0057 |
| 21.4390 | 900 | 0.0005 |
| 23.8293 | 1000 | 0.0002 |
| 26.1951 | 1100 | 0.0 |
| 28.5854 | 1200 | 0.0 |
| 30.9756 | 1300 | 0.0001 |
| 33.3415 | 1400 | 0.0 |
| 35.7317 | 1500 | 0.0 |
| 38.0976 | 1600 | 0.0 |
| 40.4878 | 1700 | 0.0 |
| 42.8780 | 1800 | 0.0 |
| 45.2439 | 1900 | 0.0 |
| 47.6341 | 2000 | 0.0 |
| 50.0244 | 2100 | 0.0 |
| 52.3902 | 2200 | 0.0 |
| 54.7805 | 2300 | 0.0 |
| 57.1463 | 2400 | 0.0 |
| 59.5366 | 2500 | 0.0 |
| 61.9268 | 2600 | 0.0 |
| 64.2927 | 2700 | 0.0 |
| 66.6829 | 2800 | 0.0 |
| 69.0488 | 2900 | 0.0 |
| 71.4390 | 3000 | 0.0 |
| 73.8293 | 3100 | 0.0 |
| 76.1951 | 3200 | 0.0 |
| 78.5854 | 3300 | 0.0 |
| 80.9756 | 3400 | 0.0 |
| 83.3415 | 3500 | 0.0 |
| 85.7317 | 3600 | 0.0 |
| 88.0976 | 3700 | 0.0 |
| 90.4878 | 3800 | 0.0 |
| 92.8780 | 3900 | 0.0 |
| 95.2439 | 4000 | 0.0 |
| 97.6341 | 4100 | 0.0 |
@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",
}
@online{kexuefm-8847,
title={CoSENT: A more efficient sentence vector scheme than Sentence-BERT},
author={Su Jianlin},
year={2022},
month={Jan},
url={https://kexue.fm/archives/8847},
}
Base model
sentence-transformers/all-MiniLM-L6-v2