--- tags: - sentence-transformers - sentence-similarity - feature-extraction - generated_from_trainer - dataset_size:288 - loss:MatryoshkaLoss - loss:MultipleNegativesRankingLoss base_model: keepitreal/vietnamese-sbert widget: - source_sentence: SIEM giúp tổ chức đáp ứng các yêu cầu tuân thủ bằng cách thu thập và phân tích dữ liệu sự kiện bảo mật, tạo ra các báo cáo và cung cấp bằng chứng cho các cuộc kiểm toán bảo mật, đảm bảo tuân thủ các quy định và tiêu chuẩn bảo mật. sentences: - Tại sao ISOC cần hợp tác với CNTT và Kinh doanh? - Lợi ích của việc sử dụng Xác thực Hai Yếu tố (2FA) là gì? - SIEM giúp tổ chức đáp ứng các yêu cầu tuân thủ như thế nào? - source_sentence: VPN bảo vệ dữ liệu khi truy cập từ xa vào mạng nội bộ của tổ chức bằng cách mã hóa dữ liệu truyền tải, ngăn chặn việc chặn hoặc giả mạo dữ liệu và bảo vệ thông tin nhạy cảm khỏi các mối đe dọa mạng. sentences: - Mạng Lừa đảo (Decoy Network) giúp bảo vệ hệ thống CNTT như thế nào? - Tình báo Mối đe dọa (CTI) giúp tổ chức phòng ngừa tấn công như thế nào? - VPN bảo vệ dữ liệu như thế nào khi truy cập từ xa vào mạng nội bộ của tổ chức? - source_sentence: Honeypots cung cấp thông tin về các cuộc tấn công tiềm năng bằng cách ghi nhận các hoạt động khi kẻ tấn công tương tác với hệ thống, giúp quản trị viên hiểu rõ hơn về chiến thuật của kẻ tấn công. sentences: - Honeypots có thể cung cấp thông tin gì cho quản trị viên bảo mật? - Phân tích Tương quan Sự kiện trong SIEM giúp gì cho quá trình giám sát bảo mật? - Tường lửa Ứng dụng Web (WAF) bảo vệ ứng dụng như thế nào? - source_sentence: Tường lửa bảo vệ hệ thống mạng bằng cách kiểm soát và lọc lưu lượng truy cập dựa trên các quy tắc bảo mật, ngăn chặn truy cập không mong muốn từ bên ngoài và bảo vệ hệ thống khỏi các cuộc tấn công mạng. sentences: - Tường lửa bảo vệ hệ thống mạng khỏi các mối đe dọa như thế nào? - Phân tích dữ liệu bảo mật trong ISOC gồm những bước nào? - SIEM có vai trò gì trong việc phát hiện và phản ứng với các sự cố bảo mật? - source_sentence: Vận hành một chương trình bảo mật yêu cầu các công cụ hỗ trợ kiểm soát thay đổi và theo dõi tài sản dựa trên khung phân loại tài sản. sentences: - Điều gì là quan trọng nhất khi vận hành một chương trình bảo mật trong một tổ chức? - Pháp y Kỹ thuật số trong ISOC có vai trò gì? - Vì sao Bảo mật Điểm cuối quan trọng? pipeline_tag: sentence-similarity library_name: sentence-transformers metrics: - cosine_accuracy@1 - cosine_accuracy@3 - cosine_accuracy@5 - cosine_accuracy@10 - cosine_precision@1 - cosine_precision@3 - cosine_precision@5 - cosine_precision@10 - cosine_recall@1 - cosine_recall@3 - cosine_recall@5 - cosine_recall@10 - cosine_ndcg@10 - cosine_mrr@10 - cosine_map@100 model-index: - name: SentenceTransformer based on keepitreal/vietnamese-sbert results: - task: type: information-retrieval name: Information Retrieval dataset: name: dim 768 type: dim_768 metrics: - type: cosine_accuracy@1 value: 0.375 name: Cosine Accuracy@1 - type: cosine_accuracy@3 value: 0.625 name: Cosine Accuracy@3 - type: cosine_accuracy@5 value: 0.65625 name: Cosine Accuracy@5 - type: cosine_accuracy@10 value: 0.875 name: Cosine Accuracy@10 - type: cosine_precision@1 value: 0.375 name: Cosine Precision@1 - type: cosine_precision@3 value: 0.20833333333333331 name: Cosine Precision@3 - type: cosine_precision@5 value: 0.13125 name: Cosine Precision@5 - type: cosine_precision@10 value: 0.08750000000000001 name: Cosine Precision@10 - type: cosine_recall@1 value: 0.375 name: Cosine Recall@1 - type: cosine_recall@3 value: 0.625 name: Cosine Recall@3 - type: cosine_recall@5 value: 0.65625 name: Cosine Recall@5 - type: cosine_recall@10 value: 0.875 name: Cosine Recall@10 - type: cosine_ndcg@10 value: 0.5929177719706241 name: Cosine Ndcg@10 - type: cosine_mrr@10 value: 0.5072048611111111 name: Cosine Mrr@10 - type: cosine_map@100 value: 0.5138391033496732 name: Cosine Map@100 - task: type: information-retrieval name: Information Retrieval dataset: name: dim 512 type: dim_512 metrics: - type: cosine_accuracy@1 value: 0.28125 name: Cosine Accuracy@1 - type: cosine_accuracy@3 value: 0.625 name: Cosine Accuracy@3 - type: cosine_accuracy@5 value: 0.6875 name: Cosine Accuracy@5 - type: cosine_accuracy@10 value: 0.8125 name: Cosine Accuracy@10 - type: cosine_precision@1 value: 0.28125 name: Cosine Precision@1 - type: cosine_precision@3 value: 0.20833333333333331 name: Cosine Precision@3 - type: cosine_precision@5 value: 0.1375 name: Cosine Precision@5 - type: cosine_precision@10 value: 0.08125000000000002 name: Cosine Precision@10 - type: cosine_recall@1 value: 0.28125 name: Cosine Recall@1 - type: cosine_recall@3 value: 0.625 name: Cosine Recall@3 - type: cosine_recall@5 value: 0.6875 name: Cosine Recall@5 - type: cosine_recall@10 value: 0.8125 name: Cosine Recall@10 - type: cosine_ndcg@10 value: 0.5413930380770813 name: Cosine Ndcg@10 - type: cosine_mrr@10 value: 0.45533234126984123 name: Cosine Mrr@10 - type: cosine_map@100 value: 0.4680133795942619 name: Cosine Map@100 - task: type: information-retrieval name: Information Retrieval dataset: name: dim 256 type: dim_256 metrics: - type: cosine_accuracy@1 value: 0.28125 name: Cosine Accuracy@1 - type: cosine_accuracy@3 value: 0.5 name: Cosine Accuracy@3 - type: cosine_accuracy@5 value: 0.71875 name: Cosine Accuracy@5 - type: cosine_accuracy@10 value: 0.8125 name: Cosine Accuracy@10 - type: cosine_precision@1 value: 0.28125 name: Cosine Precision@1 - type: cosine_precision@3 value: 0.16666666666666666 name: Cosine Precision@3 - type: cosine_precision@5 value: 0.14375000000000002 name: Cosine Precision@5 - type: cosine_precision@10 value: 0.08125000000000002 name: Cosine Precision@10 - type: cosine_recall@1 value: 0.28125 name: Cosine Recall@1 - type: cosine_recall@3 value: 0.5 name: Cosine Recall@3 - type: cosine_recall@5 value: 0.71875 name: Cosine Recall@5 - type: cosine_recall@10 value: 0.8125 name: Cosine Recall@10 - type: cosine_ndcg@10 value: 0.5245808772737306 name: Cosine Ndcg@10 - type: cosine_mrr@10 value: 0.4344990079365079 name: Cosine Mrr@10 - type: cosine_map@100 value: 0.4442545090828397 name: Cosine Map@100 - task: type: information-retrieval name: Information Retrieval dataset: name: dim 128 type: dim_128 metrics: - type: cosine_accuracy@1 value: 0.3125 name: Cosine Accuracy@1 - type: cosine_accuracy@3 value: 0.59375 name: Cosine Accuracy@3 - type: cosine_accuracy@5 value: 0.65625 name: Cosine Accuracy@5 - type: cosine_accuracy@10 value: 0.78125 name: Cosine Accuracy@10 - type: cosine_precision@1 value: 0.3125 name: Cosine Precision@1 - type: cosine_precision@3 value: 0.19791666666666666 name: Cosine Precision@3 - type: cosine_precision@5 value: 0.13125 name: Cosine Precision@5 - type: cosine_precision@10 value: 0.07812500000000001 name: Cosine Precision@10 - type: cosine_recall@1 value: 0.3125 name: Cosine Recall@1 - type: cosine_recall@3 value: 0.59375 name: Cosine Recall@3 - type: cosine_recall@5 value: 0.65625 name: Cosine Recall@5 - type: cosine_recall@10 value: 0.78125 name: Cosine Recall@10 - type: cosine_ndcg@10 value: 0.5316647680749005 name: Cosine Ndcg@10 - type: cosine_mrr@10 value: 0.4527281746031746 name: Cosine Mrr@10 - type: cosine_map@100 value: 0.4609525339930285 name: Cosine Map@100 - task: type: information-retrieval name: Information Retrieval dataset: name: dim 64 type: dim_64 metrics: - type: cosine_accuracy@1 value: 0.28125 name: Cosine Accuracy@1 - type: cosine_accuracy@3 value: 0.5 name: Cosine Accuracy@3 - type: cosine_accuracy@5 value: 0.625 name: Cosine Accuracy@5 - type: cosine_accuracy@10 value: 0.75 name: Cosine Accuracy@10 - type: cosine_precision@1 value: 0.28125 name: Cosine Precision@1 - type: cosine_precision@3 value: 0.16666666666666666 name: Cosine Precision@3 - type: cosine_precision@5 value: 0.125 name: Cosine Precision@5 - type: cosine_precision@10 value: 0.07500000000000001 name: Cosine Precision@10 - type: cosine_recall@1 value: 0.28125 name: Cosine Recall@1 - type: cosine_recall@3 value: 0.5 name: Cosine Recall@3 - type: cosine_recall@5 value: 0.625 name: Cosine Recall@5 - type: cosine_recall@10 value: 0.75 name: Cosine Recall@10 - type: cosine_ndcg@10 value: 0.49533931896607863 name: Cosine Ndcg@10 - type: cosine_mrr@10 value: 0.4161830357142857 name: Cosine Mrr@10 - type: cosine_map@100 value: 0.4235463334593342 name: Cosine Map@100 --- # SentenceTransformer based on keepitreal/vietnamese-sbert This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [keepitreal/vietnamese-sbert](https://huggingface.co/keepitreal/vietnamese-sbert) 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:** [keepitreal/vietnamese-sbert](https://huggingface.co/keepitreal/vietnamese-sbert) - **Maximum Sequence Length:** 256 tokens - **Output Dimensionality:** 768 dimensions - **Similarity Function:** Cosine Similarity - **Training Dataset:** - json ### Model Sources - **Documentation:** [Sentence Transformers Documentation](https://sbert.net) - **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers) - **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers) ### 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: ```bash pip install -U sentence-transformers ``` Then you can load this model and run inference. ```python from sentence_transformers import SentenceTransformer # Download from the 🤗 Hub model = SentenceTransformer("zxcvo/vietnamese-sbert-soc") # Run inference sentences = [ 'Vận hành một chương trình bảo mật yêu cầu các công cụ hỗ trợ kiểm soát thay đổi và theo dõi tài sản dựa trên khung phân loại tài sản.', 'Điều gì là quan trọng nhất khi vận hành một chương trình bảo mật trong một tổ chức?', 'Vì sao Bảo mật Điểm cuối quan trọng?', ] 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 * Datasets: `dim_768`, `dim_512`, `dim_256`, `dim_128` and `dim_64` * Evaluated with [InformationRetrievalEvaluator](https://sbert.net/docs/package_reference/sentence_transformer/evaluation.html#sentence_transformers.evaluation.InformationRetrievalEvaluator) | Metric | dim_768 | dim_512 | dim_256 | dim_128 | dim_64 | |:--------------------|:-----------|:-----------|:-----------|:-----------|:-----------| | cosine_accuracy@1 | 0.375 | 0.2812 | 0.2812 | 0.3125 | 0.2812 | | cosine_accuracy@3 | 0.625 | 0.625 | 0.5 | 0.5938 | 0.5 | | cosine_accuracy@5 | 0.6562 | 0.6875 | 0.7188 | 0.6562 | 0.625 | | cosine_accuracy@10 | 0.875 | 0.8125 | 0.8125 | 0.7812 | 0.75 | | cosine_precision@1 | 0.375 | 0.2812 | 0.2812 | 0.3125 | 0.2812 | | cosine_precision@3 | 0.2083 | 0.2083 | 0.1667 | 0.1979 | 0.1667 | | cosine_precision@5 | 0.1313 | 0.1375 | 0.1438 | 0.1313 | 0.125 | | cosine_precision@10 | 0.0875 | 0.0813 | 0.0813 | 0.0781 | 0.075 | | cosine_recall@1 | 0.375 | 0.2812 | 0.2812 | 0.3125 | 0.2812 | | cosine_recall@3 | 0.625 | 0.625 | 0.5 | 0.5938 | 0.5 | | cosine_recall@5 | 0.6562 | 0.6875 | 0.7188 | 0.6562 | 0.625 | | cosine_recall@10 | 0.875 | 0.8125 | 0.8125 | 0.7812 | 0.75 | | **cosine_ndcg@10** | **0.5929** | **0.5414** | **0.5246** | **0.5317** | **0.4953** | | cosine_mrr@10 | 0.5072 | 0.4553 | 0.4345 | 0.4527 | 0.4162 | | cosine_map@100 | 0.5138 | 0.468 | 0.4443 | 0.461 | 0.4235 | ## Training Details ### Training Dataset #### json * Dataset: json * Size: 288 training samples * Columns: positive and anchor * Approximate statistics based on the first 288 samples: | | positive | anchor | |:--------|:-----------------------------------------------------------------------------------|:----------------------------------------------------------------------------------| | type | string | string | | details | | | * Samples: | positive | anchor | |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------| | Tường lửa bảo vệ hệ thống mạng bằng cách kiểm soát và lọc lưu lượng truy cập, ngăn chặn truy cập từ các nguồn không tin cậy và bảo vệ hệ thống khỏi các cuộc tấn công từ bên ngoài. | Tường lửa bảo vệ hệ thống mạng như thế nào? | | Giám sát mạng giúp bảo vệ hệ thống CNTT bằng cách theo dõi lưu lượng truy cập, phát hiện các hành vi bất thường, và ngăn chặn các cuộc tấn công trước khi chúng có thể gây hại. | Giám sát mạng có vai trò gì trong bảo vệ hệ thống CNTT? | | SIEM giúp cải thiện an ninh mạng của tổ chức bằng cách thu thập, phân tích và tương quan các sự kiện bảo mật từ nhiều nguồn khác nhau, từ đó phát hiện và cảnh báo kịp thời về các mối đe dọa, hỗ trợ xử lý sự cố nhanh chóng và hiệu quả. | SIEM giúp cải thiện an ninh mạng của tổ chức như thế nào? | * Loss: [MatryoshkaLoss](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#matryoshkaloss) with these parameters: ```json { "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`: 32 - `gradient_accumulation_steps`: 16 - `learning_rate`: 2e-05 - `num_train_epochs`: 4 - `bf16`: True - `load_best_model_at_end`: True #### All Hyperparameters
Click to expand - `overwrite_output_dir`: False - `do_predict`: False - `eval_strategy`: epoch - `prediction_loss_only`: True - `per_device_train_batch_size`: 32 - `per_device_eval_batch_size`: 8 - `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`: 4 - `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 - `use_ipex`: False - `bf16`: True - `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`: 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 - `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 - `prompts`: None - `batch_sampler`: batch_sampler - `multi_dataset_batch_sampler`: proportional
### Training Logs | Epoch | Step | dim_768_cosine_ndcg@10 | dim_512_cosine_ndcg@10 | dim_256_cosine_ndcg@10 | dim_128_cosine_ndcg@10 | dim_64_cosine_ndcg@10 | |:-------:|:-----:|:----------------------:|:----------------------:|:----------------------:|:----------------------:|:---------------------:| | 1.0 | 1 | 0.5462 | 0.5147 | 0.5044 | 0.5025 | 0.4595 | | 2.0 | 3 | 0.5922 | 0.5252 | 0.5179 | 0.5186 | 0.4848 | | **3.0** | **4** | **0.5929** | **0.5414** | **0.5246** | **0.5317** | **0.4953** | * The bold row denotes the saved checkpoint. ### Framework Versions - Python: 3.11.9 - Sentence Transformers: 3.3.1 - Transformers: 4.41.2 - PyTorch: 2.5.1+cu124 - Accelerate: 1.1.1 - Datasets: 2.19.1 - Tokenizers: 0.19.1 ## Citation ### BibTeX #### Sentence Transformers ```bibtex @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 ```bibtex @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 ```bibtex @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} } ```