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