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("sentence_transformers_model_id")
# Run inference
sentences = [
    'Ai có thẩm_quyền thu_hồi Giấy chứng_nhận đủ điều_kiện kinh_doanh dịch_vụ xếp_hạng tín_nhiệm đối_với công_ty trách_nhiệm hữu_hạn ?',
    'Thu_hồi Giấy chứng_nhận đủ điều_kiện kinh_doanh \n … \n 3 . Bộ Tài_chính ra quyết_định thu_hồi Giấy chứng_nhận đủ điều_kiện kinh_doanh đối_với trường_hợp quy_định Khoản 1 Điều này . \n 4 . Quyết_định thu_hồi Giấy chứng_nhận đủ điều_kiện kinh_doanh của doanh_nghiệp được công_bố trên trang thông_tin điện_tử của Bộ Tài_chính . \n 5 . Doanh_nghiệp phải chấm_dứt ngay các hoạt_động xếp_hạng tín_nhiệm và dịch_vụ liên_quan đến xếp_hạng tín_nhiệm kể từ thời_điểm Giấy chứng_nhận đủ điều_kiện kinh_doanh tự_động bị hết hiệu_lực ; hoặc từ thời_điểm Quyết_định thu_hồi Giấy chứng_nhận đủ điều_kiện kinh_doanh có hiệu_lực thi_hành .',
    'Nghỉ học tạm_thời , nghỉ ốm \n ... \n 2 . Người học được tạm hoãn học môn_học , học_phần theo kế_hoạch đào_tạo của cơ_sở đào_tạo giáo_viên và phải hoàn_thành môn_học , học_phần tạm hoãn đó trong quỹ thời_gian tối_đa hoàn_thành chương_trình đào_tạo giáo_viên nếu thuộc một hoặc nhiều trường_hợp sau : \n a ) Vì lý_do sức_khỏe không bảo_đảm để học môn_học , học_phần đó và phải có giấy xác_nhận của cơ_sở y_tế nơi người học đó khám hoặc điều_trị ; \n b ) Có_lý_do khác không_thể tham_gia hoàn_thành môn_học , học_phần đó , kèm theo minh chứng cụ_thể và phải được thủ_trưởng cơ_sở đào_tạo giáo_viên chấp_thuận . \n 3 . Người học không thuộc trường_hợp quy_định tại khoản 1 , 2 của Điều này , trong trường_hợp có_lý_do chính_đáng thì được nghỉ học đột_xuất theo quy_định của cơ_sở đào_tạo giáo_viên và phải hoàn_thành nhiệm_vụ học_tập theo quy_định , đồng_thời phải bảo_đảm điều_kiện dự thi kết_thúc môn_học , học_phần mới được dự thi kết_thúc môn_học , học_phần . \n 4 . Thời_gian nghỉ học tạm_thời được tính vào thời_gian tối_đa để người học hoàn_thành chương_trình đào_tạo giáo_viên được quy_định tại Điều 4 của Quy_chế này . \n 5 . Thủ_trưởng cơ_sở đào_tạo giáo_viên quy_định cụ_thể việc nghỉ học tạm_thời của người họ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]

Training Details

Training Dataset

Unnamed Dataset

  • Size: 86,575 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 7 tokens
    • mean: 17.49 tokens
    • max: 39 tokens
    • min: 19 tokens
    • mean: 165.71 tokens
    • max: 256 tokens
  • Samples:
    anchor positive
    Dự_thảo báo_cáo công_tác phổ_biến , giáo_dục pháp_luật của cơ_quan trong Bộ Quốc_phòng có phải lấy ý_kiến của thành_viên Hội_đồng Phối_hợp phổ_biến , giáo_dục pháp_luật cấp báo_cáo không ? Chế_độ báo_cáo , thông_tin phổ_biến , giáo_dục pháp_luật
    ...
    5 . Dự_thảo báo_cáo công_tác phổ_biến , giáo_dục pháp_luật của cơ_quan , đơn_vị các cấp phải được lấy ý_kiến của thành_viên Hội_đồng Phối_hợp phổ_biến , giáo_dục pháp_luật cấp báo_cáo ; nơi không có Hội_đồng Phối_hợp phổ_biến , giáo_dục pháp_luật thì lấy ý_kiến cơ_quan , đơn_vị liên_quan trước khi trình người có thẩm_quyền ký ban_hành . Báo_cáo được gửi đến cơ_quan có thẩm_quyền , thành_viên Hội_đồng Phối_hợp phổ_biến , giáo_dục pháp_luật cấp báo_cáo và cơ_quan , đơn_vị liên_quan .
    ... .
    Đối_tượng và điều_kiện tham_gia đào_tạo , bồi_dưỡng kiểm_toán nhà_nước ở nước_ngoài ? Đối_tượng và điều_kiện tham_gia đào_tạo , bồi_dưỡng ở nước_ngoài
    Ngoài những điều_kiện , tiêu_chuẩn quy_định tại Điều 25 của Quy_chế này , công_chức , viên_chức được cử đi đào_tạo , bồi_dưỡng ở nước_ngoài thực_hiện theo các quy_định của Đảng , Nhà_nước về xuất_cảnh , nhập_cảnh của công_dân Việt_Nam và phải đáp_ứng các điều_kiện sau :
    1 . Đối_với các khóa bồi_dưỡng có thời_gian dưới 01 tháng , công_chức , viên_chức phải còn đủ tuổi để công_tác ít_nhất 18 tháng tính từ khi khóa bồi_dưỡng bắt_đầu .
    2 . Đối_với các khóa đào_tạo , bồi_dưỡng có thời_gian từ 01 tháng trở lên , công_chức , viên_chức phải còn đủ tuổi công_tác ít_nhất 02 năm tính từ khi khóa bồi_dưỡng bắt_đầu .
    3 . Công_chức , viên_chức được cử đi đào_tạo , bồi_dưỡng phải hoàn_thành tốt nhiệm_vụ được giao trong năm trước liền kề .
    4 . Chuyên_môn nghiệp_vụ của công_chức , viên_chức được cử đi đào_tạo , bồi_dưỡng phải phù_hợp với nội_dung của khóa đào_tạo , bồi_dưỡng .
    5 . Có thời_gian công_tác tại Kiểm_toán nhà_nước í...
    Việc nâng bậc lương trước thời_hạn đối_với viên_chức ngành xây_dựng được thực_hiện vào thời_gian nào ? Nguyên_tắc xét nâng bậc lương trước thời_hạn do lập thành_tích xuất_sắc trong thực_hiện nhiệm_vụ
    1 . Việc nâng bậc lương trước thời_hạn đối_với cán_bộ , công_chức , viên_chức , người lao_động lập thành_tích xuất_sắc trong thực_hiện nhiệm_vụ chỉ xét mỗi năm một lần vào tháng 11 , cùng với đợt xét nâng bậc lương thường_xuyên của quý IV.
    ...
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 1024
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 9,620 evaluation samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 5 tokens
    • mean: 17.65 tokens
    • max: 38 tokens
    • min: 17 tokens
    • mean: 163.91 tokens
    • max: 256 tokens
  • Samples:
    anchor positive
    Đất nông_nghiệp chưa có giấy chứng_nhận quyền sử_dụng đất thì có_thể xin cấp giấy chứng_nhận hay không ? " Điều 100 . Cấp Giấy chứng_nhận quyền sử_dụng đất , quyền sở_hữu nhà ở và tài_sản khác gắn liền với đất cho hộ gia_đình , cá_nhân , cộng_đồng dân_cư đang sử_dụng đất có giấy_tờ về quyền sử_dụng đất
    1 . Hộ gia_đình , cá_nhân đang sử_dụng đất ổn_định mà có một trong các loại giấy_tờ sau đây thì được cấp Giấy chứng_nhận quyền sử_dụng đất , quyền sở_hữu nhà ở và tài_sản khác gắn liền với đất và không phải nộp tiền_sử_dụng đất :
    a ) Những giấy_tờ về quyền được sử_dụng đất trước ngày 15 tháng 10 năm 1993 do cơ_quan có thẩm_quyền cấp trong quá_trình thực_hiện chính_sách đất_đai của Nhà_nước Việt_Nam dân_chủ Cộng_hòa , Chính_phủ Cách_mạng lâm_thời Cộng_hòa miền Nam Việt_Nam và Nhà_nước Cộng_hòa xã_hội chủ_nghĩa Việt_Nam ;
    b ) Giấy chứng_nhận quyền sử_dụng đất tạm_thời được cơ_quan nhà_nước có thẩm_quyền cấp hoặc có tên trong Sổ đăng_ký ruộng_đất , Sổ địa_chính trước ngày 15 tháng 10 năm 1993 ;
    c ) Giấy_tờ hợp_pháp về thừa_kế , tặng cho quyền sử_dụng đất hoặc tài_sản gắn liền với đất ;...
    Phạm_vi điều_chỉnh của Luật_Đấu_thầu 2013 được quy_định ra sao ? " Điều 1 . Phạm_vi điều_chỉnh
    Luật này quy_định quản_lý nhà_nước về đấu_thầu ; trách_nhiệm của các bên có liên_quan và các hoạt_động đấu_thầu , bao_gồm :
    1 . Lựa_chọn nhà_thầu cung_cấp dịch_vụ tư_vấn , dịch_vụ phi tư_vấn , hàng_hóa , xây_lắp đối_với :
    a ) Dự_án đầu_tư phát_triển sử_dụng vốn nhà_nước của cơ_quan nhà_nước , tổ_chức chính_trị , tổ_chức chính_trị - xã_hội , tổ_chức chính_trị xã_hội - nghề_nghiệp , tổ_chức xã_hội - nghề_nghiệp , tổ_chức xã_hội , đơn_vị thuộc lực_lượng vũ_trang nhân_dân , đơn_vị sự_nghiệp công_lập ;
    b ) Dự_án đầu_tư phát_triển của doanh_nghiệp nhà_nước ;
    c ) Dự_án đầu_tư phát_triển không thuộc quy_định tại điểm a và điểm b khoản này có sử_dụng vốn nhà_nước , vốn của doanh_nghiệp nhà_nước từ 30 % trở lên hoặc dưới 30 % nhưng trên 500 tỷ đồng trong tổng mức đầu_tư của dự_án ;
    d ) Mua_sắm sử_dụng vốn nhà_nước nhằm duy_trì hoạt_động thường_xuyên của cơ_quan nhà_nước , tổ_chức chính_trị , tổ_chức chính_trị - xã_hội , tổ_chức chính_trị xã_hội - nghề_ng...
    Ghi tên thuốc trong Danh_mục thuốc tân_dược thuộc phạm_vi được hưởng của người tham_gia BHYT theo nguyên_tắc gì ? Nguyên_tắc xây_dựng Danh_mục thuốc tân_dược thuộc phạm_vi được hưởng của người tham_gia_bảo_hiểm y_tế ( BHYT )
    ...
    2 . Nguyên_tắc ghi tên thuốc trong Danh_mục thuốc tân_dược thuộc phạm_vi được hưởng của người tham_gia BHYT
    a ) Thuốc được ghi theo tên hoạt_chất theo danh_pháp INN ( International_Non - proprietary Name ) , một_số thuốc không có danh_pháp INN ghi theo tên được cấp phép lưu_hành ; không ghi tên biệt_dược hay tên thương_mại .
    b ) Chỉ ghi đường dùng , không ghi hàm_lượng , không ghi dạng bào_chế .
    c ) Trường_hợp thuốc phối_hợp đa thành_phần : Quy_định cụ_thể thành_phần các hoạt_chất phối_hợp .
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 1024
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • learning_rate: 2e-05
  • weight_decay: 0.01
  • num_train_epochs: 5
  • warmup_ratio: 0.1
  • fp16: True
  • load_best_model_at_end: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • 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.01
  • 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: 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: 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
  • 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
  • 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: proportional

Training Logs

Epoch Step Training Loss Validation Loss
0.0739 100 0.1336 -
0.1478 200 0.1232 -
0.2217 300 0.1182 0.0948
0.2956 400 0.0972 -
0.3695 500 0.0874 -
0.4435 600 0.0834 0.0694
0.5174 700 0.0731 -
0.5913 800 0.0607 -
0.6652 900 0.0657 0.0586
0.7391 1000 0.0521 -
0.8130 1100 0.0621 -
0.8869 1200 0.0522 0.0521
0.9608 1300 0.0519 -
1.0347 1400 0.0496 -
1.1086 1500 0.0438 0.0480
1.1826 1600 0.0471 -
1.2565 1700 0.046 -
1.3304 1800 0.0493 0.0452
1.4043 1900 0.0465 -
1.4782 2000 0.0445 -
1.5521 2100 0.0419 0.0411

Framework Versions

  • Python: 3.11.13
  • Sentence Transformers: 4.1.0
  • Transformers: 4.52.4
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.8.1
  • Datasets: 3.6.0
  • Tokenizers: 0.21.2

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

CachedMultipleNegativesRankingLoss

@misc{gao2021scaling,
    title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
    author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
    year={2021},
    eprint={2101.06983},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}
Downloads last month
15
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for hle50/bkai-checkpoint-2100

Finetuned
(43)
this model