---
license: mit
language: vi
base_model: google-bert/bert-base-multilingual-cased
pipeline_tag: sentence-similarity
tags:
- sentence-similarity
- sentence-transformers
- transformers
- PyTorch
- feature-extraction
- loss:CachedMultipleNegativesRankingLoss
datasets: tmnam20/BKAI-Legal-Retrieval
library_name: sentence-transformers
metrics: ndcg@10
model-index:
- name: YuITC/bert-base-multilingual-cased-finetuned-VNLegalDocs
results:
- task:
type: sentence-similarity
dataset:
type: tmnam20/BKAI-Legal-Retrieval
name: BKAI Vietnamese Legal Documents
metrics:
- name: ndcg@1
type: ndcg@1
value: 0.42425
verified: false
- name: ndcg@5
type: ndcg@5
value: 0.57387
verified: false
- name: ndcg@10
type: ndcg@10
value: 0.60389
verified: false
- name: ndcg@20
type: ndcg@20
value: 0.6216
verified: false
- name: ndcg@100
type: ndcg@100
value: 0.63894
verified: false
- name: map@1
type: map@1
value: 0.40328
verified: false
- name: map@5
type: map@5
value: 0.52297
verified: false
- name: map@10
type: map@10
value: 0.53608
verified: false
- name: map@20
type: map@20
value: 0.54136
verified: false
- name: map@100
type: map@100
value: 0.54418
verified: false
- name: recall@1
type: recall@1
value: 0.40328
verified: false
- name: recall@5
type: recall@5
value: 0.70466
verified: false
- name: recall@10
type: recall@10
value: 0.79407
verified: false
- name: recall@20
type: recall@20
value: 0.86112
verified: false
- name: recall@100
type: recall@100
value: 0.94805
verified: false
- name: precision@1
type: precision@1
value: 0.42425
verified: false
- name: precision@5
type: precision@5
value: 0.15119
verified: false
- name: precision@10
type: precision@10
value: 0.08587
verified: false
- name: precision@20
type: precision@20
value: 0.04687
verified: false
- name: precision@100
type: precision@100
value: 0.01045
verified: false
- name: mrr@1
type: mrr@1
value: 0.424183
verified: false
- name: mrr@5
type: mrr@5
value: 0.543372
verified: false
- name: mrr@10
type: mrr@10
value: 0.555102
verified: false
- name: mrr@20
type: mrr@20
value: 0.559556
verified: false
- name: mrr@100
type: mrr@100
value: 0.561719
verified: false
widget:
- source_sentence: >-
Chi cục Hàng hải Việt Nam có thực hiện cấp giấy chứng nhận hội phí tham gia
Tổ chức Hàng hải Quốc tế?
sentences:
- >-
Tiêu hủy tài liệu, vật chứa bí mật nhà nước
1. Các trường hợp tiến hành thực hiện việc tiêu hủy tài liệu, vật chứa bí
mật nhà nước gồm:
a) Khi không cần thiết phải lưu giữ và việc tiêu hủy không gây nguy hại đến
lợi ích quốc gia, dân tộc.
b) Nếu không tiêu hủy ngày sẽ gây nguy hại cho lợi ích quốc gia, dân tộc.
...
- >-
"Điều 4. Nội dung và mức chi chi phí cưỡng chế
1. Việc xác định chi phí cưỡng chế thực hiện theo quy định tại Điều 39 Nghị
định số 166/2013/NĐ-CP, bao gồm các chi phí sau:
a) Chi phí huy động người thực hiện quyết định cưỡng chế: chi phí bồi dưỡng
cho những người trực tiếp thực hiện cưỡng chế và bảo vệ cưỡng chế;
b) Chi phí thuê phương tiện tháo dỡ, chuyên chở đồ vật, tài sản;
c) Chi phí thuê giữ hoặc bảo quản tài sản kê biên;
d) Chi phí thù lao cho các chuyên gia tham gia định giá để tổ chức đấu giá
theo quy định của pháp luật;
đ) Chi phí tổ chức bán đấu giá tài sản:
- Chi phí bán đấu giá theo quy định của pháp luật trong trường hợp người ra
quyết định cưỡng chế ký hợp đồng bán đấu giá với tổ chức bán đấu giá chuyên
nghiệp trên địa bàn tỉnh, thành phố trực thuộc Trung ương nơi có tài sản bị
kê biên để bán đấu giá;
- Tiền thuê địa điểm, phương tiện phục vụ tổ chức bán đấu giá, niêm yết,
công khai việc bán đấu giá trường hợp thành lập Hội đồng bán đấu giá tài
sản.
e) Chi phí thực tế khác liên quan đến thực hiện cưỡng chế (nếu có).
2. Mức chi:
a) Chi bồi dưỡng cho những người được huy động trực tiếp tham gia cưỡng chế
và bảo vệ cưỡng chế:
- Cán bộ, công chức của cơ quan thi hành quyết định cưỡng chế được huy động
thực hiện cưỡng chế, lực lượng công an, dân quân tự vệ, đại diện chính quyền
địa phương trực tiếp tham gia cưỡng chế: người chủ trì mức 150.000
đồng/người/ngày tham gia cưỡng chế, đối tượng khác mức 100.000
đồng/người/ngày tham gia cưỡng chế.
- Đại diện tổ dân phố, trưởng thôn và các đối tượng khác được người ra quyết
định cưỡng chế huy động tham gia cưỡng chế: 100.000 đồng/người/ngày tham gia
cưỡng chế.
b) Các chi phí quy định tại điểm b, c, d, đ, e khoản 1 Điều này được thực
hiện căn cứ vào hợp đồng, thanh lý hợp đồng, biên bản bàn giao tài sản kê
biên (đối với chi phí bảo quản tài sản kê biên quy định tại điểm c khoản 1
Điều này), hóa đơn, chứng từ chi tiêu thực tế, hợp pháp, hợp lệ theo quy
định hiện hành, phù hợp với giá cả trên địa bàn trong cùng thời kỳ và được
người ra quyết định cưỡng chế phê duyệt."
- >-
Nhiệm vụ và quyền hạn
1. Thực hiện đăng ký thuyền viên, đăng ký tàu biển, xóa đăng ký tàu biển,
cấp các giấy tờ, tài liệu liên quan đến thuyền viên và tàu biển theo quy
định của pháp luật.
2. Thực hiện thu và cấp giấy chứng nhận Hội phí IMO theo quy định.
3. Tham gia xây dựng chiến lược, quy hoạch, kế hoạch dài hạn và hàng năm,
các chương trình dự án quốc gia, các đề án phát triển thuộc ngành hàng hải.
4. Tham gia xây dựng, tổ chức thực hiện các văn bản quy phạm pháp luật và
tham gia tổ chức tuyên truyền, phổ biến pháp luật về hàng hải đối với các tổ
chức, đơn vị, cá nhân hoạt động trong lĩnh vực hàng hải.
5. Tham gia giám sát việc thực hiện niêm yết giá, phụ thu ngoài giá dịch vụ
vận chuyển hàng hóa công - te - nơ bằng đường biển, giá dịch vụ tại cảng
biển theo quy định.
6. Phê duyệt phương án vận tải hàng hóa siêu trường hoặc hàng hóa siêu trọng
đối với phương tiện thủy nội địa rời bến cảng biển theo quy định.
7. Về tổ chức quản lý đầu tư xây dựng, khai thác cảng cạn
a) Tổ chức kiểm tra, giám sát việc thực hiện quy hoạch, đầu tư xây dựng,
khai thác đối với cảng cạn được giao theo quy định;
b) Tham gia thẩm định việc chuyển đổi điểm thông quan hàng hóa xuất, nhập
khẩu thành cảng cạn theo quy định của pháp luật.
8. Tham mưu, đề xuất các giải pháp tăng cường kết nối các phương thức vận
tải với cảng biển.
9. Thực hiện cấp mới, cấp lại và thu hồi giấy xác nhận phù hợp về tuyển dụng
và cung ứng thuyền viên theo quy định của pháp luật.
10. Phối hợp với các Hiệp hội chuyên ngành thực hiện phân tích, đánh giá
tình hình hoạt động chuyên ngành hàng hải tại khu vực, đề xuất cơ chế chính
sách tạo điều kiện thuận lợi cho doanh nghiệp và giải pháp quản lý nhà nước
về nâng cao chất lượng các loại hình dịch vụ nhằm tăng cường vai trò quản lý
nhà nước của Cục Hàng hải Việt Nam.
11. Phối hợp tổ chức đối thoại với doanh nghiệp về khó khăn, vướng mắc trong
thực hiện quy định, thủ tục hành chính liên quan đến hoạt động sản xuất,
kinh doanh, đầu tư, thuyền viên, tàu biển, vận tải biển nhằm tạo điều kiện
thuận lợi cho các doanh nghiệp hoạt động trong lĩnh vực hàng hải tại khu
vực.
...
- source_sentence: >-
Kết quả kiểm tra, xác minh tại cơ quan, tổ chức cấp chứng từ chứng nhận xuất
xứ hàng hóa, cơ sở sản xuất hàng hóa xuất khẩu sẽ được xử lý như thế nào?
sentences:
- >-
Mức phạt tiền và thẩm quyền phạt tiền trong lĩnh vực du lịch
1. Mức phạt tiền tối đa đối với mỗi hành vi vi phạm hành chính trong lĩnh
vực du lịch đối với cá nhân là 50.000.000 đồng, đối với tổ chức là
100.000.000 đồng.
2. Mức phạt tiền quy định tại các Điều 6, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17 và 18 Nghị định này là áp dụng đối với cá nhân. Mức phạt tiền quy định
tại Điều 7 Nghị định này là áp dụng đối với tổ chức.
3. Đối với cùng một hành vi vi phạm hành chính thì mức phạt tiền đối với tổ
chức gấp 02 lần mức phạt tiền đối với cá nhân.
4. Thẩm quyền phạt tiền của các chức danh có thẩm quyền xử phạt quy định tại
Chương III Nghị định này là thẩm quyền áp dụng đối với hành vi vi phạm hành
chính của cá nhân; thẩm quyền phạt tiền với tổ chức gấp 02 lần thẩm quyền
phạt tiền đối với cá nhân.
- >-
"Điều 11. Yêu cầu đối với dịch vụ công trực tuyến
1. Các mục hướng dẫn tối thiểu phục vụ việc cung cấp dịch vụ công trực tuyến
trên cổng thông tin điện tử bao gồm:
a) Mục hướng dẫn thực hiện đối với việc thực hiện một số dịch vụ hành chính
công thường gặp để giúp người sử dụng biết được các thủ tục, các bước tiến
hành khi muốn thực hiện một công việc;
b) Mục các câu hỏi trường gặp và nội dung trả lời để giúp người sử dụng có
thể tự tìm ra giải đáp được các vướng mắc thông thường khi thực hiện thủ tục
hành chính, khi sử dụng dịch vụ công trực tuyến.
2. Dịch vụ công trực tuyến mức độ 3, mức độ 4 cần đạt được các yêu cầu tối
thiểu như sau:
a) Phải tương thích với các trình duyệt Web thông dụng;
b) Dễ dàng tìm thấy dịch vụ: người sử dụng dễ dàng tìm được dịch vụ sau tối
đa 03 lần bấm chuột từ trang chủ của cổng thông tin điện tử cung cấp dịch vụ
công trực tuyến; dễ dàng tìm được dịch vụ bằng các công cụ tìm kiếm phổ
biến;
c) Có cơ chế hướng dẫn, tự động khai báo thông tin: hỗ trợ tự động điền các
thông tin của người sử dụng nếu các thông tin đó đã được người sử dụng cung
cấp khi đăng ký tài khoản hoặc trong lần sử dụng dịch vụ trước, thông tin
của cơ quan nhà nước đã có trong cơ sở dữ liệu của hệ thống dịch vụ công
trực tuyến; hỗ trợ việc điền, kiểm tra thông tin theo các định dạng quy định
sẵn; có giải thích chi tiết về thông tin cần nhập (đối với các thông tin có
yêu cầu riêng, mang tính chất chuyên ngành);
d) Có chức năng để người sử dụng đánh giá sự hài lòng đối với dịch vụ sau
khi sử dụng (sau đây gọi tắt là chức năng đánh giá);
đ) Bảo đảm thời gian xử lý, trao đổi dữ liệu nhanh: trong trường hợp hệ
thống biết rõ thời gian xử lý, trao đổi dữ liệu lâu hơn 10 giây cần cung cấp
thông báo thể hiện tỷ lệ phần trăm hoàn thành việc xử lý;
e) Bảo đảm hoạt động ổn định: các dịch vụ công trực tuyến phải hoạt động
liên tục 24 giờ trong tất cả các ngày; bảo đảm dịch vụ được kiểm tra lỗi đầy
đủ trước khi đưa vào sử dụng để hạn chế tối đa lỗi phát sinh trong quá trình
sử dụng; khi bảo trì, nâng cấp dịch vụ cần thông báo thông tin về việc bảo
trì, nâng cấp và thời gian dự kiến hoạt động trở lại trên cổng thông tin
điện tử cung cấp dịch vụ công trực tuyến trước ít nhất 01 ngày làm việc;
g) Có địa chỉ thư điện tử để tiếp nhận góp ý của người sử dụng.
3. Cổng thông tin điện tử cung cấp dịch vụ công trực tuyến phải có chức năng
thống kê kết quả giải quyết hồ sơ của các dịch vụ công trực tuyến mức độ 3,
mức độ 4. Mỗi dịch vụ phải thông báo các số liệu thống kê tối thiểu từ đầu
năm tới thời điểm hiện tại như sau:
a) Số lượng hồ sơ trực tuyến đã tiếp nhận;
b) Số lượng hồ sơ trực tuyến đã giải quyết;
c) Tỉ lệ hồ sơ trực tuyến được giải quyết đúng hạn;
d) Tổng số hồ sơ đã tiếp nhận qua hình thức trực tuyến và không trực tuyến;
đ) Số liệu về mức độ hài lòng của người sử dụng đối với dịch vụ theo từng
nội dung đánh giá quy định tại Điều 12 Thông tư này."
- >-
Xử lý kết quả kiểm tra, xác minh tại cơ quan, tổ chức cấp chứng từ chứng
nhận xuất xứ hàng hóa, cơ sở sản xuất hàng hóa xuất khẩu
1. Trường hợp thông tin, hồ sơ, chứng từ, tài liệu, dữ liệu, kết quả kiểm
tra tại cơ sở sản xuất, xác minh tại cơ quan, tổ chức cấp chứng từ chứng
nhận xuất xứ hàng hóa, nội dung giải trình của người khai hải quan đủ cơ sở
chứng minh nội dung khai xuất xứ hàng hóa là phù hợp thì cơ quan hải quan
chấp nhận nội dung khai của người khai hải quan về xuất xứ hàng hóa.
2. Trường hợp thông tin, hồ sơ, chứng từ, tài liệu, dữ liệu, kết quả kiểm
tra tại cơ sở sản xuất, xác minh tại cơ quan, tổ chức cấp chứng từ chứng
nhận xuất xứ hàng hóa, nội dung giải trình của người khai hải quan không đủ
cơ sở chứng minh nội dung khai xuất xứ hàng hóa là phù hợp, cơ quan hải quan
căn cứ vào các hồ sơ hiện có để xử lý theo quy định và yêu cầu người khai
hải quan khai bổ sung xuất xứ chính xác theo kết quả kiểm tra, xác minh, xác
định xuất xứ hàng hóa của cơ quan hải quan.
3. Trường hợp có cơ sở nghi ngờ người khai hải quan khai xuất xứ hàng hóa
không chính xác để chuyển tải bất hợp pháp, lẩn tránh thuế chống bán phá
giá, thuế chống trợ cấp, thuế tự vệ hoặc các biện pháp phòng vệ thương mại
khác thì Cục Hải quan tỉnh, thành phố báo cáo, đề xuất Tổng cục Hải quan
phối hợp với Bộ Công Thương để xử lý theo quy định.
---
# bert-base-multilingual-cased-finetuned-VNLegalDocs
This is a [sentence-transformers](https://www.SBERT.net) model finetuned from [google-bert/bert-base-multilingual-cased](https://huggingface.co/google-bert/bert-base-multilingual-cased) on the [BKAI Vietnamese Legal Documents retrieval dataset](https://huggingface.co/datasets/tmnam20/BKAI-Legal-Retrieval). 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. It also achieves an NDCG@10 score of 0.60389.
---
## 1. Model Details
### 1.1. Model Description
- **Model Type:** Sentence Transformer
- **Base model:** [google-bert/bert-base-multilingual-cased](https://huggingface.co/google-bert/bert-base-multilingual-cased)
- **Maximum Sequence Length:** 512 tokens
- **Output Dimensionality:** 768 dimensions
- **Similarity Function:** Cosine Similarity
- **Training Dataset:** [BKAI Vietnamese Legal Documents retrieval dataset](https://huggingface.co/datasets/tmnam20/BKAI-Legal-Retrieval)
- **Language:** Vietnamese
- **License:** MIT
### 1.2. Model Sources
- **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
- **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)
### 1.3. Full Model Architecture
```
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
(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. Usage
### 2.1. Direct Usage (Sentence Transformers)
1) First install the Sentence Transformers library:
```bash
pip install -U sentence-transformers
```
2) Then you can load this model and run inference.
```python
from sentence_transformers import SentenceTransformer
# Download from the 🤗 Hub & Run inference
model = SentenceTransformer("google-bert/bert-base-multilingual-cased")
sentences = [
'Tội xúc phạm danh dự?',
'Quyền lợi của người lao động?',
'Thủ tục đăng ký kết hôn?',
]
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]
```
### 2.2. Downstream Usage - Fine-tune (Sentence Transformers)
You can finetune this model or its base model ([google-bert/bert-base-multilingual-cased](https://huggingface.co/google-bert/bert-base-multilingual-cased)) on your own dataset.
Click to expand
1) Install dependencies:
```bash
pip install sentence-transformers datasets pandas tqdm
```
2) Prepare your data:
- Organize your data as sentence‐pairs (e.g. query – relevant document)
- Store in Parquet or CSV with columns `text_0`, `text_1`
```python
import pandas as pd
df = pd.DataFrame([
{"text_0": "What is civil procedure?", "text_1": "Civil procedure governs how legal cases are processed."},
{"text_0": "Define contract law", "text_1": "Contract law deals with agreements between parties."},
# …
])
df.to_parquet("data/train.parquet", index=False)
```
3) Declare important hyperparameters:
```python
MODEL_ID = "YuITC/bert-base-multilingual-cased-finetuned-VNLegalDocs"
MODEL_NAME = "bert-base-multilingual-cased"
CACHE_DIR = "./cache"
OUTPUT_DIR = "./output"
MAX_SEQ_LEN = 512
EPOCHS = 5
LR = 3e-5
BATCH_SIZE = 128
DEVICE = "cuda" # or "cpu"
```
4) Build the model & loss:
```python
from sentence_transformers import SentenceTransformer
from sentence_transformers.models import Transformer, Pooling
from sentence_transformers.losses import CachedMultipleNegativesRankingLoss
# Load base transformer + pooling
embedding_model = Transformer(MODEL_ID, max_seq_length=MAX_SEQ_LEN, cache_dir=CACHE_DIR)
pooling_model = Pooling(embedding_model.get_word_embedding_dimension(),
pooling_mode_mean_tokens=True)
model = SentenceTransformer(modules=[embedding_model, pooling_model],
device=DEVICE, cache_folder=CACHE_DIR)
# Use multiple negatives ranking loss
loss = CachedMultipleNegativesRankingLoss(model=model)
```
5) Start fine-tuning:
```python
from sentence_transformers import SentenceTransformerTrainer, SentenceTransformerTrainingArguments
from datasets import Dataset
import pandas as pd
# Load your training DataFrame
df_train = pd.read_parquet("data/train.parquet")
train_ds = Dataset.from_pandas(df_train)
# Training arguments
args = SentenceTransformerTrainingArguments(output_dir=OUTPUT_DIR,
num_train_epochs=EPOCHS,
per_device_train_batch_size=BATCH_SIZE,
learning_rate=LR, warmup_ratio=0.1, fp16=True, logging_steps=100)
trainer = SentenceTransformerTrainer(model=model, args=args, train_dataset=train_ds, loss=loss)
# Start fine-tuning
trainer.train()
```
6) Load fine-tuned model:
```python
model = SentenceTransformer(OUTPUT_DIR, device=DEVICE)
embeddings = model.encode(["Your query here"], convert_to_tensor=True)
```
---
## 3. Training Details
### 3.1. Training Dataset: BKAI Vietnamese Legal Documents
* Size: 99,580 training samples (after preprocess)
* Columns: text_0 and text_1
* Approximate statistics based on the first 1000 samples:
| Column | type | min tokens | mean tokens | max tokens |
|:----------:|:------:|:----------:|:-----------:|:----------:|
| **text_0** | string | 8 | 25.64 | 58 |
| **text_1** | string | 13 | 278.08 | 512 |
* Loss: [CachedMultipleNegativesRankingLoss](https://sbert.net/docs/package_reference/sentence_transformer/losses.html#cachedmultiplenegativesrankingloss)
### 3.2. Training Hyperparameters
- `per_device_train_batch_size`: 128
- `learning_rate`: 3e-05
- `num_train_epochs`: 5
- `warmup_ratio`: 0.1
- `fp16`: True
- `batch_sampler`: no_duplicates
### 3.3. Training Logs
| Step | 100 | 200 | 400 | 600 | 800 | 1000 | 1200 | 1400 | 1600 | 1800 | 2000 | 2200 | 2400 | 2600 | 2800 | 3000 | 3200 | 3400 | 3600 | 3800 |
|:-----------------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|:------:|
| **Training Loss** | 1.8827 | 0.4428 | 0.2856 | 0.2241 | 0.1894 | 0.1432 | 0.1311 | 0.1227 | 0.1028 | 0.0850 | 0.0800 | 0.0802 | 0.0633 | 0.0612 | 0.0566 | 0.0548 | 0.0479 | 0.0440 | 0.0444 | 0.0461 |
### 3.4. Training Device Configuraion:
- GPU: 01 x GPU Nvidia RTX A4000 16GB, 6144 CUDA cores
- CPU: 12 Core vCPU AMD EPYC 7K62, 48GB RAM
- Training time: 3:32:33(s)
### 3.5. Framework Versions
- Python: 3.10.16
- Sentence Transformers: 4.1.0
- Transformers: 4.51.3
- PyTorch: 2.5.1
- Accelerate: 1.6.0
- Datasets: 2.21.0
- Tokenizers: 0.21.1
---
## 4. Evaluation with MTEB
Click to expand
1) Declare an instance of `AbsTaskRetrieval` class:
```python
class BKAILegalDocRetrievalTask(AbsTaskRetrieval):
# Metadata definition used by MTEB benchmark
metadata = TaskMetadata(name='BKAILegalDocRetrieval',
description='',
reference='https://github.com/embeddings-benchmark/mteb/blob/main/docs/adding_a_dataset.md',
type='Retrieval',
category='s2p',
modalities=['text'],
eval_splits=['test'],
eval_langs=['vi'],
main_score='ndcg_at_10',
other_scores=['recall_at_10', 'precision_at_10', 'map'],
dataset={
'path' : 'data',
'revision': 'd4c5a8ba10ae71224752c727094ac4c46947fa29',
},
date=('2012-01-01', '2020-01-01'),
form='Written',
domains=['Academic', 'Non-fiction'],
task_subtypes=['Scientific Reranking'],
license='cc-by-nc-4.0',
annotations_creators='derived',
dialect=[],
text_creation='found',
bibtex_citation=''
)
data_loaded = True # Flag
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.corpus = {}
self.queries = {}
self.relevant_docs = {}
shared_corpus = {}
for _, row in data['corpus'].iterrows():
shared_corpus[f"c{row['cid']}"] = {
'text': row['text'],
'_id' : row['cid']
}
for split in ['train', 'test']:
self.corpus[split] = shared_corpus
self.queries[split] = {}
self.relevant_docs[split] = {}
for split in ['train', 'test']:
for _, row in data[split].iterrows():
qid, cids = row['qid'], row['cid']
qid_str = f'q{qid}'
cids_str = [f'c{cid}' for cid in cids]
self.queries[split][qid_str] = row['question']
if qid_str not in self.relevant_docs[split]:
self.relevant_docs[split][qid_str] = {}
for cid_str in cids_str:
self.relevant_docs[split][qid_str][cid_str] = 1
self.data_loaded = True
```
2) Start evaluate by:
```python
fine_tuned_model = SentenceTransformer(OUTPUT_DIR, device=DEVICE)
custom_task = BKAILegalDocRetrievalTask()
evaluation = MTEB(tasks=[custom_task])
evaluation.run(fine_tuned_model, batch_size=BATCH_SIZE)
```
---
## 5. Citation
#### 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",
}
```
#### CachedMultipleNegativesRankingLoss
```bibtex
@misc{gao2021scaling,
title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
year={2021},
eprint={2101.06983},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
```