/ Модель

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

Контекст
512 токенов
Параметры
124 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
paraphrase-multilingual-MiniLM-L12-v2
Библиотека
sentence-transformers
Опубликована
23 окт 2024

paraphrase-multilingual-MiniLM-L12-hu

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

Венгерская Sentence Transformer модель преобразует предложения и абзацы в векторы для семантического поиска, сравнения сходства и кластеризации.

101скачиваний за 30 дней0лайковвеса обновлены23 окт 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Модель karsar/paraphrase-multilingual-MiniLM-L12-hu — Sentence Transformer на базе sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2, дообученный для представления предложений и абзацев в виде плотных векторов размерности 384. Она использует архитектуру BERT с усреднением токеновых представлений; сходство векторов можно оценивать косинусной мерой. Модель предназначена для семантического поиска, сравнения сходства предложений, поиска перефразирований, кластеризации и классификации текста, в первую очередь на венгерском языке.

Модель содержит 124,3 млн параметров, принимает текстовые последовательности длиной до 512 токенов согласно метаданным и выдаёт векторы. README указывает ограничение в 128 токенов, поэтому для практического использования следует учитывать более короткий предел, заявленный в карточке. Указана лицензия Apache-2.0. В README приведены высокие показатели cosine accuracy на наборах all-nli-dev и all-nli-test, однако они не гарантируют аналогичное качество на других данных; обучение описано на датасете train.

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

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

Ограничения

README указывает максимальную длину последовательности 128 токенов, тогда как метаданные сообщают 512 токенов; рекомендуется придерживаться указанного в README предела. Метрики приведены для конкретных наборов all-nli и не гарантируют качество на других данных.

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

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

Открыть на Hugging Face

e5-base_hun

This is a sentence-transformers model finetuned from sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2 on the train dataset. It maps sentences & paragraphs to a 384-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': 128, 'do_lower_case': False}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, '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("karsar/paraphrase-multilingual-MiniLM-L12-hu")
# Run inference
sentences = [
    'Az emberek alszanak.',
    'Egy apa és a fia ölelgeti alvás közben.',
    'Egy csoport ember ül egy nyitott, térszerű területen, mögötte nagy bokrok és egy sor viktoriánus stílusú épület, melyek közül sokat a kép jobb oldalán lévő erős elmosódás tesz kivehetetlenné.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 384]

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

Evaluation

Metrics

Triplet

MetricValue
cosine_accuracy0.9746
dot_accuracy0.0284
manhattan_accuracy0.9676
euclidean_accuracy0.9658
max_accuracy0.9746

Triplet

MetricValue
cosine_accuracy0.9921
dot_accuracy0.0086
manhattan_accuracy0.9897
euclidean_accuracy0.9895
max_accuracy0.9921

Training Details

Training Dataset

train

  • Dataset: train
  • Size: 457,856 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchorpositivenegative
    typestringstringstring
    detailsmin: 7 tokensmean: 11.73 tokensmax: 56 tokensmin: 6 tokensmean: 15.24 tokensmax: 47 tokensmin: 7 tokensmean: 16.07 tokensmax: 53 tokens
  • Samples:
    anchorpositivenegative
    Egy lóháton ülő ember átugrik egy lerombolt repülőgép felett.Egy ember a szabadban, lóháton.Egy ember egy étteremben van, és omlettet rendel.
    Gyerekek mosolyogva és integetett a kameraGyermekek vannak jelenA gyerekek homlokot rántanak
    Egy fiú ugrál a gördeszkát a közepén egy piros híd.A fiú gördeszkás trükköt csinál.A fiú korcsolyázik a járdán.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Evaluation Dataset

train

  • Dataset: train
  • Size: 5,000 evaluation samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchorpositivenegative
    typestringstringstring
    detailsmin: 7 tokensmean: 11.73 tokensmax: 56 tokensmin: 6 tokensmean: 15.24 tokensmax: 47 tokensmin: 7 tokensmean: 16.07 tokensmax: 53 tokens
  • Samples:
    anchorpositivenegative
    Egy lóháton ülő ember átugrik egy lerombolt repülőgép felett.Egy ember a szabadban, lóháton.Egy ember egy étteremben van, és omlettet rendel.
    Gyerekek mosolyogva és integetett a kameraGyermekek vannak jelenA gyerekek homlokot rántanak
    Egy fiú ugrál a gördeszkát a közepén egy piros híd.A fiú gördeszkás trükköt csinál.A fiú korcsolyázik a járdán.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 128
  • per_device_eval_batch_size: 128
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • bf16: True
  • batch_sampler: no_duplicates

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 128
  • per_device_eval_batch_size: 128
  • 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: 5e-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: 1
  • 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: True
  • 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, '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
  • 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
  • eval_use_gather_object: False
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Losstrain lossall-nli-dev_max_accuracyall-nli-test_max_accuracy
00--0.7574-
0.02801002.3495---
0.05592001.8588---
0.08393001.7156---
0.11184001.609---
0.13985001.5286---
0.16776001.4425---
0.19577001.6016---
0.22378001.5278---
0.25169001.4255---
0.279610001.2084---
0.307511001.1248---
0.335512001.0773---
0.363413001.1373---
0.391414001.222---
0.419315001.048---
0.447316000.9319---
0.475317000.8837---
0.503218000.8402---
0.531219000.7515---
0.559120000.94050.13100.9746-
0.587121000.8526---
0.615022000.7886---
0.643023000.6704---
0.671024000.6488---
0.698925000.635---
0.726926000.7242---
0.754827000.7593---
0.782828000.62---
0.810729000.4302---
0.838730000.2952---
0.866631000.3354---
0.894632000.3221---
0.922633000.4317---
0.950534000.3185---
0.978535000.433---
1.03577---0.9921

Framework Versions

  • Python: 3.11.8
  • Sentence Transformers: 3.1.1
  • Transformers: 4.44.0
  • PyTorch: 2.3.0.post101
  • Accelerate: 0.33.0
  • Datasets: 2.18.0
  • Tokenizers: 0.19.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…

Класс архитектуры
BertModel
Ревизия весов
9106b4d

0 моделей