/ Модель

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

Контекст
8 194 токена
Параметры
659 млн
Архитектура
xlm-roberta · dense
Базовая модель
bge-m3
Библиотека
sentence-transformers
Опубликована
12 июн 2024

ft_bge_newLaw_CachedMultipleNegativeRankingLoss_V1_5epochs

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

Дообученная на примерах вьетнамского права модель BGE-M3 кодирует тексты в векторы для семантического поиска и сопоставления юридических вопросов с фрагментами документов.

120скачиваний за 30 дней0лайковвеса обновлены12 июн 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Модель comet24082002/ft_bge_newLaw_CachedMultipleNegativeRankingLoss_V1_5epochs — Sentence Transformer, дообученный автором на базе BAAI/bge-m3 для поиска семантически близких текстов в юридических материалах. Она кодирует предложения и абзацы в плотные векторы размерности 1024, нормализует их и сравнивает с помощью косинусного сходства. Архитектура включает XLM-RoBERTa, пулинг по CLS-токену и нормализацию; в README указана максимальная длина последовательности 512 токенов, а метаданные каталога указывают контекст до 8194 токенов.

Обучающая выборка содержит 10 524 пары запросов и релевантных фрагментов. Примеры в карточке посвящены вьетнамскому законодательству, поэтому модель подходит для семантического поиска и сопоставления вопросов с юридическими положениями на вьетнамском языке. Её можно применять для поиска по правовым документам, подбора релевантных фрагментов и кластеризации текстов. Модель не генерирует ответы: она выдаёт векторные представления, которые нужно сравнивать или использовать в последующем поисковом конвейере.

Модель основана на BAAI/bge-m3 и опубликована под идентификатором comet24082002; библиотека для использования — Sentence Transformers. Лицензия в предоставленных данных не указана.

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

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

Ограничения

Модель выдаёт векторы, а не готовые ответы, поэтому для поиска или ранжирования нужен отдельный компонент. README указывает ограничение последовательности в 512 токенов; качество за пределами вьетнамских юридических текстов не подтверждено приведёнными примерами.

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

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

Открыть на Hugging Face

SentenceTransformer based on BAAI/bge-m3

This is a sentence-transformers model finetuned from BAAI/bge-m3. It maps sentences & paragraphs to a 1024-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: BAAI/bge-m3
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 1024 tokens
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
  (1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, '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): Normalize()
)

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("comet24082002/ft_bge_newLaw_CachedMultipleNegativeRankingLoss_V1_5epochs")
# Run inference
sentences = [
    'Công ty có quyền giảm lương khi người lao động không đảm bảo hiệu suất công việc?',
    '"Điều 94. Nguyên tắc trả lương\n1. Người sử dụng lao động phải trả lương trực tiếp, đầy đủ, đúng hạn cho người lao động. Trường hợp người lao động không thể nhận lương trực tiếp thì người sử dụng lao động có thể trả lương cho người được người lao động ủy quyền hợp pháp.\n2. Người sử dụng lao động không được hạn chế hoặc can thiệp vào quyền tự quyết chi tiêu lương của người lao động; không được ép buộc người lao động chi tiêu lương vào việc mua hàng hóa, sử dụng dịch vụ của người sử dụng lao động hoặc của đơn vị khác mà người sử dụng lao động chỉ định."',
    'Các biện pháp tăng cường an toàn hoạt động bay\nCục Hàng không Việt Nam áp dụng các biện pháp tăng cường sau:\n1. Phổ biến kinh nghiệm, bài học liên quan trên thế giới và tại Việt Nam cho các tổ chức, cá nhân liên quan trực tiếp đến hoạt động bay bằng các hình thức thích hợp.\n2. Tổ chức thực hiện, giám sát kết quả thực hiện khuyến cáo an toàn của các cuộc điều tra tai nạn tàu bay, sự cố trong lĩnh vực hoạt động bay.\n3. Tổng kết, đánh giá và phân tích định kỳ hàng năm việc thực hiện quản lý an toàn hoạt động bay; tổ chức khắc phục các hạn chế, yêu cầu, đề nghị liên quan nhằm hoàn thiện công tác quản lý an toàn và SMS.\n4. Tổ chức huấn luyện, đào tạo về an toàn hoạt động bay.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Training Details

Training Dataset

Unnamed Dataset

  • Size: 10,524 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchorpositive
    typestringstring
    detailsmin: 8 tokensmean: 24.42 tokensmax: 49 tokensmin: 18 tokensmean: 272.22 tokensmax: 512 tokens
  • Samples:
    anchorpositive
    Người thừa kế theo di chúc gồm những ai?"Điều 613. Người thừa kếNgười thừa kế là cá nhân phải là người còn sống vào thời điểm mở thừa kế hoặc sinh ra và còn sống sau thời điểm mở thừa kế nhưng đã thành thai trước khi người để lại di sản chết. Trường hợp người thừa kế theo di chúc không là cá nhân thì phải tồn tại vào thời điểm mở thừa kế."
    Đầu tư vốn nhà nước vào doanh nghiệp được thực hiện bằng những hình thức nào?Hình thức đầu tư vốn nhà nước vào doanh nghiệp1. Đầu tư vốn nhà nước để thành lập doanh nghiệp do Nhà nước nắm giữ 100% vốn điều lệ.2. Đầu tư bổ sung vốn điều lệ cho doanh nghiệp do Nhà nước nắm giữ 100% vốn điều lệ đang hoạt động.3. Đầu tư bổ sung vốn nhà nước để tiếp tục duy trì tỷ lệ cổ phần, vốn góp của Nhà nước tại công ty cổ phần, công ty trách nhiệm hữu hạn hai thành viên trở lên.4. Đầu tư vốn nhà nước để mua lại một phần hoặc toàn bộ doanh nghiệp.
    Thủ tục thành lập trung tâm hiến máu chữ thập đỏ có quy định như thế nào?Thủ tục thành lập cơ sở hiến máu chữ thập đỏThủ tục thành lập cơ sở hiến máu chữ thập đỏ thực hiện theo quy định tại Điều 4, Thông tư số 03/2013/TT-BNV ngày 16 tháng 4 năm 2013 của Bộ Nội vụ quy định chi tiết thi hành Nghị định số 45/2010/NĐ-CP ngày 21 tháng 4 năm 2010 của Chính phủ quy định về tổ chức, hoạt động và quản lý hội và Nghị định số 33/2012/NĐ-CP ngày 13 tháng 4 năm 2012 của Chính phủ sửa đổi, bổ sung một số điều của Nghị định số 45/2010/NĐ-CP
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 256
  • learning_rate: 2e-05
  • num_train_epochs: 5
  • warmup_ratio: 0.1

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • prediction_loss_only: True
  • per_device_train_batch_size: 256
  • per_device_eval_batch_size: 8
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_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: 5
  • max_steps: -1
  • lr_scheduler_type: linear
  • 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
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: False
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • 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: False
  • 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}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • 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: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • 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_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Loss
0.047621.1564
0.095240.9996
0.142961.0032
0.190580.77
0.2381100.6496
0.2857120.435
0.3333140.4408
0.3810160.467
0.4286180.4484
0.4762200.366
0.5238220.3131
0.5714240.3068
0.6190260.3319
0.6667280.2293
0.7143300.3322
0.7619320.2658
0.8095340.2591
0.8571360.3763
0.9048380.2642
0.9524400.2871
1.0420.2005
1.0476440.1757
1.0952460.2309
1.1429480.218
1.1905500.2702
1.2381520.2113
1.2857540.184
1.3333560.2414
1.3810580.1692
1.4286600.2015
1.4762620.2303
1.5238640.1829
1.5714660.216
1.6190680.182
1.6667700.2362
1.7143720.183
1.7619740.239
1.8095760.2207
1.8571780.1848
1.9048800.1828
1.9524820.2324
2.0840.1048
2.0476860.1852
2.0952880.1381
2.1429900.1723
2.1905920.1519
2.2381940.1285
2.2857960.1545
2.3333980.1786
2.38101000.1803
2.42861020.1191
2.47621040.1546
2.52381060.1782
2.57141080.1609
2.61901100.1642
2.66671120.1204
2.71431140.173
2.76191160.1332
2.80951180.1567
2.85711200.124
2.90481220.1768
2.95241240.1776
3.01260.1091
3.04761280.1621
3.09521300.1231
3.14291320.1117
3.19051340.1328
3.23811360.1201
3.28571380.1052
3.33331400.0967
3.38101420.1397
3.42861440.1051
3.47621460.1412
3.52381480.157
3.57141500.1241
3.61901520.1119
3.66671540.1222
3.71431560.1324
3.76191580.1489
3.80951600.1228
3.85711620.1321
3.90481640.1373
3.95241660.1313
4.01680.0746
4.04761700.1188
4.09521720.1443
4.14291740.095
4.19051760.1227
4.23811780.1197
4.28571800.1102
4.33331820.133
4.38101840.0993
4.42861860.1354
4.47621880.1143
4.52381900.1326
4.57141920.0927
4.61901940.1085
4.66671960.1181
4.71431980.1131
4.76192000.1136
4.80952020.1045
4.85712040.1268
4.90482060.1133
4.95242080.1274
5.02100.0607

Framework Versions

  • Python: 3.10.13
  • Sentence Transformers: 3.0.1
  • Transformers: 4.39.3
  • PyTorch: 2.1.2
  • Accelerate: 0.29.3
  • Datasets: 2.18.0
  • Tokenizers: 0.15.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",
}

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

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей