/ Модель

Характеристики

Лицензия
Apache 2.0
Базовая модель
vietnamese-bi-encoder
Библиотека
sentence-transformers
Опубликована
16 июл 2026

embedding-supper-legal

ЭмбеддингиТекст → embedding

Вьетнамская Sentence Transformers-модель для преобразования юридических текстов в векторы и семантического поиска по ним.

0скачиваний за 30 дней0лайковвеса обновлены16 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

MinhNguyet3001/embedding-supper-legal — модель Sentence Transformers, дообученная на базе bkai-foundation-models/vietnamese-bi-encoder для поиска юридически релевантных текстов. Она преобразует текстовые предложения и абзацы во векторы размерности 768; архитектура включает RobertaModel и усредняющий pooling. Для сравнения векторов применяется косинусное сходство, а длина входной последовательности ограничена 256 токенами. Модель рассчитана на вьетнамский язык и может использоваться для семантического поиска и извлечения документов по запросу.

По README, обучение проводилось на 57 371 парах текстов, а качество retrieval оценивалось при сокращении векторов до 768, 512, 256, 128 и 64 измерений. Модель распространяется по лицензии Apache-2.0. Приведённые результаты относятся к указанным в карточке наборам оценки, поэтому качество на других юридических корпусах и типах запросов может отличаться.

Сценарии применения

  • поиск юридических документов по текстовому запросу
  • извлечение релевантных абзацев из вьетнамских правовых текстов
  • семантическое сопоставление юридических предложений
  • построение векторного индекса для юридического корпуса

Ограничения

Максимальная длина входа составляет 256 токенов. Результаты оценки приведены для конкретных наборов данных; переносимость на другие юридические корпуса в карточке не показана.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

bkai-fine-tuned-legal

This is a sentence-transformers model finetuned from bkai-foundation-models/vietnamese-bi-encoder on the json dataset. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for retrieval.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: bkai-foundation-models/vietnamese-bi-encoder
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Supported Modality: Text
  • Training Dataset:
    • json
  • Language: vi
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'transformer_task': 'feature-extraction', 'modality_config': {'text': {'method': 'forward', 'method_output_name': 'last_hidden_state'}}, 'module_output_name': 'token_embeddings', 'architecture': 'RobertaModel'})
  (1): Pooling({'embedding_dimension': 768, 'pooling_mode': 'mean', 'include_prompt': True})
)

Usage

Direct Usage (Sentence Transformers)

First install the Sentence Transformers library:

pip install -U sentence-transformers

Then you can load this model and run inference.

from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("sentence_transformers_model_id")
# Run inference
sentences = [
    'Ký hợp_đồng lao_động theo quy_định mới từ 22 / 2 / 2023',
    'Tôi làm hộ_lý theo hợp_đồng 68 tại khoa kiểm_soát nhiễm_khuẩn ở bệnh_viện huyện . Công_việc hàng ngày là xử_lý đồ vải bệnh_nhân và xử_lý_dụng_cụ y_tế của bệnh_viện . Tôi đang hưởng lương bậc 4 , hệ_số 2,19 . Tôi xin hỏi , theo Nghị_định 111 / 2022 / NĐ - CP , tôi có được tiếp_tục làm_việc và hưởng các chế_độ của hợp_đồng 68 nữa không hay tôi phải chuyển sang ký hợp_đồng khác ? Nếu chuyển sang loại hợp_đồng khác thì lương và các chế_độ sẽ hưởng thế_nào ? Bộ Nội_vụ trả_lời vấn_đề này như sau : Khoản 1 Điều 13 Nghị_định số111 / 2022 / NĐ - CPquy định : " Người đang thực_hiện các công_việc hỗ_trợ , phục_vụ theo quy_định tại khoản 1 Điều 4 Nghị_định này nếu chưa chuyển sang ký hợp_đồng lao_động theo quy_định của Nghị_định số 161 / 2018 / NĐ - CP ngày 29 tháng 11 năm 2018 của Chính_phủ sửa_đổi , bổ_sung một_số quy_định về tuyển_dụng công_chức , viên_chức , nâng ngạch công_chức , thăng_hạng viên_chức và thực_hiện chế_độ hợp_đồng một_số loại công_việc trong cơ_quan hành_chính nhà_nước , đơn_vị sự_nghiệp công_lập ( sau đây viết tắt là Nghị_định số 161 / 2018 / NĐ - CP ) và cơ_quan , tổ_chức , đơn_vị không ký hợp_đồng dịch_vụ thì trong thời_hạn 12 tháng kể từ ngày Nghị_định này có hiệu_lực , cơ_quan , tổ_chức , đơn_vị phải chuyển sang ký hợp_đồng lao_động . Hợp_đồng lao_động ký_kết phải bảo_đảm quyền , lợi_ích hợp_pháp về tiền_lương , chế_độ bảo_hiểm xã_hội và các chế_độ khác theo quy_định của pháp_luật . Trường_hợp một trong các bên không có nhu_cầu thì giải_quyết chế_độ thôi_việc theo quy_định của pháp_luật " . Như_vậy , trường_hợp bà Trần_Thị_Hoa nếu chưa chuyển sang ký hợp_đồng lao_động theo quy_định của Nghị_định số161 / 2018 / NĐ - CPthì trong thời_hạn 12 tháng kể từ ngày Nghị_định số 111 / 2022 / NĐ - CP có hiệu_lực phải chuyển sang ký hợp_đồng lao_động . Tiền_lương và các chế_độ khác của người lao_động thực_hiện theo quy_định tại khoản 2 Điều 8 Nghị_định số 111 / 2022 / NĐ - CP.',
    'Điều 3 . Đối_tượng được bổ_nhiệm Thủ_trưởng , Phó_Thủ_trưởng Cơ_quan quản_lý thi_hành án hình_sự thuộc Bộ Công_an 1 . Tổng_cục_trưởng Tổng_cục Cảnh_sát thi_hành án hình_sự và hỗ_trợ tư_pháp được bổ_nhiệm làm Thủ_trưởng Cơ_quan quản_lý thi_hành án hình_sự thuộc Bộ Công_an . \n 2 . Phó_Tổng_cục_trưởng Tổng_cục Cảnh_sát thi_hành án hình_sự và hỗ_trợ tư_pháp được bổ_nhiệm làm Phó_Thủ_trưởng Cơ_quan quản_lý thi_hành án hình_sự thuộc Bộ Công_an .',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[ 1.0000,  0.5452, -0.0944],
#         [ 0.5452,  1.0000,  0.0257],
#         [-0.0944,  0.0257,  1.0000]])

Evaluation

Metrics

Information Retrieval

MetricValue
cosine_accuracy@10.528
cosine_accuracy@30.76
cosine_accuracy@50.8434
cosine_accuracy@100.9055
cosine_precision@10.528
cosine_precision@30.2533
cosine_precision@50.1687
cosine_precision@100.0905
cosine_recall@10.528
cosine_recall@30.76
cosine_recall@50.8434
cosine_recall@100.9055
cosine_ndcg@100.7175
cosine_mrr@100.6568
cosine_map@1000.6607

Information Retrieval

MetricValue
cosine_accuracy@10.5285
cosine_accuracy@30.7586
cosine_accuracy@50.8451
cosine_accuracy@100.9081
cosine_precision@10.5285
cosine_precision@30.2529
cosine_precision@50.169
cosine_precision@100.0908
cosine_recall@10.5285
cosine_recall@30.7586
cosine_recall@50.8451
cosine_recall@100.9081
cosine_ndcg@100.7184
cosine_mrr@100.6573
cosine_map@1000.661

Information Retrieval

MetricValue
cosine_accuracy@10.5238
cosine_accuracy@30.7554
cosine_accuracy@50.8442
cosine_accuracy@100.9049
cosine_precision@10.5238
cosine_precision@30.2518
cosine_precision@50.1688
cosine_precision@100.0905
cosine_recall@10.5238
cosine_recall@30.7554
cosine_recall@50.8442
cosine_recall@100.9049
cosine_ndcg@100.7153
cosine_mrr@100.6542
cosine_map@1000.658

Information Retrieval

MetricValue
cosine_accuracy@10.5236
cosine_accuracy@30.7546
cosine_accuracy@50.841
cosine_accuracy@100.9046
cosine_precision@10.5236
cosine_precision@30.2515
cosine_precision@50.1682
cosine_precision@100.0905
cosine_recall@10.5236
cosine_recall@30.7546
cosine_recall@50.841
cosine_recall@100.9046
cosine_ndcg@100.7148
cosine_mrr@100.6536
cosine_map@1000.6574

Information Retrieval

MetricValue
cosine_accuracy@10.5135
cosine_accuracy@30.7451
cosine_accuracy@50.8327
cosine_accuracy@100.8995
cosine_precision@10.5135
cosine_precision@30.2484
cosine_precision@50.1665
cosine_precision@100.0899
cosine_recall@10.5135
cosine_recall@30.7451
cosine_recall@50.8327
cosine_recall@100.8995
cosine_ndcg@100.7065
cosine_mrr@100.6444
cosine_map@1000.6484

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 57,371 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchorpositive
    typestringstring
    detailsmin: 5 tokensmean: 16.49 tokensmax: 52 tokensmin: 16 tokensmean: 180.36 tokensmax: 256 tokens
  • Samples:
    anchorpositive
    Điều 3 Quyết_định 44 / 2015 / QĐ - UBND thu quản_lý phí tham_gia đấu_giá quyền khai_thác khoáng_sản Bình_DươngĐiều 3 Quyết_định 44 / 2015 / QĐ - UBND thu quản_lý phí tham_gia đấu_giá quyền khai_thác khoáng_sản Bình_Dương có nội_dung như sau : Điều 3 . Chánh Văn_phòng Ủy_ban nhân_dân Thủ_trưởng các sở , ban , ngành , Chủ_tịch Ủy_ban nhân_dân các huyện , thị_xã , thành_phố và Thủ_trưởng các đơn_vị , tổ_chức , cá_nhân có liên_quan chịu trách_nhiệm thi_hành Quyết_định này
    Điều 2 Quyết_định 3592 / QĐ - UBND 2020 phổ_biến pháp_luật hòa giải ở cơ_sở Khánh_HòaĐiều 2 Quyết_định 3592 / QĐ - UBND 2020 phổ_biến pháp_luật hòa giải ở cơ_sở Khánh_Hòa có nội_dung như sau : Điều 2 . Quyết_định này có hiệu_lực thi_hành kể từ ngày ký .
    Chi_phí điều_chỉnh đồ_án quy_hoạch được xác_định như thế_nào ?Điều 5 . Xác_định chi_phí lập , thẩm_định đồ_án quy_hoạch 1 . Nội_dung , sản_phẩm đồ_án quy_hoạch được quy_định tại Nghị_định quy_định chi_tiết một_số nội_dung về quy_hoạch xây_dựng , Nghị_định về lập , thẩm_định , phê_duyệt và quản_lý quy_hoạch đô_thị , các Nghị_định chuyên_ngành có liên_quan và các văn_bản hướng_dẫn .
    2 . Chi_phí lập đồ_án quy_hoạch bao_gồm các chi_phí sau : chi_phí cho những người tham_gia thực_hiện lập đồ_án , các chi_phí khác ( chi_phí mua tài_liệu , số_liệu , bản_đồ , văn_phòng_phẩm , phần_mềm quy_hoạch ( nếu có ) , chi_phí khấu_hao thiết_bị , chi_phí đi_lại , chi_phí lưu_trú , chi_phí hội_nghị , hội_thảo và các khoản chi_phí khác ( nếu có ) ) .
    3 . Chi_phí lập đồ_án quy_hoạch xác_định theo định_mức được quy_định tại Thông_tư này chưa bao_gồm chi_phí để thực_hiện các công_việc sau :
    a ) Lập nhiệm_vụ quy_hoạch .
    b ) Khảo_sát xây_dựng phục_vụ lập đồ_án quy_hoạch .
    c ) Mua hoặc lập các bản_đồ địa_hình phục_vụ lập đồ_án quy_hoạch ( nếu có ) .
    4 . Chi_phí ...
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Evaluation Dataset

json

  • Dataset: json
  • Size: 7,172 evaluation samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchorpositive
    typestringstring
    detailsmin: 6 tokensmean: 16.05 tokensmax: 38 tokensmin: 13 tokensmean: 181.46 tokensmax: 256 tokens
  • Samples:
    anchorpositive
    Thành_viên liên_danh nhà_thầu có quyền gửi đơn kiến_nghị ?Cơ_quan tôi tổ_chức đấu_thầu rộng_rãi trong nước gói_thầu tư_vấn thiết_kế và thi_công ( hình_thức một giai_đoạn hai túi hồ_sơ ) . Có 3 nhà_thầu A , B , C tham_gia và đều là nhà_thầu liên_danh . Tổ chuyên_gia đánh_giá xong phần hồ_sơ đề_xuất kỹ_thuật và đã trình chủ đầu_tư phê_duyệt danh_sách nhà_thầu đáp_ứng yêu_cầu kỹ_thuật . Ngoài_ra , tổ chuyên_gia còn có thông_báo gửi các nhà_thầu liên_danh về danh_sách nhà_thầu đáp_ứng yêu_cầu kỹ_thuật và nhà_thầu không đáp_ứng yêu_cầu kỹ_thuật . Sau đó có nhà_thầu liên_danh C không đáp_ứng yêu_cầu kỹ_thuật đã kiến_nghị gửi chủ đầu_tư về kết_quả đánh_giá hồ_sơ đề_xuất kỹ_thuật . Tuy_nhiên đơn_vị gửi kiến_nghị đến chủ đầu_tư lại là một thành_viên của liên_danh nhà_thầu C , không phải là nhà_thầu đứng đầu liên_danh . Tôi xin hỏi , trường_hợp này , thành_viên của nhà_thầu liên_danh có được quyền kiến_nghị không ? Chủ đầu_tư phải giải_quyết như thế_nào hay_là đánh_giá tiếp phần đề_xuất tài_chính ? Bộ Kế_hoạch và Đầu_tư trả_lời vấn_đề này như sau : Kho...
    Công_chức cấp xã làm nhiệm_vụ gì ?Tôi xin hỏi , người làm công_chức cấp xã như địa_chính , xây_dựng , giao_thông thủy_lợi , tài_chính , ... có được hiểu là làm công_tác quản_lý nhà_nước thuộc phạm_vi quản_lý của huyện không ? Bộ Nội_vụ trả_lời vấn_đề này như sau : Chức_danh công_chức cấp xã được quy_định tại Khoản 3 Điều 61Luật Cán_bộ , công chứcnăm 2008 ( sửa_đổi , bổ_sung năm 2019 ) . Nhiệm_vụ của từng chức_danh công_chức cấp xã được quy_định tại Điều 11 Nghị_định số33 / 2023 / NĐ - CPngày 10 / 6 / 2023 của Chính_phủ quy_định về cán_bộ , công_chức cấp xã và người hoạt_động không chuyên_trách ở cấp xã , ở thôn , tổ dân_phố . Theo đó , công_chức cấp xã làm nhiệm_vụ tham_mưu giúp UBND cấp xã về công_tác lý nhà_nước theo lĩnh_vực chuyên_môn , nghiệp_vụ giao trên phạm_vi địa_bàn cấp xã . Căn_cứ các quy_định nêu trên , công_chức cấp xã là người tham_mưu giúp UBND cấp xã về công_tác quản_lý nhà_nước theo lĩnh_vực chuyên_môn được giao trên địa_bàn cấp xã , không phải làm công_tác quản_lý nhà_nước thuộc phạm_vi cấp huyện .
    Chế_phẩm sinh_học phải đăng_ký lưu_hành bao_gồm những chế_phẩm sinh_học nào ?Điều 11 . Chế_phẩm sinh_học phải đăng_ký lưu_hành 1 . Chế_phẩm sinh_học sản_xuất trong nước hoặc nhập_khẩu chưa có tên trong Danh_mục chế_phẩm sinh_học trong xử_lý chất_thải tại Việt_Nam . 2 . Chế_phẩm sinh_học có tên trong Danh_mục chế_phẩm sinh_học trong xử_lý chất_thải tại Việt_Nam nhưng có thay_đổi về thành_phần hoặc hàm_lượng các hoạt_chất trong chế_phẩm sinh_học làm ảnh_hưởng đến hiệu_quả xử_lý và tính an_toàn đối_với sức_khỏe con_người và sinh_vật .
  • Loss: MatryoshkaLoss with these parameters:
    {
        "loss": "MultipleNegativesRankingLoss",
        "matryoshka_dims": [
            768,
            512,
            256,
            128,
            64
        ],
        "matryoshka_weights": [
            1,
            1,
            1,
            1,
            1
        ],
        "n_dims_per_step": -1
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • gradient_accumulation_steps: 8
  • learning_rate: 3e-05
  • weight_decay: 0.2
  • max_grad_norm: 0.65
  • num_train_epochs: 6
  • lr_scheduler_type: cosine
  • warmup_steps: 33
  • fp16: True
  • load_best_model_at_end: True
  • group_by_length: True
  • batch_sampler: no_duplicates

All Hyperparameters

  • do_predict: False
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 32
  • gradient_accumulation_steps: 8
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 3e-05
  • weight_decay: 0.2
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 0.65
  • num_train_epochs: 6
  • max_steps: -1
  • lr_scheduler_type: cosine
  • lr_scheduler_kwargs: None
  • warmup_ratio: None
  • warmup_steps: 33
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • enable_jit_checkpoint: False
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • use_cpu: False
  • seed: 42
  • data_seed: None
  • bf16: False
  • fp16: True
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: -1
  • ddp_backend: None
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • parallelism_config: None
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • optim_args: None
  • group_by_length: True
  • length_column_name: length
  • project: huggingface
  • trackio_space_id: trackio
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • hub_revision: None
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • auto_find_batch_size: False
  • full_determinism: False
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_num_input_tokens_seen: no
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: True
  • use_cache: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

EpochStepTraining LossValidation Lossdim_768_cosine_ndcg@10dim_512_cosine_ndcg@10dim_256_cosine_ndcg@10dim_128_cosine_ndcg@10dim_64_cosine_ndcg@10
1.01130.37580.15060.70170.70480.69990.69770.6845
2.02260.10500.12430.71010.71040.70620.70630.6980
3.03390.06540.11110.71480.71490.71030.71040.7033
4.04520.05040.10220.71750.71820.71360.71250.7045
5.05650.04450.10240.71750.71840.71530.71480.7065
  • The bold row denotes the saved checkpoint.

Training Time

  • Training: 4.0 hours

Framework Versions

  • Python: 3.12.13
  • Sentence Transformers: 5.4.1
  • Transformers: 5.0.0
  • PyTorch: 2.10.0+cu128
  • Accelerate: 1.13.0
  • Datasets: 5.0.0
  • Tokenizers: 0.22.2

Citation

BibTeX

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",
}

MatryoshkaLoss

@misc{kusupati2024matryoshka,
    title={Matryoshka Representation Learning},
    author={Aditya Kusupati and Gantavya Bhatt and Aniket Rege and Matthew Wallingford and Aditya Sinha and Vivek Ramanujan and William Howard-Snyder and Kaifeng Chen and Sham Kakade and Prateek Jain and Ali Farhadi},
    year={2024},
    eprint={2205.13147},
    archivePrefix={arXiv},
    primaryClass={cs.LG}
}

MultipleNegativesRankingLoss

@misc{oord2019representationlearningcontrastivepredictive,
      title={Representation Learning with Contrastive Predictive Coding},
      author={Aaron van den Oord and Yazhe Li and Oriol Vinyals},
      year={2019},
      eprint={1807.03748},
      archivePrefix={arXiv},
      primaryClass={cs.LG},
      url={https://arxiv.org/abs/1807.03748},
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · sentence-transformers

Нельзя запустить

Доступ к модели ограничен автором; у платформы нет доступа к весам.

Ревизия весов
862e608

0 моделей