Edit model card

HCC vietnamese-bi-encoder

This is a sentence-transformers model finetuned from bkai-foundation-models/vietnamese-bi-encoder. 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: bkai-foundation-models/vietnamese-bi-encoder
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 768 tokens
  • Similarity Function: Cosine Similarity
  • Language: vn
  • License: apache-2.0

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("ictumuk/hcc-vietnamese-bi-encoder")
# Run inference
sentences = [
    'Không, Theo quy định tại Khoản 1, Điều 7, Thông tư 06/2016/TT-BKHCN ngày 22/4/2016 của Bộ Khoa học và Công nghệ về việc cấp Giấy đăng ký và cấp Chứng chỉ hành nghề đối với một số hoạt động dịch vụ hỗ trợ ứng dụng năng lượng nguyên tử, Tổ chức phải làm thủ tục gia hạn Giấy đăng ký chậm nhất 60 (sáu mươi) ngày trước khi Giấy đăng ký hết hạn. Sau thời hạn này, tổ chức phải làm thủ tục và nộp phí thẩm định, lệ phí như đề nghị cấp Giấy đăng ký mới.',
    'Công ty tôi được Cục ATBXHN cấp Giấy đăng ký hoạt động dịch vụ hỗ trợ ứng dụng năng lượng nguyên tử - kiểm xạ có thời hạn đến ngày 30/6/2019, vậy tôi nộp hồ sơ đề nghị gia hạn giấy đăng ký trước thời hạn nêu trên là đúng quy định?',
    'Cấp giấy xác nhận nguyên liệu thủy sản khai thác trong nước (theo yêu cầu) có yêu cầu gì? ',
]
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]

Evaluation

Metrics

Information Retrieval

Metric Value
cosine_accuracy@1 0.4926
cosine_accuracy@3 0.7517
cosine_accuracy@5 0.8105
cosine_accuracy@10 0.8645
cosine_precision@1 0.4926
cosine_precision@3 0.2506
cosine_precision@5 0.1621
cosine_precision@10 0.0865
cosine_recall@1 0.4926
cosine_recall@3 0.7517
cosine_recall@5 0.8105
cosine_recall@10 0.8645
cosine_ndcg@10 0.6881
cosine_mrr@10 0.6304
cosine_map@100 0.635

Information Retrieval

Metric Value
cosine_accuracy@1 0.4913
cosine_accuracy@3 0.7496
cosine_accuracy@5 0.8066
cosine_accuracy@10 0.8672
cosine_precision@1 0.4913
cosine_precision@3 0.2499
cosine_precision@5 0.1613
cosine_precision@10 0.0867
cosine_recall@1 0.4913
cosine_recall@3 0.7496
cosine_recall@5 0.8066
cosine_recall@10 0.8672
cosine_ndcg@10 0.6875
cosine_mrr@10 0.629
cosine_map@100 0.6333

Information Retrieval

Metric Value
cosine_accuracy@1 0.4891
cosine_accuracy@3 0.7417
cosine_accuracy@5 0.8036
cosine_accuracy@10 0.8641
cosine_precision@1 0.4891
cosine_precision@3 0.2472
cosine_precision@5 0.1607
cosine_precision@10 0.0864
cosine_recall@1 0.4891
cosine_recall@3 0.7417
cosine_recall@5 0.8036
cosine_recall@10 0.8641
cosine_ndcg@10 0.6846
cosine_mrr@10 0.6262
cosine_map@100 0.6307

Information Retrieval

Metric Value
cosine_accuracy@1 0.4647
cosine_accuracy@3 0.7274
cosine_accuracy@5 0.7879
cosine_accuracy@10 0.855
cosine_precision@1 0.4647
cosine_precision@3 0.2425
cosine_precision@5 0.1576
cosine_precision@10 0.0855
cosine_recall@1 0.4647
cosine_recall@3 0.7274
cosine_recall@5 0.7879
cosine_recall@10 0.855
cosine_ndcg@10 0.6672
cosine_mrr@10 0.6061
cosine_map@100 0.6107

Information Retrieval

Metric Value
cosine_accuracy@1 0.4508
cosine_accuracy@3 0.703
cosine_accuracy@5 0.7696
cosine_accuracy@10 0.8336
cosine_precision@1 0.4508
cosine_precision@3 0.2343
cosine_precision@5 0.1539
cosine_precision@10 0.0834
cosine_recall@1 0.4508
cosine_recall@3 0.703
cosine_recall@5 0.7696
cosine_recall@10 0.8336
cosine_ndcg@10 0.6476
cosine_mrr@10 0.5874
cosine_map@100 0.5922

Training Details

Training Dataset

Unnamed Dataset

  • Size: 20,664 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 4 tokens
    • mean: 121.62 tokens
    • max: 256 tokens
    • min: 6 tokens
    • mean: 36.22 tokens
    • max: 256 tokens
  • Samples:
    positive anchor
    - Khoản 1 Điều 12 của Luật quy định hoạt động tín ngưỡng của cơ sở tín ngưỡng phải được đăng ký, trừ cơ sở tín ngưỡng là nhà thờ dòng họ.
    - Việc đăng ký hoạt động tín ngưỡng của cơ sở tín ngưỡng được quy định tại khoản 2 Điều 12 của Luật, đó là người đại diện hoặc ban quản lý cơ sở tín ngưỡng có trách nhiệm gửi văn bản đăng ký hoạt động tín ngưỡng đến Ủy ban nhân dân cấp xã nơi có cơ sở tín ngưỡng chậm nhất là 30 ngày trước ngày cơ sở tín ngưỡng bắt đầu hoạt động tín ngưỡng, trừ trường hợp tổ chức lễ hội tín ngưỡng lần đầu, lễ hội tín ngưỡng được khôi phục sau thời gian gián đoạn hoặc lễ hội tín ngưỡng được tổ chức định kỳ nhưng có thay đổi về quy mô, nội dung, thời gian, địa điểm.
    Đối với cơ sở tín ngưỡng đã thông báo hoạt động tín ngưỡng hằng năm trước ngày Luật có hiệu lực, chậm nhất 30 ngày kể từ ngày Luật có hiệu lực có trách nhiệm đăng ký hoạt động tín ngưỡng theo quy định tại khoản 2 Điều 12 của Luật.
    Văn bản đăng ký phải nêu rõ tên cơ sở tín ngưỡng, các hoạt động tín ngưỡng, nội dung, quy mô, thời gian, địa điểm diễn ra hoạt động.
    Ủy ban nhân dân cấp xã có trách nhiệm trả lời bằng văn bản trong thời hạn 15 ngày kể từ ngày nhận được văn bản đăng ký hợp lệ; trường hợp từ chối đăng ký phải nêu rõ lý do.
    Hoạt động tín ngưỡng của cơ sở tín ngưỡng có phải đăng ký không? Nếu phải đăng ký thì thực hiện như thế nào?
    Điều 9, Quyết định số 3661/QĐ-BNN-TCCB ngày 19 tháng 9 năm 2018 của Bộ Nông nghiệp và PTNT quy định:Trước ngày 25 tháng 11 hàng năm. Vụ Khoa học, Công nghệ và Môi trường chủ trì, phối hợp với Vụ Tài chính, Trung tâm Khuyến nông Quốc gia thẩm định, trình Bộ trưởng phê duyệt dự án (nội dung, kinh phí) và thuyết minh dự án. Căn cứ quyết định phê duyệt của Bộ, Vụ Tài chính, Trung tâm Khuyến nông Quốc gia ký thuyết minh dự án trước ngày 30 tháng 11. Phê duyệt và ký thuyết minh dự án khuyến nông trung ương?
    Người có chứng chỉ tốt nghiệp đào tạo nghề Thừa phát lại hoặc giấy chứng nhận hoàn thành khóa bồi dưỡng nghề Thừa phát lại hoặc quyết định công nhận tương đương đào tạo nghề Thừa phát lại ở nước ngoài;
    - Người thuộc một trong các trường hợp sau không được đăng ký tập sự hành nghề Thừa phát lại:
    + Người bị mất hoặc bị hạn chế năng lực hành vi dân sự; có khó khăn trong nhận thức, làm chủ hành vi theo quy định của Bộ luật Dân sự;
    + Người đang là cán bộ, công chức, viên chức, sĩ quan, quân nhân chuyên nghiệp, công nhân, viên chức quốc phòng trong cơ quan, đơn vị thuộc Quân đội nhân dân, sĩ quan, hạ sĩ quan, chiến sỹ trong cơ quan, đơn vị thuộc Công an nhân dân;
    +Người đang bị truy cứutrách nhiệm hình sự; người đã bị kết án về tội phạm do vô ý, tội phạm ít nghiêm trọng do cố ý mà chưa được xóa án tích;người đã bị kết án về tội phạm liên quan đến chiếm đoạt tài sản,trục lợi, gian lận, gian dối, xâm phạm an ninh quốc gia, tội phạm nghiêm trọng, tội phạm rất nghiêm trọng, tội phạm đặc biệt nghiêm trọng do cố ý, kể cả trường hợp đã được xóa án tích;
    +Cán bộ, công chức, viên chức, sĩ quan, quân nhân chuyên nghiệp, công nhân, viên chức quốc phòng trong cơ quan, đơn vị thuộc Quân đội nhân dân, sĩ quan, hạ sĩ quan, chiến sỹ trong cơ quan, đơn vị thuộc Công an nhân dânbị bãi nhiệm, bị xử lý kỷ luật bằng hình thức cách chức, buộc thôi việc, tước danh hiệu hoặc đưa ra khỏi ngành;
    +Người bị xử lý kỷ luật bằng hình thức xóa tên khỏi danh sách luật sư của Đoàn luật sư do vi phạm pháp luật hoặc vi phạm quy tắc đạo đức nghề nghiệp luật sư; người bị xử phạt vi phạm hành chính bằng hình thức tước quyền sử dụng chứng chỉ hành nghề luật sư mà chưa hết thời hạn 03 năm, kể từ ngày chấp hành xong quyết định xử phạt vi phạm hành chính đó;
    +Người bị xử phạt vi phạm hành chính bằng hình thức tước quyền sử dụng thẻ công chứng viên, thẻ thẩm định viên về giá, chứng chỉ hành nghề đấu giá, chứng chỉ hành nghề quản tài viên mà chưa hết thời hạn 03 năm, kể từ ngày chấp hành xong quyết định xử phạt vi phạm hành chính đó.
    Yêu cầu, điều kiện thực hiện thủ tục đăng ký tập sự hành nghề Thừa phát lại?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 2,296 evaluation samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positive anchor
    type string string
    details
    • min: 4 tokens
    • mean: 114.12 tokens
    • max: 256 tokens
    • min: 6 tokens
    • mean: 36.66 tokens
    • max: 206 tokens
  • Samples:
    positive anchor
    Nếu công ty bạn thực hiện đăng ký trong thời gian 7 ngày làm việc kể từ ngày có chất phóng xạ thì không khải làm thủ tục khai báo chất phóng xạ.(Theo Thông tư số 08/2010/TT-BKHCN ngày 22/7/2010, khoản 2, điều 4. Trường hợp tổ chức, cá nhân đề nghị cấp giấy phép tiến hành công việc bức xạ trong thời hạn nêu tại khoản 1 Điều này thì được miễn thực hiện thủ tục khai báo) Công ty tôi nhập chất phóng xạ và làm thủ tục đề nghị cấp giấy phép tiến hành công việc bức xạ ngay khi chất phóng xạ về tới Công ty thì chúng tôi có phải làm thủ tục khai báo chất phóng xạ không?
    Hỗ trợ đơn vị đưa lao động đi làm việc ở nước ngoài theo thỏa thuận và đi làm việc ngoài tỉnh có yêu cầu là * Điều kiện thực hiện thủ tục hành chính:
    - Đơn vị, doanh nghiệp đưa người lao động của tỉnh Hà Giang đi làm việc tại nước ngoài theo thỏa thuận là các đơn vị, doanh nghiệp được UBND tỉnh giao nhiệm vụ tư vấn, tuyển chọn và đưa người lao động Hà Giang sang Trung Quốc làm việc theo thỏa thuận quản lý lao động qua biên giới giữa tỉnh Hà Giang, Việt Nam và các địa phương phía Trung Quốc.
    - Đơn vị, doanh nghiệp đưa người lao động của tỉnh Hà Giang đi làm việc tại các doanh nghiệp ngoài tỉnh là các đơn vị, doanh nghiệp có chức năng hoạt động dịch vụ việc làm theo quy định của pháp luật trên địa bàn tỉnh.
    * Đối tượng không áp dụng:
    Đơn vị, doanh nghiệp đưa lao động đi làm việc ở nước ngoài theo Thỏa thuận quản lý lao động qua biên giới và đưa lao động đi làm việc ngoài tỉnh (với số lao động đơn vị tư vấn, đưa đi) đã được hỗ trợ theo Quyết định số 352/QĐ-UBND ngày 27/2/2018 của UBND tỉnh về phê duyệt Phương án thí điểm lựa chọn doanh nghiệp đưa lao động sang Trung Quốc làm việc theo Thỏa thuận quản lý lao động qua biên giới và Nghị quyết số 47/2012/NQ-HĐND ngày 14/7/2012 của HĐND tỉnh.
    Hỗ trợ đơn vị đưa lao động đi làm việc ở nước ngoài theo thỏa thuận và đi làm việc ngoài tỉnh có yêu cầu gì?
    Bước 1: Thương nhân nước ngoài chuẩn bị hồ sơ theo quy định của pháp luật;
    + Bước 2: Thương nhân nước ngoài nộp hồ sơ tại Bộ phận tiếp nhận thủ tục hành chính của Ban Quản lý Khu kinh tế Vân Đồn đặt tại Trung tâm Hành chính công huyện Vân Đồn.
    + Bước 3: Công chức của Ban Quản lý Khu kinh tế Vân Đồn được cử đến Trung tâm Hành chính công huyện Vân Đồn kiểm tra hồ sơ và trao giấy tiếp nhận hồ sơ cho Thương nhân nước ngoài;
    + Bước 4: Thương nhân nước ngoài căn cứ thời gian ghi trên giấy tiếp nhận hồ sơ đến Trung tâm Hành chính công huyện Vân Đồn nhận kết quả.
    Trình tự thực hiện Thủ tục: Thủ tục Gia hạn giấy phép thành lập Văn phòng đại diện của thương nhân nước ngoài tại Việt Nam là gì ?
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • fp16: True
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 16
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • eval_accumulation_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: 3
  • max_steps: -1
  • lr_scheduler_type: cosine
  • 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: True
  • 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_fused
  • 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
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss loss dim_128_cosine_map@100 dim_256_cosine_map@100 dim_512_cosine_map@100 dim_64_cosine_map@100 dim_768_cosine_map@100
0.1238 10 1.4689 - - - - - -
0.2477 20 0.9103 - - - - - -
0.3715 30 0.8956 - - - - - -
0.4954 40 0.6214 - - - - - -
0.6192 50 0.5611 - - - - - -
0.7430 60 0.4804 - - - - - -
0.8669 70 0.5237 - - - - - -
0.9907 80 0.4436 0.2884 0.5861 0.6055 0.6113 0.5647 0.6128
1.1146 90 0.3729 - - - - - -
1.2384 100 0.2057 - - - - - -
1.3622 110 0.2133 - - - - - -
1.4861 120 0.1405 - - - - - -
1.6099 130 0.1612 - - - - - -
1.7337 140 0.1521 - - - - - -
1.8576 150 0.1729 - - - - - -
1.9814 160 0.1609 - - - - - -
1.9938 161 - 0.2162 0.6079 0.6247 0.6273 0.5847 0.6305
2.1053 170 0.1553 - - - - - -
2.2291 180 0.0789 - - - - - -
2.3529 190 0.0894 - - - - - -
2.4768 200 0.0806 - - - - - -
2.6006 210 0.0789 - - - - - -
2.7245 220 0.0837 - - - - - -
2.8483 230 0.1165 - - - - - -
2.9721 240 0.104 0.2056 0.6107 0.6307 0.6333 0.5922 0.635
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.13
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.1.2
  • Accelerate: 0.30.1
  • Datasets: 2.19.2
  • 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",
}

MatryoshkaLoss

@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning}, 
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

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
44
Safetensors
Model size
135M params
Tensor type
F32
·
Inference API
This model can be loaded on Inference API (serverless).

Finetuned from

Evaluation results