asaakyan/ruRoPEBert-e5-base-512-allRU-authorship
SentenceTransformer based on Tochka-AI/ruRoPEBert-e5-base-512
This is a sentence-transformers model finetuned from Tochka-AI/ruRoPEBert-e5-base-512 on the csv dataset. 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 Type: Sentence Transformer
- Base model: Tochka-AI/ruRoPEBert-e5-base-512 <!-- at revision faaef0a859c7623bafa93254af2bedcffab6e361 -->
- Maximum Sequence Length: 512 tokens
- Output Dimensionality: 768 dimensions
- Similarity Function: Cosine Similarity
- Training Dataset:
- csv <!-- - Language: Unknown --> <!-- - License: Unknown -->
Model Sources
- Documentation: Sentence Transformers Documentation
- Repository: Sentence Transformers on GitHub
- Hugging Face: Sentence Transformers on Hugging Face
Full Model Architecture
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: RoPEBertModel
(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})
)Usage
Direct Usage (Sentence Transformers)
First install the Sentence Transformers library:
pip install -U sentence-transformersThen you can load this model and run inference.
from sentence_transformers import SentenceTransformer
# Download from the 🤗 Hub
model = SentenceTransformer("asaakyan/ruRoPEBert-e5-base-512-allRU-authorship")
# Run inference
sentences = [
'Решил своей девушке сделать подарок ко дню рождения. А именно - котенка (давно хотела завести). Нашел девушку, которая отдает маленького милого котенка в добрые руки. Созвонились, договорились о встрече, хозяйка сказала, что как только вернется домой с магазина - можно приехать и забрать пушистого зверька. Через час поступил звонок, своей девушке сказал, что надо по делам рабочим сгонять. В итоге девушка оказалась непорядочной, когда приехал, она сообщила, что котенка уже забрали 10 минут назад, мол, приехали раньше меня. Но это полбеды.\nВечером следующего дня я понял, что записать в девушку в телефоне как "Катя(Котёнок)" было очень глупой идеей...',
'на работе выключили свет. Диспетчер сидит в своей программе, делает табеля. бесперебойник периодически пищит.\n\\- д не пищи ты!!\n\\- пиик пиик пиик\n\\- д знаю я что света нет, не ори!!\n\\- пиик пиик пиик\n\\- ну сейчас сейчас, доделаю и выключу\n\\- пиик пиик пиик\n\\- какой же ты глупый!!!\n\\- пиик пиик пиик\n\\- как же ты достал, ну сейчас, еще 10 человек осталось и выключаю\n\\- пиииииииииик...........\nкомпьютер гаснет.....пауза......злая тётенька диспетчер осознает что произошло\n\\- он что вырубился????? так я же ничего не сохранила!!!! какого черта??? мне же теперь все заново делать!!!!! что за компьютер глупый такой!!!\nпочти собралась сисадмину звонить )))) но не стала)))\nЗа компьютер обидно, он же из последних сил терпел, кричал, а его глупым...)',
'Чтобы факт, признанный наукой назвать "дурацким стереотипом"? Ну да, как по мне, требуется осведомлённость повыше обывательской. И ещё раз. С вами никто не спорит. Бывает всяко, в том числе так, как вы написали. Вариантов столько же, сколько живых людей. А паттерны, усвоенные в семье ребёнком, присущи большому количеству взрослых.\nИ речь изначально шла о модели семьи и вариантах поведения, связанных с ней. То есть "мальчик копирует отношение папы к маме". Это не значит, что его ждёт такая же судьба, у него будет такой же характер, или он тоже разведётся в 27. Но по умолчанию, пока не наживёт своего опыта (а некоторые и дальше), мальчик будет опираться на то, что видел в семье. Ваш пример с эмпатией - верен. Только в этом контексте ничего не доказывает.',
]
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]<!--
Direct Usage (Transformers)
<details><summary>Click to see the direct usage in Transformers</summary>
</details> -->
<!--
Downstream Usage (Sentence Transformers)
You can finetune this model on your own dataset.
<details><summary>Click to expand</summary>
</details> -->
<!--
Out-of-Scope Use
List how the model may foreseeably be misused and address what users ought not to do with the model. -->
<!--
Bias, Risks and Limitations
What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model. -->
<!--
Recommendations
What are recommendations with respect to the foreseeable issues? For example, filtering explicit content. -->
Training Details
Training Dataset
csv
- Dataset: csv
- Size: 2,465,773 training samples
- Columns: <code>sentence1</code>, <code>sentence2</code>, and <code>label</code>
- Approximate statistics based on the first 1000 samples: | | sentence1 | sentence2 | label | |:--------|:-------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------|:------------------------------------------------| | type | string | string | int | | details | <ul><li>min: 97 tokens</li><li>mean: 304.32 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>min: 93 tokens</li><li>mean: 304.08 tokens</li><li>max: 512 tokens</li></ul> | <ul><li>0: ~49.90%</li><li>1: ~50.10%</li></ul> |
- Samples: | sentence1 | sentence2 | label | |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------| | <code>С целью повышения безопасности я ограничил сумму перевода со своих счетов 30 тысячами, а тут нужно жене перекинуть поболее.<br>Для голосового подтверждения я раньше звонил на номер <PERSON>, переходил на пункт ввода кода обслуживания в тональном режиме и далее подтверждал сумму и получателя.<br>Позвонив этот раз в Сбербанк ответила мне робот, голосовой помощник и обещала мне помочь, только скажи. Говорю "подтвердить операцию" на что робот говорит что не понимает меня. И со второй попытки тоже. После этого, не найдя контакта она предлагает мне соединить с оператором, на что я говорю Да, и-и-и, пара секунд и короткие гудки.<br><PERSON> повторно и сразу говорю "соединить с оператором", попадаю на живого человека, который выслушав меня говорит: ноль проблем, переключаю на ввод кода. И кто меня ждёт с той стороны? Правильно, опять не доделанный ИИ, который опять меня не понимает.<br>Прошу соединить с живым человеком, соединяет. На что новый сотрудник говорит, что по коду нельзя теперь авторизоваться, т...</code> | <code>Очень часто вижу негативные посты про опсосов и банки. И вот что хочу сказать: бесспорно это просто бизнес, но в тоже время как не ругай банки, они многим нужны. Так вот на волне негатива хочу сказать немного хорошего.<br>У меня, как и у большинства россиян зелёный банк. За время моего сотрудничества с ним я переоценил свое отношение к нему. Да, очереди, проблемы и косяки, были, но или мне повезло или как, но косяки все решились мне не в убыток.<br>Итак: с момента как у меня появилась зарплатная карта:<br>\- я купил первую квартиру в ипотеку, студию, деньги дал банк. Ипотеку гасил как мог быстро. Результат: кредит погасил до того момента, когда проценты превысили рыночную стоимость на момент закрытия кредита. Причем даже с профитом. И это при ставке 12.5%.<br>\- я купил бу машину, взяв потребительский кредит, погасил, переплата 12 тыс, но взял машину на 50% дороже, чем взял бы на свои накопления.<br>\- банк предложил кредиту виза серебряная первый год бесплатно. Взял, научился льготному периоду. Закр...</code> | <code>1</code> | | <code>Тоже был на Канарах, там проходило одно студенческое мероприятие. Как-то вечером иду с знакомым поляком по вечернему городу, заходим в случайный бар за пивом. Иду уверенным шагом к барной стойке и тут слышу сзади меня: "Ооо, курваа..." и дальше не переводимая игра слов на польском. Оказалось, что мой знакомый встретил своего друга поляка и при этом, оба друг другу не говорили о том, что собираются куда-либо поехать. Вот так тоже подумаешь, несколько тысяч километров и два знакомых встречаются случайно.<br>Еще одну историю услышал от знакомых. Дело было в Барселоне. На пляже услышали родную речь и разговорились. Оказалось, мало того, что с одного города, так еще и с одного дома, только разные подъезды.</code> | <code>Есть у меня друг. Ему за тридцать, живет в деревне с матерью и сестрой. Все его друзья перебрались в город. И излюбленным его нытьем стало то, что они зазнались, зазвездились, каблуки и т.д. Звонит как то, говорит что в городе и предлагает сходить на новоселье к одному из них, своих старых друзей. Я малость удивился, с человеком не знаком, зачем я то пойду. Уверяет меня, что друг человек компанейский, новым друзьям всегда рад, а квартира его новая вообще в моем доме расположена, в другом подъезде ток. Ну, думаю, раз так, зайду, в случае чего можно и уйти под каким нибудь предлогом. Приходим, компании никакой нет, но накрыт стол в гостиной, бегает пацаненок лет пяти, с кухни выходит сильно беременная супруга. Познакомились с новыми соседями, сели, выпили. Не буду затягивать с рассказом: друга моего деревенского понесло, бутылки на троих ему было мало, сгонял еще за одной, потом еще...Потом горячо уговаривал всех в караоке поехать, ну а что, душа просит праздника. Утащить его с этой кв...</code> | <code>0</code> | | <code>> никто из русских в здравом уме не пытается озвучить мысль-"всех чеченов надо убить"<br>Я искал какую-нибудь отметку о сарказме, но не нашел. Эту мысль озвучивали и озвучивают и сейчас везде - от политических деятелей до каких-нибудь Петровичей на кухне. Особенно легко такие призывы найти на Пикабу, и я тебя уверяю, они будут заплюсованы. Или спорить с этим будешь? Или скажешь, что каждый, кто это говорит не подходит под твое "в здравом уме" и потому снова несчитово?)) Тогда могу только восхититься твоей предусмотрительностью.<br>> Тем более-осуществить. Не в нашем это обычае, хотя и сил и средств достаточно, кмк.<br>Так пытались же, я расписал достаточно подробно. Убить однажды половину, в следующий раз - треть, а в последний раз четверть - разве нельзя считать это попытками? Просто не получилось, не смогли. Вся надежда на ОМП теперь.<br>Ну и вообще, не в тему твой комментарий, неполный он какой-то.</code> | <code>Да потому что вы несете бред, не связанный с реальностью. Это как дискутировать о том, что небо зеленое, а трава фиолетвая и в пупырушек. В вашем розовом мире писюнов злое правительство не дает нищасным папкам детей? Вам обьяснили почему вы можете видеть такую картину, почему существует перекос и откуда растут ноги у процента принятия решений. Но вам, походу, нужно чтобы суды исходили не из интересов ребенка, а из интересов вечно обделенных. Я то не против, я вообще считаю, что закон о принудительном оставлении ребенка в любом случае с отцом не плохо бы укрепил желание некоторых сохранять семью и выбирать адекватных партнеров</code> | <code>0</code> |
- Loss: <code>ContrastiveLoss</code> with these parameters:
{
"distance_metric": "SiameseDistanceMetric.COSINE_DISTANCE",
"margin": 0.5,
"size_average": true
}Training Hyperparameters
Non-Default Hyperparameters
eval_strategy: stepsper_device_train_batch_size: 35per_device_eval_batch_size: 35warmup_ratio: 0.1fp16: Trueload_best_model_at_end: Truebatch_sampler: no_duplicates
All Hyperparameters
<details><summary>Click to expand</summary>
overwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 35per_device_eval_batch_size: 35per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 1eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 3max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.1warmup_steps: 0log_level: passivelog_level_replica: warninglog_on_each_node: Truelogging_nan_inf_filter: Truesave_safetensors: Truesave_on_each_node: Falsesave_only_model: Falserestore_callback_states_from_checkpoint: Falseno_cuda: Falseuse_cpu: Falseuse_mps_device: Falseseed: 42data_seed: Nonejit_mode_eval: Falseuse_ipex: Falsebf16: Falsefp16: Truefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Nonelocal_rank: 0ddp_backend: Nonetpu_num_cores: Nonetpu_metrics_debug: Falsedebug: []dataloader_drop_last: Falsedataloader_num_workers: 0dataloader_prefetch_factor: Nonepast_index: -1disable_tqdm: Falseremove_unused_columns: Truelabel_names: Noneload_best_model_at_end: Trueignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'minnumparams': 0, 'xla': False, 'xlafsdpv2': False, 'xlafsdpgrad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'splitbatches': False, 'dispatchbatches': None, 'evenbatches': True, 'useseedablesampler': True, 'nonblocking': False, 'gradientaccumulationkwargs': None}deepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torchoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthddp_find_unused_parameters: Noneddp_bucket_cap_mb: Noneddp_broadcast_buffers: Falsedataloader_pin_memory: Truedataloader_persistent_workers: Falseskip_memory_metrics: Trueuse_legacy_prediction_loop: Falsepush_to_hub: Falseresume_from_checkpoint: Nonehub_model_id: Nonehub_strategy: every_savehub_private_repo: Falsehub_always_push: Falsegradient_checkpointing: Falsegradient_checkpointing_kwargs: Noneinclude_inputs_for_metrics: Falseinclude_for_metrics: []eval_do_concat_batches: Truefp16_backend: autopush_to_hub_model_id: Nonepush_to_hub_organization: Nonemp_parameters:auto_find_batch_size: Falsefull_determinism: Falsetorchdynamo: Noneray_scope: lastddp_timeout: 1800torch_compile: Falsetorch_compile_backend: Nonetorch_compile_mode: Nonedispatch_batches: Nonesplit_batches: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: Falseneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseeval_use_gather_object: Falseaverage_tokens_across_devices: Falseprompts: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportional
</details>
Training Logs
<details><summary>Click to expand</summary>
</details>
Framework Versions
- Python: 3.12.0
- Sentence Transformers: 3.4.0.dev0
- Transformers: 4.46.3
- PyTorch: 2.5.1+cu121
- Accelerate: 1.1.1
- Datasets: 3.1.0
- Tokenizers: 0.20.3
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",
}ContrastiveLoss
@inproceedings{hadsell2006dimensionality,
author={Hadsell, R. and Chopra, S. and LeCun, Y.},
booktitle={2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'06)},
title={Dimensionality Reduction by Learning an Invariant Mapping},
year={2006},
volume={2},
number={},
pages={1735-1742},
doi={10.1109/CVPR.2006.100}
}<!--
Glossary
Clearly define terms in order to be accessible across audiences. -->
<!--
Model Card Authors
Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction. -->
<!--
Model Card Contact
Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors. -->
