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}
}
Downloads last month
5
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for 8Opt/mmbert-base-vn-sts-001

Finetuned
(26)
this model

Evaluation results