File size: 5,070 Bytes
78f7977 ec9a4c9 78f7977 ec9a4c9 78f7977 ec9a4c9 78f7977 ec9a4c9 6a147c4 ec9a4c9 78f7977 d1adc18 96774e4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
---
license: apache-2.0
datasets:
- truro7/vn-law-questions-and-corpus
language:
- vi
base_model: hiieu/halong_embedding
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
pipeline_tag: sentence-similarity
tags:
- legal
- sentence-transformers
- sentence-similarity
- feature-extraction
- generated_from_trainer
- loss:MatryoshkaLoss
- loss:MultipleNegativesRankingLoss
model-index:
- name: VN Law Embedding
results:
- task:
type: information-retrieval
name: Information Retrieval
metrics:
- type: cosine_accuracy@1
value: 0.623
name: Cosine Accuracy@1
- type: cosine_accuracy@3
value: 0.792
name: Cosine Accuracy@3
- type: cosine_accuracy@5
value: 0.851
name: Cosine Accuracy@5
- type: cosine_accuracy@10
value: 0.900
name: Cosine Accuracy@10
- type: cosine_precision@1
value: 0.623
name: Cosine Precision@1
- type: cosine_precision@3
value: 0.412
name: Cosine Precision@3
- type: cosine_precision@5
value: 0.310
name: Cosine Precision@5
- type: cosine_precision@10
value: 0.184
name: Cosine Precision@10
- type: cosine_recall@1
value: 0.353
name: Cosine Recall@1
- type: cosine_recall@3
value: 0.608
name: Cosine Recall@3
- type: cosine_recall@5
value: 0.722
name: Cosine Recall@5
- type: cosine_recall@10
value: 0.823
name: Cosine Recall@10
- type: cosine_ndcg@10
value: 0.706
name: Cosine Ndcg@10
- type: cosine_mrr@10
value: 0.717
name: Cosine Mrr@10
- type: cosine_map@100
value: 0.645
name: Cosine Map@100
---
# VN Law Embedding
VN Law Embedding is a Vietnamese text embedding model designed for Retrieval-Augmented Generation (RAG), specifically to retrieve precise legal documents in response to legal questions.
The model is trained on a dataset of Vietnamese legal questions and corresponding legal documents and evaluated using an Information Retrieval Evaluator.
It uses Matryoshka loss during training and can be truncated to smaller dimensions, allowing for faster comparisons between queries and documents without sacrificing performance.
# Usage
## Direct usage
```python
from sentence_transformers import SentenceTransformer
import torch
import torch.nn.functional as F
model = SentenceTransformer("truro7/vn-law-embedding", truncate_dim = 128)
query = "Trộm cắp sẽ bị xử lý như thế nào?"
corpus = """
[100_2015_QH13]
LUẬT HÌNH SỰ
Điều 173. Tội trộm cắp tài sản
Khoản 1:
1. Người nào trộm cắp tài sản của người khác trị giá từ 2.000.000 đồng đến dưới 50.000.000 đồng hoặc dưới 2.000.000 đồng nhưng thuộc một trong các trường hợp sau đây, thì bị phạt cải tạo không giam giữ đến 03 năm hoặc phạt tù từ 06 tháng đến 03 năm:
a) Đã bị xử phạt vi phạm hành chính về hành vi chiếm đoạt tài sản mà còn vi phạm;
b) Đã bị kết án về tội này hoặc về một trong các tội quy định tại các điều 168, 169, 170, 171, 172, 174, 175 và 290 của Bộ luật này, chưa được xóa án tích mà còn vi phạm;
c) Gây ảnh hưởng xấu đến an ninh, trật tự, an toàn xã hội;
d) Tài sản là phương tiện kiếm sống chính của người bị hại và gia đình họ; tài sản là kỷ vật, di vật, đồ thờ cúng có giá trị đặc biệt về mặt tinh thần đối với người bị hại.
"""
embedding = torch.tensor([model.encode(query)])
corpus_embeddings = torch.tensor([model.encode(corpus)])
cosine_similarities = F.cosine_similarity(embedding, corpus_embeddings)
print(cosine_similarities.item()) #0.81
```
## Retrieve top k documents
```python
from sentence_transformers import SentenceTransformer
import torch
import torch.nn.functional as F
model = SentenceTransformer("truro7/vn-law-embedding", truncate_dim = 128)
all_docs = read_all_docs() # Read all legal documents -> list of document contents
top_k = 3
embedding_docs = torch.load(vectordb_path, weights_only=False).to(self.device) # Vector database
query = "Trộm cắp sẽ bị xử lý như thế nào?"
embedding = torch.tensor(model.encode(query))
cosine_similarities = F.cosine_similarity(embedding.unsqueeze(0).expand(self.embedding_docs.shape[0], 1, 128), self.embedding_docs, dim = -1).view(-1)
top_k = cosine_similarities.topk(k)
top_k_indices = top_k.indices
top_k_values = top_k.values
print(top_k_values) #Similarity scores
for i in top_k_indices: #Show top k relevant documents
print(all_docs[i])
print("___________________________________________")
```
|