YuITC's picture
Update README.md
561b832 verified
metadata
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
         mật nhà nước gồm:

        a) Khi không cần thiết phải lưu giữ  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ế  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  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ế  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 
        tài sản bị  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ế  bảo vệ cưỡng chế:

        - Cán bộ, công chức của  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  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  hợp đồng, biên bản bàn giao tài
        sản  biên (đối với chi phí bảo quản tài sản  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ỳ  đượ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  thuyền viên, đăng  tàu biển, xóa đăng  tàu
        biển, cấp các giấy tờ, tài liệu liên quan đến thuyền viên  tàu biển
        theo quy định của pháp luật.

        2. Thực hiện thu  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  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
         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ị,  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 -  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  đầu  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  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  thu hồi giấy xác nhận phù hợp về tuyển
        dụng  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  chế
        chính sách tạo điều kiện thuận lợi cho doanh nghiệp  giải pháp quản 
        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  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  nhân  50.000.000 đồng, đối với tổ chức 
        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  18 Nghị định này  áp dụng đối với  nhân. Mức phạt tiền quy
        định tại Điều 7 Nghị định này  á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  nhân.

        4. Thẩm quyền phạt tiền của các chức danh  thẩm quyền xử phạt quy định
        tại Chương III Nghị định này  thẩm quyền áp dụng đối với hành vi vi
        phạm hành chính của  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  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  nội dung trả lời để giúp người sử dụng
         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)   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  tài khoản hoặc trong lần sử dụng dịch vụ
        trước, thông tin của  quan nhà nước đã  trong  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;  giải thích chi tiết về thông tin cần nhập
        (đối với các thông tin  yêu cầu riêng, mang tính chất chuyên ngành);

        d)  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  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  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  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)  đị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  chức
        năng thống  kết quả giải quyết hồ  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  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ồ  trực tuyến đã tiếp nhận;

        b) Số lượng hồ  trực tuyến đã giải quyết;

        c) Tỉ lệ hồ  trực tuyến được giải quyết đúng hạn;

        d) Tổng số hồ  đã tiếp nhận qua hình thức trực tuyến  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  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  sở sản xuất, xác minh tại  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
        đủ  sở chứng minh nội dung khai xuất xứ hàng hóa  phù hợp thì 
        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  sở sản xuất, xác minh tại  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 đủ  sở chứng minh nội dung khai xuất xứ hàng hóa  phù hợp, 
        quan hải quan căn cứ vào các hồ  hiện  để xử  theo quy định  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  quan hải quan.

        3. Trường hợp   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ử  theo quy định.

bert-base-multilingual-cased-finetuned-VNLegalDocs

This is a sentence-transformers model finetuned from google-bert/bert-base-multilingual-cased on the BKAI Vietnamese Legal Documents retrieval 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. It also achieves an NDCG@10 score of 0.60389.


1. Model Details

1.1. Model Description

1.2. Model Sources

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:
pip install -U sentence-transformers
  1. Then you can load this model and run inference.
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) on your own dataset.

Click to expand
  1. Install dependencies:
pip install sentence-transformers datasets pandas tqdm
  1. 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
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)
  1. Declare important hyperparameters:
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"  
  1. Build the model & loss:
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)
  1. Start fine-tuning:
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()
  1. Load fine-tuned model:
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

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:
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
  1. Start evaluate by:
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

@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

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