asc_embedding / README.md
vankha's picture
Update README.md
d0e854f verified
metadata
language:
  - vi
license: apache-2.0
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
base_model: hiieu/halong_embedding
widget:
  - source_sentence: Chức năng dùng để định nghĩa các kỳ thu tại trường.
    sentences:
      - Hướng dẫn tạo nhóm quyền?
      - Hướng dẫn cấu hình kỳ thu?
      - Hướng dẫn gạch nợ nhanh?
  - source_sentence: >-
      **Hiện trạng**:  Sau khi đã chọn các thông tin **Kỳ thu** , **Khối lớp** ,
      **Hình thức**  tiếp tục nhấn tìm kiếm thì hệ thống hiển thị thông báo
      “Không có dữ liệu hiển thị”. Các bước thực hiện: Cách khắc phục: Kế toán
      truy cập vào màn hình Danh mục kỳ thu (Tài chính học vụ → Cấu hình → Danh
      mục kỳ thu)** kiểm tra xem đã khởi tạo thông tin kỳ thu hay chưa hoặc có
      **tắt Sử dụng** hay không. **Tại màn hình Kế hoạch thu chung** sau khi đã
      chọn các thông tin **Kỳ thu**, **Khối lớp**, **Hình thức** tiếp tục nhấn
      nút icon_plus.png để chọn khoản phí cần lập kế hoạch thu.
    sentences:
      - Hướng dẫn định nghĩa tên khoản thu cố định?
      - Hướng dẫn báo cáo thu theo lớp?
      - Không hiển thị khoản phí để đổ công nợ cho học sinh
  - source_sentence: >-
      Chức năng dùng để cấu hình được số phiếu thu trên phần mềm, các khoản phí
      nào được phép miễn giảm, sử dụng biên lai hay hóa đơn. Các bước thực hiện:
      Chọn **Tài chính học vụ → Cấu hình → Phiếu thu** Nhấn nút icon_plus.png để
      cấu hình phiếu thu Ghi chú: Mỗi năm học chỉ thiết lập cấu hình phiếu thu 1
      lần
    sentences:
      - Hướng dẫn phân quyền nhân sự?
      - Hướng dẫn cấu hình phiếu thu?
      - Hướng dẫn in phiếu báo công nợ?
  - source_sentence: >-
      Chức năng dùng để thêm được tên kế toán, bắt buộc phải tạo mới phòng ban
      và gán nhân sự vào phòng ban đó Các bước thực hiện: Chọn **Trường học →
      Đơn vị → Phòng ban trường**
    sentences:
      - Hướng dẫn xem danh sách các phiếu đã thu trong ngày?
      - Hướng dẫn tạo phòng ban?
      - Hướng dẫn chọn khoản thu đổ công nợ?
  - source_sentence: >-
      Sau khi đã tạo phòng ban, ta tiến hành thêm mới thông tin kế toán.. Các
      bước thực hiện: Chọn **Nhận sự → Quản lý nhân sự → Danh sách nhân sự**
    sentences:
      - Hướng dẫn tạo thông tin kế toán?
      - Hướng dẫn xem lịch sử thu tiền của học sinh?
      - Hướng dẫn đổ công nợ cho học sinh?
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: Halong Embedding
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 768
          type: dim_768
        metrics:
          - type: cosine_accuracy@1
            value: 0.8
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 1
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 1
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 1
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.8
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3333333333333333
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.2
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.1
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.8
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 1
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 1
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 1
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9261859507142916
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.9
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.9
            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.8
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 1
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 1
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 1
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.8
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3333333333333333
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.2
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.1
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.8
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 1
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 1
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 1
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9261859507142916
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.9
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.9
            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.8
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 1
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 1
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 1
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.8
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3333333333333333
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.2
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.1
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.8
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 1
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 1
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 1
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9261859507142916
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.9
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.9
            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.8
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 1
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 1
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 1
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.8
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3333333333333333
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.2
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.1
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.8
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 1
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 1
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 1
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.8666666666666666
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.8666666666666666
            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.8
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 1
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 1
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 1
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.8
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.3333333333333333
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.2
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.1
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.8
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 1
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 1
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 1
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.9
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.8666666666666666
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.8666666666666666
            name: Cosine Map@100

Halong Embedding

This is a sentence-transformers model finetuned from hiieu/halong_embedding 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: hiieu/halong_embedding
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json
  • Language: vi
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: 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})
  (2): Normalize()
)

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("vankha/asc_embedding")
# Run inference
sentences = [
    'Sau khi đã tạo phòng ban, ta tiến hành thêm mới thông tin kế toán.. Các bước thực hiện: Chọn **Nhận sự → Quản lý nhân sự → Danh sách nhân sự** Nhấn nút icon_plus.png để thêm mới thông tin nhân sự. Nhấn nút để chỉnh sửa thông tin nhân sự. Nhấn nút để xóa phòng ban.',
    'Hướng dẫn tạo thông tin kế toán?',
    'Hướng dẫn đổ công nợ cho học sinh?',
]
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 dim_768 dim_512 dim_256 dim_128 dim_64
cosine_accuracy@1 0.8 0.8 0.8 0.8 0.8
cosine_accuracy@3 1.0 1.0 1.0 1.0 1.0
cosine_accuracy@5 1.0 1.0 1.0 1.0 1.0
cosine_accuracy@10 1.0 1.0 1.0 1.0 1.0
cosine_precision@1 0.8 0.8 0.8 0.8 0.8
cosine_precision@3 0.3333 0.3333 0.3333 0.3333 0.3333
cosine_precision@5 0.2 0.2 0.2 0.2 0.2
cosine_precision@10 0.1 0.1 0.1 0.1 0.1
cosine_recall@1 0.8 0.8 0.8 0.8 0.8
cosine_recall@3 1.0 1.0 1.0 1.0 1.0
cosine_recall@5 1.0 1.0 1.0 1.0 1.0
cosine_recall@10 1.0 1.0 1.0 1.0 1.0
cosine_ndcg@10 0.9262 0.9262 0.9262 0.9 0.9
cosine_mrr@10 0.9 0.9 0.9 0.8667 0.8667
cosine_map@100 0.9 0.9 0.9 0.8667 0.8667

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 42 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 42 samples:
    positive anchor
    type string string
    details
    • min: 52 tokens
    • mean: 190.43 tokens
    • max: 329 tokens
    • min: 4 tokens
    • mean: 13.26 tokens
    • max: 56 tokens
  • Samples:
    positive anchor
    Các bước thực hiện: Chọn Tài chính học vụBáo cáo chiBáo cáo chi tiết miễn giảm để hiển thị danh sách miễn giảm điều kiện lọc. Nhấn nút icon_excel.png để tải báo cáo danh sách miễn giảm học sinh. Hướng dẫn báo cáo chi tiết miễn giảm?
    Chức năng này dùng để cấu hình các ngày nghỉ mặc định cho từng khoản thu dịch vụ các khối lớp. Các bước thực hiện: Chọn Tài chính học vụ → Cấu hình → Lịch nghĩ Thiết lập ngày nghỉ mặc định cho từng khối lớp Mỗi khối lớp có ngày nghỉ trong tuần khác nhau, ví dụ: Khối lớp 6 chỉ đăng ký ăn từ thứ 2 đến thứ 5, Khối lớp 7 đăng ký ăn từ thứ 2 đến thứ 6. Để thiết lập ngày nghỉ mặc định cho từng khối lớp, kế toán nhấn nút chọn các thông tin cần thiết, sau đó nhấn nút. Ghi chú: Thiết lập ngày nghỉ mặc định cho từng khối lớp Hướng dẫn thiết lập nghĩ lễ?
    Các bước thực hiện: Chọn Hệ thống → Phân quyền → Quản ký nhóm người dùng Nhấn nút icon_plus.png để thêm mới để tạo nhóm người dùng (nên để tên nhóm là “Kế toán – Trường THCS ABC”). Nhấn nút icon_pencil.png để chỉnh sửa tên nhóm người dùng. Hướng dẫn tạo nhóm quyền?
  • 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

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: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 8
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 1e-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: 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: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: False
  • 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: None
  • hub_always_push: False
  • 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
  • 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
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • 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
0 0 0.9262 0.9262 0.9262 0.9 0.9
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.3.1
  • Transformers: 4.47.1
  • PyTorch: 2.5.1+cu121
  • Accelerate: 1.2.1
  • Datasets: 3.2.0
  • Tokenizers: 0.21.0

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}
}