/ Модель

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

Контекст
258 токенов
Параметры
162 млн
Архитектура
roberta · dense
Базовая модель
vietnamese-bi-encoder
Библиотека
sentence-transformers
Опубликована
27 ноя 2024

vietnamese-bi-encoder-ft

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

Вьетнамская bi-encoder-модель превращает предложения и абзацы в векторы для семантического поиска и сравнения текстов.

34скачиваний за 30 дней0лайковвеса обновлены27 ноя 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Это модель Sentence Transformers, дообученная автором tintnguyen на вьетнамской bi-encoder-модели bkai-foundation-models/vietnamese-bi-encoder. Она использует архитектуру RoBERTa с mean pooling, содержит 162,4 млн параметров и преобразует предложения и абзацы в плотные векторы размерностью 768 для сравнения по косинусному сходству. Максимальная длина последовательности составляет около 256 токенов.

Модель предназначена для поиска семантически близких текстов на вьетнамском языке: семантического поиска, оценки сходства предложений, поиска перефразировок, кластеризации и классификации текста. В обучении использовались пары запросов и релевантных текстов с MultipleNegativesRankingLoss; обучающая выборка содержала около 1,58 млн примеров. Для применения нужны тексты, а результатом служат векторные представления. Лицензия в предоставленных данных не указана.

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

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

Ограничения

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

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

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

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

Также подходит для

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

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

Открыть на Hugging Face

SentenceTransformer based on bkai-foundation-models/vietnamese-bi-encoder

This is a sentence-transformers model finetuned from bkai-foundation-models/vietnamese-bi-encoder. 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 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("tintnguyen/vietnamese-bi-encoder-ft")
# Run inference
sentences = [
    'tên thật của tỉnh drava banovina là gì',
    'Drava Banovina ::: Drava Banovina hoặc Drava Banate (tiếng Slovenia: Dravska banovina) là một tỉnh (banovina) của Vương quốc Nam Tư từ năm 1929 đến năm 1941. Tỉnh này bao gồm hầu hết ngày nay Slovenia và được đặt tên cho Drava sông. Thành phố thủ đô của Drava Banovina là Ljubljana.',
    'Mùa bão Tây Bắc Thái Bình Dương 1986 ::: Mùa bão năm 1986 ở Tây Bắc Thái Bình Dương không có giới hạn chính thức; nó chạy quanh năm vào năm 1986, nhưng hầu hết các cơn bão nhiệt đới có xu hướng hình thành ở tây bắc Thái Bình Dương giữa tháng Năm và tháng Mười Hai.  Những ngày này thường phân định thời kỳ mỗi năm khi hầu hết các cơn bão nhiệt đới hình thành ở tây bắc Thái Bình Dương.  Bão nhiệt đới hình thành trong toàn bộ lưu vực phía tây Thái Bình Dương đã được Trung tâm Cảnh báo Bão chung đặt tên.  Áp thấp nhiệt đới xâm nhập hoặc hình thành trong khu vực trách nhiệm của Philippines được đặt tên bởi Cơ quan Dịch vụ Khí quyển, Địa vật lý và Thiên văn học Philippines hoặc PAGASA.  Điều này thường có thể dẫn đến cùng một cơn bão có hai tê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]

Evaluation

Metrics

Information Retrieval

{'aaa_cosine_accuracy@1': 0.6559, 'aaa_cosine_accuracy@3': 0.7988, 'aaa_cosine_accuracy@5': 0.8473, 'aaa_cosine_accuracy@10': 0.8915, 'aaa_cosine_precision@1': 0.6559, 'aaa_cosine_precision@3': 0.4683333333333332, 'aaa_cosine_precision@5': 0.39014000000000004, 'aaa_cosine_precision@10': 0.29126, 'aaa_cosine_recall@1': 0.14735861230027672, 'aaa_cosine_recall@3': 0.2534958821819028, 'aaa_cosine_recall@5': 0.3139822545058687, 'aaa_cosine_recall@10': 0.3978179383957577, 'aaa_cosine_ndcg@10': 0.4994592874617665, 'aaa_cosine_mrr@10': 0.7369935317460269, 'aaa_cosine_map@100': 0.3890462930756453}

Training Details

Training Dataset

Unnamed Dataset

  • Size: 1,583,079 training samples
  • Columns: anchor and positive
  • Approximate statistics based on the first 1000 samples:
    anchorpositive
    typestringstring
    detailsmin: 5 tokensmean: 11.73 tokensmax: 32 tokensmin: 24 tokensmean: 121.83 tokensmax: 256 tokens
  • Samples:
    anchorpositive
    đặng văn hoàn từng giữ chức vụ nàoĐặng Văn Hoàn ::: Đặng Văn Hoàn là chính trị gia người Việt Nam. Ông từng giữ chức vụ Chủ tịch Ủy ban Mặt trận Tổ quốc Việt Nam tỉnh Quảng Bình.
    đặng văn hoàn là người nàoĐặng Văn Hoàn ::: Đặng Văn Hoàn là chính trị gia người Việt Nam. Ông từng giữ chức vụ Chủ tịch Ủy ban Mặt trận Tổ quốc Việt Nam tỉnh Quảng Bình.
    đặng văn hoàn là aiĐặng Văn Hoàn ::: Đặng Văn Hoàn là chính trị gia người Việt Nam. Ông từng giữ chức vụ Chủ tịch Ủy ban Mặt trận Tổ quốc Việt Nam tỉnh Quảng Bình.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 32
  • learning_rate: 2e-05
  • num_train_epochs: 2
  • warmup_ratio: 0.1
  • fp16: True
  • batch_sampler: no_duplicates

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: no
  • prediction_loss_only: True
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 32
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • 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: 2
  • 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
  • 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: False
  • fp16: True
  • 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, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • 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
  • 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

EpochStepTraining Loss
0.02025000.3446
0.040410000.3366
0.060615000.4109
0.080920000.1684
0.101125000.2029
0.121330000.1815
0.141535000.1493
0.161740000.1606
0.181945000.1221
0.202150000.1488
0.222355000.1751
0.242660000.2354
0.262865000.1252
0.283070000.1352
0.303275000.1798
0.323480000.1166
0.343685000.1247
0.363890000.1664
0.384195000.1451
0.4043100000.1391
0.4245105000.3064
0.4447110000.373
0.4649115000.2125
0.4851120000.1839
0.5053125000.3237
0.5255130000.4
0.5458135000.2788
0.5660140000.2936
0.5862145000.1388
0.6064150000.1581
0.6266155000.1876
0.6468160000.1569
0.6670165000.1575
0.6873170000.2999
0.7075175000.2072
0.7277180000.2041
0.7479185000.2705
0.7681190000.3727
0.7883195000.2635
0.8085200000.2007
0.8288205000.1417
0.8490210000.1682
0.8692215000.1665
0.8894220000.0305
0.9096225000.0184
0.9298230000.0159
0.9500235000.0166
0.9702240000.0149
0.9905245000.0158
1.0107250000.0725
1.0309255000.1099
1.0511260000.2281
1.0713265000.1607
1.0915270000.0796
1.1117275000.0998
1.1320280000.0603
1.1522285000.0815
1.1724290000.0754
1.1926295000.0873
1.2128300000.079
1.2330305000.0748
1.2532310000.1438
1.2734315000.0575
1.2937320000.1203
1.3139325000.0585
1.3341330000.0626
1.3543335000.0641
1.3745340000.0953
1.3947345000.0625
1.4149350000.1376
1.4352355000.309
1.4554360000.1851
1.4756365000.1268
1.4958370000.1762
1.5160375000.3293
1.5362380000.2692
1.5564385000.2661
1.5766390000.139
1.5969395000.0764
1.6171400000.1381
1.6373405000.0821
1.6575410000.0868
1.6777415000.1709
1.6979420000.1946
1.7181425000.1325
1.7384430000.1217
1.7586435000.2898
1.7788440000.2789
1.7990445000.1743
1.8192450000.1075
1.8394455000.1036
1.8596460000.1409
1.8799465000.0504
1.9001470000.0114
1.9203475000.009
1.9405480000.0083
1.9607485000.0082
1.9809490000.0079

Framework Versions

  • Python: 3.11.10
  • Sentence Transformers: 3.3.1
  • Transformers: 4.46.3
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.1.1
  • Datasets: 3.1.0
  • Tokenizers: 0.20.4

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
Ревизия весов
83fc051

0 моделей