/ Модель

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

Контекст
512 токенов
Параметры
434 млн
Архитектура
bert · dense
Базовая модель
mxbai-embed-large-v1
Библиотека
sentence-transformers
Опубликована
17 сен 2024

mxbai-embed-large-v1-eedi-2024

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

Дообученная англоязычная BERT-модель создаёт текстовые эмбеддинги для семантического поиска и сопоставления образовательных заданий.

140скачиваний за 30 дней0лайковвеса обновлены17 сен 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Gurveer05/mxbai-embed-large-v1-eedi-2024 — дообученная модель Sentence Transformers на базе mixedbread-ai/mxbai-embed-large-v1. Она преобразует предложения и абзацы в плотные эмбеддинги размерности 1024 и предназначена для сравнения текстов по косинусному сходству, семантического поиска, поиска перефразировок, кластеризации и классификации текста. В обучающих примерах использованы образовательные задания по математике и описания типичных заблуждений учащихся, поэтому модель может быть полезна для сопоставления вопросов и ответов или поиска похожих учебных ошибок.

Модель построена на BERT и использует Sentence Transformers с пулингом CLS-токена. Максимальная длина входа — 512 токенов; библиотека — sentence-transformers. В README приведена оценка бинарной классификации с точностью по косинусному сходству 0,9992, но она относится к указанной оценке и не гарантирует качество на других данных. По базовой модели можно установить англоязычную основу; самостоятельные сведения о языковом охвате дообученной версии не приведены. Лицензия в предоставленных данных не указана.

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

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

Ограничения

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

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on mixedbread-ai/mxbai-embed-large-v1

This is a sentence-transformers model finetuned from mixedbread-ai/mxbai-embed-large-v1. 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: mixedbread-ai/mxbai-embed-large-v1
  • 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: BertModel 
  (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})
)

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("Gurveer05/mxbai-embed-large-v1-eedi-2024")
# Run inference
sentences = [
    'Construct: Convert from weeks to hours - Question: Which one of the following calculations would work out the number of hours in 5 weeks? Answer: 5 × 5 × 24',
    'Thinks there are 5 days in a week',
    'Mistakes unit of speed for unit of time',
]
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]

Evaluation

Metrics

Binary Classification

MetricValue
cosine_accuracy0.9992
cosine_accuracy_threshold0.9923
cosine_f10.9996
cosine_f1_threshold0.9923
cosine_precision1.0
cosine_recall0.9992
cosine_ap1.0
dot_accuracy0.9992
dot_accuracy_threshold261.0998
dot_f10.9996
dot_f1_threshold261.0998
dot_precision1.0
dot_recall0.9992
dot_ap1.0
manhattan_accuracy0.9992
manhattan_accuracy_threshold54.2237
manhattan_f10.9996
manhattan_f1_threshold54.2237
manhattan_precision1.0
manhattan_recall0.9992
manhattan_ap1.0
euclidean_accuracy0.9992
euclidean_accuracy_threshold2.1232
euclidean_f10.9996
euclidean_f1_threshold2.1232
euclidean_precision1.0
euclidean_recall0.9992
euclidean_ap1.0
max_accuracy0.9992
max_accuracy_threshold261.0998
max_f10.9996
max_f1_threshold261.0998
max_precision1.0
max_recall0.9992
max_ap1.0

Training Details

Training Dataset

Unnamed Dataset

  • Size: 3,059 training samples
  • Columns: sentence_0, sentence_1, and label
  • Approximate statistics based on the first 1000 samples:
    sentence_0sentence_1label
    typestringstringfloat
    detailsmin: 20 tokensmean: 62.59 tokensmax: 313 tokensmin: 4 tokensmean: 14.72 tokensmax: 40 tokensmin: 1.0mean: 1.0max: 1.0
  • Samples:
    sentence_0sentence_1label
    Construct: Given a situation sketch an appropriate real life graph - Question: Imran slept really well until a car alarm woke him up and he couldn't get back to sleep. Which of the following sketches best shows Imran's sleep? Answer: This graph shows depth of sleep increasing quickly and then maintaining a consistent level until it starts to gradually decrease until the end of the night when it reaches 0.Believes infinite gradient is not possible in real life. 1.0
    Construct: Solve linear simultaneous equations requiring a scaling of one expression - Question: What is a correct solution for the following pair of simultaneous equations: 4x+y=7 3x+2y=4 Answer: [ x=0.6; y=4.6 ]When asked to solve simultaneous equations, believes they can just find values that work in one equation1.0
    Construct: Find missing angles on parallel lines using corresponding angles - Question: Calculate t. Two parallel horizontal lines with a transversal. The lower interior angle to the right of the transversal is marked 't'. The angle to the right of the transversal and lying above the upper parallel line is marked '78'. Answer: t=282^∘Thinks corresponding angles sum to 360 degrees1.0
  • Loss: CosineSimilarityLoss with these parameters:
    {
        "loss_fct": "torch.nn.modules.loss.MSELoss"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 12
  • per_device_eval_batch_size: 12
  • num_train_epochs: 5
  • multi_dataset_batch_sampler: round_robin

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 12
  • per_device_eval_batch_size: 12
  • 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
  • num_train_epochs: 5
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.0
  • 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: 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: batch_sampler
  • multi_dataset_batch_sampler: round_robin

Training Logs

EpochStepmax_ap
0.50201281.0
1.02551.0
1.00392561.0

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.1.0
  • Transformers: 4.44.2
  • PyTorch: 2.4.0+cu121
  • Accelerate: 0.34.2
  • Datasets: 2.19.2
  • 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
Ревизия весов
76320c8

0 моделей