mpnet-finetune-full / README.md
DungHugging's picture
Update mpnet with 3000 banking samples using LoRA
4f582ab verified
metadata
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - dense
  - generated_from_trainer
  - dataset_size:2665
  - loss:OnlineContrastiveLoss
base_model: sentence-transformers/paraphrase-multilingual-mpnet-base-v2
widget:
  - source_sentence: CCTG sẽ tự động tái tục cả gốc  lãi khi đến hạn
    sentences:
      - >-
        CCTG không có tính năng tự động tái tục, vốn gốc sẽ chuyển sang lãi suất
        không kỳ hạn
      - Tính toán chỉ số YTM (Yield to Maturity) cho G-Bond.
      - xem sao  chi tiết dòng tiền ra vào mọi lúc mọi nơi
  - source_sentence: gửi tiết kiệm online lãi suất cao hơn tại quầy
    sentences:
      - >-
        nếu đã được bên khác chi trả, bảo hiểm sẽ chỉ trả phần chênh lệch còn
        thiếu
      - miễn phí thường niên trọn đời (không điều kiện)
      - gửi tiết kiệm tại quầy được nhận quà tặng hiện vật
  - source_sentence: ưu đãi thanh toán lệ phí cấp giấy chứng thực
    sentences:
      - ưu đãi thanh toán cấp chứng thực được tích dặm
      - hỗ trợ đóng tiền điện, nước, internet qua ngân hàng số
      - >-
        Quá trình phân bổ dần giá trị của các tài sản phi vật chất (như bản
        quyền, phần mềm, bằng sáng chế) vào chi phí qua các năm.
  - source_sentence: >-
      mọi sửa đổi điều khoản sẽ có hiệu lực nếu khách hàng tiếp tục sử dụng dịch
      vụ
    sentences:
      - tiết kiệm  kỳ hạn 12 tháng tự động quay vòng gốc lãi
      - Loại trừ các chi phí phát sinh trong phạm vi 100km từ nơi  trú chính.
      - >-
        việc tiếp tục giao dịch đồng nghĩa với việc khách hàng chấp nhận các
        thay đổi mới
  - source_sentence: đăng  nhận lãi tiết kiệm hàng tháng thay  cuối kỳ
    sentences:
      - lựa chọn Monthly Interest Payout Option cho tài khoản Savings
      - không thu phí duy trì dịch vụ hàng tháng nếu đủ điều kiện
      - công ty bảo hiểm chỉ thanh toán khi khách hàng cung cấp đủ bằng chứng
pipeline_tag: sentence-similarity
library_name: sentence-transformers
metrics:
  - cosine_accuracy
  - cosine_accuracy_threshold
  - cosine_f1
  - cosine_f1_threshold
  - cosine_precision
  - cosine_recall
  - cosine_ap
  - cosine_mcc
model-index:
  - name: >-
      SentenceTransformer based on
      sentence-transformers/paraphrase-multilingual-mpnet-base-v2
    results:
      - task:
          type: binary-classification
          name: Binary Classification
        dataset:
          name: mpnet contrastive eval
          type: mpnet_contrastive_eval
        metrics:
          - type: cosine_accuracy
            value: 0.8209459459459459
            name: Cosine Accuracy
          - type: cosine_accuracy_threshold
            value: 0.7716432809829712
            name: Cosine Accuracy Threshold
          - type: cosine_f1
            value: 0.8389057750759878
            name: Cosine F1
          - type: cosine_f1_threshold
            value: 0.7716432809829712
            name: Cosine F1 Threshold
          - type: cosine_precision
            value: 0.7976878612716763
            name: Cosine Precision
          - type: cosine_recall
            value: 0.8846153846153846
            name: Cosine Recall
          - type: cosine_ap
            value: 0.8921973688043467
            name: Cosine Ap
          - type: cosine_mcc
            value: 0.6429264691968221
            name: Cosine Mcc

SentenceTransformer based on sentence-transformers/paraphrase-multilingual-mpnet-base-v2

This is a sentence-transformers model finetuned from sentence-transformers/paraphrase-multilingual-mpnet-base-v2. 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 Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False, 'architecture': 'XLMRobertaModel'})
  (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("DungHugging/mpnet-finetune-full")
# Run inference
sentences = [
    'đăng ký nhận lãi tiết kiệm hàng tháng thay vì cuối kỳ',
    'lựa chọn Monthly Interest Payout Option cho tài khoản Savings',
    'công ty bảo hiểm chỉ thanh toán khi khách hàng cung cấp đủ bằng chứ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.9182, 0.6618],
#         [0.9182, 1.0000, 0.7091],
#         [0.6618, 0.7091, 1.0000]])

Evaluation

Metrics

Binary Classification

Metric Value
cosine_accuracy 0.8209
cosine_accuracy_threshold 0.7716
cosine_f1 0.8389
cosine_f1_threshold 0.7716
cosine_precision 0.7977
cosine_recall 0.8846
cosine_ap 0.8922
cosine_mcc 0.6429

Training Details

Training Dataset

Unnamed Dataset

  • Size: 2,665 training samples
  • Columns: sentence_0, sentence_1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence_0 sentence_1 label
    type string string float
    details
    • min: 6 tokens
    • mean: 14.93 tokens
    • max: 29 tokens
    • min: 9 tokens
    • mean: 18.46 tokens
    • max: 55 tokens
    • min: 0.0
    • mean: 0.49
    • max: 1.0
  • Samples:
    sentence_0 sentence_1 label
    miễn phí thường niên năm đầu tiên phí thường niên năm đầu cao gấp đôi các năm sau 0.0
    Tỷ lệ quy đổi là 1 lượt golf đổi được 1 set ăn cho 2 người kèm 2 đồ uống. Mỗi lượt golf trong tài khoản có thể quy đổi thành một bữa ăn dành cho 02 người bao gồm đồ uống. 1.0
    Hợp đồng kỳ hạn không chuyển giao (Non-Deliverable Forward - NDF). Vào ngày đáo hạn, hai bên chỉ thanh toán chênh lệch tỷ giá bằng đồng tiền mạnh (thường là USD) thay vì giao nhận vốn gốc. 1.0
  • Loss: OnlineContrastiveLoss

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • num_train_epochs: 10
  • 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: 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: 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: 10
  • 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
  • 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}
  • 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: batch_sampler
  • multi_dataset_batch_sampler: round_robin
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Epoch Step Training Loss mpnet_contrastive_eval_cosine_ap
0.5 42 - 0.5456
1.0 84 - 0.7198
1.5 126 - 0.7952
2.0 168 - 0.8277
2.5 210 - 0.8432
3.0 252 - 0.8581
3.5 294 - 0.8744
4.0 336 - 0.8748
4.5 378 - 0.8885
5.0 420 - 0.8893
5.5 462 - 0.8862
5.9524 500 0.8565 -
6.0 504 - 0.8847
6.5 546 - 0.8916
7.0 588 - 0.8942
7.5 630 - 0.8916
8.0 672 - 0.8907
8.5 714 - 0.8897
9.0 756 - 0.8918
9.5 798 - 0.8926
10.0 840 - 0.8922

Framework Versions

  • Python: 3.12.12
  • Sentence Transformers: 5.1.1
  • Transformers: 4.57.1
  • PyTorch: 2.8.0+cu126
  • Accelerate: 1.11.0
  • Datasets: 4.4.2
  • 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",
}