SentenceTransformer based on vinai/phobert-base-v2

This is a sentence-transformers model finetuned from vinai/phobert-base-v2 on the dataset_full_fixed 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.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: vinai/phobert-base-v2
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 256, '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:

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("phobert-base-v2-otc-loss")
# Run inference
sentences = [
    'Viêm mũi dị ứng không chỉ ảnh hưởng trực tiếp tới sức khỏe mà còn gây ra không ít phiền toái trong cuộc sống hằng ngày Xin chào bạn, Bệnh lý Viêm mũi dị ứng cơ chế do phản ứng dị ứng quá mẫn của cơ thể với các tác động của môi trường (không khí lạnh, phấn hoa, bụi bẩn …). Thuốc điều trị chủ yếu là nhóm kháng Histamin (Cetirizine và các loại thuốc tương tự khác), thật ra sử dụng kháng histamin kéo dài là đặc thù của bệnh nhân có bệnh lý dị ứng. Cũng chưa thấy đề cập đến những vấn đề nguy hiểm khi sử dụng thuốc kháng Histamin lâu dài – có vài loại thuốc gây khô họng miệng nhưng không đáng kể và các thế hệ thuốc sau thì tác dụng phụ này ngày càng giảm. Bạn đừng quá lo lắng nữa nhé.\xa0Bên cạnh việc sử dụng thuốc, nhớ làm sạch môi trường sinh hoạt xung quanh để giảm thiểu nguy cơ làm bệnh lý viêm mũi dị ứng nặng hơn. Thân ái chào bạn.',
    'Em có vấn đề thắc mắc xin được Bác sĩ giải đáp giúp ạ.Em đi khám và Bác sĩ kết luận em bị viêm mũi dị ứng. Cho thuốc cetirizin 10 mg ngày uống 1 viên. Prednisolon 5 mg ngày uống 1 viên (Bác sĩ khám có dặn là prednisolon không được uống kéo dài).Khi còn uống thuốc thì em không bị hắt hơi, sổ mũi mà hết uống lại bị. Do bác sĩ dặn kg uống pred kéo dài, nên em chỉ uống cetirizin 10 mg ngày uống 1 viên nhưng ngày nào cũng uống (vì không uống là không cắt được cơn hắt hơi, sổ mũi).Liệu uống cetirizin liên tục trong 1 thời gian dài có bị ảnh hưởng gì không bác sĩ? Nhưng không uống thì em hắt hơi miết không làm được việc gì hết ạ. Em rất bế tắc, mong nhận được hồi âm từ BS!',
    'Chào bác sĩ. Em năm nay 18 tuổi, năm 8 tuổi em bị tai nạn khiến 1 mắt bị lác, vậy giờ em có thể phẫu thuật kéo mắt lại không ạ?',
]
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]

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.6598
cosine_accuracy@3 0.7874
cosine_accuracy@5 0.8307
cosine_accuracy@10 0.8848
cosine_precision@1 0.6598
cosine_precision@3 0.2625
cosine_precision@5 0.1661
cosine_precision@10 0.0885
cosine_recall@1 0.6598
cosine_recall@3 0.7874
cosine_recall@5 0.8307
cosine_recall@10 0.8848
cosine_ndcg@10 0.7706
cosine_mrr@10 0.7344
cosine_map@100 0.739

Training Details

Training Dataset

dataset_full_fixed

  • Dataset: dataset_full_fixed at ef2e7fd
  • Size: 43,803 training samples
  • Columns: positive and query
  • Approximate statistics based on the first 1000 samples:
    positive query
    type string string
    details
    • min: 37 tokens
    • mean: 187.21 tokens
    • max: 256 tokens
    • min: 6 tokens
    • mean: 77.0 tokens
    • max: 256 tokens
  • Samples:
    positive query
    Chào bạn, /mẻ gây nhạy cảm thì chỉ cần trám lại là sẽ bớt ngay. Tuy nhiên độ bền thì còn tùy thuộc vào vị trí gãy/vỡ/mẻ cũng như độ lớn của vùng đó. Nếu bạn bị vỡ hết cả nửa răng thì trám lại chắc chỉ được vài tháng là sẽ bị bong miếng trám ra mất do miếng trám quá lớn còn răng thì quá yếu. Vì vậy bạn nên đi khám bác sĩ xem thử có trám lại bền được không, nếu không thì bạn phải bọc răng sứ thì mới bền được. Thân mến, Chào bác sĩ,


    Răng của em bị vỡ nửa cái do em bị tai nạn, giờ cảm thấy đau buốt khi nuốt nước bọt và khi uống nước lạnh. Có thể khắc phục được không, thưa BS?
    Chào em, Khi một số trường hợp có thể gây sang chấn, dẫn đến hiện tượng chảy máu, chảy dịch hồng như em mô tả. Tuy nhiên hiện tượng này có thể tự giới hạn. Trường hợp của em, nếu vẫn tiếp tục chảy dịch hồng hoặc chảy máu tươi, em nên tái khám để tìm nguyên nhân và điều trị em nhé. Chào bác sĩ,


    2 ngày trước em đi khám, được chuẩn đoán là viêm mũi - viêm xoang, ghi trong toa là “Proezt”. Sau khi hút xoang xong cỡ 30 phút trong mũi trái của em có máu chảy ra. Đến giờ dịch nhầy ở mũi trái của em có màu đỏ. Em có sử dụng thuốc xịt mũi nhưng tình hình không khả quan hơn. Mong BS tư vấn ạ.
    Chào em, Khi bị viêm, mắt có triệu chứng sưng, đau, gỉ mắt làm cho 2 mí dính lại và khó mở ra vào buổi sáng. Em nên đến khám BS Mắt để xem lại chẩn đoán, tìm nguyên nhân và kê toa thuốc nhỏ mắt thích hợp nhé. Thân mến! BS ơi,


    Sáng sớm ngủ dậy tự nhiên mắt em mở không lên. Một hồi sau mới mở mắt được ạ. Sau đó thì nó sưng lên và đau thì làm sao ạ? BS tư vấn giúp em với. Em không có bị ngứa mắt ạ.
  • Loss: GISTEmbedLoss with these parameters:
    {'guide': SentenceTransformer(
      (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
      (1): Pooling({'word_embedding_dimension': 1024, '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()
    ), 'temperature': 0.01, 'margin_strategy': 'absolute', 'margin': 0.0}
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 40
  • per_device_eval_batch_size: 40
  • learning_rate: 1e-06
  • num_train_epochs: 5
  • lr_scheduler_type: constant_with_warmup
  • warmup_ratio: 0.1
  • bf16: True
  • tf32: False
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 40
  • per_device_eval_batch_size: 40
  • 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: 1e-06
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 5
  • max_steps: -1
  • lr_scheduler_type: constant_with_warmup
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • 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: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: False
  • 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: True
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • 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: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • 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
  • eval_use_gather_object: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss dim_768_cosine_ndcg@10
0.0912 100 9.312 -
0.1825 200 7.4093 -
0.2737 300 3.8224 -
0.3650 400 1.6865 -
0.4562 500 1.1151 -
0.5474 600 0.8235 -
0.6387 700 0.6362 -
0.7299 800 0.6181 -
0.8212 900 0.5331 -
0.9124 1000 0.4978 -
1.0 1096 - 0.6982
1.0036 1100 0.4167 -
1.0949 1200 0.4154 -
1.1861 1300 0.3793 -
1.2774 1400 0.3905 -
1.3686 1500 0.3534 -
1.4599 1600 0.3538 -
1.5511 1700 0.3357 -
1.6423 1800 0.2892 -
1.7336 1900 0.2882 -
1.8248 2000 0.2902 -
1.9161 2100 0.3083 -
2.0 2192 - 0.7386
2.0073 2200 0.2854 -
2.0985 2300 0.2546 -
2.1898 2400 0.2759 -
2.2810 2500 0.2525 -
2.3723 2600 0.2735 -
2.4635 2700 0.2576 -
2.5547 2800 0.2525 -
2.6460 2900 0.2545 -
2.7372 3000 0.2627 -
2.8285 3100 0.2494 -
2.9197 3200 0.2404 -
3.0 3288 - 0.7531
3.0109 3300 0.2284 -
3.1022 3400 0.226 -
3.1934 3500 0.212 -
3.2847 3600 0.2228 -
3.3759 3700 0.2132 -
3.4672 3800 0.1971 -
3.5584 3900 0.2004 -
3.6496 4000 0.2247 -
3.7409 4100 0.2226 -
3.8321 4200 0.2064 -
3.9234 4300 0.1961 -
4.0 4384 - 0.7638
4.0146 4400 0.1811 -
4.1058 4500 0.1722 -
4.1971 4600 0.1732 -
4.2883 4700 0.1954 -
4.3796 4800 0.203 -
4.4708 4900 0.184 -
4.5620 5000 0.189 -
4.6533 5100 0.1932 -
4.7445 5200 0.1596 -
4.8358 5300 0.1756 -
4.9270 5400 0.188 -
5.0 5480 - 0.7706
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.18
  • Sentence Transformers: 4.1.0
  • Transformers: 4.44.2
  • PyTorch: 2.7.0+cu128
  • Accelerate: 1.7.0
  • Datasets: 3.6.0
  • Tokenizers: 0.19.1

Citation

BibTeX

Sentence Transformers

@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",
}

GISTEmbedLoss

@misc{solatorio2024gistembed,
    title={GISTEmbed: Guided In-sample Selection of Training Negatives for Text Embedding Fine-tuning},
    author={Aivin V. Solatorio},
    year={2024},
    eprint={2402.16829},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}
Downloads last month
4
Safetensors
Model size
135M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for thang1943/phobert-base-v2-otc-loss

Finetuned
(259)
this model

Dataset used to train thang1943/phobert-base-v2-otc-loss

Evaluation results