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 retrieval.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: bkai-foundation-models/vietnamese-bi-encoder
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Supported Modality: Text

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'RobertaModel'})
  (1): Pooling({'embedding_dimension': 768, 'pooling_mode': 'mean', '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
queries = [
    'Hồ_sơ đề_nghị cấp lại Giấy_phép và năng định cho nhân_viên bảo_dưỡng tàu_bay trong trường_hợp hết hạn gồm những nội_dung gì ?',
]
documents = [
    'NỘI_DUNG THỦ_TỤC HÀNH_CHÍNH CÔNG_BỐ SỬA_ĐỔI \n ... \n 2 . Cấp lại Giấy_phép và năng định cho nhân_viên bảo_dưỡng tàu_bay ( AMT ) \n ... \n 2.3 . Thành_phần , số_lượng hồ_sơ : \n a ) Thành_phần : \n * Trường_hợp hết hạn : \n 1 . Bản_sao hoặc biểu_mẫu điện_tử đơn đề_nghị cấp lại nêu rõ lý_do theo quy_định tại khoản h Phụ_lục 1 Điều 7.350 . \n 2 . Bản_sao hoặc bản_sao điện_tử tài_liệu duy_trì kinh_nghiệm với các nội_dung áp_dụng cho năng định của người đề_nghị . \n * Trường_hợp Giấy_phép mất , rách : \n 1 . Bản_sao hoặc biểu_mẫu điện_tử đơn đề_nghị cấp lại nêu rõ lý_do theo quy_định tại khoản h Phụ_lục 1 Điều 7.350 . \n 2 . Bản_sao hoặc bản_sao điện_tử giấy_phép và năng định đã được cấp ( nếu có ) . ” \n 2.4 . Thời_hạn giải_quyết : 07 ngày , kể từ ngày nhận được hồ_sơ hợp_lệ . \n 2.5 . Đối_tượng thực_hiện thủ_tục hành_chính : Cá_nhân , tổ_chức \n ...',
    'Hồ_sơ , trình_tự , thủ_tục cấp Giấy_phép xuất_khẩu , nhập_khẩu tiền chất công_nghiệp \n ... \n 7 . Hồ_sơ , thủ_tục gia_hạn Giấy_phép \n a ) Giấy_phép được gia_hạn trong trường_hợp hết thời_hạn ghi trong Giấy_phép xuất_khẩu , nhập_khẩu quy_định tại khoản 4 Điều này nhưng việc xuất_khẩu , nhập_khẩu chưa thực_hiện được hoặc thực_hiện chưa xong . Giấy_phép chỉ được gia_hạn một lần ; \n b ) Trước khi Giấy_phép hết hạn tối_thiểu 05 ngày làm_việc , tổ_chức , cá_nhân có nhu_cầu gia_hạn Giấy_phép phải lập 01 bộ hồ_sơ đề_nghị gia_hạn Giấy_phép gửi cơ_quan cấp phép qua đường bưu_điện hoặc gửi trực_tiếp hoặc qua hệ_thống dịch_vụ công trực_tuyến ; \n c ) Hồ_sơ đề_nghị gia_hạn Giấy_phép bao_gồm : Văn_bản đề_nghị gia_hạn Giấy_phép xuất_khẩu , nhập_khẩu tiền chất công_nghiệp ; bản_sao Giấy_phép xuất_khẩu , nhập_khẩu tiền chất công_nghiệp đã được cấp ; \n d ) Trong thời_hạn 05 ngày làm_việc kể từ ngày nhận đủ hồ_sơ hợp_lệ , cơ_quan cấp phép kiểm_tra , gia_hạn Giấy_phép cho tổ_chức , cá_nhân . Trường_hợp không gia_hạn Giấy_phép , cơ_quan có thẩm_quyền cấp phép phải có văn_bản trả_lời , nêu rõ lý_do ; \n đ ) Giấy_phép xuất_khẩu , nhập_khẩu được gia_hạn không quá 06 tháng kể từ ngày cấp phép gia_hạn .',
    'Hình_thức phòng xử_án \n 1 . Phòng xử án phải được bố_trí Quốc_huy nước Cộng_hòa xã_hội chủ_nghĩa Việt_Nam trên nền ốp gỗ ở chính giữa , phía sau và ở trên vị_trí của Hội_đồng xét_xử , Hội_đồng giải_quyết việc dân_sự , phá_sản , Thẩm_phán chủ tọa phiên_tòa , chủ_trì phiên họp . \n 2 . Phòng xử án được bố_trí hai bục , trừ phòng xử án và giải_quyết các vụ_việc thuộc thẩm_quyền của Tòa_gia_đình và người chưa thành_niên . Vị_trí của Hội_đồng xét_xử , Hội_đồng giải_quyết việc dân_sự , phá_sản , Thẩm_phán chủ tọa phiên_tòa , chủ_trì phiên họp ở trên bục cao nhất ; bục thứ hai là vị_trí của những người tiến_hành tố_tụng khác , người tham_gia tố_tụng và người tham_dự phiên_tòa , phiên họp . \n 3 . Phòng xử án phải bảo_đảm không_gian để tiến_hành phiên_tòa , phiên họp và hàng_rào ngăn_cách giữa khu_vực của những người tiến_hành tố_tụng , người tham_gia tố_tụng với khu_vực của người tham_dự phiên_tòa , phiên họp ; phải bố_trí lối đi riêng của Hội_đồng xét_xử , Hội_đồng giải_quyết việc dân_sự , phá_sản , Thẩm_phán chủ tọa phiên_tòa , chủ_trì phiên họp ; lối đi của những người tiến_hành tố_tụng khác , người tham_gia tố_tụng , người tham_dự phiên_tòa , phiên họp ; tường trong phòng xử án có nền màu vàng . \n 4 . Sơ_đồ vị_trí của những người tiến_hành tố_tụng , người tham_gia tố_tụng , người tham_dự phiên_tòa , phiên họp trong phòng xử án được thực_hiện theo Phụ_lục số 01 ban_hành kèm theo Thông_tư này . \n 5 . Trường_hợp xét_xử lưu_động thì phòng xử án phải bố_trí Quốc_huy nước Cộng_hòa xã_hội chủ_nghĩa Việt_Nam trên phông_nền màu xanh ở chính giữa , phía sau và ở trên vị_trí của Hội_đồng xét_xử . Bàn của những người tiến_hành tố_tụng được phủ khăn có màu giống với màu phông_nền .',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 768] [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[ 0.8335,  0.2039, -0.0268]])

Training Details

Training Dataset

Unnamed Dataset

  • Size: 120,204 training samples
  • Columns: query and positive
  • Approximate statistics based on the first 100 samples:
    query positive
    type string string
    modality text text
    details
    • min: 6 tokens
    • mean: 17.35 tokens
    • max: 31 tokens
    • min: 40 tokens
    • mean: 167.3 tokens
    • max: 256 tokens
  • Samples:
    query positive
    Mục_đích hoạt_động của Hiệp_hội Các trường cao_đẳng nghề_nghiệp ngoài công_lập Việt_Nam được quy_định thế_nào ? Tôn_chỉ , mục_đích
    Hiệp_hội Các trường cao_đẳng nghề_nghiệp ngoài công_lập Việt_Nam ( sau đây gọi tắt là Hiệp_hội ) là tổ_chức xã_hội - nghề_nghiệp tự_nguyện của các trường cao_đẳng nghề Việt_Nam ngoài công_lập ; các tổ_chức , công_dân Việt_Nam hoạt_động trong lĩnh_vực đào_tạo nghề_nghiệp hoặc liên_quan đến lĩnh_vực đào_tạo nghề_nghiệp theo quy_định pháp_luật tự_nguyện thành_lập , hoạt_động thường_xuyên , không vụ_lợi , nhằm mục_đích tập_hợp , đoàn_kết hội_viên , bảo_vệ quyền và lợi_ích hợp_pháp của Hiệp_hội , hội_viên , cùng hỗ_trợ nhau hoạt_động hiệu_quả nhằm chia_sẻ kiến_thức , trao_đổi kinh_nghiệm , đề_xuất giải_pháp góp_phần phát_triển sự_nghiệp dạy nghề của Việt_Nam .
    Thu_hồi Chứng_nhận trường đạt kiểm_định chất_lượng giáo_dục đối_với trường tiểu_học trong trường_hợp nào ? Thu_hồi Chứng_nhận trường đạt kiểm_định chất_lượng giáo_dục
    1 . Trường_hợp Chứng_nhận trường đạt kiểm_định chất_lượng giáo_dục còn thời_hạn mà trường tiểu_học không còn đáp_ứng các tiêu_chuẩn đánh_giá thì Chứng_nhận trường đạt kiểm_định chất_lượng giáo_dục bị thu_hồi .
    ...
    Đóng bảo_hiểm xã_hội tự_nguyện theo năm được không ? Phương_thức đóng theo quy_định tại Điều 87 Luật BHXH và các văn_bản hướng_dẫn thi_hành , cụ_thể như sau :
    1 . Người tham_gia BHXH tự_nguyện được chọn một trong các phương_thức đóng sau đây để đóng vào quỹ hưu_trí và tử_tuất :
    1.1 . Đóng hằng tháng ;
    1.2 . Đóng 03 tháng_một lần ;
    1.3 . Đóng 06 tháng_một lần ;
    1.4 . Đóng 12 tháng_một lần ;
    1.5 . Đóng một lần cho nhiều năm về sau nhưng không quá 5 năm một lần ;
    1.6 . Đóng một lần cho những năm còn thiếu đối_với người tham_gia BHXH đã đủ điều_kiện về tuổi để hưởng lương hưu theo quy_định nhưng thời_gian đóng BHXH còn thiếu không quá 10 năm ( 120 tháng ) thì được đóng cho đủ 20 năm để hưởng lương hưu . Trường_hợp đang tham_gia BHXH bắt_buộc thì đóng BHXH tự_nguyện một lần cho những năm còn thiếu vào tháng_đủ điều_kiện về tuổi hưởng lương hưu .
    Ví_dụ 1 : Bà A tính đến tháng 3 / 2017 đủ 55 tuổi và có 15 năm 9 tháng đóng BHXH. Bà A có nguyện_vọng tiếp_tục tham_gia BHXH tự_nguyện để đủ điều_kiện hưởng lương hưu hằng tháng và lựa...
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "gather_across_devices": false,
        "directions": [
            "query_to_doc"
        ],
        "partition_mode": "joint",
        "hardness_mode": null,
        "hardness_strength": 0.0
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 13,364 evaluation samples
  • Columns: query and positive
  • Approximate statistics based on the first 100 samples:
    query positive
    type string string
    modality text text
    details
    • min: 10 tokens
    • mean: 18.64 tokens
    • max: 33 tokens
    • min: 19 tokens
    • mean: 173.97 tokens
    • max: 256 tokens
  • Samples:
    query positive
    Sản_phẩm phần_mềm có được hưởng ưu_đãi về thời_gian miễn thuế , giảm thuế hay không ? Nếu được thì trong vòng bao_nhiêu năm ? " Điều 20 . Ưu_đãi về thời_gian miễn thuế , giảm thuế
    1 . Miễn thuế bốn năm , giảm 50 % số thuế phải nộp trong chín năm tiếp_theo đối_với :
    a ) Thu_nhập của doanh_nghiệp từ thực_hiện dự_án đầu_tư quy_định tại khoản 1 Điều 19 Thông_tư số 78 / 2014 / TT - BTC ( được sửa_đổi , bổ_sung tại Khoản 1 Điều 11 Thông_tư này ) . "
    Hồ_sơ_tuyển_chọn Thẩm_phán Tòa_án nhân_dân cấp huyện phải được giao lại cho Chánh_án Tòa_án nhân_dân cấp tỉnh quản_lý khi nào ? Sau khi Hội_đồng đã thực_hiện xong việc tuyển_chọn không phụ_thuộc vào kết_quả đa_số thành_viên Hội_đồng đồng_ý hoặc không đồng_ý đề_nghị Chánh_án Tòa_án nhân_dân tối_cao bổ_nhiệm Thẩm_phán , thì các hồ_sơ và bản_sao hồ_sơ phải được giao lại cho Chánh_án Tòa_án nhân_dân cấp tỉnh hoặc Chánh_án Tòa_án quân_sự Trung_ương để quản_lý .
    Kiểm_định viên chất_lượng giáo_dục nghề_nghiệp phải có kinh_nghiệm trong những lĩnh_vực gì ? Phần II. NỘI_DUNG CỤ_THỂ CỦA TỪNG THỦ_TỤC HÀNH_CHÍNH
    A. Thủ_tục hành_chính cấp trung_ương
    ...
    5 . Thủ_tục : Cấp thẻ kiểm_định viên chất_lượng giáo_dục nghề_nghiệp .
    ...
    5.10 . Yêu_cầu , điều_kiện thực_hiện thủ_tục hành_chính :
    a ) Đáp_ứng các tiêu_chuẩn kiểm_định viên chất_lượng giáo_dục nghề_nghiệp
    - Có phẩm_chất đạo_đức tốt , có đủ sức_khỏe đáp_ứng yêu_cầu công_việc .
    - Có bằng tốt_nghiệp đại_học trở lên .
    - Có ít_nhất 05 năm kinh_nghiệm về quản_lý , giảng_dạy , nghiên_cứu trong lĩnh_vực giáo_dục , giáo_dục nghề_nghiệp hoặc làm_việc về ngành , nghề có liên_quan đến chuyên_môn , nghiệp_vụ được đào_tạo .
    - Hoàn_thành khóa đào_tạo kiểm_định viên chất_lượng giáo_dục nghề_nghiệp do Tổng_cục Giáo_dục nghề_nghiệp hoặc do đơn_vị được Tổng_cục Giáo_dục nghề_nghiệp giao nhiệm_vụ tổ_chức .
    - Có trình_độ ngoại_ngữ từ bậc 2 theo quy_định của Bộ Giáo_dục và Đào_tạo ban_hành Khung năng_lực ngoại_ngữ 6 bậc dùng cho Việt_Nam hoặc tương_đương trở lên .
    - Đạt chuẩn kỹ_năng sử_dụ...
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "gather_across_devices": false,
        "directions": [
            "query_to_doc"
        ],
        "partition_mode": "joint",
        "hardness_mode": null,
        "hardness_strength": 0.0
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 512
  • num_train_epochs: 10
  • learning_rate: 4e-05
  • weight_decay: 0.02
  • bf16: True
  • log_level: error
  • per_device_eval_batch_size: 512
  • load_best_model_at_end: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • per_device_train_batch_size: 512
  • num_train_epochs: 10
  • max_steps: -1
  • learning_rate: 4e-05
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: None
  • warmup_steps: 0
  • optim: adamw_torch_fused
  • optim_args: None
  • weight_decay: 0.02
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • optim_target_modules: None
  • gradient_accumulation_steps: 1
  • average_tokens_across_devices: True
  • max_grad_norm: 1.0
  • label_smoothing_factor: 0.0
  • bf16: True
  • fp16: False
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • use_liger_kernel: False
  • liger_kernel_config: None
  • use_cache: False
  • neftune_noise_alpha: None
  • torch_empty_cache_steps: None
  • auto_find_batch_size: False
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • include_num_input_tokens_seen: no
  • log_level: error
  • log_level_replica: warning
  • disable_tqdm: False
  • project: huggingface
  • trackio_space_id: None
  • trackio_bucket_id: None
  • trackio_static_space_id: None
  • per_device_eval_batch_size: 512
  • prediction_loss_only: True
  • eval_on_start: False
  • eval_do_concat_batches: True
  • eval_use_gather_object: False
  • eval_accumulation_steps: None
  • include_for_metrics: []
  • batch_eval_metrics: False
  • save_only_model: False
  • save_on_each_node: False
  • enable_jit_checkpoint: False
  • push_to_hub: False
  • hub_private_repo: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_always_push: False
  • hub_revision: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • restore_callback_states_from_checkpoint: False
  • full_determinism: False
  • seed: 42
  • data_seed: None
  • use_cpu: False
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • parallelism_config: None
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • dataloader_prefetch_factor: None
  • remove_unused_columns: True
  • label_names: None
  • train_sampling_strategy: random
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • ddp_static_graph: None
  • ddp_backend: None
  • ddp_timeout: 1800
  • fsdp: None
  • fsdp_config: None
  • deepspeed: None
  • debug: []
  • skip_memory_metrics: True
  • do_predict: False
  • resume_from_checkpoint: None
  • warmup_ratio: None
  • local_rank: -1
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss Validation Loss
1.0 235 0.2933 0.0704
2.0 470 0.1766 0.0621
3.0 705 0.1306 0.0588
4.0 940 0.1017 0.0561
5.0 1175 0.0877 0.0546
6.0 1410 0.0779 0.0538
7.0 1645 0.0692 0.0541
8.0 1880 0.0640 0.0536
9.0 2115 0.0593 0.0531
10.0 2350 0.0589 0.0532
  • The bold row denotes the saved checkpoint.

Training Time

  • Training: 1.1 hours
  • Evaluation: 5.1 minutes
  • Total: 1.1 hours

Framework Versions

  • Python: 3.12.13
  • Sentence Transformers: 5.5.1
  • Transformers: 5.10.1
  • PyTorch: 2.11.0+cu128
  • Accelerate: 1.13.0
  • Datasets: 4.0.0
  • Tokenizers: 0.22.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",
}

MultipleNegativesRankingLoss

@misc{oord2019representationlearningcontrastivepredictive,
      title={Representation Learning with Contrastive Predictive Coding},
      author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
      year={2019},
      eprint={1807.03748},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/1807.03748},
}
Downloads last month
299
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 phatvucoder/vietnamese-bi-encoder

Finetuned
(59)
this model

Papers for phatvucoder/vietnamese-bi-encoder