/ Модель

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

Контекст
258 токенов
Параметры
162 млн
Лицензия
Apache 2.0
Архитектура
roberta · dense
Базовая модель
vietnamese-sbert
Библиотека
sentence-transformers
Опубликована
24 фев 2025

vietnamese-sbert-base-law-768-v2

ЭмбеддингиТекст → embedding3 профессии

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

124скачиваний за 30 дней0лайковвеса обновлены24 фев 2025

Бенчмарки

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

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

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

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

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

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

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

vietnamese-sbert-base-law — модель Sentence Transformer, дообученная разработчиками hivetechVN на базе keepitreal/vietnamese-sbert для работы с вьетнамскими текстами правовой тематики. Архитектура RoBERTa преобразует предложения и абзацы в плотные векторы размерности 768; для сходства используется косинусная мера. Максимальная длина последовательности — 258 токенов по метаданным модели.

Модель предназначена для семантического поиска и сравнения правовых текстов, поиска перефразировок, кластеризации и классификации. В README приведена оценка на наборе для информационного поиска: точность по cosine_accuracy@1 составляет 0,3871, по @3 — 0,4839, по @5 — 0,5548. Обучение описано на 1 391 примере с использованием MultipleNegativesRankingLoss.

Модель поддерживает вьетнамский язык и распространяется по лицензии Apache-2.0. Это эмбеддинговая модель: она возвращает векторы, а не готовые ответы или юридические заключения; качество зависит от соответствия запросов и корпуса обучающим данным.

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

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

Ограничения

Модель возвращает векторы и не предназначена для генерации ответов или вынесения юридических заключений. В README приведены умеренные показатели cosine_accuracy на наборе для информационного поиска; качество на других корпусах отдельно не подтверждено.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

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

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

Открыть на Hugging Face

vietnamese-sbert-base-law

This is a sentence-transformers model finetuned from keepitreal/vietnamese-sbert on the json 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.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: keepitreal/vietnamese-sbert
  • Maximum Sequence Length: 256 tokens
  • Output Dimensionality: 768 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json
  • Language: vi
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: RobertaModel 
  (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})
)

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("hivetechVN/vietnamese-sbert-base-law-768-v2")
# Run inference
sentences = [
    'Tước quyền sử dụng Giấy phép hoạt động cho thuê lại lao động có thời hạn từ 06 tháng đến 12 tháng đối với hành vi vi phạm quy định tại các điểm c khoản 6 Điều này.',
    'Hình thức xử phạt bổ sung cho hành vi cho thuê lại lao động quá 12 tháng là gì?',
    'Người sử dụng lao động phải tham gia bảo hiểm thất nghiệp cho người lao động trong thời hạn bao lâu kể từ ngày hợp đồng lao động có hiệu lực?',
]
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]

Evaluation

Metrics

Information Retrieval

MetricValue
cosine_accuracy@10.3871
cosine_accuracy@30.4839
cosine_accuracy@50.5548
cosine_accuracy@100.6452
cosine_precision@10.3871
cosine_precision@30.1613
cosine_precision@50.111
cosine_precision@100.0645
cosine_recall@10.3871
cosine_recall@30.4839
cosine_recall@50.5548
cosine_recall@100.6452
cosine_ndcg@100.4997
cosine_mrr@100.4549
cosine_map@1000.461

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 1,391 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positiveanchor
    typestringstring
    detailsmin: 5 tokensmean: 54.23 tokensmax: 256 tokensmin: 10 tokensmean: 27.5 tokensmax: 78 tokens
  • Samples:
    positiveanchor
    Người sử dụng lao động có trách nhiệm tổ chức đào tạo, bồi dưỡng, nâng cao trình độ kỹ năng nghề và sử dụng lao động theo phương án đã được phê duyệt; sử dụng nguồn kinh phí đúng đối tượng, đúng mục đích và thực hiện báo cáo kết quả tổ chức đào tạo cho cơ quan nhà nước có thẩm quyền sau khi kết thúc khóa đào tạo, bồi dưỡng, nâng cao trình độ kỹ năng nghề.Người sử dụng lao động có trách nhiệm gì trong việc đào tạo, bồi dưỡng, nâng cao trình độ kỹ năng nghề cho người lao động?
    Thành phố Trà Vinh thuộc tỉnh Trà Vinh.Địa phương nào của tỉnh Trà Vinh được xếp vào Vùng II?
    Chánh Thanh tra Sở Lao động - Thương binh và Xã hội, nơi người sử dụng lao động đặt trụ sở chính có thẩm quyền giải quyết khiếu nại lần hai đối với khiếu nại về lao động, an toàn, vệ sinh lao động khi người khiếu nại không đồng ý với quyết định giải quyết lần đầu theo quy định tại Điều 23 hoặc đã hết thời hạn quy định tại Điều 20 Nghị định này mà khiếu nại không được giải quyết.Ai có thẩm quyền giải quyết khiếu nại lần hai đối với khiếu nại về lao động, an toàn, vệ sinh lao động?
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 4
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • bf16: True
  • tf32: False
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 4
  • max_steps: -1
  • lr_scheduler_type: cosine
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: True
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: False
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: True
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • 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
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepdim_768_cosine_ndcg@10
1.030.4975
2.060.4981
2.727380.4997
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.3.1
  • Transformers: 4.47.0
  • PyTorch: 2.5.1+cu121
  • Accelerate: 1.2.1
  • Datasets: 3.3.1
  • Tokenizers: 0.21.0

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

MultipleNegativesRankingLoss

@misc{henderson2017efficient,
    title={Efficient Natural Language Response Suggestion for Smart Reply},
    author={Matthew Henderson and Rami Al-Rfou and Brian Strope and Yun-hsuan Sung and Laszlo Lukacs and Ruiqi Guo and Sanjiv Kumar and Balint Miklos and Ray Kurzweil},
    year={2017},
    eprint={1705.00652},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}

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

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

GPU в ailist

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

Можно запустить

Подбираем GPU…

Класс архитектуры
RobertaModel
Ревизия весов
aeb8f10

0 моделей