/ Модель

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

Контекст
512 токенов
Параметры
40 млн
Архитектура
bert · dense
Базовая модель
all-MiniLM-L12-v2
Библиотека
sentence-transformers
Опубликована
31 мая 2024

minilm-l12-v2-simple

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

Компактная дообученная модель Sentence Transformers кодирует английские предложения и абзацы в эмбеддинги для семантического поиска и сравнения сходства.

72скачиваний за 30 дней0лайковвеса обновлены31 мая 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

marrodion/minilm-l12-v2-simple — дообученная модель Sentence Transformers на базе sentence-transformers/all-MiniLM-L12-v2, разработанная автором репозитория marrodion. Она кодирует предложения и абзацы в плотные векторы размерности 384 и предназначена для сравнения текстов по косинусному сходству, семантического поиска, поиска перефразировок, кластеризации и классификации текста.

Модель использует архитектуру BERT с усреднением токенных представлений и нормализацией векторов. Метаданные указывают размер около 40 млн параметров и нативный контекст до 512 токенов; в README указан максимальный размер последовательности 128 токенов. Обучение описано на парах предложений с оценками сходства, а в README приведена оценка на наборе SemEval-15-dev.

Модель рассчитана на текст на английском языке, как и базовая all-MiniLM-L12-v2. Она выдаёт эмбеддинги, а не готовые ответы; качество зависит от предметной области и данных, а длинные последовательности ограничены указанным размером. В метаданных лицензия не приведена. Для использования требуется библиотека Sentence Transformers.

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

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

Ограничения

README указывает максимальную длину последовательности 128 токенов, тогда как метаданные приводят нативный контекст 512 токенов. Векторы сами по себе не дают готовых ответов, а качество за пределами описанных данных оценки не установлено.

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

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on sentence-transformers/all-MiniLM-L12-v2

This is a sentence-transformers model finetuned from sentence-transformers/all-MiniLM-L12-v2. 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 Type: Sentence Transformer
  • Base model: sentence-transformers/all-MiniLM-L12-v2
  • Maximum Sequence Length: 128 tokens
  • Output Dimensionality: 384 tokens
  • Similarity Function: Cosine Similarity

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})
  (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("marrodion/minilm-l12-v2-simple")
# Run inference
sentences = [
    'ZBo is in top form',
    'Miley Cyrus is over the top',
    'Hiller flashing the leather eh',
]
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

Semantic Similarity

MetricValue
pearson_cosine0.6231
spearman_cosine0.5854
pearson_manhattan0.6182
spearman_manhattan0.5836
pearson_euclidean0.6203
spearman_euclidean0.5854
pearson_dot0.6231
spearman_dot0.5854
pearson_max0.6231
spearman_max0.5854

Training Details

Training Dataset

Unnamed Dataset

  • Size: 13,063 training samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1sentence2score
    typestringstringfloat
    detailsmin: 7 tokensmean: 11.16 tokensmax: 28 tokensmin: 7 tokensmean: 12.31 tokensmax: 22 tokensmin: 0.0mean: 0.33max: 1.0
  • Samples:
    sentence1sentence2score
    EJ Manuel the 1st QB to go in this draftBut my bro from the 757 EJ Manuel is the 1st QB gone1.0
    EJ Manuel the 1st QB to go in this draftCan believe EJ Manuel went as the 1st QB in the draft1.0
    EJ Manuel the 1st QB to go in this draftEJ MANUEL IS THE 1ST QB what0.6
  • Loss: CosineSimilarityLoss with these parameters:
    {
        "loss_fct": "torch.nn.modules.loss.MSELoss"
    }
    

Evaluation Dataset

Unnamed Dataset

  • Size: 4,727 evaluation samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1sentence2score
    typestringstringfloat
    detailsmin: 7 tokensmean: 10.04 tokensmax: 16 tokensmin: 7 tokensmean: 12.22 tokensmax: 26 tokensmin: 0.0mean: 0.33max: 1.0
  • Samples:
    sentence1sentence2score
    A Walk to Remember is the definition of true loveA Walk to Remember is on and Im in town and Im upset0.2
    A Walk to Remember is the definition of true loveA Walk to Remember is the cutest thing0.6
    A Walk to Remember is the definition of true loveA walk to remember is on ABC family youre welcome0.2
  • Loss: CosineSimilarityLoss with these parameters:
    {
        "loss_fct": "torch.nn.modules.loss.MSELoss"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • warmup_ratio: 0.1
  • load_best_model_at_end: True

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 8
  • 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: 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: 3.0
  • 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: 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: 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
  • 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
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Losslosssemeval-15-dev_spearman_cosine
0.18373000.08140.07180.5815
0.36746000.05670.07580.5458
0.55119000.05660.07590.5712
0.734812000.04990.07480.5751
0.918615000.04770.07710.5606
1.102318000.03910.07620.5605
1.286021000.03040.07380.5792
1.469724000.02930.07410.5757
1.653427000.03170.0720.5967
1.837130000.0290.07640.5640
2.020833000.02780.07570.5674
2.204536000.01860.07500.5723
2.388239000.01690.07190.5864
2.572042000.01770.07180.5905
2.755745000.01780.07190.5888
2.939448000.01650.07250.5854
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.10.14
  • Sentence Transformers: 3.0.0
  • Transformers: 4.41.1
  • PyTorch: 2.3.0
  • Accelerate: 0.30.1
  • Datasets: 2.19.1
  • Tokenizers: 0.19.1

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

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей