SentenceTransformer based on bkai-foundation-models/vietnamese-bi-encoder

This is a sentence-transformers model finetuned from bkai-foundation-models/vietnamese-bi-encoder. 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 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("tintnguyen/vietnamese-bi-encoder-ft")
# Run inference
sentences = [
    'tên thật của tỉnh drava banovina là gì',
    'Drava Banovina ::: Drava Banovina hoặc Drava Banate (tiếng Slovenia: Dravska banovina) là một tỉnh (banovina) của Vương quốc Nam Tư từ năm 1929 đến năm 1941. Tỉnh này bao gồm hầu hết ngày nay Slovenia và được đặt tên cho Drava sông. Thành phố thủ đô của Drava Banovina là Ljubljana.',
    'Mùa bão Tây Bắc Thái Bình Dương 1986 ::: Mùa bão năm 1986 ở Tây Bắc Thái Bình Dương không có giới hạn chính thức; nó chạy quanh năm vào năm 1986, nhưng hầu hết các cơn bão nhiệt đới có xu hướng hình thành ở tây bắc Thái Bình Dương giữa tháng Năm và tháng Mười Hai.  Những ngày này thường phân định thời kỳ mỗi năm khi hầu hết các cơn bão nhiệt đới hình thành ở tây bắc Thái Bình Dương.  Bão nhiệt đới hình thành trong toàn bộ lưu vực phía tây Thái Bình Dương đã được Trung tâm Cảnh báo Bão chung đặt tên.  Áp thấp nhiệt đới xâm nhập hoặc hình thành trong khu vực trách nhiệm của Philippines được đặt tên bởi Cơ quan Dịch vụ Khí quyển, Địa vật lý và Thiên văn học Philippines hoặc PAGASA.  Điều này thường có thể dẫn đến cùng một cơn bão có hai tên.',
]
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

{'aaa_cosine_accuracy@1': 0.6559, 'aaa_cosine_accuracy@3': 0.7988, 'aaa_cosine_accuracy@5': 0.8473, 'aaa_cosine_accuracy@10': 0.8915, 'aaa_cosine_precision@1': 0.6559, 'aaa_cosine_precision@3': 0.4683333333333332, 'aaa_cosine_precision@5': 0.39014000000000004, 'aaa_cosine_precision@10': 0.29126, 'aaa_cosine_recall@1': 0.14735861230027672, 'aaa_cosine_recall@3': 0.2534958821819028, 'aaa_cosine_recall@5': 0.3139822545058687, 'aaa_cosine_recall@10': 0.3978179383957577, 'aaa_cosine_ndcg@10': 0.4994592874617665, 'aaa_cosine_mrr@10': 0.7369935317460269, 'aaa_cosine_map@100': 0.3890462930756453}

Training Details

Training Dataset

Unnamed Dataset

  • Size: 1,583,079 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 5 tokens
    • mean: 11.73 tokens
    • max: 32 tokens
    • min: 24 tokens
    • mean: 121.83 tokens
    • max: 256 tokens
  • Samples:
    anchor positive
    đặng văn hoàn từng giữ chức vụ nào Đặng Văn Hoàn ::: Đặng Văn Hoàn là chính trị gia người Việt Nam. Ông từng giữ chức vụ Chủ tịch Ủy ban Mặt trận Tổ quốc Việt Nam tỉnh Quảng Bình.
    đặng văn hoàn là người nào Đặng Văn Hoàn ::: Đặng Văn Hoàn là chính trị gia người Việt Nam. Ông từng giữ chức vụ Chủ tịch Ủy ban Mặt trận Tổ quốc Việt Nam tỉnh Quảng Bình.
    đặng văn hoàn là ai Đặng Văn Hoàn ::: Đặng Văn Hoàn là chính trị gia người Việt Nam. Ông từng giữ chức vụ Chủ tịch Ủy ban Mặt trận Tổ quốc Việt Nam tỉnh Quảng Bình.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 32
  • learning_rate: 2e-05
  • num_train_epochs: 2
  • warmup_ratio: 0.1
  • fp16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 32
  • 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: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 2
  • max_steps: -1
  • lr_scheduler_type: linear
  • 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: False
  • fp16: True
  • 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: {'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
  • 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
  • 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: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss
0.0202 500 0.3446
0.0404 1000 0.3366
0.0606 1500 0.4109
0.0809 2000 0.1684
0.1011 2500 0.2029
0.1213 3000 0.1815
0.1415 3500 0.1493
0.1617 4000 0.1606
0.1819 4500 0.1221
0.2021 5000 0.1488
0.2223 5500 0.1751
0.2426 6000 0.2354
0.2628 6500 0.1252
0.2830 7000 0.1352
0.3032 7500 0.1798
0.3234 8000 0.1166
0.3436 8500 0.1247
0.3638 9000 0.1664
0.3841 9500 0.1451
0.4043 10000 0.1391
0.4245 10500 0.3064
0.4447 11000 0.373
0.4649 11500 0.2125
0.4851 12000 0.1839
0.5053 12500 0.3237
0.5255 13000 0.4
0.5458 13500 0.2788
0.5660 14000 0.2936
0.5862 14500 0.1388
0.6064 15000 0.1581
0.6266 15500 0.1876
0.6468 16000 0.1569
0.6670 16500 0.1575
0.6873 17000 0.2999
0.7075 17500 0.2072
0.7277 18000 0.2041
0.7479 18500 0.2705
0.7681 19000 0.3727
0.7883 19500 0.2635
0.8085 20000 0.2007
0.8288 20500 0.1417
0.8490 21000 0.1682
0.8692 21500 0.1665
0.8894 22000 0.0305
0.9096 22500 0.0184
0.9298 23000 0.0159
0.9500 23500 0.0166
0.9702 24000 0.0149
0.9905 24500 0.0158
1.0107 25000 0.0725
1.0309 25500 0.1099
1.0511 26000 0.2281
1.0713 26500 0.1607
1.0915 27000 0.0796
1.1117 27500 0.0998
1.1320 28000 0.0603
1.1522 28500 0.0815
1.1724 29000 0.0754
1.1926 29500 0.0873
1.2128 30000 0.079
1.2330 30500 0.0748
1.2532 31000 0.1438
1.2734 31500 0.0575
1.2937 32000 0.1203
1.3139 32500 0.0585
1.3341 33000 0.0626
1.3543 33500 0.0641
1.3745 34000 0.0953
1.3947 34500 0.0625
1.4149 35000 0.1376
1.4352 35500 0.309
1.4554 36000 0.1851
1.4756 36500 0.1268
1.4958 37000 0.1762
1.5160 37500 0.3293
1.5362 38000 0.2692
1.5564 38500 0.2661
1.5766 39000 0.139
1.5969 39500 0.0764
1.6171 40000 0.1381
1.6373 40500 0.0821
1.6575 41000 0.0868
1.6777 41500 0.1709
1.6979 42000 0.1946
1.7181 42500 0.1325
1.7384 43000 0.1217
1.7586 43500 0.2898
1.7788 44000 0.2789
1.7990 44500 0.1743
1.8192 45000 0.1075
1.8394 45500 0.1036
1.8596 46000 0.1409
1.8799 46500 0.0504
1.9001 47000 0.0114
1.9203 47500 0.009
1.9405 48000 0.0083
1.9607 48500 0.0082
1.9809 49000 0.0079

Framework Versions

  • Python: 3.11.10
  • Sentence Transformers: 3.3.1
  • Transformers: 4.46.3
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.1.1
  • Datasets: 3.1.0
  • Tokenizers: 0.20.4

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

MultipleNegativesRankingLoss

@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}
}
Downloads last month
99
Safetensors
Model size
135M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for tintnguyen/vietnamese-bi-encoder-ft

Finetuned
(23)
this model
Finetunes
1 model