Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 14
How to use uhyeonjong/fine-tuned-petitions-model with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("uhyeonjong/fine-tuned-petitions-model")
sentences = [
"이명박 무조건 출금!!!! 이명박 전대통령의 해외 출국은 지금 시점에서 절대 안됩니다. 출국 무조건 금지",
"이명박 무조건 출금!!!! 이명박 전대통령의 해외 출국은 지금 시점에서 절대 안됩니다. 출국 무조건 금지",
"시험지 배분된 상태에서 수능연기반대입니다 면접준비도해야되고 내일에 맞춰서 모든 일정을 소화했는데 12시간 전에 갑작스래 바꾸고 시험지도 나간 상태에서 다시 수거하기도 애매한데 연기는 말도 안됩니다",
"일자리, 취업을 보장하겠다고 학생들을 받고 졸업후에는 국가가 정부가 학교가 책임을 먹고사는 문제까지 책임을 질 필요가 있냐고 나몰라라 합니다. 많은 과가 개설된 가운데, 졸업하고 갈곳을 잃은 사람들이 너무나 많습니다. 졸업을 하고 5년안에 직장을 구하지 못하면, 계속해서 찾고 찾고 또 찾아야합니다. 청년과 부모가 서로 웃을 수 있고, 사람들이 여유로워서 자발적으로 배려와 타협이 이뤄질 수 있게 해야지 강압적으로 봉사활동 몇시간 채워야 졸업, 학점 몇점 받아야 졸업, 커트라인 몇점 해야 합격 하면 사람을 등급으로 매기고 서로 경쟁만이 살길이라는 것을 알려주고, 주입하는 식의 교육밖에 되지 않습니다. 정부는 학교의 목적을 교육에 두고 있으나, 그 교육이 과연 학생들이 사설기관인 학원을 찾을 정도라면 이는 분명 어딘가는 잘못되었다는 것입니다. 적폐청산만 앞장 설것이 아니라 잘못되었던 것은 바로 잡아 주어야 합니다."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L6-v2. 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, 'architecture': '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("uhyeonjong/fine-tuned-petitions-model")
# Run inference
sentences = [
'이명박 출금금지 이명박 출극금지 이명박 수사후 구속 탈탈 털어서 엄벌에 처하기 바랍니다.',
'이명박 출금금지 이명박 출극금지 이명박 수사후 구속 탈탈 털어서 엄벌에 처하기 바랍니다.',
'장애연금을받기위해전에것을장애6급을다시살릴주길희망합니다 청와대에서 어떻게할는지모르지만 전에는중증장애가되어는데지금효력이없다고관할부서에서 이야기하는데 이것을다시살리수가없나요 나는다시살려서장애연금을받고자하는데 해줄수없나요 ? 부탁합니다',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 1.0000, 0.5313],
# [1.0000, 1.0000, 0.5313],
# [0.5313, 0.5313, 1.0000]])
sentence_0, sentence_1, and label| sentence_0 | sentence_1 | label | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| sentence_0 | sentence_1 | label |
|---|---|---|
이명박출국금지 이명박의 비리관련수사를 위해 출국금지를 요청합니다. |
이명박출국금지 이명박의 비리관련수사를 위해 출국금지를 요청합니다. |
15 |
1월 1일은 만두를 빚는 날입니다. 가족끼리 떡국과 함께 한살 더 먹는 우리의 문화를 집에서 오순도순 만두를 빚으며 어지러운 세상 속을 헤쳐나갑시다. 솔직히 시중판매되는 만두는 맛이 없잖아요~~ 저는 계속 설사하던데.. 만두 많이 빚을 수 있게 집좀 고쳐주세용용! |
1월 1일은 만두를 빚는 날입니다. 가족끼리 떡국과 함께 한살 더 먹는 우리의 문화를 집에서 오순도순 만두를 빚으며 어지러운 세상 속을 헤쳐나갑시다. 솔직히 시중판매되는 만두는 맛이 없잖아요~~ 저는 계속 설사하던데.. 만두 많이 빚을 수 있게 집좀 고쳐주세용용! |
5 |
이명박 출국 금지 이명박 출국 금지합니다. 제발 부탁드립니다. |
이명박 출국 금지 이명박 출국 금지합니다. 제발 부탁드립니다. |
12 |
SoftmaxLossper_device_train_batch_size: 32per_device_eval_batch_size: 32num_train_epochs: 4fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 32per_device_eval_batch_size: 32per_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: 4max_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: 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}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_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: Falsehub_revision: Nonegradient_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: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.3111 | 500 | 2.7432 |
| 0.6223 | 1000 | 2.6975 |
| 0.9334 | 1500 | 2.6793 |
| 1.2446 | 2000 | 2.6625 |
| 1.5557 | 2500 | 2.6566 |
| 1.8668 | 3000 | 2.649 |
| 2.1780 | 3500 | 2.6422 |
| 2.4891 | 4000 | 2.6375 |
| 2.8002 | 4500 | 2.6328 |
| 3.1114 | 5000 | 2.6301 |
| 3.4225 | 5500 | 2.6268 |
| 3.7337 | 6000 | 2.6232 |
@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",
}
Base model
nreimers/MiniLM-L6-H384-uncased