LEGAL_EMBEDDING / README.md
quanghuy123's picture
Update README.md
2e13f17 verified
|
raw
history blame
23.2 kB
metadata
language:
  - vi
license: apache-2.0
tags:
  - sentence-transformers
  - sentence-similarity
  - feature-extraction
  - generated_from_trainer
  - dataset_size:80000
  - loss:MatryoshkaLoss
  - loss:MultipleNegativesRankingLoss
base_model: bkai-foundation-models/vietnamese-bi-encoder
widget:
  - source_sentence: >-
      Điều 2 Quyết định 185/QĐ-UB năm 1998 Bảng giá đất tỉnh Bến Tre có nội dung
      như sau:


      Điều 2. Giá đất trên được áp dụng cho những trường hợp: Tính thuế chuyển
      quyền sử dụng cho những trường hợp: Tính thuế chuyển quyền sử dụng đất,
      thu lệ phí trước bạ, thu tiền sử dụng đất khi giao đất, cho thuê đất, tính
      giá trị tài sản khi giao đất, bồi thường thiệt hại về đất khi Nhà nước thu
      hồi.

      Trường hợp giao đất theo hình thức đấu giá, thì giá đất sẽ do Uỷ ban nhân
      dân tỉnh cho trường hợp cụ thể.

      Giá cho thuê đất đối với các tổ chức,  nhân nước ngoài hoặc  nghiệp 
      vốn đầu  nước ngoài được áp dụng theo quy định của Chính phủ.
    sentences:
      - >-
        Điều 2 Quyết định 55/2012/QĐ-UBND dự toán ngân sách phân bổ dự toán ngân
        sách 2013 Bình Dương
      - Điều 2 Quyết định 185/QĐ-UB năm 1998 Bảng giá đất tỉnh Bến Tre
      - >-
        Điều 3 Quyết định 79/2019/QĐ-UBND mức thu học phí quản lý và sử dụng học
        phí giáo dục mầm non Huế
  - source_sentence: >-
      Điều 3 Quyết định 94/QĐ-UBND 2018 kế hoạch hoạt động kiểm soát thủ tục
      hành chính Lâm Đồng có nội dung như sau:


      Điều 3. Chánh Văn phòng UBND tỉnh; Thủ trưởng các sở, ban, ngành; Chủ tịch
      UBND các huyện, thành phố; Chủ tịch UBND các xã, phường, thị trấn trên địa
      bàn tỉnh chịu trách nhiệm thi hành Quyết định này
    sentences:
      - >-
        Điều 3 Quyết định 94/QĐ-UBND 2018 kế hoạch hoạt động kiểm soát thủ tục
        hành chính Lâm Đồng
      - >-
        Cơ quan nhà nước có thẩm quyền có trách nhiệm gì trong việc giải quyết
        tranh chấp lao động khi sa thải người lao động?
      - 'Thăng hạng giáo viên: Điều kiện về thời gian giữ hạng thấp hơn liền kề'
  - source_sentence: >-
      Điều 8 Thông tư 63/2013/TT-BGTVT hướng dẫn Bản ghi nhớ vận tải đường bộ
      giữa Campuchia Lào Việt Nam có nội dung như sau:


      Điều 8. Hồ  cấp Giấy phép liên vận CLV

      1. Đối với xe thương mại:

      a) Đơn đề nghị cấp Giấy phép liên vận CLV cho phương tiện thương mại quy
      định tại Phụ lục VI của Thông  này;

      b) Giấy phép kinh doanh vận tải bằng xe ô  hoặc Giấy chứng nhận đăng 
      kinh doanh đối với đơn vị kinh doanh vận tải bằng xe ô  không thuộc đối
      tượng phải cấp giấy phép kinh doanh vận tải bằng xe ô  (bản sao  chứng
      thực hoặc bản sao kèm theo bản chính để đối chiếu);

      c) Giấy đăng  phương tiện (bản sao  chứng thực hoặc bản sao kèm theo
      bản chính để đối chiếu);

      d) Văn bản chấp thuận khai thác tuyến (đối với phương tiện kinh doanh vận
      tải hành khách theo tuyến cố định);

      đ) Trường hợp phương tiện không thuộc sở hữu của đơn vị kinh doanh vận tải
      thì phải xuất trình thêm tài liệu chứng minh quyền sử dụng hợp pháp của
      đơn vị kinh doanh vận tải với phương tiện đó (bản sao  chứng thực hoặc
      bản sao kèm theo bản chính để đối chiếu).

      2. Đối với xe phi thương mại:

      a) Đơn đề nghị cấp Giấy phép liên vận CLV cho phương tiện phi thương mại
      quy định Phụ lục VII của Thông  này;

      b) Giấy đăng  phương tiện (bản sao  chứng thực hoặc bản sao kèm theo
      bản chính để đối chiếu). Trường hợp phương tiện không thuộc sở hữu của tổ
      chức,  nhân thì phải kèm theo tài liệu chứng minh quyền sử dụng hợp pháp
      của tổ chức, các nhân với phương tiện đó (bản sao  chứng thực hoặc bản
      sao kèm theo bản chính để đối chiếu);

      c) Đối với doanh nghiệp, hợp tác  thực hiện công trình, dự án hoặc hoạt
      động kinh doanh trên lãnh thổ Lào hoặc Campuchia thì kèm theo Hợp đồng
      hoặc tài liệu chứng minh đơn vị đang thực hiện công trình, dự án hoặc hoạt
      động kinh doanh, trên lãnh thổ Lào, Campuchia (bản sao  chứng thực).
    sentences:
      - Bộ Xây dựng ghi nhận các kiến nghị về quy hoạch đô thị  nông thôn
      - >-
        Điều 3 Quyết định 2106/QĐ-BYT 2020 Kế hoạch triển khai chiến dịch tiêm
        bổ sung vắc xin Sởi Rubella
      - >-
        Điều 8 Thông tư 63/2013/TT-BGTVT hướng dẫn Bản ghi nhớ vận tải đường bộ
        giữa Campuchia Lào Việt Nam
  - source_sentence: >-
      Điều 2 Quyết định 16/2010/QĐ-UBND phân vùng môi trường tiếp nhận nước thải
      khí thải công nghiệp trên địa bàn tỉnh Đồng Nai có nội dung như sau:


      Điều 2. Xác định  tính toán lưu lượng các nguồn xả nước thải, khí thải
      công nghiệp

      1. Các tổ chức,  nhân  chủ  sở sản xuất, kinh doanh, dịch vụ 
      trách nhiệm quan trắc, thống kê, kiểm toán chất thải để tính toán, xác
      định lưu lượng nước thải, khí thải công nghiệp để áp dụng hệ số lưu lượng
      nguồn thải.

      2. Các tổ chức,  nhân  trách nhiệm cung cấp đúng, đầy đủ, chính xác 
      trung thực các thông tin về lưu lượng nước thải, khí thải công nghiệp cho
       quan quản  Nhà nước về môi trường. Trong trường hợp số liệu của các
      tổ chức,  nhân cung cấp chưa đủ tin cậy,  quan quản  Nhà nước về môi
      trường sẽ tính toán, xác định hoặc trưng cầu giám định theo quy định pháp
      luật.

      3. Trong một số trường hợp đặc thù tùy thuộc vào quy mô, tính chất dự án,
       sở sản xuất, kinh doanh, dịch vụ, điều kiện cụ thể về môi trường tiếp
      nhận nước thải  khí thải, địa điểm thực dự án  quy hoạch phát triển
      kinh tế -  hội địa phương, Ủy ban nhân dân tỉnh Đồng Nai  những quy
      định riêng.
    sentences:
      - >-
        Điều 2 Quyết định 16/2010/QĐ-UBND phân vùng môi trường tiếp nhận nước
        thải khí thải công nghiệp trên địa bàn tỉnh Đồng Nai
      - >-
        Điều 16 Thông tư 14/2010/TT-BKHCN hướng dẫn tiêu chuẩn, quy trình thủ
        tục xét tặng
      - >-
        Người lao động có quyền đơn phương chấm dứt hợp đồng lao động khi được
        bổ nhiệm giữ chức vụ gì?
  - source_sentence: >-
      Điều 29 Nghị định 46/2015 NĐ-CP quy định về thí nghiệm đối chứng, kiểm
      định chất lượng, thí nghiệm khả năng chịu lực của kết cấu công trình trong
      quá trình thi công xây dựng. Tôi xin hỏi, trong dự toán công trình giao
      thông có chi phí kiểm định tạm tính, chủ đầu tư có quyền lập đề cương, dự
      toán rồi giao cho phòng thẩm định kết quả có giá trị, sau đó thực hiện
      thuê đơn vị tư vấn có chức năng thực hiện công tác kiểm định được không?Bộ
      Xây dựng trả lời vấn đề này như sau:Trường hợp kiểm định theo quy định tại
      Điểm a, Điểm b, Điểm c, Khoản 2, Điều 29 (thí nghiệm đối chứng, kiểm định
      chất lượng, thí nghiệm khả năng chịu lực của kết cấu công trình trong quá
      trình thi công xây dựng) Nghị định46/2015/NĐ-CPngày 12/5/2015 của Chính
      phủ về quản lý chất lượng và bảo trì công trình xây dựng thì việc lập đề
      cương, dự toán kiểm định do tổ chức đáp ứng điều kiện năng lực theo quy
      định của pháp luật thực hiện.Đối với trường hợp kiểm định theo quy định
      tại Điểm đ, Khoản 2, Điều 29 Nghị định46/2015/NĐ-CPthì thực hiện theo quy
      định tại Điều 18 Thông tư26/2016/TT-BXDngày 26/10/2016 của Bộ Xây dựng quy
      định chi tiết một số nội dung về quản lý chất lượng và bảo trì công trình
      xây dựng.
    sentences:
      - Quy định về trợ cấp với cán bộ  già yếu nghỉ việc
      -  thể thuê kiểm định chất lượng công trình?
      - Điều kiện doanh nghiệp được hoạt động  vấn giám sát
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: bkai-fine-tuned-legal
    results:
      - task:
          type: information-retrieval
          name: Information Retrieval
        dataset:
          name: dim 768
          type: dim_768
        metrics:
          - type: cosine_accuracy@1
            value: 0.5855925639039504
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7033307513555384
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.7500645494448748
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8109992254066615
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5855925639039504
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.23444358378517946
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.15001290988897495
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08109992254066614
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.5855925639039504
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7033307513555384
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.7500645494448748
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8109992254066615
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.6937880818561333
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.6568145771089225
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6626061839086153
            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.5848179705654531
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.7002323780015491
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.7490317583268784
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8073844564936742
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5848179705654531
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.23341079266718306
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.1498063516653757
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.0807384456493674
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.5848179705654531
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.7002323780015491
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.7490317583268784
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8073844564936742
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.6917119064236622
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.6551604719691482
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6611599622252305
            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.5814613994319648
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.6935192357345726
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.7428350116189001
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.8022205009036922
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5814613994319648
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.2311730785781909
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.14856700232378
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.08022205009036923
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.5814613994319648
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.6935192357345726
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.7428350116189001
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.8022205009036922
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.6871061609559359
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.6508078926552976
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6566099087487134
            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.5695843015750065
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.6785437645236251
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.7273431448489543
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.7936999741802221
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5695843015750065
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.22618125484120832
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.14546862896979085
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.0793699974180222
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.5695843015750065
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.6785437645236251
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.7273431448489543
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.7936999741802221
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.6754615621699942
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.6384098910241435
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6443976474654151
            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.5543506325845597
            name: Cosine Accuracy@1
          - type: cosine_accuracy@3
            value: 0.6609863155176865
            name: Cosine Accuracy@3
          - type: cosine_accuracy@5
            value: 0.7061709269300284
            name: Cosine Accuracy@5
          - type: cosine_accuracy@10
            value: 0.7717531629227988
            name: Cosine Accuracy@10
          - type: cosine_precision@1
            value: 0.5543506325845597
            name: Cosine Precision@1
          - type: cosine_precision@3
            value: 0.22032877183922883
            name: Cosine Precision@3
          - type: cosine_precision@5
            value: 0.14123418538600568
            name: Cosine Precision@5
          - type: cosine_precision@10
            value: 0.07717531629227987
            name: Cosine Precision@10
          - type: cosine_recall@1
            value: 0.5543506325845597
            name: Cosine Recall@1
          - type: cosine_recall@3
            value: 0.6609863155176865
            name: Cosine Recall@3
          - type: cosine_recall@5
            value: 0.7061709269300284
            name: Cosine Recall@5
          - type: cosine_recall@10
            value: 0.7717531629227988
            name: Cosine Recall@10
          - type: cosine_ndcg@10
            value: 0.6571206813679893
            name: Cosine Ndcg@10
          - type: cosine_mrr@10
            value: 0.6212180172869554
            name: Cosine Mrr@10
          - type: cosine_map@100
            value: 0.6275272633144896
            name: Cosine Map@100

LEGAL-EMBEDDING

LEGAL-EMBEDDING is a Vietnamese text embedding focused on RAG and production efficiency:

📚 Trained Dataset:
The model was trained on an in-house dataset consisting of approximately 80,000 examples of legal questions and their related contexts.

🪆 Efficiency:
Trained with a Matryoshka loss, allowing embeddings to be truncated with minimal performance loss. This ensures that smaller embeddings are faster to compare, making the model efficient for real-world production use.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: bkai-foundation-models/vietnamese-bi-encoder
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Language: vietnamese
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, '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
import torch

# Download from the 🤗 Hub
model = SentenceTransformer("quanghuy123/LEGAL_EMBEDDING")

# Define query (câu hỏi pháp luật) và docs (điều luật)
query = "Điều kiện để kết hôn hợp pháp là gì?"
docs = [
    "Điều 8 Bộ luật Dân sự 2015 quy định về quyền và nghĩa vụ của công dân trong quan hệ gia đình.",
    "Điều 18 Luật Hôn nhân và gia đình 2014 quy định về độ tuổi kết hôn của nam và nữ.",
    "Điều 14 Bộ luật Dân sự 2015 quy định về quyền và nghĩa vụ của cá nhân khi tham gia hợp đồng.",
    "Điều 27 Luật Hôn nhân và gia đình 2014 quy định về các trường hợp không được kết hôn.",
    "Điều 51 Luật Hôn nhân và gia đình 2014 quy định về việc kết hôn giữa công dân Việt Nam và người nước ngoài."
]

# Encode query and documents
query_embedding = model.encode([query])
doc_embeddings = model.encode(docs)
similarities = torch.nn.functional.cosine_similarity(
    torch.tensor(query_embedding), torch.tensor(doc_embeddings)
).flatten()

# Sort documents by cosine similarity
sorted_indices = torch.argsort(similarities, descending=True)
sorted_docs = [docs[idx] for idx in sorted_indices]
sorted_scores = [similarities[idx].item() for idx in sorted_indices]

# Print sorted documents with their cosine scores
for doc, score in zip(sorted_docs, sorted_scores):
    print(f"Document: {doc} - Cosine Similarity: {score:.4f}")

Evaluation

Metrics

Information Retrieval

Model dim_768 dim_512 dim_256 dim_128 dim_64
bkai-foundation-models/vietnamese-bi-encoder 0.4645 0.4628 0.4494 0.4233 0.3744
VoVanPhuc/sup-SimCSE-VietNamese-phobert-base 0.4033 0.3902 0.3835 0.3785 0.3695
hiieu/halong_embedding 0.6242 0.6134 0.5983 0.5878 0.5762
quanghuy123/LEGAL_EMBEDDING 0.8112 0.8074 0.8022 0.7937 0.7718

Citation

You can cite our work as below:

@misc{LEGAL_EMBEDDING,
  title={LEGAL_EMBEDDING: A Vietnamese Text Embedding},
  author={QUANG HUY},
  year={2025},
  publisher={Huggingface},
}

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