/ Модель

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

Контекст
8 192 токена
Параметры
137 млн
Архитектура
bert · dense
Базовая модель
jina-embeddings-v2-base-en
Библиотека
sentence-transformers
Опубликована
3 дек 2024

word-order-jina

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

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

73скачиваний за 30 дней4лайкавеса обновлены3 дек 2024

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

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

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

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

bwang0911/word-order-jina — англоязычная модель Sentence Transformers, дообученная на базе jinaai/jina-embeddings-v2-base-en. Архитектура JinaBertModel преобразует предложения и абзацы в нормализованные плотные векторы размерностью 768; для сравнения используется косинусное сходство. В README указана максимальная длина последовательности 128 токенов, а метаданные базовой модели приводят контекст до 8192 токенов.

Модель обучалась на примерах порядка слов и отрицаний. Она предназначена для семантического сравнения текстов, поиска похожих фраз, поиска с учётом смысла, кластеризации и классификации; обучение на контрастных примерах нацелено на различение утверждений с разным порядком слов и отрицанием. Лицензия в предоставленных данных не указана.

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

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

Ограничения

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

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

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

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

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

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

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

Открыть на Hugging Face

SentenceTransformer based on jinaai/jina-embeddings-v2-base-en

This is a sentence-transformers model finetuned from jinaai/jina-embeddings-v2-base-en on the word_orders and negation_dataset datasets. 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': 128, 'do_lower_case': False}) with Transformer model: JinaBertModel 
  (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})
  (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("bwang0911/word-order-jina")
# Run inference
sentences = [
    'Paint preserves wood',
    'Coating protects timber',
    'timber coating protects',
]
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]

Training Details

Training Datasets

word_orders

  • Dataset: word_orders at 99609ac
  • Size: 1,002 training samples
  • Columns: anchor, pos, and neg
  • Approximate statistics based on the first 1000 samples:
    anchorposneg
    typestringstringstring
    detailsmin: 5 tokensmean: 12.34 tokensmax: 32 tokensmin: 5 tokensmean: 12.1 tokensmax: 30 tokensmin: 5 tokensmean: 11.51 tokensmax: 24 tokens
  • Samples:
    anchorposneg
    The river flows from the mountains to the seaWater travels from mountain peaks to oceanThe river flows from the sea to the mountains
    Train departs London for ParisRailway journey from London heading to ParisTrain departs Paris for London
    Cargo ship sails from Shanghai to SingaporeMaritime route Shanghai to SingaporeCargo ship sails from Singapore to Shanghai
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20,
        "similarity_fct": "cos_sim"
    }
    

negation_dataset

  • Dataset: negation_dataset at cd02256
  • Size: 10,000 training samples
  • Columns: anchor, entailment, and negative
  • Approximate statistics based on the first 1000 samples:
    anchorentailmentnegative
    typestringstringstring
    detailsmin: 6 tokensmean: 16.48 tokensmax: 44 tokensmin: 4 tokensmean: 9.63 tokensmax: 31 tokensmin: 5 tokensmean: 10.46 tokensmax: 32 tokens
  • Samples:
    anchorentailmentnegative
    Two young girls are playing outside in a non-urban environment.Two girls are playing outside.Two girls are not playing outside.
    A man with a red shirt is watching another man who is standing on top of a attached cart filled to the top.A man is standing on top of a cart.A man is not standing on top of a cart.
    A man in a blue shirt driving a Segway type vehicle.A person is riding a motorized vehicle.A person is not riding a motorized vehicle.
  • Loss: MultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20,
        "similarity_fct": "cos_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • per_device_train_batch_size: 128
  • 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: 128
  • 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
  • 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: 3
  • 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
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional

Training Logs

EpochStepTraining Loss
0.1149102.0411
0.2299201.5167
0.3448300.64
0.4598400.6058
0.5747500.6042
0.6897600.4193
0.8046700.5208
0.9195800.4864
1.0345900.4145
1.14941000.69
1.26441100.9602
1.37931200.2539
1.49431300.2558
1.60921400.2769
1.72411500.2154
1.83911600.293
1.95401700.2598
2.06901800.2113
2.18391900.9366
2.29892000.2121
2.41382100.1486
2.52872200.1765
2.64372300.1438
2.75862400.1589
2.87362500.1869
2.98852600.1682

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.3.1
  • Transformers: 4.46.0
  • PyTorch: 2.5.1+cu124
  • Accelerate: 1.1.1
  • Datasets: 3.1.0
  • Tokenizers: 0.20.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…

Класс архитектуры
JinaBertModel
Ревизия весов
1bf4d04

0 моделей