Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use anhtk/bge-m3-vietnamese-psychology with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("anhtk/bge-m3-vietnamese-psychology")
sentences = [
"Con trai bực tức khóa trái cửa chơi điện thoại, xảy ra xung đột lớn, sau đó phải làm sao?",
"Nữ 20 tuổi, gần hai năm nay luôn dùng bạo lực để giải tỏa cảm xúc?. Mỗi khi có xung đột với bố mẹ và em gái, tôi thường trốn vào góc khóc, tự tát vào mặt mình hoặc đập đầu vào tường. Tôi ghét mẹ và sợ mình sẽ trở thành người phụ nữ giống bà. Tôi từng cầm dao định cắt cổ tay nhưng sợ đau nên không dám. Từ khóa liên quan: gia đình, sang chấn gia đình, quan hệ gia đình, giao tiếp với cha mẹ",
"Tại sao tôi luôn cảm thấy lo lắng khi phải thừa nhận mình 'đang bận' và không thể giúp đỡ đồng nghiệp ngay lập tức?. Tôi sợ mọi người sẽ nghĩ tôi ích kỷ hoặc không có tinh thần đồng đội. Nỗi sợ này khiến tôi luôn gác việc của mình lại để làm hộ người khác và thường xuyên phải tăng ca. Từ khóa liên quan: người luôn làm hài lòng (people pleaser), ranh giới công việc, lo âu, sự nghiệp",
"Làm thế nào để xử lý mâu thuẫn khi mẹ tôi liên tục can thiệp vào việc nuôi dạy con cái của tôi?. Con trai tôi mười hai tuổi, học lớp năm, gần đây cứ nói không muốn đi học, tôi phải làm sao đây. Từ khóa liên quan: nuôi dạy con cái, mâu thuẫn xung đột xung đột xung đột xung đột thế hệ, ranh giới gia đình, giao tiếp"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from BAAI/bge-m3. It maps sentences & paragraphs to a 1024-dimensional dense vector space and can be used for retrieval.
SentenceTransformer(
(0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'XLMRobertaModel'})
(1): Pooling({'embedding_dimension': 1024, 'pooling_mode': 'cls', '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("sentence_transformers_model_id")
# Run inference
sentences = [
'Sự ngụy trang trong giao tiếp là biểu hiện của sự thiếu tự tin hay là một phần của cuộc sống?',
'Tôi là một người chuyển giới song tính, tôi phải làm sao đây?. Tôi đã từng yêu cả đàn ông lẫn phụ nữ, sau này tôi phát hiện giới tính sinh học của mình là nữ nhưng bản dạng giới là nam, tôi có sự thôi thúc muốn yêu cả phụ nữ và đàn ông. (Đối với đàn ông, tôi có chút bài trừ về mặt sinh lý và tiếp xúc thể xác, phụ nữ thì không. Trong trường hợp không phát sinh quan hệ thì bao gồm cả đàn ông). Từ khóa liên quan: tình yêu, xu hướng tính dục',
'Người yêu mình thấy mình có chứng cưỡng chế, không có tình điệu, hai chúng mình ai có biểu hiện chứng cưỡng chế?. Thường thì trước tivi sẽ có một cái kệ tivi, người yêu mình thích đặt một bình hoa cắm hoa trên kệ tivi để trang trí phòng khách. Nhưng bình hoa, hoa xòe ra sẽ che mất một phần tivi. Lúc xem tivi, mình cho rằng có vật che chắn nhìn không thoải mái, người yêu mình thấy mình có chứng cưỡng chế, vả lại không có tình điệu cuộc sống. Từ khóa liên quan: hành vi, cưỡng chế',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000, -0.7952, -0.7853],
# [-0.7952, 1.0000, 0.9406],
# [-0.7853, 0.9406, 1.0000]])
sentence_0, sentence_1, and sentence_2| sentence_0 | sentence_1 | sentence_2 | |
|---|---|---|---|
| type | string | string | string |
| details |
|
|
|
| sentence_0 | sentence_1 | sentence_2 |
|---|---|---|
Làm sao để kiềm chế sự nhạy cảm thái quá trước lời phán xét và ánh mắt của người khác? |
Em cảm thấy vô năng khi không giải quyết được vấn đề của thân chủ, em nên làm gì ạ?. Càng lớn lên, em càng thấy nhiều mặt tối tăm hơn. Bây giờ em mới hiểu, hóa ra con người có thể không có nguyên tắc, không có giới hạn; hóa ra "điều mà mình không muốn thì đừng làm cho người khác" toàn là giả dối; hóa ra "người ngốc" không có "phúc ngốc". Tại sao lại phải trở nên "thông minh, độc lập, kiên cường". Từ khóa liên quan: nhà tư vấn mới, cảm giác vô năng, giám sát chuyên môn |
Làm sao để kiềm chế sự nhạy cảm thái quá trước lời phán xét của người khác?. Trưởng thành rồi thì càng ngày càng lý trí hơn. Xin hỏi làm sao để làm được việc cân bằng giữa cảm tính và lý trí. Từ khóa liên quan: đánh giá bên ngoài, nhạy cảm, điều chỉnh tâm lý |
Nữ sinh 14 tuổi, mấy năm nay luôn có ý định tự sát, em phải làm sao đây? |
Phụ huynh luôn coi em là đồ vô dụng. Mọi rắc rối trong nhà đều là lỗi của em. Bà ngoại đòi mua vé về quê cũng bảo là do thái độ của em không tốt; mẹ gọi điện thoại đột nhiên quát mắng em, cũng bảo là do em làm cao, có ý kiến với mẹ; hai mẹ con ở hai phòng khác nhau nhắn tin qua lại, em dùng điện thoại thì mẹ chê em lười biếng, vô dụng, em nói to thì mẹ chê thái độ em không tốt, dám quát mẹ, đến trước mặt nói chuyện thì mẹ lại chê mặt em sưng sỉa. Từ khóa liên quan: gia đình, quan hệ gia đình, người nhà kiểm soát |
Nữ sinh 17 tuổi, nửa năm nay luôn bất ổn cảm xúc, hay cáu gắt với người thân?. Không có gì xảy ra cả, nhưng tôi lại rất buồn. Mất ngủ, đau đầu, tính khí nóng nảy, dễ nổi cáu, không thể tập trung. Tôi từng nghĩ đến việc làm hại bản thân, nhưng sợ ảnh hưởng về sau nên đành bỏ ý định đó. Từ khóa liên quan: cảm xúc, trầm cảm, điều tiết cảm xúc |
Tại sao mỗi lần cãi nhau, bạn trai lại luôn không đi làm vào ngày hôm sau? |
Tôi là một người chuyển giới song tính, tôi phải làm sao đây?. Tôi đã từng yêu cả đàn ông lẫn phụ nữ, sau này tôi phát hiện giới tính sinh học của mình là nữ nhưng bản dạng giới là nam, tôi có sự thôi thúc muốn yêu cả phụ nữ và đàn ông. (Đối với đàn ông, tôi có chút bài trừ về mặt sinh lý và tiếp xúc thể xác, phụ nữ thì không. Trong trường hợp không phát sinh quan hệ thì bao gồm cả đàn ông). Từ khóa liên quan: tình yêu, xu hướng tính dục |
Hôm nay là sinh nhật mình, năm nào cũng cãi nhau với bạn trai, nỗi uất ức không nói nên lời?. Tại sao năm nào mình đón sinh nhật, bạn trai cũng luôn làm mình không vui. Năm nay mình 24 tuổi, ở bên anh ấy được 1009 ngày. Mình thực sự rất chú trọng cảm giác nghi thức, đặc biệt là sinh nhật mỗi năm chỉ có một lần, mình muốn đón thật tử tế, nhưng mình thậm chí còn chẳng có lấy một tấm ảnh nào để đăng lên mạng xã hội. Từ khóa liên quan: tình yêu, cãi nhau, vận hành tình yêu |
TripletLoss with these parameters:{
"distance_metric": "TripletDistanceMetric.EUCLIDEAN",
"triplet_margin": 5
}
per_device_train_batch_size: 32per_device_eval_batch_size: 32num_train_epochs: 1multi_dataset_batch_sampler: round_robindo_predict: Falseprediction_loss_only: Trueper_device_train_batch_size: 32per_device_eval_batch_size: 32gradient_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: Nonewarmup_ratio: Nonewarmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Falsebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}accelerator_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: Nonegroup_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: Truepush_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_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_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: Trueuse_cache: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.4092 | 500 | 4.8636 |
| 0.8183 | 1000 | 4.1564 |
@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{hermans2017defense,
title={In Defense of the Triplet Loss for Person Re-Identification},
author={Alexander Hermans and Lucas Beyer and Bastian Leibe},
year={2017},
eprint={1703.07737},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Base model
BAAI/bge-m3