/ Модель

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

Контекст
512 токенов
Параметры
40 млн
Лицензия
Apache 2.0
Архитектура
bert · dense
Базовая модель
bge-small-en-v1.5
Библиотека
sentence-transformers
Опубликована
25 ноя 2024

bge-small-en-v1.5-tr-rag-v1

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

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

111скачиваний за 30 дней1лайквеса обновлены25 ноя 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SMARTICT/bge-small-en-v1.5-tr-rag-v1 — англоязычная модель Sentence Transformers от SMARTICT, дообученная на базе BAAI/bge-small-en-v1.5 для семантического поиска и сравнения текстов. Она кодирует предложения и абзацы в плотные эмбеддинги размерности 384; архитектура включает BERT, пулинг по CLS-токену и нормализацию. Максимальная длина входа — 512 токенов, для сравнения используется косинусное сходство. Обучение проводилось на 8 970 парах anchor-positive с MultipleNegativesRankingLoss.

Модель подходит для поиска фрагментов по запросу, оценки семантической близости, поиска перефразировок, кластеризации и классификации текста на основе эмбеддингов. В README приведены результаты оценки поиска на наборе dim_384, включая cosine_accuracy@1 0,6088 и @5 0,7172. Модель распространяется по лицензии Apache-2.0. Она рассчитана на английский язык; качество на других языках не подтверждено, а входы длиннее 512 токенов ограничены максимальной длиной последовательности.

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

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

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

bge-small-en-v1.5-tr-rag-v1

This is a sentence-transformers model finetuned from BAAI/bge-small-en-v1.5 on the json 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 Type: Sentence Transformer
  • Base model: BAAI/bge-small-en-v1.5
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 384 dimensions
  • Similarity Function: Cosine Similarity
  • Training Dataset:
    • json
  • Language: en
  • License: apache-2.0

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': True}) with Transformer model: BertModel 
  (1): Pooling({'word_embedding_dimension': 384, '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("bge-small-en-v1.5-tr-rag-v1")
# Run inference
sentences = [
    'veya \'\'\'Afrika insansıları\'\'\', ilk kez John Edward Gray tarafından 1825 yılında tanımlanmış bir Hominidae alt familyasıdır. Açıklama (insansı) aile ağacı sol Mevcut (5 tür) ve soyu tükenmiş türleriyle birlikte iki oymak içerir: \'\'\'Hominini\'\'\' oymağı ve \'\'\'Gorillini\'\'\' oymağı. Kimi yazarlar ise, \'\'Pan\'\' cinsinin bazen kendi üçüncü oymağı Panini\'ye ait olduğunu düşünür. Homininae, orangutanların (Ponginae alt familyası) hominid soyundan ayrılmasından (yaklaşık 16 myö) sonra ortaya çıkan, insanlarla orangutanlara göre daha yakın akraba olan tüm hominidleri içerir. Bu alt familyadaki canlılar, \'\'hominine\'\' veya \'\'hominineler\'\' olarak tanımlanır. Evrim Homininae alt familyasının yaşı son ortak atası) tahminlere göre 14 ila 12.5 milyon yıldır Gorillini ve Hominini oymaklarına ayrılmasının ("goril insan son ortak atası", GHLCA) geç Miyosen\'de, nakayamai\'\'nin yaşadığı döneme yakın bir zamanda, ila 10 milyon yıl önce gerçekleştiği tahmin edilmiştir (TGHLCA). \'\'Pan-Homo\'\' bölünmesine kadar (5-7 myö) gorillerin ve \'\'Pan-Homo\'\' atalarının melezlendiğine dair kanıtlar vardır. Filogeni Parins-Fukuchi \'\'ve 2019\'daki çalışmasına göre oluşturulmuş, soyu tükenmiş homininleri içeren bir Homininae kladogramı: Ayrıca bakınız son ortak ata Ponginae Notlar Kaynakça Dış bağlantılar Kategori:John Edward Gray tarafından adlandırılmış taksonlar tanımlanan taksonlar',
    'Homininae alt familyası ilk kez ne zaman ve kim tarafından tanımlandı?',
    'Amr Hassan Zaki hangi takımlarda forma giymiştir?',
]
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

Information Retrieval

MetricValue
cosine_accuracy@10.6088
cosine_accuracy@30.6851
cosine_accuracy@50.7172
cosine_accuracy@100.7482
cosine_precision@10.6088
cosine_precision@30.2284
cosine_precision@50.1434
cosine_precision@100.0748
cosine_recall@10.6088
cosine_recall@30.6851
cosine_recall@50.7172
cosine_recall@100.7482
cosine_ndcg@100.6771
cosine_mrr@100.6545
cosine_map@1000.6583

Training Details

Training Dataset

json

  • Dataset: json
  • Size: 8,970 training samples
  • Columns: positive and anchor
  • Approximate statistics based on the first 1000 samples:
    positiveanchor
    typestringstring
    detailsmin: 92 tokensmean: 387.75 tokensmax: 512 tokensmin: 2 tokensmean: 22.76 tokensmax: 58 tokens
  • Samples:
    positiveanchor
    Diyarbakır ilinin Bismil ilçesine bağlı bir mahalledir. Tarihçe Mahallenin adı, 1928 yılı kayıtlarında olarak geçmektedir. Coğrafya Diyarbakır il merkezine 57 km, Bismil ilçe merkezine 22 km uzaklıktadır. Nüfus Yıllara göre mahalle nüfus verileri 2007 2000 185 1997 165 Kaynakça Dış bağlantılar Yerelnet mahalleleriMahallenin adı ne zaman kaydedilmiştir?
    '''karmaşık neden''', '''nedensel aşırı '''nedensel veya '''indirgeme safsatası''', bir sonucun birkaç nedenden kaynaklanması mümkünken; bir tek nedeni olduğu varsayıldığında ortaya çıkan kuşkulu neden safsatasıdır. Mantıksal olarak şu şekilde açıklanabilir: "X, Y'ye neden oldu; bu nedenle, X, Y'nin tek nedeniydi" Nedensel aşırı basitleştirme, birleşik olasılıkların göz ardı edildiği belirli bir tür yanlış ikilemdir. Diğer bir deyişle, "A ve ve C" veya "A ve ama değil" şeklindeki öncüller dikkate alınmadığında olası nedenlerin "A veya veya C" olduğu varsayılır. KaynakçaKarmaşık neden safsatası nedir ve nasıl oluşur?
    Akyazı Sakarya ili ilçesi Akyazı, Adıyaman Adıyaman ili merkez ilçesine bağlı köy Akyazı, Besni Adıyaman ili Besni ilçesine bağlı köy Akyazı, Amasya Amasya ili merkez ilçesine bağlı köy Akyazı, Adilcevaz Bitlis ili Adilcevaz ilçesine bağlı köy Akyazı, Düzce Düzce ili merkez ilçesine bağlı köy Akyazı, Çorum Çorum ili merkez ilçesine bağlı köy Akyazı, Aziziye Erzurum ili Aziziye ilçesine bağlı mahalle Akyazı, Kızıltepe Mardin ili Kızıltepe ilçesine bağlı mahalle Akyazı, Asarcık Samsun ili Asarcık ilçesine bağlı mahalle Akyazı, Ortahisar Trabzon ili Ortahisar ilçesine bağlı mahalleAkyazı adında kaç köy vardır?
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: epoch
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 16
  • learning_rate: 2e-05
  • num_train_epochs: 5
  • lr_scheduler_type: cosine
  • warmup_ratio: 0.1
  • tf32: False
  • load_best_model_at_end: True
  • optim: adamw_torch_fused
  • batch_sampler: no_duplicates

All Hyperparameters

  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: epoch
  • prediction_loss_only: True
  • per_device_train_batch_size: 32
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 16
  • 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: cosine
  • 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: False
  • 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_fused
  • 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
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Lossdim_384_cosine_ndcg@10
0.5694101.8837-
0.968017-0.6095
1.1388201.1104-
1.7082300.8451-
1.992935-0.6585
2.2776400.7245-
2.8470500.6472-
2.960952-0.6751
3.4164600.6274-
3.9858700.58720.6764
4.5552800.5975-
4.839985-0.6771
  • The bold row denotes the saved checkpoint.

Framework Versions

  • Python: 3.12.7
  • Sentence Transformers: 3.3.1
  • Transformers: 4.41.2
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.1.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",
}

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

0 моделей