CoolFace
Modelpublic

trongvox/phobert-semactic-retrival-food

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes91downloads
Model Card

SentenceTransformer based on vinai/phobert-base

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.

Model Details

Model Description

  • —Model Type: Sentence Transformer
  • —Base model: vinai/phobert-base <!-- at revision c1e37c5c86f918761049cef6fa216b4779d0d01d -->
  • —Maximum Sequence Length: 128 tokens
  • —Output Dimensionality: 768 dimensions
  • —Similarity Function: Cosine Similarity <!-- - Training Dataset: Unknown --> <!-- - Language: Unknown --> <!-- - License: Unknown -->

Model Sources

Full Model Architecture

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})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

bash
pip install -U sentence-transformers

Then you can load this model and run inference.

python
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("trongvox/phobert-semactic-retrival-food")
# Run inference
sentences = [
    'Nguyên liệu: Cho 3 người\nCá mút đá 1 kg Ớt 1 muỗng canhLá chanh 20 gr Hành tím băm 2 muỗng cà phê Sa tế 2 muỗng canhDụng cụ thực hiện: Bếp nướng điện, tô, muỗng, dao,...\n\nCách làm Cá mút đá nướng sa tế:\nSơ chế cá mút đá:\nDùng một vật nhọn giữ cố định đầu của cá mút đá, sau đó dùng dao rạch phần bụng và loại bỏ hết phần ruột của cá ra.Tiếp theo dùng dao lóc thịt và bỏ phần da nhờn của cá đi. Tùy theo món ăn và kích thước cá mà chúng ta sẽ cắt thành những đoạn vừa ăn. Bên cạnh đó, bạn có thể mua cá mút đá chế biến sẵn và được giữ đông, chúng vẫn giữ được hương vị, độ tươi ngon. Đây là cách dễ dàng nhất bạn không phải tốn công chế biến cá mút đá. Mua về chỉ cần cắt nhỏ, ướp gia vị là có thể nấu được ngay.\nCách sơ chế cá sạch, hết nhớt\nCách 1: bạn hãy lấy giấm tưới lên thân cá, chờ trong vài phút để nhớt trên thân cá đông lại, lúc này bạn có thể dễ dàng dùng dao cạo hết lớp nhớt đã đông này đi đấy.Cách 2: sau khi mua cá về, dùng nước nóng già đổ lên thân cá. Chú ý không được để nước sôi vì sẽ làm tróc da và làm chín lớp cá bên ngoài đấy. Sau khi đổ đợi lớp nhớt đông lại và dùng dao cạo lớp nhớt đi sau đó rửa sạch. Để đảm bảo cá sạch nhớt, sau khi cạo cũng nên rửa lại bằng giấm hay chanh.Chú ý: Để loại bỏ nhớt, mùi tanh của cá do tiết thừa còn đọng lại khi bạn làm thịt cá, sau khi chế biến thịt thì bạn hãy rửa thật kĩ, đặc biệt là phần bụng và xương sống cá để loại bỏ máu đọng lại. Bằng cách như vậy thì cá của bạn sẽ bớt đi mùi tanh rất nhiều đấy!\nƯớp cá:\nCho cá vào tô cùng với 1 muỗng canh ớt, 20gr lá chanh, 2 muỗng cà phê hành tím băm và 2 muỗng canh sa tế. Dùng tay trộn đều cho cá thấm đều gia vị, sau đó ướp trong 15 phút.\nNướng cá:\nCho cá lên bếp nướng điện hoặc lên dĩa nướng với than, nướng đến khi cá vừa chín tới, không nướng quá chín làm cá khô, mất đi độ ngon của món ăn.\nThành phẩm: Thịt cá dai dai, gia vị đậm đà, cay cay của sa tế, nhất định sẽ gây ấn tượng cho cả gia đình bạn đấy!',
    'Cá mút đá (cá ninja) nướng sa tế',
    'Miến xào chả cá',
]
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]

<!--

Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details> -->

<!--

Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details> -->

<!--

Out-of-Scope Use

List how the model may foreseeably be misused and address what users ought not to do with the model. -->

<!--

Bias, Risks and Limitations

What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->

<!--

Recommendations

What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->

Training Details

Training Dataset

Unnamed Dataset
  • —Size: 37,424 training samples
  • —Columns: <code>sentence0</code>, <code>sentence1</code>, and <code>label</code>
  • —Approximate statistics based on the first 1000 samples: | | sentence0 | sentence1 | label | |:--------|:-------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------|:---------------------------------------------------------------| | type | string | string | float | | details | <ul><li>min: 83 tokens</li><li>mean: 127.37 tokens</li><li>max: 128 tokens</li></ul> | <ul><li>min: 3 tokens</li><li>mean: 7.27 tokens</li><li>max: 21 tokens</li></ul> | <ul><li>min: 0.0</li><li>mean: 0.49</li><li>max: 1.0</li></ul> |
  • —Samples: | sentence0 | sentence1 | label | |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------|:-----------------| | <code>Nguyên liệu:<br>Thịt nai né: 400grHành tây: 1-1.5 củCần tây: 1-2 câyCà chua:1 quảGia vị: Đường, muối, mì chính, nước mắm, dầu ăn, sa tế, ớt (nếu bạn ăn cay), tỏi băm nhỏ, hành tím khô băm nhỏ.<br>Cách chế biến:<br>Sơ chế và ướp thịt<br>Thịt nai khi mua về xát với muối hột rồi rửa lại với nước sạch và để ráo. Sau đó, cắt thịt thành lát mỏng vừa ăn.Ướp thịt nai với 1/2 phần tỏi, ớt băm, 2 muỗng cà phê bột ngọt, 1 muỗng cà phê hạt nêm, 1 muỗng cà phê đường, 1 muỗng canh sa tế, 1 muỗng canh dầu màu điều. Trộn đều cho thấm gia vị và ướp trong khoảng 5 phút.<br>Thực hiện<br>Cho tỏi, hành khô băm nhỏ vào xào qua, cho thêm cà chua, thịt nai đã ướp vào xào tái. Chú ý khi xào nên để lửa lớn để thịt nai không bị bở.Cho hành tây, cần tây vào xào cùng đến khi chín. Nêm lại gia vị cho vừa miệng.Cho món thịt nai xào hành tây ra đĩa, rắc chút tiêu nếu bạn muốn và thưởng thức.</code> | <code>Thịt nai xào hành tây</code> | <code>1.0</code> | | <code>Là một trong những tín đồ của ăn vặt tại Di Linh mà bỏ qua Gạch Coffee thì quả là một thiếu sót lớn. Gạch Coffee có không gian nhỏ xinh, thích hợp với các bạn tuổi teen, lại có vị trí đắc địa ngay giữa trung tâm thị trấn Di Linh nên đây là một trong những địa điểm hẹn hò thường xuyên của các nhóm bạn thân trong những ngày rảnh rỗi. <br><br>Tiệm chủ yếu thiên về đồ uống như trà, coffee, trà sữa… Ngoài ra, 1 số món ăn vặt cũng được chuẩn bị và chế biến rất công phu như mẹt đồ rán, chân gà sả ớt... hay đặc biệt là mì cay Hàn Quốc rất được yêu thích. Tất cả đều sử dụng nguyên liệu sạch, có sự chọn lựa kĩ lưỡng. Đây là địa điểm tụ tập quen thuộc của các bạn trẻ trong khu vực không chỉ bởi địa thế thuận lợi, dễ tìm kiếm, chị chủ dễ tính, đồ ăn ngon, mà giá thành còn rất sinh viên. <br><br>Ăn uống no nê mà mỗi người chỉ tốn mấy chục. Vì thế khách đã đông nay lại càng đông hơn. Ngoài ra, Gạch Coffee còn thường xuyên cập nhật những món mới, lạ và ngon để khách hàng có dịp thưởng thức. Gạch Coffee nơi lý tư...</code> | <code>Cháo tôm, rau cải</code> | <code>0.0</code> | | <code>Nam o goc duong Phung Hung - Hang Bong, quan Com Tam Quan 1 noi tieng vi vi suon o day uop chuan vi Sai Gon. Khong gian quan rat sach se, co dieu hoa, thich hop de tu hop gia dinh. Do an cua Com tam Quan 1 rat chat luong va dam bao ve sinh. Neu ban chua tim duoc dia chi nhu y thi day la noi hua hen se cho ban nhieu trai nghiem an tuong. Nhan vien kha nhiet tinh va nhanh nhen, than thien va quan rat sach se va ve sinh cung la diem cong cua quan. Dia com trang tri kha don gian nhung chat luong do an cuc cao. Suat dac biet gom co suon, bi, cha, trung, dua chuot, ca rot, cu cai trang,...<br><br>Suon o Com Tam Quan 1 duoc uop dung vi Sai Gon. Thit nuong chay canh, mieng thit ngoai gion trong mem mem. Cha cua quan an rat vua mieng. Canh dau bap va doc mung cua quan ngot va thom, rat chuan vi o Sai Gon. Voi ten tuoi, chat luong thom ngon nhu the, gia ca cua quan cung khong o muc qua binh dan nhung ban co the yen tam vi mot khi lua chon, ban se duoc thuong thuc mot dia com ngon dang tien. Du ban an ...</code> | <code>Cơm Tấm Quận 1</code> | <code>1.0</code> |
  • —Loss: <code>MultipleNegativesRankingLoss</code> with these parameters:
json
  {
      "scale": 20.0,
      "similarity_fct": "cos_sim"
  }

Training Hyperparameters

Non-Default Hyperparameters
  • —per_device_train_batch_size: 16
  • —per_device_eval_batch_size: 16
  • —multi_dataset_batch_sampler: round_robin
All Hyperparameters

<details><summary>Click to expand</summary>

  • —overwrite_output_dir: False
  • —do_predict: False
  • —eval_strategy: no
  • —prediction_loss_only: True
  • —per_device_train_batch_size: 16
  • —per_device_eval_batch_size: 16
  • —per_gpu_train_batch_size: None
  • —per_gpu_eval_batch_size: None
  • —gradient_accumulation_steps: 1
  • —eval_accumulation_steps: None
  • —torch_empty_cache_steps: None
  • —learning_rate: 5e-05
  • —weight_decay: 0.0
  • —adam_beta1: 0.9
  • —adam_beta2: 0.999
  • —adam_epsilon: 1e-08
  • —max_grad_norm: 1
  • —num_train_epochs: 3
  • —max_steps: -1
  • —lr_scheduler_type: linear
  • —lr_scheduler_kwargs: {}
  • —warmup_ratio: 0.0
  • —warmup_steps: 0
  • —log_level: passive
  • —log_level_replica: warning
  • —log_on_each_node: True
  • —logging_nan_inf_filter: True
  • —save_safetensors: True
  • —save_on_each_node: False
  • —save_only_model: False
  • —restore_callback_states_from_checkpoint: False
  • —no_cuda: False
  • —use_cpu: False
  • —use_mps_device: False
  • —seed: 42
  • —data_seed: None
  • —jit_mode_eval: False
  • —use_ipex: False
  • —bf16: False
  • —fp16: False
  • —fp16_opt_level: O1
  • —half_precision_backend: auto
  • —bf16_full_eval: False
  • —fp16_full_eval: False
  • —tf32: None
  • —local_rank: 0
  • —ddp_backend: None
  • —tpu_num_cores: None
  • —tpu_metrics_debug: False
  • —debug: []
  • —dataloader_drop_last: False
  • —dataloader_num_workers: 0
  • —dataloader_prefetch_factor: None
  • —past_index: -1
  • —disable_tqdm: False
  • —remove_unused_columns: True
  • —label_names: None
  • —load_best_model_at_end: False
  • —ignore_data_skip: False
  • —fsdp: []
  • —fsdp_min_num_params: 0
  • —fsdp_config: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}
  • —fsdp_transformer_layer_cls_to_wrap: None
  • —accelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}
  • —deepspeed: None
  • —label_smoothing_factor: 0.0
  • —optim: adamw_torch
  • —optim_args: None
  • —adafactor: False
  • —group_by_length: False
  • —length_column_name: length
  • —ddp_find_unused_parameters: None
  • —ddp_bucket_cap_mb: None
  • —ddp_broadcast_buffers: False
  • —dataloader_pin_memory: True
  • —dataloader_persistent_workers: False
  • —skip_memory_metrics: True
  • —use_legacy_prediction_loop: False
  • —push_to_hub: False
  • —resume_from_checkpoint: None
  • —hub_model_id: None
  • —hub_strategy: every_save
  • —hub_private_repo: None
  • —hub_always_push: False
  • —gradient_checkpointing: False
  • —gradient_checkpointing_kwargs: None
  • —include_inputs_for_metrics: False
  • —include_for_metrics: []
  • —eval_do_concat_batches: True
  • —fp16_backend: auto
  • —push_to_hub_model_id: None
  • —push_to_hub_organization: None
  • —mp_parameters:
  • —auto_find_batch_size: False
  • —full_determinism: False
  • —torchdynamo: None
  • —ray_scope: last
  • —ddp_timeout: 1800
  • —torch_compile: False
  • —torch_compile_backend: None
  • —torch_compile_mode: None
  • —dispatch_batches: None
  • —split_batches: None
  • —include_tokens_per_second: False
  • —include_num_input_tokens_seen: False
  • —neftune_noise_alpha: None
  • —optim_target_modules: None
  • —batch_eval_metrics: False
  • —eval_on_start: False
  • —use_liger_kernel: False
  • —eval_use_gather_object: False
  • —average_tokens_across_devices: False
  • —prompts: None
  • —batch_sampler: batch_sampler
  • —multi_dataset_batch_sampler: round_robin

</details>

Training Logs

EpochStepTraining Loss
0.21385002.3128
0.427510002.0084
0.21385001.7923
0.427510001.8473
0.641315001.8061
0.855120001.8079

Framework Versions

  • —Python: 3.10.12
  • —Sentence Transformers: 3.3.1
  • —Transformers: 4.47.1
  • —PyTorch: 2.5.1+cu121
  • —Accelerate: 1.2.1
  • —Datasets: 3.2.0
  • —Tokenizers: 0.21.0

Citation

BibTeX

Sentence Transformers
bibtex
@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",
}
MultipleNegativesRankingLoss
bibtex
@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}
}

<!--

Glossary

Clearly define terms in order to be accessible across audiences. -->

<!--

Model Card Authors

Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction. -->

<!--

Model Card Contact

Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors. -->