SentenceTransformer based on AITeamVN/Vietnamese_Embedding_v2

This is a sentence-transformers model finetuned from AITeamVN/Vietnamese_Embedding_v2. 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: AITeamVN/Vietnamese_Embedding_v2
  • Maximum Sequence Length: 2048 tokens
  • Output Dimensionality: 1024 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 2048, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
  (1): Pooling({'word_embedding_dimension': 1024, '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("phonghoccode/VSLP2025_Embedding_semantic_v1")
# Run inference
sentences = [
    'Biển báo với hình mũi tên chỉ hướng đi thẳng và rẽ trái áp dụng cho các phương tiện tham gia giao thông trong trường hợp nào?',
    '26.1. Biển báo cấm được đặt ở nơi đường giao nhau hoặc trước một vị trí trên đường cần cấm.\nBiển có hiệu lực bắt đầu từ vị trí đặt biển trở đi. Nếu vì lý do nào đó, biển đặt cách xa vị trí định cấm thì phải đặt biển phụ số S.502 để chỉ rõ khoảng cách từ sau biển cấm đến vị trí biển bắt đầu có hiệu lực.\n26.2. Khi cần thiết để chỉ rõ hướng tác dụng của biển và chỉ vị trí bắt đầu hay vị trí kết thúc hiệu lực của biển phải đặt biển phụ số S.503 “Hướng tác dụng của biển”.\n26.3. Các biển báo cấm từ biển số P.101 đến biển số P.120 không cần quy định phạm vi có hiệu lực của biển, không có biển báo hết cấm.\n26.4. Khi cần thiết, trong trường hợp cấm vì lý do cầu đường bị tắc, hư hỏng thì kèm theo các biển báo cấm nêu tại khoản 26.3 Điều này đặt các biển chỉ dẫn lối đi cho xe bị cấm.\n26.5. Biển số P.121 và biển số P.128 có hiệu lực đến hết khoảng cách cấm ghi trên biển phụ số S.501 hoặc đến vị trí đặt biển số DP.135 “Hết tất cả các lệnh cấm”.\n26.6. Biển số P.123 (a,b) và biển số P.129 có hiệu lực tại khu vực đặt biển.\n26.7. Biển số P.124 (a, b, c, d, e, f) có hiệu lực ở vị trí nơi đường giao nhau, chỗ mở dải phân cách nhưng không cho phép quay đầu xe hoặc căn cứ vào biển phụ số S.503.\n26.8. Biển số P.125, P.126, P.127(a,b,c), P.130, P.131(a,b,c) có hiệu lực đến nơi đường giao nhau tiếp giáp hoặc đến vị trí đặt biển hết cấm (các biển số DP.133, DP.134, DP.135, DP.127d). Các biển số P.130 và P.131(a,b,c) còn căn cứ vào các biển phụ.\n26.9. Nếu đoạn đường phải thi hành biển cấm đi qua các nút giao (trừ giao với các ngõ, ngách, hẻm hoặc lối ra vào cơ quan, đơn vị; hoặc khu đất lân cận mà phương tiện chỉ có thể ra, vào khu đất bằng một lối đi chung), biển cấm phải được nhắc lại đặt phía sau nút giao theo hướng đường đang có biển cấm, trừ các trường hợp có qui định riêng hoặc có biển phụ kèm theo.',
    'a) Để chỉ dẫn cho người tham gia giao thông biết đường phía trước có làn đường dành riêng cho ô tô khách theo chiều ngược lại, đặt biển số I.413a "Đường phía trước có làn đường dành cho ô tô khách". Biển được đặt ở nơi đường giao nhau đầu đường một chiều mà hướng ngược chiều có ô tô khách được phép chạy.\nb) Để chỉ dẫn cho người tham gia giao thông biết ở nơi đường giao nhau rẽ phải hoặc rẽ trái là rẽ ra đường có làn đường dành riêng cho ô tô khách, đặt biển số I.413b hoặc biển số I.413c báo hiệu "Rẽ ra đường có làn đường dành cho ô tô khách". Tùy theo hướng rẽ mà lựa chọn kiểu biển cho phù hợp.\n\nHình E.13 - Biển số I.413',
]
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]

Training Details

Training Dataset

Unnamed Dataset

  • Size: 11,823 training samples
  • Columns: sentence1, sentence2, and label
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 label
    type string string int
    details
    • min: 18 tokens
    • mean: 32.54 tokens
    • max: 70 tokens
    • min: 23 tokens
    • mean: 346.37 tokens
    • max: 2048 tokens
    • 0: ~94.00%
    • 1: ~6.00%
  • Samples:
    sentence1 sentence2 label
    Biển báo cấm xe khách trên 29 chỗ được áp dụng trong các khoảng thời gian nào? Quy chuẩn này quy định về báo hiệu đường bộ bao gồm: đèn tín hiệu giao thông; biển báo hiệu đường bộ; vạch kẻ đường và các dấu hiệu khác trên mặt đường; cọc tiêu, tường bảo vệ, rào chắn, đinh phản quang, tiêu phản quang, cột Km, cọc H; thiết bị âm thanh báo hiệu đường bộ.
    Quy chuẩn này quy định về báo hiệu đường bộ áp dụng cho tất cả các tuyến đường bộ trong mạng lưới đường bộ Việt Nam, các đường nằm trong hệ thống đường bộ tham gia Điều ước quốc tế mà Việt Nam là thành viên (Hiệp định GMS-CBTA, các thỏa thuận trong ASEAN và các thỏa thuận quốc tế khác) - sau đây gọi là các tuyến đường đối ngoại.
    1
    Biển báo cấm xe khách trên 29 chỗ được áp dụng trong các khoảng thời gian nào? Biển báo nguy hiểm và cảnh báo được dùng để báo cho người tham gia giao thông biết trước tính chất của sự nguy hiểm hoặc các điều cần chú ý phòng ngừa trên tuyến đường. Khi gặp biển báo nguy hiểm và cảnh báo, người tham gia giao thông phải giảm tốc độ đến mức cần thiết, chú ý quan sát và chuẩn bị sẵn sàng xử lý những tình huống có thể xẩy ra để phòng ngừa tai nạn. 0
    Biển báo cấm xe khách trên 29 chỗ được áp dụng trong các khoảng thời gian nào? a) Đến hết đoạn đường tốc độ tối thiểu, đặt biển số R.307 "Hết hạn chế tốc độ tối thiểu" (hoặc đặt biển số DP.135 "Hết tất cả các lệnh cấm", nếu đồng thời có nhiều biển cấm khác hết tác dụng).
    b) Biển có giá trị báo cho người tham gia giao thông biết hiệu lực của biển số R.306 hết tác dụng, kể từ biển này các xe được phép chạy chậm hơn trị số ghi trên biển nhưng không được gây cản trở các xe khác.

    Hình D.9 - Biển số R.307
    0
  • Loss: ContrastiveLoss with these parameters:
    {
        "distance_metric": "SiameseDistanceMetric.COSINE_DISTANCE",
        "margin": 0.5,
        "size_average": true
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 6
  • per_device_eval_batch_size: 12
  • gradient_accumulation_steps: 4
  • learning_rate: 2e-05
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: True
  • push_to_hub: True
  • hub_model_id: phonghoccode/VSLP2025_Embedding_semantic_v1
  • gradient_checkpointing: True

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 6
  • per_device_eval_batch_size: 12
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 4
  • 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: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • 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: 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: 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: True
  • resume_from_checkpoint: None
  • hub_model_id: phonghoccode/VSLP2025_Embedding_semantic_v1
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: True
  • 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
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss
0.2029 100 0.0178
0.4059 200 0.0003
0.6088 300 0.0001
0.8118 400 0.0

Framework Versions

  • Python: 3.11.13
  • Sentence Transformers: 4.1.0
  • Transformers: 4.52.4
  • PyTorch: 2.6.0+cu124
  • Accelerate: 1.8.1
  • Datasets: 2.19.2
  • 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",
}

ContrastiveLoss

@inproceedings{hadsell2006dimensionality,
    author={Hadsell, R. and Chopra, S. and LeCun, Y.},
    booktitle={2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'06)},
    title={Dimensionality Reduction by Learning an Invariant Mapping},
    year={2006},
    volume={2},
    number={},
    pages={1735-1742},
    doi={10.1109/CVPR.2006.100}
}
Downloads last month
18
Safetensors
Model size
568M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for phonghoccode/VSLP2025_Embedding_semantic_v1

Base model

BAAI/bge-m3
Finetuned
(3)
this model