Notice: The better version for this model

Version not using Word Segmentation: bqbbao6/vietnamese-legal-embedding

Version using Word Segmentation: bqbbao6/vietnamese-legal-embedding-wsgm


VN_legal_embedding

This is a sentence-transformers model: It maps sentences & paragraphs to a 768 dimensional dense vector space and can be used for tasks like clustering or semantic search.

Evaluation Results

For an automated evaluation of this model, see the Sentence Embeddings Benchmark: https://seb.sbert.net

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

Loss:

sentence_transformers.losses.TripletLoss.TripletLoss with parameters:

{'distance_metric': 'TripletDistanceMetric.COSINE', 'triplet_margin': 0.5}

Parameters of the fit()-Method:

{
    "epochs": 5,
    "evaluation_steps": 0,
    "evaluator": "sentence_transformers.evaluation.EmbeddingSimilarityEvaluator.EmbeddingSimilarityEvaluator",
    "max_grad_norm": 1,
    "optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
    "optimizer_params": {
        "lr": 2e-05
    },
    "scheduler": "WarmupLinear",
    "steps_per_epoch": null,
    "warmup_steps": 1958,
    "weight_decay": 0.01
}

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

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.
Ex1:

from sentence_transformers import SentenceTransformer
import torch

model = SentenceTransformer(
    "bqbbao6/VN_legal_embedding_512",
    trust_remote_code=True
)
query = "query: " + "Người lao động được nghỉ bao nhiêu ngày phép mỗi năm?"
embedding = model.encode(query)

print(f"Embedding shape: {embedding.shape}")  # (768,)

Ex2:

from sentence_transformers import SentenceTransformer
import torch

model = SentenceTransformer(
    "bqbbao6/VN_legal_embedding_512",
    trust_remote_code=True
)

query = "query: " + "Người lao động được nghỉ bao nhiêu ngày phép năm?"

corpus = [
    # Đúng
    "Người lao động làm việc đủ 12 tháng được nghỉ 12 ngày phép năm có hưởng lương.",
    
    # Giống chủ ngữ nhưng khác nội dung
    "Người lao động được hưởng chế độ bảo hiểm xã hội theo quy định của pháp luật.",
    
    # Giống vị ngữ nhưng khác chủ ngữ
    "Cán bộ công chức được nghỉ 12 ngày phép năm theo quy định.",
    
    # Giống một phần nhưng nói về đối tượng khác
    "Người lao động chưa đủ 12 tháng được nghỉ phép theo tỷ lệ tương ứng.",
    
    # Hoàn toàn không liên quan
    "Doanh nghiệp phải đóng thuế thu nhập doanh nghiệp hàng năm.",
]

corpus_prefixed = ["passage: " + p for p in corpus]

q_emb = model.encode(query,           normalize_embeddings=True)
c_emb = model.encode(corpus_prefixed, normalize_embeddings=True)

scores = cos_sim(q_emb, c_emb)[0]
for i, (score, passage) in enumerate(zip(scores, corpus)):
    print(f"[{i+1}] Score: {score:.4f} | {passage}")
Downloads last month
304
Safetensors
Model size
0.3B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for bqbbao6/VN_legal_embedding_512

Finetuned
(158)
this model