SentenceTransformer based on BAAI/bge-m3
This is a sentence-transformers model finetuned from BAAI/bge-m3. It maps sentences & paragraphs to a 1024-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: BAAI/bge-m3
- Maximum Sequence Length: 768 tokens
- Output Dimensionality: 1024 dimensions
- Similarity Function: Cosine Similarity
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 768, 'do_lower_case': False, 'architecture': 'XLMRobertaModel'})
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
(2): Normalize()
)
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 = [
'Khoản 6 Điều 28 quy định Viện kiểm sát nhân dân có quyền yêu cầu các cơ quan, cá nhân liên quan đến việc thi hành án thực hiện những việc cụ thể nào và thời hạn thực hiện các yêu cầu đó được quy định ra sao?',
'Theo khoản 6 Điều 28 Luật Tổ chức Viện kiểm sát nhân dân, Viện kiểm sát nhân dân có quyền yêu cầu Tòa án, cơ quan thi hành án dân sự cùng cấp và cấp dưới, Chấp hành viên, cơ quan, tổ chức và cá nhân liên quan đến việc thi hành án thực hiện các việc sau đây:\n1. Ra quyết định thi hành án đúng quy định của pháp luật (điểm a).\n2. Thi hành bản án, quyết định theo quy định của pháp luật (điểm b).\n3. Tự kiểm tra việc thi hành án và thông báo kết quả cho Viện kiểm sát nhân dân (điểm c).\n4. Cung cấp hồ sơ, tài liệu, vật chứng có liên quan đến việc thi hành án (điểm d).\n\nVề thời hạn thực hiện, các yêu cầu quy định tại các điểm a, b và d khoản này phải được thực hiện ngay. Riêng yêu cầu quy định tại điểm c khoản này phải được thực hiện trong thời hạn 30 ngày, kể từ ngày nhận được yêu cầu.',
'Theo điểm d khoản 1 Điều 31 của Luật Bảo hiểm xã hội số 41/2024/QH15, các đối tượng quy định tại các điểm g, h, m và n khoản 1 Điều 2 của Luật này được quyền lựa chọn tiền lương làm căn cứ đóng bảo hiểm xã hội bắt buộc.\n\n* **Về mức tối thiểu và tối đa:** Mức tiền lương làm căn cứ đóng bảo hiểm xã hội bắt buộc thấp nhất phải bằng mức tham chiếu và cao nhất bằng 20 lần mức tham chiếu tại thời điểm đóng.\n* **Về thời điểm được lựa chọn lại:** Người lao động được lựa chọn lại tiền lương làm căn cứ đóng bảo hiểm xã hội sau khi đã thực hiện đóng bảo hiểm xã hội theo tiền lương làm căn cứ đóng đã lựa chọn ít nhất 12 tháng. Điều này mang lại sự linh hoạt cho người lao động trong việc điều chỉnh mức đóng phù hợp với thu nhập và nhu cầu của họ, nhưng vẫn đảm bảo tính ổn định trong một khoảng thời gian nhất định.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000, 0.8652, 0.0063],
# [ 0.8652, 1.0000, -0.0242],
# [ 0.0063, -0.0242, 1.0000]])
Evaluation
Metrics
Information Retrieval
- Dataset:
legal-eval - Evaluated with InformationRetrievalEvaluator
| Metric | Value |
|---|---|
| cosine_accuracy@1 | 0.948 |
| cosine_accuracy@3 | 0.9841 |
| cosine_accuracy@5 | 0.9921 |
| cosine_accuracy@10 | 0.9963 |
| cosine_precision@1 | 0.948 |
| cosine_precision@3 | 0.328 |
| cosine_precision@5 | 0.1984 |
| cosine_precision@10 | 0.0996 |
| cosine_recall@1 | 0.948 |
| cosine_recall@3 | 0.9841 |
| cosine_recall@5 | 0.9921 |
| cosine_recall@10 | 0.9963 |
| cosine_ndcg@10 | 0.9743 |
| cosine_mrr@10 | 0.967 |
| cosine_map@100 | 0.9672 |
Training Details
Training Dataset
Unnamed Dataset
- Size: 34,065 training samples
- Columns: sentence_0 and sentence_1
- Approximate statistics based on the first 1000 samples:
sentence_0 sentence_1 type string string details min: 10 tokensmean: 50.74 tokensmax: 143 tokens min: 25 tokensmean: 202.65 tokensmax: 768 tokens - Samples:
sentence_0 sentence_1 Việc Điều 174 Luật Tố tụng hành chính cho phép kháng cáo đối với "quyết định tạm đình chỉ, đình chỉ việc giải quyết vụ án của Toà án cấp sơ thẩm" có ý nghĩa như thế nào? Điều 174 quy định rằng không chỉ bản án mà cả "quyết định tạm đình chỉ, đình chỉ việc giải quyết vụ án của Toà án cấp sơ thẩm" cũng là đối tượng có thể bị kháng cáo. Điều này có ý nghĩa quan trọng trong việc đảm bảo quyền lợi của đương sự, cho phép họ yêu cầu Toà án cấp trên trực tiếp xem xét lại các quyết định mang tính tố tụng quan trọng, có thể ảnh hưởng đến tiến trình hoặc kết quả cuối cùng của vụ án, ngay cả khi chưa có bản án cuối cùng. Mục đích là để đảm bảo tính đúng đắn và khách quan của quá trình tố tụng hành chính. Giả sử một trường hợp trẻ em được xin nhận làm con nuôi nước ngoài từ một cơ sở nuôi dưỡng. Hãy mô tả chi tiết quy trình tổ chức lễ giao nhận con nuôi theo Điều 37 của Luật này, bao gồm các thành phần bắt buộc phải có mặt tại buổi lễ và các tài liệu cần được lập, cũng như trách nhiệm của Sở Tư pháp sau khi hoàn tất việc giao nhận. Theo khoản 3 và khoản 4 Điều 37 của Luật Nuôi con nuôi, đối với trường hợp trẻ em được xin nhận làm con nuôi nước ngoài từ một cơ sở nuôi dưỡng, quy trình tổ chức lễ giao nhận và các trách nhiệm liên quan được thực hiện như sau: Sở Tư pháp có trách nhiệm đăng ký việc nuôi con nuôi theo quy định của pháp luật về đăng ký hộ tịch và tổ chức lễ giao nhận con nuôi tại trụ sở Sở Tư pháp. Các thành phần bắt buộc phải có mặt tại buổi lễ bao gồm: đại diện Sở Tư pháp, trẻ em được nhận làm con nuôi, cha mẹ nuôi và đại diện cơ sở nuôi dưỡng. Việc giao nhận con nuôi phải được lập thành biên bản, có chữ ký hoặc điểm chỉ của các bên và đại diện Sở Tư pháp. Sau khi giao nhận con nuôi, Sở Tư pháp có trách nhiệm gửi Bộ Tư pháp quyết định cho trẻ em làm con nuôi nước ngoài của Ủy ban nhân dân cấp tỉnh và biên bản giao nhận con nuôi, đồng thời gửi các tài liệu này cho Ủy ban nhân dân cấp xã nơi thường trú của trẻ em được cho làm con nuôi nước ngoài. Người sử dụng lao động phải đảm bảo quyền lợi gì cho người lao động? Người sử dụng lao động phải đảm bảo quyền lợi về tiền lương, tiền thưởng cho người lao động theo hợp đồng lao động. - 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
eval_strategy: stepsper_device_train_batch_size: 16per_device_eval_batch_size: 16fp16: Truemulti_dataset_batch_sampler: round_robin
All Hyperparameters
do_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16gradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1num_train_epochs: 3max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: Nonewarmup_ratio: Nonewarmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Trueenable_jit_checkpoint: Falsesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseuse_cpu: Falseseed: 42data_seed: Nonebf16: Falsefp16: Truebf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: -1ddp_backend: Nonedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonedisable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Falseignore_data_skip: Falsefsdp: []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: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Nonegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Truepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Nonehub_always_push: Falsehub_revision: Nonegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_for_metrics: []eval_do_concat_batches: Trueauto_find_batch_size: Falsefull_determinism: Falseddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Noneinclude_num_input_tokens_seen: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueuse_cache: Falseprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}
Training Logs
| Epoch | Step | Training Loss | legal-eval_cosine_ndcg@10 |
|---|---|---|---|
| -1 | -1 | - | 0.9489 |
| 0.2347 | 500 | 0.0125 | 0.9692 |
| 0.4695 | 1000 | 0.0046 | 0.9651 |
| 0.7042 | 1500 | 0.0039 | 0.9632 |
| 0.9390 | 2000 | 0.0038 | 0.9664 |
| 1.0 | 2130 | - | 0.9681 |
| 1.1737 | 2500 | 0.0041 | 0.9691 |
| 1.4085 | 3000 | 0.0028 | 0.9700 |
| 1.6432 | 3500 | 0.0009 | 0.9699 |
| 1.8779 | 4000 | 0.0028 | 0.9680 |
| 2.0 | 4260 | - | 0.9712 |
| 2.1127 | 4500 | 0.0015 | 0.9718 |
| 2.3474 | 5000 | 0.0012 | 0.9722 |
| 2.5822 | 5500 | 0.0013 | 0.9740 |
| 2.8169 | 6000 | 0.0012 | 0.9743 |
Framework Versions
- Python: 3.12.13
- Sentence Transformers: 5.3.0
- Transformers: 5.0.0
- PyTorch: 2.11.0+cu130
- Accelerate: 1.13.0
- Datasets: 4.8.4
- 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},
}