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

This is a sentence-transformers model finetuned from bkai-foundation-models/vietnamese-bi-encoder on the json 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: bkai-foundation-models/vietnamese-bi-encoder
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 256, 'do_lower_case': False, 'architecture': '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("bachminion/legal-embedding-finetune")
# Run inference
sentences = [
    'Điều 10 Thông_tư 08 / 2013 / TT - BTC hướng_dẫn thực_hiện kế_toán nhà_nước áp_dụng Hệ_thống',
    'Điều 10 Thông_tư 08 / 2013 / TT - BTC hướng_dẫn thực_hiện kế_toán nhà_nước áp_dụng Hệ_thống có nội_dung như sau : \n \n Điều 10 . Kiểm_kê tài_sản \n 1 . Kiểm_kê tài_sản là việc cân , đong , đo , đếm số_lượng ; xác_nhận và đánh_giá chất_lượng , giá_trị của tài_sản , nguồn vốn hiện có tại thời_điểm kiểm_kê để kiểm_tra , đối_chiếu với số_liệu trong sổ kế_toán . \n 2 . Các đơn_vị KBNN phải kiểm_kê tài_sản trong các trường_hợp sau : \n - Cuối kỳ kế_toán tháng , năm , trước khi lập báo_cáo tài_chính ; \n - Chia , tách , hợp_nhất , sáp_nhập , giải_thể , chấm_dứt hoạt_động ; \n - Xảy ra_hỏa_hoạn , lũ_lụt và các thiệt_hại bất_thường khác ; \n - Đánh_giá lại tài_sản theo quyết_định của cơ_quan nhà_nước có thẩm_quyền ; \n - Các trường_hợp khác theo quy_định của pháp_luật và theo yêu_cầu của cơ_quan nhà_nước có thẩm_quyền . \n 3 . Sau khi kiểm_kê tài_sản , đơn_vị KBNN phải lập báo_cáo tổng_hợp kết_quả kiểm_kê . Trường_hợp có chênh_lệch giữa số_liệu thực_tế kiểm_kê với số_liệu ghi trên sổ kế_toán , phải xác_định nguyên_nhân và phải phản_ánh số chênh_lệch và kết_quả xử_lý vào sổ kế_toán trước khi lập báo_cáo tài_chính . \n 4 . Việc kiểm_kê phải phản_ánh đúng thực_tế tài_sản , nguồn hình_thành_tài_sản tại đơn_vị ; người lập và ký báo_cáo tổng_hợp kết_quả kiểm_kê phải chịu trách_nhiệm về kết_quả kiểm_kê tại đơn_vị mình .',
    'Tôi có hơn 6 năm làm giảng_viên đại_học , có chứng_chỉ nghiệp_vụ sư_phạm dành cho giảng_viên đại_học , cao_đẳng do Trường Đại_học Vinh cấp . Hiện tôi muốn nộp đơn xin vào dạy tại trường trung_học phổ_thông . Tôi tốt_nghiệp hệ kỹ_sư , có bằng thạc_sĩ . Xin hỏi , trường_hợp của tôi có đủ tiêu_chuẩn để giảng_dạy cấp trung_học phổ_thông không ? Bộ Giáo_dục và Đào_tạo trả_lời vấn_đề này như sau : Điểm c , Khoản 1 , Điều 77Luật Giáo dụcquy định trình_độ chuẩn được đào_tạo của giáo_viên trung_học phổ_thông là : “ Có bằng tốt_nghiệp đại_học sư_phạm hoặc có bằng tốt_nghiệp đại_học và có chứng_chỉ bồi_dưỡng nghiệp_vụ sư_phạm đối_với giáo_viên trung_học phổ_thông ” . Ông Nguyễn_Trấn Thành cần đối_chiếu với quy_định trên xem mình có đủ điều_kiện để dạy cấp trung_học phổ_thông không . Trường_hợp ông đủ điều_kiện thì vẫn phải thực_hiện quy_trình tuyển_dụng hoặc thuyên_chuyển công_tác theo quy_định của cơ_sở giáo_dục .',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.8870, 0.0098],
#         [0.8870, 1.0000, 0.0413],
#         [0.0098, 0.0413, 1.0000]])

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 64,542 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 7 tokens
    • mean: 16.55 tokens
    • max: 32 tokens
    • min: 13 tokens
    • mean: 175.78 tokens
    • max: 256 tokens
  • Samples:
    anchor positive
    Mức phạt khi thi_công công_trình trong phạm_vi đất dành cho đường_bộ khi đã hết thời_hạn thi_công Điều 13 . Xử_phạt các hành_vi vi_phạm_quy_định về thi_công , bảo_trì công_trình trong phạm_vi đất dành cho đường_bộ 1 . Cảnh_cáo hoặc phạt tiền từ 250.000 đồng đến 500.000 đồng đối_với cá_nhân , từ 500.000 đồng đến 1.000.000 đồng đối_với tổ_chức thực_hiện_hành_vi thi_công trên đường_bộ đang khai_thác không treo biển_báo thông_tin công_trình hoặc treo biển_báo thông_tin không đầy_đủ nội_dung theo quy_định .
    2 . Phạt tiền từ 1.000.000 đồng đến 3.000.000 đồng đối_với cá_nhân , từ 2.000.000 đồng đến 6.000.000 đồng đối_với tổ_chức thực_hiện một trong các hành_vi vi_phạm sau đây :
    a ) Thi_công công_trình trong phạm_vi đất dành cho đường_bộ không thực_hiện theo đúng các quy_định trong Giấy_phép thi_công hoặc trong văn_bản thỏa_thuận thi_công của cơ_quan có thẩm_quyền , trừ các hành_vi vi_phạm_quy_định tại khoản 3 , điểm a khoản 4 , khoản 5 Điều này ;
    b ) Không bố_trí người hướng_dẫn , điều_khiển giao_thông khi thi_công ở chỗ đường hẹp hoặc ở hai đầu cầu , cống , đường ngầm đang thi_công...
    Điều 51 Thông_tư 08 / 2013 / TT - BTC hướng_dẫn thực_hiện kế_toán nhà_nước áp_dụng Hệ_thống Điều 51 Thông_tư 08 / 2013 / TT - BTC hướng_dẫn thực_hiện kế_toán nhà_nước áp_dụng Hệ_thống có nội_dung như sau :

    Điều 51 . Nguyên_tắc hạch_toán theo kỳ
    Nghiệp_vụ kinh_tế phát_sinh ở kỳ nào phải hạch_toán vào kỳ đó .
    Các trường_hợp phát_sinh yêu_cầu điều_chỉnh số_liệu liên_quan đến ngân_sách năm hiện_hành , chỉ được hạch_toán điều_chỉnh vào kỳ ( tháng ) hiện_tại . Trường_hợp cần điều_chỉnh vào kỳ ( tháng ) phát_sinh nghiệp_vụ kinh_tế ( kỳ quá_khứ ) , trước khi điều_chỉnh phải được sự đồng_ý của KBNN.
    Các trường_hợp điều_chỉnh số_liệu liên_quan đến ngân_sách năm trước được hạch_toán vào kỳ điều_chỉnh ( tháng 13 ) của năm trước .
    UBND xã có trách_nhiệm gì trong yêu_cầu bồi_thường thiệt_hại về môi_trường ? Theo Điều 131 Luật Bảo_vệ môi_trường 2020 quy_định về trách_nhiệm yêu_cầu bồi_thường thiệt_hại và xác_định thiệt , hại về môi_trường như sau :

    1 . Ủy_ban nhân_dân các cấp , tổ_chức , cá_nhân phát_hiện môi_trường có dấu_hiệu bị ô_nhiễm , suy_thoái thông_báo cho cơ_quan có trách_nhiệm yêu_cầu bồi_thường và tổ_chức thu_thập , thẩm_định dữ_liệu , chứng_cứ để xác_định thiệt_hại đối_với môi_trường do ô_nhiễm , suy_thoái quy_định tại khoản 2 Điều này .
    2 . Trách_nhiệm yêu_cầu bồi_thường và tổ_chức thu_thập , thẩm_định dữ_liệu , chứng_cứ để xác_định thiệt_hại đối_với môi_trường do ô_nhiễm , suy_thoái được quy_định như sau :
    a ) Ủy_ban nhân_dân cấp xã có trách_nhiệm yêu_cầu bồi_thường thiệt_hại về môi_trường gây ra trên địa_bàn thuộc phạm_vi quản_lý của mình . Trong trường_hợp này , Ủy_ban nhân_dân cấp xã đề_nghị Ủy_ban nhân_dân cấp huyện tổ_chức thu_thập và thẩm_định dữ_liệu , chứng_cứ để xác_định thiệt_hại đối_với môi_trường do ô_nhiễm , suy_thoái ;


    Ủy_ban nhân_dân cấp xã có trá...
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Evaluation Dataset

json

  • Dataset: json
  • Size: 7,172 evaluation samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchor positive
    type string string
    details
    • min: 4 tokens
    • mean: 16.02 tokens
    • max: 51 tokens
    • min: 16 tokens
    • mean: 178.24 tokens
    • max: 256 tokens
  • Samples:
    anchor positive
    Thư_ký chuyên_môn của Hội_đồng đạo_đức nghiên_cứu y_sinh_học được quy_định như thế_nào ? Điều 12 . Thư_ký của Hội_đồng đạo_đức 1 . Thư_ký chuyên_môn của Hội_đồng đạo_đức
    a ) Số_lượng thư_ký chuyên_môn do Chủ_tịch Hội_đồng đạo_đức đề_xuất người đứng đầu tổ_chức thành_lập Hội_đồng đạo_đức quyết_định đủ để hỗ_trợ Hội_đồng đạo_đức trong việc xem_xét và lưu_giữ hồ_sơ nhiệm_vụ của mình . Đối_với Hội_đồng đạo_đức cấp quốc_gia tối_đa không quá 03 người , đối_với Hội_đồng đạo_đức cấp cơ_sở tối_đa không quá 02 người .
    b ) Thư_ký chuyên_môn là những người trung_thực , khách_quan , có trình_độ đại_học về khối ngành sức_khỏe , có kiến_thức về quản_lý khoa_học công_nghệ , nghiên_cứu khoa_học , đạo_đức trong nghiên_cứu y_sinh_học và được đào_tạo đầy_đủ để hiểu được trách_nhiệm của họ liên_quan đến bảo_mật hồ_sơ của Hội_đồng đạo_đức . Thành_viên Hội_đồng đạo_đức có_thể kiêm_nhiệm làm thư_ký chuyên_môn của Hội_đồng đạo_đức .
    2 . Thư_ký hành_chính của Hội_đồng đạo_đức
    a ) Số_lượng thư_ký hành_chính do Chủ_tịch Hội_đồng đạo_đức đề_xuất người đứng đầu tổ_chức thành_lập Hội_đồng đạo_đứ...
    Tổ_chức trao_tặng danh_hiệu thi_đua ngành lao_động thương_binh và xã_hội được quy_định như thế_nào ? Điều 30 . Tổ_chức trao_tặng 1 . Việc trao_tặng các danh_hiệu thi_đua , hình_thức khen_thưởng thực_hiện theo quy_định tại Điều 44 của Nghị_định 91 / 2017 / NĐ - CP.
    2 . Đối_với các danh_hiệu thi_đua , hình_thức khen_thưởng cấp nhà_nước , khi nhận được quyết_định khen_thưởng , thủ_trưởng các đơn_vị lập kế_hoạch tổ_chức đón_nhận , trình Lãnh_đạo Bộ cho ý_kiến chỉ_đạo thực_hiện . Khi có ý_kiến của Lãnh_đạo Bộ phối_hợp với Thường_trực Hội_đồng Bộ tổ_chức công_bố , trao_tặng . Lễ trao_tặng cần trang_trọng , nên kết_hợp với dịp Hội_nghị tổng_kết công_tác , kỷ_niệm ngày thành_lập đơn_vị hoặc lồng_ghép với các nội_dung khác để tiết_kiệm thời_gian và chi_phí .
    3 . Đối_với các danh_hiệu thi_đua , hình_thức khen_thưởng thuộc thẩm_quyền của Bộ_trưởng , giao cho Giám_đốc các sở và thủ_trưởng các đơn_vị tổ_chức công_bố , trao_tặng theo quy_định .
    Người sử_dụng lao_động có nghĩa_vụ gì khi người lao_động yêu_cầu kiểm_tra bảng lương ? Chương_VI của Bộ_luật Lao_động Việt_Nam quy_định về tiền_lương . Nội_dung chính bao_gồm các quy_định về nguyên_tắc trả lương , hình_thức trả lương , kỳ_hạn trả lương , tiền_lương làm thêm giờ , tiền_lương làm_việc vào ban_đêm , tiền_lương nghỉ lễ , Tết và ngày nghỉ có hưởng lương , tiền_lương ngừng việc , tiền_lương cho người lao_động bị tạm đình_chỉ công_việc , mức lương tối_thiểu và điều_chỉnh mức lương tối_thiểu , thỏa_thuận về tiền_lương , và quyền và nghĩa_vụ của người sử_dụng lao_động và người lao_động trong việc trả lương và nhận lương .
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 52
  • per_device_eval_batch_size: 52
  • gradient_accumulation_steps: 12
  • learning_rate: 3e-05
  • weight_decay: 0.2
  • num_train_epochs: 8
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.15
  • fp16: True
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • push_to_hub: True
  • hub_model_id: bachminion/legal-embedding-finetune
  • hub_private_repo: True
  • 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: 52
  • per_device_eval_batch_size: 52
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 12
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 3e-05
  • weight_decay: 0.2
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 8
  • max_steps: -1
  • lr_scheduler_type: cosine
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.15
  • 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_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: True
  • resume_from_checkpoint: None
  • hub_model_id: bachminion/legal-embedding-finetune
  • hub_strategy: every_save
  • hub_private_repo: True
  • hub_always_push: False
  • hub_revision: None
  • 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
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Validation Loss
1.0 52 0.2574
2.0 104 0.1400
3.0 156 0.1090
4.0 208 0.1015
5.0 260 0.0954
6.0 312 0.0955
7.0 364 0.0938
8.0 416 0.0932
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.11.13
  • Sentence Transformers: 5.1.2
  • Transformers: 4.53.3
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.9.0
  • Datasets: 4.4.1
  • 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",
}

MatryoshkaLoss

@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning},
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

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
7
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 bachminion/legal-embedding-finetune

Finetuned
(41)
this model