SentenceTransformer

This is a sentence-transformers model trained. 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
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 1024 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False}) with Transformer model: 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("binh230/bge-m3-finetuned-2")
# Run inference
sentences = [
    'Người thực hiện việc uỷ thác toàn bộ hoặc một phần việc vận chuyển hàng hoá bằng đường biển được gọi là ai?',
    'Điều 72. Các bên liên quan đến hợp đồng vận chuyển hàng hoá bằng đường biển\n1. Người thuê vận chuyển là người tự mình hoặc uỷ quyền cho người khác giao kết hợp đồng vận chuyển hàng hoá bằng đường biển với người vận chuyển. Trong trường hợp hợp đồng vận chuyển theo chứng từ vận chuyển, người thuê vận chuyển được gọi là người gửi hàng.\n2. Người vận chuyển là người tự mình hoặc uỷ quyền cho người khác giao kết hợp đồng vận chuyển hàng hoá bằng đường biển với người thuê vận chuyển.\n3. Người vận chuyển thực tế là người được người vận chuyển uỷ thác thực hiện toàn bộ hoặc một phần việc vận chuyển hàng hoá bằng đường biển.\n4. Người giao hàng là người tự mình hoặc được người khác uỷ thác giao hàng cho người vận chuyển theo hợp đồng vận chuyển hàng hoá bằng đường biển.\n5. Người nhận hàng là người có quyền nhận hàng theo quy định tại Điều 89 và Điều 110 của Bộ luật này.',
    'Điều 49. Địa vị pháp lý của thuyền trưởng\n1. Thuyền trưởng là người có quyền chỉ huy cao nhất ở trên tàu biển, chỉ huy tàu theo chế độ thủ trưởng. Mọi người có mặt trên tàu biển phải chấp hành mệnh lệnh của thuyền trưởng.\n2. Thuyền trưởng chịu sự chỉ đạo của chủ tàu hoặc người thuê tàu, người khai thác tàu.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.2468
cosine_accuracy@3 0.7418
cosine_accuracy@5 0.8261
cosine_accuracy@10 0.9197
cosine_precision@1 0.2468
cosine_precision@3 0.2473
cosine_precision@5 0.1652
cosine_precision@10 0.092
cosine_recall@1 0.2468
cosine_recall@3 0.7418
cosine_recall@5 0.8261
cosine_recall@10 0.9197
cosine_ndcg@10 0.5917
cosine_mrr@10 0.4847
cosine_map@100 0.4893

Training Details

Training Dataset

Unnamed Dataset

  • Size: 68,042 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 tokens
    • mean: 26.53 tokens
    • max: 142 tokens
    • min: 23 tokens
    • mean: 225.01 tokens
    • max: 634 tokens
  • Samples:
    sentence_0 sentence_1
    Tổ chức phát hành có trách nhiệm gì khi quản lý tài khoản vốn phát hành chứng khoán bằng ngoại tệ? Điều 8. Trách nhiệm của tổ chức phát hành
    1. Thực hiện việc mở, đóng và sử dụng tài khoản vốn phát hành chứng khoán bằng ngoại tệ theo đúng quy định tại Thông tư này và các văn bản pháp luật có liên quan.
    2. Kê khai trung thực, đầy đủ nội dung thu, chi trên tài khoản vốn phát hành chứng khoán bằng ngoại tệ; Cung cấp các chứng từ, tài liệu liên quan đến việc mở và sử dụng tài khoản vốn phát hành chứng khoán bằng ngoại tệ theo yêu cầu và hướng dẫn của tổ chức tín dụng được phép.
    Đơn vị nào có quyền yêu cầu cung cấp chứng từ liên quan đến việc sử dụng tài khoản vốn phát hành chứng khoán bằng ngoại tệ và tổ chức phát hành phải tuân thủ như thế nào? Điều 8. Trách nhiệm của tổ chức phát hành
    1. Thực hiện việc mở, đóng và sử dụng tài khoản vốn phát hành chứng khoán bằng ngoại tệ theo đúng quy định tại Thông tư này và các văn bản pháp luật có liên quan.
    2. Kê khai trung thực, đầy đủ nội dung thu, chi trên tài khoản vốn phát hành chứng khoán bằng ngoại tệ; Cung cấp các chứng từ, tài liệu liên quan đến việc mở và sử dụng tài khoản vốn phát hành chứng khoán bằng ngoại tệ theo yêu cầu và hướng dẫn của tổ chức tín dụng được phép.
    Tổ chức tín dụng có trách nhiệm gì khi liên quan đến tài khoản vốn phát hành chứng khoán bằng ngoại tệ? Điều 9. Trách nhiệm của tổ chức tín dụng được phép
    1. Thực hiện việc mở, đóng và sử dụng tài khoản vốn phát hành chứng khoán bằng ngoại tệ phù hợp với quy định tại Thông tư này và các văn bản pháp luật có liên quan.
    2. Kiểm tra, lưu giữ các tài liệu, chứng từ liên quan đến các giao dịch thu, chi được thực hiện trên tài khoản vốn phát hành chứng khoán bằng ngoại tệ của tổ chức phát hành để đảm bảo việc cung ứng dịch vụ ngoại hối được thực hiện đúng mục đích và phù hợp với quy định của pháp luật.
    3. Thực hiện chế độ báo cáo theo quy định tại Điều 10 Thông tư này.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 10
  • per_device_eval_batch_size: 10
  • num_train_epochs: 1
  • multi_dataset_batch_sampler: round_robin

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 10
  • per_device_eval_batch_size: 10
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 5e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • 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: False
  • 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: False
  • 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
  • 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: batch_sampler
  • multi_dataset_batch_sampler: round_robin

Training Logs

Epoch Step Training Loss cosine_ndcg@10
0.0735 500 0.0157 -
0.1470 1000 0.0231 -
0.2204 1500 0.0191 -
0.2939 2000 0.0179 -
0.3674 2500 0.0153 -
0.4409 3000 0.017 -
0.4702 3200 - 0.5705
0.5143 3500 0.0181 -
0.5878 4000 0.0131 -
0.6613 4500 0.0129 -
0.7348 5000 0.012 -
0.8082 5500 0.0117 -
0.8817 6000 0.0096 -
0.9405 6400 - 0.5906
0.9552 6500 0.0111 -
1.0 6805 - 0.5917

Framework Versions

  • Python: 3.10.10
  • Sentence Transformers: 3.3.1
  • Transformers: 4.47.0
  • PyTorch: 2.2.1+cu121
  • Accelerate: 1.2.0
  • Datasets: 3.1.0
  • Tokenizers: 0.21.0

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{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
13
Safetensors
Model size
568M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Evaluation results