minhleduc's picture
Add new SentenceTransformer model
a105062 verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - dense
  - generated_from_trainer
  - dataset_size:28990
  - loss:CoSENTLoss
base_model: jhu-clsp/mmBERT-base
widget:
  - source_sentence: >-
      Bộ Y tế Trung Quốc cho biết thêm 5 người đã chết vì Sars và thêm 159 người
      bị nhiễm bệnh.
    sentences:
      - >-
        Hôm thứ Hai, Trung Quốc cho biết thêm 9 người đã chết vì SARS và 160
        người nữa bị nhiễm virus này.
      - >-
        Cộng hòa Hồi giáo là nước áp dụng nhiều hình phạt tử hình nhất trên thế
        giới sau Trung Quốc.
      - >-
        Chỉ số Dow Jones Industrial Average tăng 194,14 điểm, hoặc 2,09%, lên
        9.469,20 sau khi giảm hơn 1% một ngày trước đó.
  - source_sentence: Thừa kế  một khái niệm  bản trong lập trình hướng đối tượng.
    sentences:
      - >-
        Thừa kế trong lập trình hướng đối tượng là một cách để tạo các lớp mới
        bằng cách sử dụng các lớp đã được định nghĩa.
      - Một con chó màu nâu  trắng đang cầm một quả bóng chày trong miệng
      - Tôi cũng đang gặp đúng vấn đề tương tự.
  - source_sentence: hành động bảo tồn hoặc bảo vệ một cái  đó
    sentences:
      - 'Tôi sẽ nói thẳng ở đây: Bạn không.'
      - >-
        Nhưng lợi nhuận khiến thị trường chứng khoán Mỹ trở nên hấp dẫn phản ánh
        sự cân bằng chính trị mong manh.
      - hành động khẳng định hoặc khẳng định hoặc tuyên bố một cái  đó.
  - source_sentence: Một cậu  mặc áo thun trắng đang phun nước trong nước nông
    sentences:
      - Một cậu  đang chạy qua biển  bãi biển
      - Hai người đang đi xe đạp.
      - Người đàn ông đang chơi với con chó nhỏ lông xù.
  - source_sentence: Một người đàn ông đang ngồi gần một chiếc xe đạp  đang viết một ghi chú
    sentences:
      - 'Mức thuế 50 pence của Đảng Lao động: Những điều bạn cần biết.'
      - >-
        Các vận động viên khuyết tật chuẩn bị sẵn sàng, làm dấy lên những câu
        hỏi về hậu cần và sự công bằng.
      - >-
        Một người đàn ông mặc quần áo được phủ sơn và đang ngồi bên ngoài trong
        một khu vực đông đúc để viết một cái gì đó
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - pearson_cosine
  - spearman_cosine
model-index:
  - name: SentenceTransformer based on jhu-clsp/mmBERT-base
    results:
      - task:
          type: semantic-similarity
          name: Semantic Similarity
        dataset:
          name: 8Opt sts dev 0001
          type: 8Opt-sts-dev-0001
        metrics:
          - type: pearson_cosine
            value: 0.7112661088179411
            name: Pearson Cosine
          - type: spearman_cosine
            value: 0.7317986017657648
            name: Spearman Cosine
      - task:
          type: semantic-similarity
          name: Semantic Similarity
        dataset:
          name: 8Opt sts test 0002
          type: 8Opt-sts-test-0002
        metrics:
          - type: pearson_cosine
            value: 0.7113078452424898
            name: Pearson Cosine
          - type: spearman_cosine
            value: 0.7318436946978517
            name: Spearman Cosine

SentenceTransformer based on jhu-clsp/mmBERT-base

This is a sentence-transformers model finetuned from jhu-clsp/mmBERT-base. 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: jhu-clsp/mmBERT-base
  • Maximum Sequence Length: 8192 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False, 'architecture': 'ModernBertModel'})
  (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:

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("8Opt/mmbert-base-vn-sts-001")
# Run inference
sentences = [
    'Một người đàn ông đang ngồi gần một chiếc xe đạp và đang viết một ghi chú',
    'Một người đàn ông mặc quần áo được phủ sơn và đang ngồi bên ngoài trong một khu vực đông đúc để viết một cái gì đó',
    'Các vận động viên khuyết tật chuẩn bị sẵn sàng, làm dấy lên những câu hỏi về hậu cần và sự công bằng.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.8503, 0.7796],
#         [0.8503, 1.0000, 0.7599],
#         [0.7796, 0.7599, 1.0000]])

Evaluation

Metrics

Semantic Similarity

Metric 8Opt-sts-dev-0001 8Opt-sts-test-0002
pearson_cosine 0.7113 0.7113
spearman_cosine 0.7318 0.7318

Training Details

Training Dataset

Unnamed Dataset

  • Size: 28,990 training samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 score
    type string string float
    details
    • min: 6 tokens
    • mean: 18.02 tokens
    • max: 74 tokens
    • min: 5 tokens
    • mean: 17.77 tokens
    • max: 81 tokens
    • min: 0.04
    • mean: 2.6
    • max: 5.0
  • Samples:
    sentence1 sentence2 score
    Một con chó đen đang chạy trong tuyết. Một con chó đen đang chạy trên bãi biển. 1.8
    bóng đèn a tạo ra một khoảng trống nếu bóng đèn a cháy ra, cả b và c đều không ở trong một đường kín 1.8
    Sự phát triển an ninh tại Iraq, ngày 1 tháng 2 Sự phát triển an ninh tại Pakistan, ngày 13 tháng 3 1.6
  • Loss: CoSENTLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "pairwise_cos_sim"
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 4,141 evaluation samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 score
    type string string float
    details
    • min: 3 tokens
    • mean: 18.71 tokens
    • max: 107 tokens
    • min: 4 tokens
    • mean: 17.54 tokens
    • max: 91 tokens
    • min: 0.04
    • mean: 2.56
    • max: 5.0
  • Samples:
    sentence1 sentence2 score
    một đơn vị đáp ứng các điều kiện tiên quyết để tham gia vào một sự kiện. một mức độ sửa đổi có thể được bao gồm để chỉ ra bao nhiêu đơn vị vượt quá hoặc không đạt được các yêu cầu tối thiểu. (thường theo sau là `to ') có phương tiện cần thiết hoặc kỹ năng hoặc bí quyết hoặc thẩm quyền để làm một cái gì đó; 0.4
    Tôi sẽ không đưa nó vào hồ sơ của mình. Tôi sẽ không đưa công việc này vào hồ sơ của mình. 4.0
    Một cậu bé trẻ với một chiếc áo khoác chứa tim đang nâng tay lên khi anh ta trượt Một đứa trẻ tóc vàng đang đi xuống một slide và ném lên tay của mình 3.7
  • Loss: CoSENTLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "pairwise_cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • learning_rate: 2e-05
  • num_train_epochs: 5
  • warmup_ratio: 0.1
  • fp16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • 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: 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: 5
  • 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
  • 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}
  • parallelism_config: 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
  • 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
  • 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
  • hub_revision: None
  • 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
  • include_tokens_per_second: False
  • 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
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss Validation Loss 8Opt-sts-dev-0001_spearman_cosine 8Opt-sts-test-0002_spearman_cosine
0.1104 100 6.2285 6.1894 0.4639 -
0.2208 200 6.0912 6.0358 0.5950 -
0.3311 300 6.0572 6.0373 0.6327 -
0.4415 400 5.9895 5.9931 0.6654 -
0.5519 500 5.9872 5.9771 0.6707 -
0.6623 600 5.9583 5.9619 0.6785 -
0.7726 700 5.9517 5.9831 0.6930 -
0.8830 800 5.9866 5.9433 0.6980 -
0.9934 900 5.9541 5.9460 0.6964 -
1.1038 1000 5.8652 5.9386 0.7174 -
1.2141 1100 5.8577 5.9361 0.7077 -
1.3245 1200 5.8518 5.9412 0.7201 -
1.4349 1300 5.8636 5.9255 0.7257 -
1.5453 1400 5.8342 5.9430 0.7134 -
1.6556 1500 5.8309 5.9765 0.7177 -
1.7660 1600 5.853 5.9125 0.7289 -
1.8764 1700 5.8369 5.9112 0.7324 -
1.9868 1800 5.8504 5.9032 0.7335 -
2.0971 1900 5.7031 5.9822 0.7343 -
2.2075 2000 5.6934 6.0005 0.7328 -
2.3179 2100 5.6574 6.0913 0.7277 -
2.4283 2200 5.6671 6.0513 0.7255 -
2.5386 2300 5.6632 5.9786 0.7325 -
2.6490 2400 5.6746 6.0000 0.7342 -
2.7594 2500 5.6995 5.9492 0.7366 -
2.8698 2600 5.6814 6.0296 0.7315 -
2.9801 2700 5.6689 6.0508 0.7310 -
3.0905 2800 5.4825 6.2192 0.7296 -
3.2009 2900 5.4686 6.2524 0.7295 -
3.3113 3000 5.4698 6.1861 0.7294 -
3.4216 3100 5.4957 6.2815 0.7296 -
3.5320 3200 5.4993 6.2204 0.7309 -
3.6424 3300 5.5112 6.1372 0.7334 -
3.7528 3400 5.5259 6.1005 0.7337 -
3.8631 3500 5.5144 6.2305 0.7329 -
3.9735 3600 5.4785 6.1930 0.7354 -
4.0839 3700 5.367 6.5986 0.7276 -
4.1943 3800 5.2908 6.6695 0.7259 -
4.3046 3900 5.3125 6.6357 0.7264 -
4.4150 4000 5.2967 6.6588 0.7296 -
4.5254 4100 5.3019 6.6631 0.7313 -
4.6358 4200 5.2951 6.7149 0.7327 -
4.7461 4300 5.2609 6.7235 0.7323 -
4.8565 4400 5.2969 6.6987 0.7319 -
4.9669 4500 5.2938 6.7005 0.7318 -
-1 -1 - - - 0.7318

Framework Versions

  • Python: 3.12.12
  • Sentence Transformers: 5.1.2
  • Transformers: 4.57.1
  • PyTorch: 2.8.0+cu126
  • Accelerate: 1.11.0
  • Datasets: 4.0.0
  • Tokenizers: 0.22.1

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",
}

CoSENTLoss

@article{10531646,
    author={Huang, Xiang and Peng, Hao and Zou, Dongcheng and Liu, Zhiwei and Li, Jianxin and Liu, Kay and Wu, Jia and Su, Jianlin and Yu, Philip S.},
    journal={IEEE/ACM Transactions on Audio, Speech, and Language Processing},
    title={CoSENT: Consistent Sentence Embedding via Similarity Ranking},
    year={2024},
    doi={10.1109/TASLP.2024.3402087}
}