sentence-transformers safetensors roberta sentence-similarity feature-extraction generated_from_trainer dataset_size:1391 loss:MultipleNegativesRankingLoss en arxiv:1908.10084 arxiv:1705.00652 base_model:keepitreal/vietnamese-sbert base_model:finetune:keepitreal/vietnamese-sbert license:apache-2.0 model-index autotrain_compatible endpoints_compatible region:us
---
base_model: keepitreal/vietnamese-sbert
language:
- en
library_name: sentence-transformers
license: apache-2.0
metrics:
- cosine_accuracy@1
- cosine_accuracy@3
- cosine_accuracy@5
- cosine_accuracy@10
- cosine_precision@1
- cosine_precision@3
- cosine_precision@5
- cosine_precision@10
- cosine_recall@1
- cosine_recall@3
- cosine_recall@5
- cosine_recall@10
- cosine_ndcg@10
- cosine_mrr@10
- cosine_map@100
pipeline_tag: sentence-similarity
tags:
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- dataset_size:1391
- loss:MultipleNegativesRankingLoss
widget:
- source_sentence: 'Phạt tiền từ 500.000 đồng đến 1.000.000 đồng đối với người lao
    động có một trong các hành vi sau đây: a ) Không sử dụng phương tiện bảo vệ cá
    nhân đã được trang cấp'
  sentences:
  - Người lao động bị phạt bao nhiêu nếu không sử dụng phương tiện bảo vệ cá nhân
    được trang cấp?
  - Điều gì xảy ra nếu không giải quyết các vấn đề phát sinh liên quan đến người lao
    động trong các trường hợp như chết, tai nạn, hoặc bị xâm phạm?
  - Mức phạt cho việc đưa người lao động đi làm việc ở nước ngoài vượt quá số lượng
    đã được chấp thuận là bao nhiêu?
- source_sentence: Phạt tiền từ 5.000.000 đồng đến 10.000.000 đồng đối với người sử
    dụng lao động có hành vi không bố trí bộ phận hoặc người làm công tác an toàn,
    vệ sinh lao động hoặc bố trí người làm công tác an toàn, vệ sinh lao động nhưng
    người đó không đáp ứng đủ điều kiện theo quy định của pháp luật.
  sentences:
  - Bộ Y tế xây dựng tiêu chuẩn sức khỏe cho từng loại nghề, công việc sau khi có
    ý kiến của ai?
  - Mức phạt tiền cho hành vi không bố trí người làm công tác an toàn, vệ sinh lao
    động đủ điều kiện là gì?
  - Doanh nghiệp bị phạt như thế nào nếu giao nhiệm vụ hoạt động dịch vụ đưa người
    lao động đi làm việc ở nước ngoài cho chi nhánh không đúng quy định?
- source_sentence: 'Phạt tiền từ 3.000.000 đồng đến 5.000.000 đồng đối với bên thuê
    lại lao động có một trong các hành vi sau đây: b) Không tổ chức huấn luyện an
    toàn, vệ sinh lao động cho người lao động thuê lại theo quy định của pháp luật.'
  sentences:
  - Người sử dụng lao động không tổ chức huấn luyện an toàn cho 5 người lao động thì
    bị phạt bao nhiêu?
  - Việc không đăng ký hợp đồng cung ứng lao động khi đưa người lao động đi làm việc
    ở nước ngoài bị xử phạt như thế nào?
  - Mức phạt tiền đối với bên thuê lại lao động khi không tổ chức huấn luyện an toàn,
    vệ sinh lao động cho người lao động thuê lại theo quy định của pháp luật là bao
    nhiêu?
- source_sentence: Từ 20.000.000 đồng đến 30.000.000 đồng đối với vi phạm từ 01 đến
    03 máy, thiết bị, vật tư.
  sentences:
  - Tiền lương tháng đóng bảo hiểm thất nghiệp được xác định như thế nào đối với người
    lao động hưởng lương do người sử dụng lao động quyết định?
  - Khiếu nại có thể được thực hiện bằng những hình thức nào?
  - Mức phạt cho hành vi không kiểm định máy móc, thiết bị an toàn lao động là bao
    nhiêu nếu vi phạm từ 1 đến 3 thiết bị?
- source_sentence: Đối với yếu tố nguy hiểm thì người sử dụng lao động phải thường
    xuyên kiểm soát, quản lý đúng yêu cầu kỹ thuật nhằm bảo đảm an toàn, vệ sinh lao
    động tại nơi làm việc và ít nhất một lần trong một năm phải tổ chức kiểm tra,
    đánh giá yếu tố này theo quy định của pháp luật.
  sentences:
  - Nếu doanh nghiệp không giải quyết vấn đề phát sinh (chết, tai nạn, xâm phạm...)
    đối với người lao động ở nước ngoài thì bị phạt bao nhiêu?
  - An toàn, vệ sinh viên có những nghĩa vụ gì?
  - Đối với yếu tố nguy hiểm, người sử dụng lao động phải làm gì?
model-index:
- name: vietnamese-sbert-base-law
  results:
  - task:
      type: information-retrieval
      name: Information Retrieval
    dataset:
      name: dim 768
      type: dim_768
    metrics:
    - type: cosine_accuracy@1
      value: 0.3548387096774194
      name: Cosine Accuracy@1
    - type: cosine_accuracy@3
      value: 0.49032258064516127
      name: Cosine Accuracy@3
    - type: cosine_accuracy@5
      value: 0.535483870967742
      name: Cosine Accuracy@5
    - type: cosine_accuracy@10
      value: 0.6387096774193548
      name: Cosine Accuracy@10
    - type: cosine_precision@1
      value: 0.3548387096774194
      name: Cosine Precision@1
    - type: cosine_precision@3
      value: 0.16344086021505375
      name: Cosine Precision@3
    - type: cosine_precision@5
      value: 0.10709677419354839
      name: Cosine Precision@5
    - type: cosine_precision@10
      value: 0.06387096774193547
      name: Cosine Precision@10
    - type: cosine_recall@1
      value: 0.3548387096774194
      name: Cosine Recall@1
    - type: cosine_recall@3
      value: 0.49032258064516127
      name: Cosine Recall@3
    - type: cosine_recall@5
      value: 0.535483870967742
      name: Cosine Recall@5
    - type: cosine_recall@10
      value: 0.6387096774193548
      name: Cosine Recall@10
    - type: cosine_ndcg@10
      value: 0.48631620950508964
      name: Cosine Ndcg@10
    - type: cosine_mrr@10
      value: 0.43884792626728103
      name: Cosine Mrr@10
    - type: cosine_map@100
      value: 0.44718813899449905
      name: Cosine Map@100
---

# vietnamese-sbert-base-law

This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [keepitreal/vietnamese-sbert](https://huggingface.co/keepitreal/vietnamese-sbert) 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:** [keepitreal/vietnamese-sbert](https://huggingface.co/keepitreal/vietnamese-sbert) <!-- at revision a9467ef2ef47caa6448edeabfd8e5e5ce0fa2a23 -->
- **Maximum Sequence Length:** 256 tokens
- **Output Dimensionality:** 768 dimensions
- **Similarity Function:** Cosine Similarity
- **Training Dataset:**
    - json
- **Language:** en
- **License:** apache-2.0

### Model Sources

- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)

### 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:

```bash
pip install -U sentence-transformers
```

Then you can load this model and run inference.
```python
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("hivetechVN/vietnamese-sbert-base-law-768-v1")
# Run inference
sentences = [
    'Đối với yếu tố nguy hiểm thì người sử dụng lao động phải thường xuyên kiểm soát, quản lý đúng yêu cầu kỹ thuật nhằm bảo đảm an toàn, vệ sinh lao động tại nơi làm việc và ít nhất một lần trong một năm phải tổ chức kiểm tra, đánh giá yếu tố này theo quy định của pháp luật.',
    'Đối với yếu tố nguy hiểm, người sử dụng lao động phải làm gì?',
    'Nếu doanh nghiệp không giải quyết vấn đề phát sinh (chết, tai nạn, xâm phạm...) đối với người lao động ở nước ngoài thì bị phạt bao nhiêu?',
]
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]
```

<!--
### Direct Usage (Transformers)

<details><summary>Click to see the direct usage in Transformers</summary>

</details>
-->

<!--
### Downstream Usage (Sentence Transformers)

You can finetune this model on your own dataset.

<details><summary>Click to expand</summary>

</details>
-->

<!--
### Out-of-Scope Use

*List how the model may foreseeably be misused and address what users ought not to do with the model.*
-->

## Evaluation

### Metrics

#### Information Retrieval

* Dataset: `dim_768`
* Evaluated with [<code>InformationRetrievalEvaluator</code>](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator)

| Metric              | Value      |
|:--------------------|:-----------|
| cosine_accuracy@1   | 0.3548     |
| cosine_accuracy@3   | 0.4903     |
| cosine_accuracy@5   | 0.5355     |
| cosine_accuracy@10  | 0.6387     |
| cosine_precision@1  | 0.3548     |
| cosine_precision@3  | 0.1634     |
| cosine_precision@5  | 0.1071     |
| cosine_precision@10 | 0.0639     |
| cosine_recall@1     | 0.3548     |
| cosine_recall@3     | 0.4903     |
| cosine_recall@5     | 0.5355     |
| cosine_recall@10    | 0.6387     |
| **cosine_ndcg@10**  | **0.4863** |
| cosine_mrr@10       | 0.4388     |
| cosine_map@100      | 0.4472     |

<!--
## Bias, Risks and Limitations

*What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
-->

<!--
### Recommendations

*What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
-->

## Training Details

### Training Dataset

#### json

* Dataset: json
* Size: 1,391 training samples
* Columns: <code>positive</code> and <code>anchor</code>
* Approximate statistics based on the first 1000 samples:
  |         | positive                                                                           | anchor                                                                            |
  |:--------|:-----------------------------------------------------------------------------------|:----------------------------------------------------------------------------------|
  | type    | string                                                                             | string                                                                            |
  | details | <ul><li>min: 4 tokens</li><li>mean: 55.08 tokens</li><li>max: 256 tokens</li></ul> | <ul><li>min: 12 tokens</li><li>mean: 27.5 tokens</li><li>max: 78 tokens</li></ul> |
* Samples:
  | positive                                                                                                                                                                                                                                                                                                                                                    | anchor                                                                                                                                    |
  |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------|
  | <code>Bộ trưởng, Thủ trưởng cơ quan ngang bộ, Chủ tịch Ủy ban nhân dân tỉnh, thành phố trực thuộc trung ương ( sau đây gọi chung là cấp tỉnh ) quyết định thành lập trung tâm dịch vụ việc làm quy định tại điểm a khoản 1 Điều này.</code>                                                                                                                 | <code>Ai có thẩm quyền quyết định thành lập trung tâm dịch vụ việc làm do cơ quan quản lý nhà nước thành lập?</code>                      |
  | <code>Phạt tiền từ 120.000.000 đồng đến 150.000.000 đồng đối với doanh nghiệp, tổ chức cung cấp dịch vụ quan trắc môi trường lao động khi có một trong các hành vi sau đây: b ) Sử dụng nhân lực thực hiện quan trắc môi trường lao động không đảm bảo tiêu chuẩn theo quy định của pháp luật.</code>                                                       | <code>Tổ chức cung cấp dịch vụ quan trắc môi trường lao động sẽ bị phạt như thế nào nếu sử dụng nhân lực không đảm bảo tiêu chuẩn?</code> |
  | <code>Phạt tiền đối với người sử dụng lao động khi có một trong các hành vi: phân biệt đối xử vì lý do người lao động từ chối làm công việc hoặc rời bỏ nơi làm việc khi thấy rõ có nguy cơ xảy ra tai nạn lao động đe dọa nghiêm trọng tính mạng hoặc sức khỏe của mình. Mức phạt được quy định chi tiết theo số lượng người lao động bị ảnh hưởng.</code> | <code>Mức phạt cho hành vi phân biệt đối xử với người lao động từ chối làm việc do nguy cơ tai nạn lao động là bao nhiêu?</code>          |
* Loss: [<code>MultipleNegativesRankingLoss</code>](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#multiplenegativesrankingloss) with these parameters:
  ```json
  {
      "scale": 20.0,
      "similarity_fct": "cos_sim"
  }
  ```

### Training Hyperparameters
#### Non-Default Hyperparameters

- `eval_strategy`: epoch
- `per_device_train_batch_size`: 32
- `per_device_eval_batch_size`: 16
- `gradient_accumulation_steps`: 16
- `learning_rate`: 2e-05
- `num_train_epochs`: 4
- `lr_scheduler_type`: cosine
- `warmup_ratio`: 0.1
- `bf16`: True
- `tf32`: False
- `load_best_model_at_end`: True
- `optim`: adamw_torch_fused
- `batch_sampler`: no_duplicates

#### All Hyperparameters
<details><summary>Click to expand</summary>

- `overwrite_output_dir`: False
- `do_predict`: False
- `eval_strategy`: epoch
- `prediction_loss_only`: True
- `per_device_train_batch_size`: 32
- `per_device_eval_batch_size`: 16
- `per_gpu_train_batch_size`: None
- `per_gpu_eval_batch_size`: None
- `gradient_accumulation_steps`: 16
- `eval_accumulation_steps`: None
- `torch_empty_cache_steps`: None
- `learning_rate`: 2e-05
- `weight_decay`: 0.0
- `adam_beta1`: 0.9
- `adam_beta2`: 0.999
- `adam_epsilon`: 1e-08
- `max_grad_norm`: 1.0
- `num_train_epochs`: 4
- `max_steps`: -1
- `lr_scheduler_type`: cosine
- `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`: True
- `fp16`: False
- `fp16_opt_level`: O1
- `half_precision_backend`: auto
- `bf16_full_eval`: False
- `fp16_full_eval`: False
- `tf32`: False
- `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`: 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
- `dispatch_batches`: None
- `split_batches`: 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`: no_duplicates
- `multi_dataset_batch_sampler`: proportional

</details>

### Training Logs
| Epoch      | Step  | dim_768_cosine_ndcg@10 |
|:----------:|:-----:|:----------------------:|
| 1.0        | 3     | 0.4647                 |
| 2.0        | 6     | 0.4780                 |
| **2.7273** | **8** | **0.4808**             |
| 1.0        | 3     | 0.4798                 |
| 2.0        | 6     | 0.4862                 |
| **2.7273** | **8** | **0.4863**             |

* The bold row denotes the saved checkpoint.

### Framework Versions
- Python: 3.10.12
- Sentence Transformers: 3.3.1
- Transformers: 4.47.0
- PyTorch: 2.5.1+cu121
- Accelerate: 1.2.1
- Datasets: 3.3.1
- Tokenizers: 0.21.0

## Citation

### BibTeX

#### Sentence Transformers
```bibtex
@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
```bibtex
@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}
}
```

<!--
## Glossary

*Clearly define terms in order to be accessible across audiences.*
-->

<!--
## Model Card Authors

*Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
-->

<!--
## Model Card Contact

*Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
-->