Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 15
How to use trongvox/Phobert-Sentence with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("trongvox/Phobert-Sentence")
sentences = [
"Beefsteak 123 la mot dia chi ban banh mi chao, beefsteak cuc ngon tai Can Tho ma ban nen mot gan ghe den. Khong gian quan rong rai, sach se, phuc vu nhanh nhen, gia ca hop ly. Banh mi chao duong Nguyen Van Troi noi tieng ban banh mi thom ngon, chat luong. Banh mi tai day chia ra lam 2 phan: co thit bo ma khong thit bo.\n\nQuan Beefsteak 123 la mot dia diem ly tuong cho nhung nguoi yeu thich thit bo va cac mon an ngon khac. Quan noi tieng voi su ket hop tuyet voi giua thit bo, pate va trung op la. Neu ban muon thu nhung mon khac, quan cung co san xuc xich, ca moi, cha lua va xiu mai. Menu cua quan duoc chia thanh tung phan da duoc ket hop san de ban de dang lua chon. Vi du nhu bo op la pate xuc xich hoac bo op la pate cha lua. Ban cung co the tao ra cac to hop rieng cua rieng minh nhu op la ca moi xiu mai.Mot dieu dac biet khi den quan la khi ban goi mot phan, ban se duoc tang mien phi mot dia xa lach tron. Day la cach hoan hao de ket hop khau vi cua ban voi cac loai rau song tuoi ngon.Voi khong gian thoai mai va phuc vu nhanh chong, quan Beefsteak 123 mang den cho ban trai nghiem am thuc doc dao va ngon mieng. Hay ghe tham quan de thuong thuc nhung mon an tuyet voi nay!\n\nTHONG TIN LIEN HE:\nDia chi: 9B Nguyen Van Troi, Phuong Xuan Khanh, Can Tho\nDien thoai: 0907 713 458\nGio mo cua: 06:00 - 14:00\nGia tham khao: 20.000d - 40.000d\nFanpage: https://www.facebook.com/Beefsteak-123-143170999350605/\n\n Goi dien",
"Beefsteak 123 - Nguyen Van Troi",
"Pho Ngon 37",
"Khong tra no hay chi tien ngay Tet"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from vinai/phobert-base. 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': 128, 'do_lower_case': False}) with Transformer model: RobertaModel
(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("trongvox/Phobert-Sentence")
# Run inference
sentences = [
'Noi tieng ve do lau doi va huong vi mon an nay o Ha Noi thi phai ke den hang Banh Duc Nong Thanh Tung. Banh o day hap dan o do deo dai cua bot, thit nam du day va nem nem vua mieng. Khi phuc vu, mon an nong sot toa ra mui huong thom lung tu bot, hanh phi, nuoc mam. Mon banh duc o day duoc chan ngap nuoc mam pha loang vi ngot, hoi man man, co thit bam voi nam meo va rat nhieu hanh kho da phi vang.Mon banh duc o Banh Duc Nong Thanh Tung duoc chan ngap nuoc mam pha loang vi ngot, hoi man man, co thit bam voi nam meo va rat nhieu hanh kho da phi vang. Cach an nay hoi giong voi mon banh gio chan nuoc mam thit bam o quan pho chua Lang Son gan cho Ban Co. La mon qua an nhe nhang, vua du lung lung bung, co ve dan da nen rat nhieu nguoi them them, nho nho. Banh duc nong Ha Noi o day khong bi pha them bot dau xanh nen van giu nguyen duoc huong vi dac trung. Dac biet, phan nhan con duoc tron them mot it cu dau xao tren ngon lua lon nen giu duoc do ngot gion.THONG TIN LIEN HE:Dia chi: 112 Truong Dinh, Quan Hai Ba Trung, Ha NoiGio mo cua: 10:00 - 21:00Dia diem chat luong: 4.7/5 (14 danh gia tren Google)\n Chi duong Danh gia Google',
'Banh Duc',
'Banh bi do',
]
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]
sentence_0 and sentence_1| sentence_0 | sentence_1 | |
|---|---|---|
| type | string | string |
| details |
|
|
| sentence_0 | sentence_1 |
|---|---|
Mamadeli la mot dia chi giup ban giai quyet con them com ga, mi y chuan vi nhat. Nhan vien tai quan nay kha de chiu va chieu khach. Mot suat com ga ta bao gom mot phan com mem, thit ga ta xe thom phuc va dia nuoc mam gung chan voi sot trung rat dam da.Giua long Sai Gon hoa le lai co huong vi cua mon com ga nuc tieng thi con dieu gi khien ban ban khoan ma khong thuong thuc nhi. Thuc don phong phu, gia ca phai chang voi huong vi mon an hoan hao dung vi hap dan la li do giup quan thu hut duoc dong dao khach hang ghe toi thuong xuyen. |
Mamadeli - Com ga & Mi y |
Nguyen lieu:Thit heo xay 300 gr Toi bam 2 muong ca phe Hanh tim bam 2 muong ca phe Gung bam 1 muong ca phe Nuoc mam 1/2 muong canh Nuoc tuong 1 muong canh Bot nang 2 muong canh Giam an 2 muong canh Tuong ca 3 muong canh Dau an 2 muong canh Duong 4 muong canh Muoi 1/4 muong canhCach che bien Thit vien kho chua ngotUop thitBan uop thit voi 2 muong ca phe toi bam, 2 muong ca phe hanh tim, 1 muong ca phe gung bam, 1/4 muong ca phe muoi, 1/2 muong canh nuoc mam, 1 muong canh nuoc tuong, 2 muong canh bot nang.Sau do, ban tron deu de cac gia vi ngam vao nhau va uop khoang 15 phut. |
Thit vien kho chua ngot |
Nguyen lieu:1kg oc1 cu gungHanh khoToi, otSa teNuoc mam, bot ngot, duong...Cach lam:Oc giac khi mua ve, ban cung dem rua sach, roi ngam voi nuoc vo gao co cat them voilat ot trong 3 tieng de oc nhanh nha chat ban ra.Gung ban dem cao vo rua sach, bam nho.Hanh kho, toi boc sach vo. Hanh kho ban thai lat mong, con toi thi bam nhuyen.Ot tuoi rua sach, thai lat.Sau khi ngam xong, ban dem oc giac luoc voi nuoc co cho them vai lat gung hoac sa dap dap. Khi oc chin, ban lay thit oc ra cat lat va de ra dia. Dat chao len bep, cho dau an vao, khi dau soi ban cho hanh kho va toi vao phi thom. Tiep den, ban cho vao 3 muong sa te, ot cat lat, dao deu tay. Dao khoang 5 phut, ban cho oc vao deu roi nem nem voi nuoc mam, duong, bot ngot sao cho vua khau vi. Xao oc khoang 10 phut nua thi tat bep.Vay la hoan thanh mon an roi, gio day ban chi can cho mon an ra dia va cho them vai soi rau ram len tren la xong! |
Oc giac xao sa te |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim"
}
per_device_train_batch_size: 16per_device_eval_batch_size: 16multi_dataset_batch_sampler: round_robinoverwrite_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: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 3max_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: Falseuse_ipex: Falsebf16: Falsefp16: Falsefp16_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: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 0.7042 | 500 | 0.9125 |
| 1.4085 | 1000 | 0.2277 |
| 2.1127 | 1500 | 0.1527 |
| 2.8169 | 2000 | 0.1009 |
@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{henderson2017efficient,
title={Efficient Natural Language Response Suggestion for Smart Reply},
author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
year={2017},
eprint={1705.00652},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
Base model
vinai/phobert-base