SentenceTransformer based on vinai/phobert-base-v2

This is a sentence-transformers model finetuned from vinai/phobert-base-v2 on the json dataset. 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: vinai/phobert-base-v2
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 768 tokens
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: RobertaModel 
  (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("tanbinh2210/mnrl_phobert-base-v2")
# Run inference
sentences = [
    'Quy_trình lọc công_việc theo Người thực_hiện trong dự_án bao_gồm những bước nào ?',
    'Tôi có_thể lọc được các công_việc tôi là Người thực_hiện ở trong dự_án không ?\nTại danh_sách công_việc trong dự_án bạn có_thể sử_dụng bộ lọc nâng cao ở thanh tìm_kiếm để lọc danh_sách các công_việc theo Người thực_hiện bằng cách :\nTại màn danh_sách công_việc trong dự_án Chọn tác_vụ Lọc trên Bộ lọc nâng cao\nLọc theo trường Người thực_hiện\nlọc công_việc trong dự_án theo người thực_hiện',
    'Hồ_sơ bảo_hiểm\nKê_khai hồ_sơ bảo_hiểm\nKê_khai hồ_sơ bảo_hiểm là một thủ_tục bắt_buộc đối_với các doanh_nghiệp và người lao_động để đảm_bảo quyền_lợi và nghĩa_vụ về bảo_hiểm_xã_hội , bảo_hiểm_y_tế , bảo_hiểm thất_nghiệp .\nDanh_sách HSBH được tự_động cập_nhật từ danh_sách Hồ_sơ nhân_sự ( HSNS ) đang làm_việc trong phân hệ Nhân_sự dựa trên cài_đặt tăng giảm dự_kiến trong IVAN .\nCài_đặt 1 - IVAN\nDưới đây là các bước hướng_dẫn kê_khai và khai_báo HSBH :\nBước 1 : Truy_cập đối_tượng Hồ_sơ bảo_hiểm > Chọn tab Chờ kê_khai > Chọn hồ_sơ muốn khai_báo và nhấn chuột phải > Chọn thủ_tục kê_khai\nBước 1 Kê_khai hồ_sơ bảo_hiểm\nBước 2 : \xa0Điền thông_tin bắt_buộc tại tab Khai_báo > \xa0Nhấn Cập_nhật\nBước 2 Kê_khai hồ_sơ bảo_hiểm\nChú_ý : Đối_với những hồ_sơ chưa đầy_đủ thông_tin , người dùng cần bổ_sung tại các tab Hồ_sơ bảo_hiểm và Thông_tin gia_đình trước khi thực_hiện khai_báo .\nBước 3 : Click vào nhãn của thủ_tục muốn kê_khai > Thực_hiện kê_khai hồ_sơ bảo_hiểm > Nhấn nút Ký & Gửi kê_khai\nBước 3 Kê_khai hồ_sơ bảo_hiểm',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

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

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 7,276 training samples
  • Columns: question and positive
  • Approximate statistics based on the first 1000 samples:
    question positive
    type string string
    details
    • min: 8 tokens
    • mean: 19.78 tokens
    • max: 46 tokens
    • min: 29 tokens
    • mean: 171.57 tokens
    • max: 256 tokens
  • Samples:
    question positive
    Nếu thiếu thông_tin về số người phụ_thuộc trong hồ_sơ nhân_sự thì sẽ ảnh_hưởng như_thế_nào đến quyết_toán thuế ? Khắc_phục sự_cố không có thông_tin quyết_toán thuế
    Bảng quyết_toán thuế được tổng_hợp thông_tin từ bảng lương các tháng , nguyên_nhân chính dẫn đến việc không có thông_tin trên bảng quyết_toán thuế là do trên các bảng lương chưa có đầy_đủ các thông_tin :
    Cột tổng thu_nhập tổng_hợp dựa trên cột Tổng tiền trên các bảng lương
    Cột giảm trừ bảo_hiểm dựa trên cột Khấu_trừ bảo_hiểm trên các bảng lương
    Một_số thông_tin khác như mã_số thuế , số người phụ_thuộc , .. cần được nhập đầy_đủ trên hồ_sơ nhân_sự của nhân_sự
    Trong một quy_trình công_việc đang chạy , vai_trò nào cho_phép tôi theo_dõi luồng vận_hành của quy_trình ? Quy_trình tự_động
    Node_Công_việc quy_trình
    Node công_việc quy_trình được sinh ra sau khi chọn điều_kiện tạo công_việc quy_trình .
    Tại đây người dùng có_thể tiến_hành cài_đặt các thông_tin liên_quan đến việc quản_lý tổng_hợp luồng vận_hành quy_trình .
    Node công_việc quy_trình
    Ấn chuột trái vào node công_việc quy_trình để tiến_hành thiết_lập các cài_đặt liên_quan .
    Bảng mô_tả các trường dữ_liệu trong node công_việc quy_trình :
    Trường dữ_liệu : Phạm_vi áp_dụng , Mô_tả : Chỉ những nhân_sự thuộc phạm_vi áp_dụng trong cài_đặt mới có_thể nhìn thấy và sử_dụng quy_trình này .
    Những người không thuộc phạm_vi áp_dụng khi tạo Quy_trình công_việc sẽ không_thể tìm thấy và khởi tạo quy_trình này .
    Trường dữ_liệu : Người_quản_lý công_việc sinh ra bởi quy_trình , Mô_tả : Là người có toàn_quyền đối_với công_việc quy_trình được khởi chạy
    Trường dữ_liệu : Cho_phép thay_đổi người_quản_lý khi tạo công_việc , Mô_tả : Cài_đặt này cho_phép thay_đổi người_quản_lý của công_việc sinh ra bởi quy_trình khi khởi tạo công_việc
    Trường dữ_liệu : Người_quản_lý quy_trình mẫu , Mô_tả : Là người có_thể thay_đổi , điều_chỉnh hoặc xoá quy_trình mẫu này
    Trường dữ_liệu : Người theo_dõi , Mô_tả : Là người theo_dõi luồng vận_hành quy_trình khi quy_trình được khởi chạy
    Trước khi ký và gửi hồ_sơ ngừng dịch_vụ 1 - IVAN lên BHXH , tôi cần kiểm_tra những thông_tin gì trong tờ khai ? Ngừng dịch_vụ 1 - IVAN
    Bạn muốn truy_cập nhanh đến phân hệ Bảo_hiểm 1 - IVAN ?
    Truy_cập vào phân hệ 1 - IVAN
    Nội_dung
    Hướng_dẫn ngừng dịch_vụ 1 - IVAN
    Hướng_dẫn ngừng dịch_vụ 1 - IVAN
    Mục_đích : Tác_vụ này được sử_dụng trong trường_hợp bạn không muốn sử_dụng dịch_vụ 1 - IVAN nữa .
    Dưới đây là chi_tiết hướng_dẫn ngừng dịch_vụ 1 - IVAN :
    Click vào Ngừng 1 - IVAN > > Chọn một hoặc nhiều lý_do > > Kiểm_tra thông_tin điền trong tờ khai > > Ký và gửi hồ_sơ lên BHXH Việt_Nam
    ngừng 1 - IVAN
    Kết_quả ngừng dịch_vụ sẽ được gửi đến phần_mềm 1 - IVAN và email đăng_ký dịch_vụ của đơn_vị .
    Khi cơ_quan BHXH xác_nhận yêu_cầu ngừng , dịch_vụ 1 - IVAN của đơn_vị bạn sẽ chính_thức bị ngừng và không_thể tiếp_tục sử_dụng .
    Ghi_chú : Sau khi thay_đổi thông_tin đơn_vị hoặc ngừng dịch_vụ 1 - IVAN , hệ_thống sẽ lưu lịch_sử tại Danh_sách hồ_sơ
    Tìm_hiểu thêm tại Trung_tâm hỗ_trợ 1Office
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Evaluation Dataset

json

  • Dataset: json
  • Size: 7,276 evaluation samples
  • Columns: question and positive
  • Approximate statistics based on the first 1000 samples:
    question positive
    type string string
    details
    • min: 8 tokens
    • mean: 20.21 tokens
    • max: 52 tokens
    • min: 32 tokens
    • mean: 174.47 tokens
    • max: 256 tokens
  • Samples:
    question positive
    Với vai_trò trưởng bộ_phận , làm_sao để tôi có cái nhìn tổng_quan về đánh_giá cũng như thực_hiện đúng nhiệm_vụ của mình ? PHÂN HỆ ĐÁNH_GIÁ
    Những gì bạn có_thể làm
    Theo_dõi các tính_năng / tác_vụ đánh_giá theo đúng vai_trò sẽ giúp các bộ_phận có cái nhìn tổng_quan về đánh_giá cũng như thực_hiện đúng nhiệm_vụ của mình .
    Đảm_bảo tính độc_lập trong quy_trình quản_lý và đánh_giá nhân_sự .
    Tính_năng / Tác_vụ : Thiết_lập tiêu_chí đánh_giá Xây_dựng bộ tiêu_chí đánh_giá dựa trên các loại tiêu_chí đánh_giá , Người sử_dụng : Ban lãnh_đạo / Trưởng phòng hành_chính nhân_sự
    Tính_năng / Tác_vụ : Quản_lý mẫu đánh_giá Xây_dựng mẫu đánh_giá với các tiêu_chí đặc_trưng cho từng vị_trí trong doanh_nghiệp , Người sử_dụng : Bộ_phận hành_chính nhân_sự
    Tính_năng / Tác_vụ : Quản_lý phiếu đánh_giá Quản_lý phiếu đánh_giá định_kỳ và người thực_hiện đánh_giá , Người sử_dụng : Bộ_phận hành_chính nhân_sự
    Tính_năng / Tác_vụ : Thực_hiện đánh_giá , Người sử_dụng : Trưởng bộ_phận / Nhân_viên
    Tìm_hiểu thêm tại trung_tâm hỗ_trợ 1Office
    Tính_năng ' Form báo_cáo ' trong quy_trình mẫu cho_phép người dùng làm gì ? Quản_lý quy_trình mẫu
    Tạo mới quy_trình mẫu
    1 . Truy_cập phân hệ Văn_bản
    2 . Ở trên cùng bên trái , chọn Tạo mới Quy_trình mẫu
    Bảng mô_tả các node trong thiết_lập quy_trình mẫu :
    Trường dữ_liệu : Node bước xử_lý , Mô_tả : Cho_phép cài_đặt thông_tin liên_quan đến việc xử_lý trong quy_trình xử_lý_văn_bản , mỗi bước sẽ có người chủ_trì và người xử_lý thông_tin riêng
    Trường dữ_liệu : Node chuyển_tiếp , Mô_tả : Cho_phép người dùng thực_hiện thao_tác chuyển xử_lý sang bước tiếp_theo
    Trường dữ_liệu : Node hành_động , Mô_tả : Cài_đặt các thao_tác thủ_công của người dùng để thực_hiện bước công_việc .
    Ví_dụ : Xác_nhận , Không xác_nhận ...
    Trường dữ_liệu : Node  trình và ký , Mô_tả : Cho_phép người dùng cài_đặt hồ_sơ ký số và thực_hiện ký số trên quy_trình xử_lý_văn_bản
    Trường dữ_liệu : Node trạng_thái , Mô_tả : Cho_phép người dùng cập_nhật trạng_thái của bước xử_lý : Hoàn_thành
    Tạm dừng
    Huỷ
    Trường dữ_liệu : Node gửi email , Mô_tả : Cho_phép người dùng cài_đặt gửi email trực_tiếp trên quy_trình xử_lý_văn_bản
    Trường dữ_liệu : Form báo_cáo , Mô_tả : Tính_năng tuỳ chỉnh form trong quy_trình công_việc mẫu , cho_phép người dùng tự cấu_hình các trường hiển_thị trong các bước xử_lý công_việc
    Sau khi tải plugin ký số về , tôi cần làm gì với file nén này ? Ký token là gì ?
    Để ký token , cần làm gì ?
    Ký token là một thuật_ngữ thường được sử_dụng để chỉ chữ_ký số hoặc chứng_thư số .
    Đây là một dạng chữ_ký điện_tử được tạo ra dựa trên các thuật_toán mã_hoá phức_tạp , có giá_trị pháp_lý tương_đương với chữ_ký viết_tay trên giấy .
    Chữ_ký số thường được lưu_trữ và quản_lý trên một thiết_bị vật_lý như USB , thẻ thông_minh , hoặc một thiết_bị di_động có chức_năng tương_tự .
    Thiết_bị này được gọi là token .
    Để ký bằng token , người dùng cần :
    Download plugin hỗ_trợ ký số tại đây .
    Giải nén và cài_đặt plugin
    Cắm_USB_Token vào máy_tính và bấm " Ký_Token "
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • overwrite_output_dir: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 32
  • gradient_accumulation_steps: 4
  • weight_decay: 0.01
  • num_train_epochs: 10
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.05
  • fp16: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: True
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 32
  • 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: 5e-05
  • weight_decay: 0.01
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 10
  • max_steps: -1
  • lr_scheduler_type: cosine
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.05
  • 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: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • 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
  • eval_use_gather_object: False
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss
0.4878 50 0.5529
0.9756 100 0.1232
1.4634 150 0.0636
1.9512 200 0.0306
2.4390 250 0.0156
2.9268 300 0.0111
3.4146 350 0.0046
3.9024 400 0.0034
4.3902 450 0.0025
4.8780 500 0.0022
5.3659 550 0.0013
5.8537 600 0.0013
6.3415 650 0.0011
6.8293 700 0.0011
7.3171 750 0.001
7.8049 800 0.0009
8.2927 850 0.0009
8.7805 900 0.0009
9.2683 950 0.0009
9.7561 1000 0.0009

Framework Versions

  • Python: 3.8.10
  • Sentence Transformers: 3.2.1
  • Transformers: 4.44.2
  • PyTorch: 2.4.1+cu124
  • Accelerate: 1.0.1
  • Datasets: 2.19.0
  • Tokenizers: 0.19.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",
}

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

Model tree for tanbinh2210/mnrl_phobert-base-v2

Finetuned
(290)
this model

Papers for tanbinh2210/mnrl_phobert-base-v2