bkai-fine-tuned-legal
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 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
- Training Dataset:
- Language: vi
- License: apache-2.0
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
model = SentenceTransformer("sentence_transformers_model_id")
sentences = [
'Ký hợp_đồng lao_động theo quy_định mới từ 22 / 2 / 2023',
'Tôi làm hộ_lý theo hợp_đồng 68 tại khoa kiểm_soát nhiễm_khuẩn ở bệnh_viện huyện . Công_việc hàng ngày là xử_lý đồ vải bệnh_nhân và xử_lý_dụng_cụ y_tế của bệnh_viện . Tôi đang hưởng lương bậc 4 , hệ_số 2,19 . Tôi xin hỏi , theo Nghị_định 111 / 2022 / NĐ - CP , tôi có được tiếp_tục làm_việc và hưởng các chế_độ của hợp_đồng 68 nữa không hay tôi phải chuyển sang ký hợp_đồng khác ? Nếu chuyển sang loại hợp_đồng khác thì lương và các chế_độ sẽ hưởng thế_nào ? Bộ Nội_vụ trả_lời vấn_đề này như sau : Khoản 1 Điều 13 Nghị_định số111 / 2022 / NĐ - CPquy định : " Người đang thực_hiện các công_việc hỗ_trợ , phục_vụ theo quy_định tại khoản 1 Điều 4 Nghị_định này nếu chưa chuyển sang ký hợp_đồng lao_động theo quy_định của Nghị_định số 161 / 2018 / NĐ - CP ngày 29 tháng 11 năm 2018 của Chính_phủ sửa_đổi , bổ_sung một_số quy_định về tuyển_dụng công_chức , viên_chức , nâng ngạch công_chức , thăng_hạng viên_chức và thực_hiện chế_độ hợp_đồng một_số loại công_việc trong cơ_quan hành_chính nhà_nước , đơn_vị sự_nghiệp công_lập ( sau đây viết tắt là Nghị_định số 161 / 2018 / NĐ - CP ) và cơ_quan , tổ_chức , đơn_vị không ký hợp_đồng dịch_vụ thì trong thời_hạn 12 tháng kể từ ngày Nghị_định này có hiệu_lực , cơ_quan , tổ_chức , đơn_vị phải chuyển sang ký hợp_đồng lao_động . Hợp_đồng lao_động ký_kết phải bảo_đảm quyền , lợi_ích hợp_pháp về tiền_lương , chế_độ bảo_hiểm xã_hội và các chế_độ khác theo quy_định của pháp_luật . Trường_hợp một trong các bên không có nhu_cầu thì giải_quyết chế_độ thôi_việc theo quy_định của pháp_luật " . Như_vậy , trường_hợp bà Trần_Thị_Hoa nếu chưa chuyển sang ký hợp_đồng lao_động theo quy_định của Nghị_định số161 / 2018 / NĐ - CPthì trong thời_hạn 12 tháng kể từ ngày Nghị_định số 111 / 2022 / NĐ - CP có hiệu_lực phải chuyển sang ký hợp_đồng lao_động . Tiền_lương và các chế_độ khác của người lao_động thực_hiện theo quy_định tại khoản 2 Điều 8 Nghị_định số 111 / 2022 / NĐ - CP.',
'Điều 3 . Đối_tượng được bổ_nhiệm Thủ_trưởng , Phó_Thủ_trưởng Cơ_quan quản_lý thi_hành án hình_sự thuộc Bộ Công_an 1 . Tổng_cục_trưởng Tổng_cục Cảnh_sát thi_hành án hình_sự và hỗ_trợ tư_pháp được bổ_nhiệm làm Thủ_trưởng Cơ_quan quản_lý thi_hành án hình_sự thuộc Bộ Công_an . \n 2 . Phó_Tổng_cục_trưởng Tổng_cục Cảnh_sát thi_hành án hình_sự và hỗ_trợ tư_pháp được bổ_nhiệm làm Phó_Thủ_trưởng Cơ_quan quản_lý thi_hành án hình_sự thuộc Bộ Công_an .',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
similarities = model.similarity(embeddings, embeddings)
print(similarities)
Evaluation
Metrics
Information Retrieval
| Metric |
Value |
| cosine_accuracy@1 |
0.528 |
| cosine_accuracy@3 |
0.76 |
| cosine_accuracy@5 |
0.8434 |
| cosine_accuracy@10 |
0.9055 |
| cosine_precision@1 |
0.528 |
| cosine_precision@3 |
0.2533 |
| cosine_precision@5 |
0.1687 |
| cosine_precision@10 |
0.0905 |
| cosine_recall@1 |
0.528 |
| cosine_recall@3 |
0.76 |
| cosine_recall@5 |
0.8434 |
| cosine_recall@10 |
0.9055 |
| cosine_ndcg@10 |
0.7175 |
| cosine_mrr@10 |
0.6568 |
| cosine_map@100 |
0.6607 |
Information Retrieval
| Metric |
Value |
| cosine_accuracy@1 |
0.5285 |
| cosine_accuracy@3 |
0.7586 |
| cosine_accuracy@5 |
0.8451 |
| cosine_accuracy@10 |
0.9081 |
| cosine_precision@1 |
0.5285 |
| cosine_precision@3 |
0.2529 |
| cosine_precision@5 |
0.169 |
| cosine_precision@10 |
0.0908 |
| cosine_recall@1 |
0.5285 |
| cosine_recall@3 |
0.7586 |
| cosine_recall@5 |
0.8451 |
| cosine_recall@10 |
0.9081 |
| cosine_ndcg@10 |
0.7184 |
| cosine_mrr@10 |
0.6573 |
| cosine_map@100 |
0.661 |
Information Retrieval
| Metric |
Value |
| cosine_accuracy@1 |
0.5238 |
| cosine_accuracy@3 |
0.7554 |
| cosine_accuracy@5 |
0.8442 |
| cosine_accuracy@10 |
0.9049 |
| cosine_precision@1 |
0.5238 |
| cosine_precision@3 |
0.2518 |
| cosine_precision@5 |
0.1688 |
| cosine_precision@10 |
0.0905 |
| cosine_recall@1 |
0.5238 |
| cosine_recall@3 |
0.7554 |
| cosine_recall@5 |
0.8442 |
| cosine_recall@10 |
0.9049 |
| cosine_ndcg@10 |
0.7153 |
| cosine_mrr@10 |
0.6542 |
| cosine_map@100 |
0.658 |
Information Retrieval
| Metric |
Value |
| cosine_accuracy@1 |
0.5236 |
| cosine_accuracy@3 |
0.7546 |
| cosine_accuracy@5 |
0.841 |
| cosine_accuracy@10 |
0.9046 |
| cosine_precision@1 |
0.5236 |
| cosine_precision@3 |
0.2515 |
| cosine_precision@5 |
0.1682 |
| cosine_precision@10 |
0.0905 |
| cosine_recall@1 |
0.5236 |
| cosine_recall@3 |
0.7546 |
| cosine_recall@5 |
0.841 |
| cosine_recall@10 |
0.9046 |
| cosine_ndcg@10 |
0.7148 |
| cosine_mrr@10 |
0.6536 |
| cosine_map@100 |
0.6574 |
Information Retrieval
| Metric |
Value |
| cosine_accuracy@1 |
0.5135 |
| cosine_accuracy@3 |
0.7451 |
| cosine_accuracy@5 |
0.8327 |
| cosine_accuracy@10 |
0.8995 |
| cosine_precision@1 |
0.5135 |
| cosine_precision@3 |
0.2484 |
| cosine_precision@5 |
0.1665 |
| cosine_precision@10 |
0.0899 |
| cosine_recall@1 |
0.5135 |
| cosine_recall@3 |
0.7451 |
| cosine_recall@5 |
0.8327 |
| cosine_recall@10 |
0.8995 |
| cosine_ndcg@10 |
0.7065 |
| cosine_mrr@10 |
0.6444 |
| cosine_map@100 |
0.6484 |
Training Details
Training Dataset
json
- Dataset: json
- Size: 57,371 training samples
- Columns:
anchor and positive
- Approximate statistics based on the first 1000 samples:
|
anchor |
positive |
| type |
string |
string |
| details |
- min: 5 tokens
- mean: 16.49 tokens
- max: 52 tokens
|
- min: 16 tokens
- mean: 180.36 tokens
- max: 256 tokens
|
- Samples:
| anchor |
positive |
Điều 3 Quyết_định 44 / 2015 / QĐ - UBND thu quản_lý phí tham_gia đấu_giá quyền khai_thác khoáng_sản Bình_Dương |
Điều 3 Quyết_định 44 / 2015 / QĐ - UBND thu quản_lý phí tham_gia đấu_giá quyền khai_thác khoáng_sản Bình_Dương có nội_dung như sau : Điều 3 . Chánh Văn_phòng Ủy_ban nhân_dân Thủ_trưởng các sở , ban , ngành , Chủ_tịch Ủy_ban nhân_dân các huyện , thị_xã , thành_phố và Thủ_trưởng các đơn_vị , tổ_chức , cá_nhân có liên_quan chịu trách_nhiệm thi_hành Quyết_định này |
Điều 2 Quyết_định 3592 / QĐ - UBND 2020 phổ_biến pháp_luật hòa giải ở cơ_sở Khánh_Hòa |
Điều 2 Quyết_định 3592 / QĐ - UBND 2020 phổ_biến pháp_luật hòa giải ở cơ_sở Khánh_Hòa có nội_dung như sau : Điều 2 . Quyết_định này có hiệu_lực thi_hành kể từ ngày ký . |
Chi_phí điều_chỉnh đồ_án quy_hoạch được xác_định như thế_nào ? |
Điều 5 . Xác_định chi_phí lập , thẩm_định đồ_án quy_hoạch 1 . Nội_dung , sản_phẩm đồ_án quy_hoạch được quy_định tại Nghị_định quy_định chi_tiết một_số nội_dung về quy_hoạch xây_dựng , Nghị_định về lập , thẩm_định , phê_duyệt và quản_lý quy_hoạch đô_thị , các Nghị_định chuyên_ngành có liên_quan và các văn_bản hướng_dẫn . |
| 2 . Chi_phí lập đồ_án quy_hoạch bao_gồm các chi_phí sau : chi_phí cho những người tham_gia thực_hiện lập đồ_án , các chi_phí khác ( chi_phí mua tài_liệu , số_liệu , bản_đồ , văn_phòng_phẩm , phần_mềm quy_hoạch ( nếu có ) , chi_phí khấu_hao thiết_bị , chi_phí đi_lại , chi_phí lưu_trú , chi_phí hội_nghị , hội_thảo và các khoản chi_phí khác ( nếu có ) ) . |
|
| 3 . Chi_phí lập đồ_án quy_hoạch xác_định theo định_mức được quy_định tại Thông_tư này chưa bao_gồm chi_phí để thực_hiện các công_việc sau : |
|
| a ) Lập nhiệm_vụ quy_hoạch . |
|
| b ) Khảo_sát xây_dựng phục_vụ lập đồ_án quy_hoạch . |
|
| c ) Mua hoặc lập các bản_đồ địa_hình phục_vụ lập đồ_án quy_hoạch ( nếu có ) . |
|
| 4 . Chi_phí ... |
|
- 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: 6 tokens
- mean: 16.05 tokens
- max: 38 tokens
|
- min: 13 tokens
- mean: 181.46 tokens
- max: 256 tokens
|
- Samples:
| anchor |
positive |
Thành_viên liên_danh nhà_thầu có quyền gửi đơn kiến_nghị ? |
Cơ_quan tôi tổ_chức đấu_thầu rộng_rãi trong nước gói_thầu tư_vấn thiết_kế và thi_công ( hình_thức một giai_đoạn hai túi hồ_sơ ) . Có 3 nhà_thầu A , B , C tham_gia và đều là nhà_thầu liên_danh . Tổ chuyên_gia đánh_giá xong phần hồ_sơ đề_xuất kỹ_thuật và đã trình chủ đầu_tư phê_duyệt danh_sách nhà_thầu đáp_ứng yêu_cầu kỹ_thuật . Ngoài_ra , tổ chuyên_gia còn có thông_báo gửi các nhà_thầu liên_danh về danh_sách nhà_thầu đáp_ứng yêu_cầu kỹ_thuật và nhà_thầu không đáp_ứng yêu_cầu kỹ_thuật . Sau đó có nhà_thầu liên_danh C không đáp_ứng yêu_cầu kỹ_thuật đã kiến_nghị gửi chủ đầu_tư về kết_quả đánh_giá hồ_sơ đề_xuất kỹ_thuật . Tuy_nhiên đơn_vị gửi kiến_nghị đến chủ đầu_tư lại là một thành_viên của liên_danh nhà_thầu C , không phải là nhà_thầu đứng đầu liên_danh . Tôi xin hỏi , trường_hợp này , thành_viên của nhà_thầu liên_danh có được quyền kiến_nghị không ? Chủ đầu_tư phải giải_quyết như thế_nào hay_là đánh_giá tiếp phần đề_xuất tài_chính ? Bộ Kế_hoạch và Đầu_tư trả_lời vấn_đề này như sau : Kho... |
Công_chức cấp xã làm nhiệm_vụ gì ? |
Tôi xin hỏi , người làm công_chức cấp xã như địa_chính , xây_dựng , giao_thông thủy_lợi , tài_chính , ... có được hiểu là làm công_tác quản_lý nhà_nước thuộc phạm_vi quản_lý của huyện không ? Bộ Nội_vụ trả_lời vấn_đề này như sau : Chức_danh công_chức cấp xã được quy_định tại Khoản 3 Điều 61Luật Cán_bộ , công chứcnăm 2008 ( sửa_đổi , bổ_sung năm 2019 ) . Nhiệm_vụ của từng chức_danh công_chức cấp xã được quy_định tại Điều 11 Nghị_định số33 / 2023 / NĐ - CPngày 10 / 6 / 2023 của Chính_phủ quy_định về cán_bộ , công_chức cấp xã và người hoạt_động không chuyên_trách ở cấp xã , ở thôn , tổ dân_phố . Theo đó , công_chức cấp xã làm nhiệm_vụ tham_mưu giúp UBND cấp xã về công_tác lý nhà_nước theo lĩnh_vực chuyên_môn , nghiệp_vụ giao trên phạm_vi địa_bàn cấp xã . Căn_cứ các quy_định nêu trên , công_chức cấp xã là người tham_mưu giúp UBND cấp xã về công_tác quản_lý nhà_nước theo lĩnh_vực chuyên_môn được giao trên địa_bàn cấp xã , không phải làm công_tác quản_lý nhà_nước thuộc phạm_vi cấp huyện . |
Chế_phẩm sinh_học phải đăng_ký lưu_hành bao_gồm những chế_phẩm sinh_học nào ? |
Điều 11 . Chế_phẩm sinh_học phải đăng_ký lưu_hành 1 . Chế_phẩm sinh_học sản_xuất trong nước hoặc nhập_khẩu chưa có tên trong Danh_mục chế_phẩm sinh_học trong xử_lý chất_thải tại Việt_Nam . 2 . Chế_phẩm sinh_học có tên trong Danh_mục chế_phẩm sinh_học trong xử_lý chất_thải tại Việt_Nam nhưng có thay_đổi về thành_phần hoặc hàm_lượng các hoạt_chất trong chế_phẩm sinh_học làm ảnh_hưởng đến hiệu_quả xử_lý và tính an_toàn đối_với sức_khỏe con_người và sinh_vật . |
- 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
per_device_train_batch_size: 32
per_device_eval_batch_size: 32
gradient_accumulation_steps: 8
learning_rate: 3e-05
weight_decay: 0.2
max_grad_norm: 0.65
num_train_epochs: 6
lr_scheduler_type: cosine
warmup_steps: 33
fp16: True
load_best_model_at_end: True
group_by_length: True
batch_sampler: no_duplicates
All Hyperparameters
Click to expand
do_predict: False
prediction_loss_only: True
per_device_train_batch_size: 32
per_device_eval_batch_size: 32
gradient_accumulation_steps: 8
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: 0.65
num_train_epochs: 6
max_steps: -1
lr_scheduler_type: cosine
lr_scheduler_kwargs: None
warmup_ratio: None
warmup_steps: 33
log_level: passive
log_level_replica: warning
log_on_each_node: True
logging_nan_inf_filter: True
enable_jit_checkpoint: False
save_on_each_node: False
save_only_model: False
restore_callback_states_from_checkpoint: False
use_cpu: False
seed: 42
data_seed: None
bf16: False
fp16: True
bf16_full_eval: False
fp16_full_eval: False
tf32: None
local_rank: -1
ddp_backend: None
debug: []
dataloader_drop_last: False
dataloader_num_workers: 0
dataloader_prefetch_factor: None
disable_tqdm: False
remove_unused_columns: True
label_names: None
load_best_model_at_end: True
ignore_data_skip: False
fsdp: []
fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': 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
deepspeed: None
label_smoothing_factor: 0.0
optim: adamw_torch_fused
optim_args: None
group_by_length: True
length_column_name: length
project: huggingface
trackio_space_id: trackio
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
push_to_hub: False
resume_from_checkpoint: None
hub_model_id: None
hub_strategy: every_save
hub_private_repo: None
hub_always_push: False
hub_revision: None
gradient_checkpointing: False
gradient_checkpointing_kwargs: None
include_for_metrics: []
eval_do_concat_batches: True
auto_find_batch_size: False
full_determinism: False
ddp_timeout: 1800
torch_compile: False
torch_compile_backend: None
torch_compile_mode: None
include_num_input_tokens_seen: no
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: True
use_cache: False
prompts: None
batch_sampler: no_duplicates
multi_dataset_batch_sampler: proportional
router_mapping: {}
learning_rate_mapping: {}
Training Logs
| Epoch |
Step |
Training Loss |
Validation Loss |
dim_768_cosine_ndcg@10 |
dim_512_cosine_ndcg@10 |
dim_256_cosine_ndcg@10 |
dim_128_cosine_ndcg@10 |
dim_64_cosine_ndcg@10 |
| 1.0 |
113 |
0.3758 |
0.1506 |
0.7017 |
0.7048 |
0.6999 |
0.6977 |
0.6845 |
| 2.0 |
226 |
0.1050 |
0.1243 |
0.7101 |
0.7104 |
0.7062 |
0.7063 |
0.6980 |
| 3.0 |
339 |
0.0654 |
0.1111 |
0.7148 |
0.7149 |
0.7103 |
0.7104 |
0.7033 |
| 4.0 |
452 |
0.0504 |
0.1022 |
0.7175 |
0.7182 |
0.7136 |
0.7125 |
0.7045 |
| 5.0 |
565 |
0.0445 |
0.1024 |
0.7175 |
0.7184 |
0.7153 |
0.7148 |
0.7065 |
- The bold row denotes the saved checkpoint.
Training Time
Framework Versions
- Python: 3.12.13
- Sentence Transformers: 5.4.1
- Transformers: 5.0.0
- PyTorch: 2.10.0+cu128
- Accelerate: 1.13.0
- Datasets: 5.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",
}
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{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},
}