Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 13
How to use GbrlOl/sft-nomic-bert-test-1 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("GbrlOl/sft-nomic-bert-test-1", trust_remote_code=True)
sentences = [
"¿Cuáles son las instalaciones auxiliares de la Planta Catemu aplicables a la evaluación de riesgos?",
"13 La medida “lavado de ripios con agua” corresponde a un compromiso adquirido por medio de las Resoluciones de \nCalificación Ambiental N°1564/2007 y N°095/2011, de los Proyectos “Ampliación I Planta Catemu” y “Ampliación II Planta \nCatemu” respectivamente.",
"3.11.2.2. Depositación y Compactación de los Relaves Filtrados \nUna vez en la zona de depositación los camiones descargarán los relaves filtrados para ser esparcidos y \ncompactados mediante un buldózer y rodillo vibratorio liso de peso estático no inferior a 8 t. La secuencia \nde llenado del depósito propone iniciar la depositación de relaves desde el sector del Muro de \nConfinamiento Frontal ubicado al Oriente del sitio usando como acceso el mismo Muro y la zona del dren \nalfombra. \nDe acuerdo con esto se propone cargar el depósito en capas de 2 m de altura en forma secuencial hasta \ncubrir todo el depósito. Para cubrir la etapa 1, correspondiente a la primera capa de 2 m, se estima un \ntiempo del orden de 9 meses, tiempo suficiente para que se desarrolle gran parte de la consolidación \nproducto de la sobrecarga aplicada. Una vez cubierta la etapa 1 con 2 m de depositación de relaves se \nprocede a depositar la segunda capa de 2 m de espesor para completar 4 m de altura. Con esta ultima \ndepositación se dispondrá del orden de 9 meses adicionales para la acumulación de material de estéril de \nmina y la construcción de los drenes de la etapa 2. Paralelo a la colocación de material de relaves se \ndeberá colocar un sistema de monitoreo de nivel freático mediante la instalación de piezómetros, de \nmanera de verificar eventuales aumentos de presión de poros por la carga de relaves depositados. \n3.11.2.3. Manejo de Aguas \nEl proyecto considera la segregación de las aguas con el fin de evitar impactos sobre los recursos hídricos \nde la zona. Se distinguen tres formas de manejo de las aguas, de acuerdo a sus características.",
"5.3.3 Evaluación de riesgos instalaciones auxiliares \n \nLos rellenos sanitarios y sitios de almacenamiento temporal de residuos existentes en el área de la faena \nminera quedarán sujeto a las medidas resultantes de los compromisos ambientales y sectoriales adquiridos \npor la Planta Catemu, las medidas sugeridas por el Reglamento de la Ley de Cierre (Decreto 41 de 2012 del \nMinisterio de Minería), y complementadas con las actividades necesarias para mantener la estabilidad física \ny química del sitio en el largo plazo. \n \nLas instalaciones que involucra la siguiente evaluación corresponden a las mostradas en la Tabla 5.8. \n \nTabla 5.8: Infraestructura de la Planta Catemu aplicable a la evaluación de riesgos \nInstalaciones auxiliares – Planta Catemu \nPatio RISES Vertedero de borras SX \nBodega de residuos peligrosos Bodega de residuos domésticos \n \n \ni. Características propias de la Instalación"
]
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-bert-2048 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': 2048, '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})
)
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/sft-nomic-bert-test-1")
# Run inference
sentences = [
'¿Cuál es el público objetivo al que irá dirigida la información referida al cierre de la planta?',
'Plan de Cierre PAG Planta Catemu \nCompañía Explotadora de Minas (CEMIN) \n \n Rev. 0 | 20-04-18 156 | 158 \n12 PROGRAMA DE DIFUSIÓN \n \nA continuación se describe el programa de difusión para el Plan de Cierre de la Planta Catemu. \n \n12.1 Objetivos del programa de difusión \n \nEl programa de difusión del Plan de Cierre de la Planta Catemu contempla los siguientes objetivos: \n \n\uf0a7 Comunicar claramente los alcances del cierre de la faena y los planes asociados; \n\uf0a7 Generar confianza y credibilidad en los distintos públicos relevantes; \n\uf0a7 Conseguir que el tema sea socializado paulatinamente, incluso por los medios de comunicación; \n\uf0a7 Recoger dudas e inquietudes desde la comunidad y público de interés, además de tener espacio para \nresponder. \n \n \n12.2 Público objetivo \n \nEl público objetivo a quién irá dirigida la información refer ida al cierre de la planta corresponde a aquellos \nque se encuentren dentro de área de influencia de la faena. La localidad más cercana a la Planta Catemu, y \nprincipal poblado que forma parte del área de influencia de la planta, corresponde a la comuna de C atemu, \ndistante aproximadamente a 2,5 kilómetros. \n \nAdemás se contempla dentro del público objetivo a las autoridades comunales y regionales, medios de \ncomunicación y a los propios trabajadores de la Planta (quienes serán los primeros en ser informados). \n \n \n12.3 Estrategia de implementación \n \nA nivel general, la estrategia de implementación para la difusión del programa de cierre de la Planta Catemu \nconsidera las siguientes acciones: \n \n\uf0a7 Comunicados y gestión de prensa \n\uf0a7 Reportajes en los medios locales, internos y externos \n\uf0a7 Profundizar programas comunitarios vinculados al medio ambiente con el objetivo de minimizar los \nefectos que tendrá el Plan de Cierre.',
'En Adenda Nº 1 el titular señala que “las aguas que infiltren a través del depósito de relaves filtrados \n(aguas de contacto) serán recogidas por el sistema de drenaje basal y se mezclaran con las aguas que \nemergen desde el acuífero que subyace en la zona de emplazamiento del depósito. La mezcla será \ndescargada (en D) al curso de agua que se ubica aguas abajo del depósito de relaves, el que después de \nrecorrer unos 500 metros descarga al estero San Antonio. Como se puede apreciar en el Anexo B de la \nDIA, y que es nuevamente presentado con mayores detalles en el Anexo A de la presente Adenda, no \nexisten efectos significativos sobre los recursos hídricos del sector, producto de esta descarga. Sin \nperjuicio de lo anterior, en el caso que los monitoreos detecten que el agua proveniente del Sistema de \nDrenaje Basal no se comporte de acuerdo a lo esperado, estas aguas pueden ser derivadas a la piscina \nde sedimentación para luego ser consumidas en la Planta Concentradora o ser enviadas al sistema de \nmanejo de aguas minas (aguas de contacto) que posee SCMET y que se encuentra debidamente \nautorizado .” \nCalidad de las Aguas \nAdenda N°2 SCMET propone que los niveles de calidad que detonaran el envío de las aguas de contacto, \nrecolectadas por el Sistema de Drenaje Basal, hacia la Piscina de Sedimentación sean la superación de \numbrales (en el estero San Antonio aguas debajo de la confluencia con el cauce receptor de las aguas de',
]
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]
query, sentence, and label| query | sentence | label | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| query | sentence | label |
|---|---|---|
se detallan antecedentes hidrogeológicos? |
Familias típicas son las tetracondráceas, centrolepidáceas, eucrifiáceas, donatiáceas, etc. Hay |
0 |
¿Se utilizaron antecedentes hidrogeológicos? |
En el área de las quebradas las especies encontradas corresponden a fauna altiplánica típica |
0 |
Indica si se utiliza Proctor Modificado, o Normal o Estándar para compactar el relave filtrado, y cuál es el nivel de compactación |
Retiro de Equipos |
0 |
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.6309 |
| 4.7805 | 200 | 2.8633 |
| 7.1463 | 300 | 3.3706 |
| 9.5366 | 400 | 3.1291 |
| 11.9268 | 500 | 4.1928 |
| 14.2927 | 600 | 2.4727 |
| 16.6829 | 700 | 1.3169 |
| 19.0488 | 800 | 0.963 |
| 21.4390 | 900 | 0.9983 |
| 23.8293 | 1000 | 0.4952 |
| 26.1951 | 1100 | 0.2591 |
| 28.5854 | 1200 | 0.3327 |
| 30.9756 | 1300 | 0.0557 |
| 33.3415 | 1400 | 0.0996 |
| 35.7317 | 1500 | 0.0834 |
| 38.0976 | 1600 | 0.073 |
| 40.4878 | 1700 | 0.1392 |
| 42.8780 | 1800 | 0.1817 |
| 45.2439 | 1900 | 0.1283 |
| 47.6341 | 2000 | 0.0715 |
| 50.0244 | 2100 | 0.0306 |
| 52.3902 | 2200 | 0.0123 |
| 54.7805 | 2300 | 0.0 |
| 57.1463 | 2400 | 0.0005 |
| 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
nomic-ai/nomic-bert-2048