Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup
Paper • 2101.06983 • Published • 2
How to use IrvinTopi/mnrl-hardnegatives14 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("IrvinTopi/mnrl-hardnegatives14")
sentences = [
"Как запланировать запись?",
"Функция «уведомление об отсутствии» доступна только для родителей. Чтобы сообщить, что ребенка не будет в школе, выберите раздел «Школа» в верхнем горизонтальном меню, далее — подраздел «Посещаемость». Нажмите кнопку «Уведомить об отсутствии», расположенную в правой верхней части экрана. В открывшемся календаре укажите дату или период, в который планируется отсутствие ребенка. Если ребенок пропустит один или несколько уроков, выберите «Часть уроков» и отметьте уроки, на которых он будет отсутствовать. Если нужно удалить ранее созданное уведомление об отсутствии, выберите интересующий вас период, в который было сформировано уведомление. В открывшемся блоке «Запланированные пропуски» выберите запланированный пропуск и нажмите «Удалить». Удалить уведомления за прошедшие дни невозможно.",
"Для этого перейдите в раздел Schedule и укажите дату, время, а также длительность записи. Также приложение позволяет заранее настроить микрофон и рекордер. Не забудьте сохранить расписание, кликнув по кнопке Done.",
"В WordPress можно указать дату и время публикации, таким образом созданная запись будет автоматически опубликована в заданное время. Чтобы создать отложенную публикацию записи в WordPress, выполните эти действия:\n1. Напротив кнопки «Опубликовать», нажмите на «Изменить».\n2. Введите желаемую дату и время, нажимаем «ок».\n3. Вместо кнопки «Опубликовать», должна появиться кнопка «Запланировать». Нажмите на нее.\nВ случае, правильно выполненных действий, запись будет опубликована в указанное вами время. Это хорошая практика, когда нужно постепенно публиковать посты. А также, повлиять на поискового бота. Если обновите таким образом все ваши записи, бот начнет активно обходить ваш контент по новой.",
"Дата завершения строительства Layla Residences на острове Maryam запланирована на 1 квартал 2027 года.",
"Чтобы подать заявление о переводе пенсии на карту S7 — T‑Bank через госуслуги, у вас должна быть подтвержденная учетная запись на портале gosuslugi.ru.\nЕсли вы уже клиент Т‑Банка, проще всего это сделать на нашем сайте. После проверки данных вы сразу получите подтвержденную учетную запись — посещать центры обслуживания не нужно. Подтвердить учетную запись на госуслугах через Т-Банк\nЕсли вы не клиент Т‑Банка, то для того чтобы войти на сайт ПФР через госуслуги, необходимо подтвердить вашу учетную запись. Для этого нужно указать данные паспорта и СНИЛС, мобильный телефон, адрес эл. почты, а потом подтвердить учетную запись на госуслугах через МФЦ лично. В каких центрах обслуживания можно подтвердить учетную запись"
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [6, 6]This is a sentence-transformers model finetuned from PaDaS-Lab/xlm-roberta-base-msmarco. 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.
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False, 'architecture': 'XLMRobertaModel'})
(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})
)
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("sentence_transformers_model_id")
# Run inference
sentences = [
'Dove è già attivo il 5G in Italia?',
'La connettività 5G è già arrivata in Italia: secondo i dati dell’Osservatorio 5G della Commissione europea, la copertura nel nostro Paese è del 99,7%.\nIl 5G è attivo e già funzionante in 38 paesi dell’Europa tra cui l’Italia e proposto da circa 50 operatori. Si prevede che entro il 2025 coprirà un terzo dell’Europa con 232 milioni di connessioni.\nLa connettività 5G risolve molti problemi consentendo di connettere molto più dispositivi e nel mondo ce ne sono già più di 5 miliardi. I vantaggi sono dati da una minore latenza e dall’ampliamento della larghezza di banda.\nLa latenza o tempo di risposta riguarda quel tempo che intercorre tra l’invio e la ricezione dei dati tra un dispositivo e l’altro: più è minore più avremo un servizio veloce.\nLa larghezza di banda ampliata invece, ci darà la possibilità di usufruire di una velocità di download e di upload molto elevata, quindi potremo vedere video o trasmissioni in streaming con una migliore qualità video.\nIl 5G attualmente è attivo in Italia e copre oramai quasi tutto il territorio nazionale escludendo alcune zone alpine e lungo l’Appennino da Nord a Sud.',
'LiberoGioco possiede licenza ADM, Agenzia Dogane Monopoli ex AAMS, dunque è perfettamente legale e attivo regolarmente in Italia.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.6971, 0.4033],
# [0.6971, 1.0000, 0.2877],
# [0.4033, 0.2877, 1.0000]])
sentence_0, sentence_1, sentence_2, sentence_3, sentence_4, and sentence_5| sentence_0 | sentence_1 | sentence_2 | sentence_3 | sentence_4 | sentence_5 | |
|---|---|---|---|---|---|---|
| type | string | string | string | string | string | string |
| details |
|
|
|
|
|
|
| sentence_0 | sentence_1 | sentence_2 | sentence_3 | sentence_4 | sentence_5 |
|---|---|---|---|---|---|
Czy mus nie pozostawia tłustej warstwy na skórze? |
Nasz mus do ciała - Len-Konopie - skomponowany jest w oparciu o oleje i masła roślinne - otula on skórę natłuszczającą warstwą ochronną, która potrzebuje czasu, aby się wchłonąć. Aplikowanie musu na nieco wilgotną (np. po kąpieli/prysznicu) skórę sprawi, że mus wchłonie się szybciej, pozostawiając skórę nawilżoną i miękką w dotyku. |
Masła do ciała mają gęstą i cięższą konsystencję. Zawierają zazwyczaj sporą ilość naturalnych składników odżywczych (olejków i ekstraktów) oraz głęboko wnikają w skórę, odżywiając ją i nawilżając. To dobry wybór, gdy Twoje ciało potrzebuje dogłębnej regeneracji. Krem do ciała ma z kolei najlżejszą konsystencję: nawilża, a jednocześnie szybko się wchłania i nie pozostawia na skórze tłustej warstwy. Najlżejszą konsystencję ze wszystkich kosmetyków ma mleczko do ciała. |
Tak! Dzięki zawartości oleju z konopi, który zawiera ok. 75% niezbędnych nienasyconych kwasów tłuszczowych mus wyróżnia się właściwościami kojącymi i łagodzącymi podrażnienia dla skór suchych, szorstkich czy atopowych właśnie :) Z uwagi na zawartość olejków eterycznych w składzie, tym z Państwa, którzy borykają się z atopią, zalecałybyśmy wcześniejsze skonsultowanie składu z lekarzem dermatologiem. |
Wiotkość skóry to utrata elastyczności i jędrności, wynikająca z naturalnego procesu starzenia, ekspozycji na słońce czy nieodpowiedniej pielęgnacji. Skóra staje się cienka, mniej sprężysta i opada, zwłaszcza na twarzy, szyi oraz dekolcie. Laser frakcyjny CO2 działa na głębsze warstwy skóry, stymulując produkcję kolagenu, co skutecznie ujędrnia skórę i przywraca jej młody wygląd. |
Gazetka LIDL 2023 to świetny sposób na sprawdzenie, czy musy truskawkowe LIDL są aktualnie dostępne oraz czy musy truskawkowe z Lidla są w promocji, czy też nie. Jeżeli nie wiesz, jakie ma opinie mus truskawkowy LIDL, przeczytaj co napisali inni użytkownicy. |
É precisa de se cadastrar e-mail em Eletro Angeloni? |
Sim, quando fazam comprars em Eletro Angeloni pode se registrar na página de venda.Eletro Angeloni queria oferecer aos clientes uma melhor experiência de compra e serviços, lançou benefícios de associação especialmente. Para obter benefícios específicos para membros, você pode se registrar como um membro Eletro Angeloni através do seguinte endereço de e-mail. |
Sim, é importante se cadastrar por e-mail quando fazam comprars em Stocklots24. Stocklots24 tem um sistema exclusivo de descontos para membros. Você pode se tornar um membro registrando um e-mail em stocklots24.fr. Depois de se tornar um membro, você pode aproveitar diferentes benefícios de Stocklots24. |
Você deve ter pelo menos 18 anos de idade para se cadastrar na Sportsbet.io. Além disso, é necessário fornecer informações precisas, como nome, data de nascimento, e-mail e criar uma senha segura. |
Infelizamente Mario Eletro não suporta o uso de cupons em pilha. O uso de Cupom Mario Eletro é claramente estipulado e Mario Eletro não pode se sobrepor a Cupom de Desconto Mario Eletro. Mas, para obter mais descontos, os clientes podem preferir usar Cupom Desconto Mario Eletro com o maior desconto. |
Sim, você precisa. Os clientes podem se cadastrar em PneuStore account por e-mail. Desta forma, os clientes podem entender o último PneuStore código do cupom. A entrada de registro normalmente está localizada na parte inferior da página inicial de PneuStore, e você pode cancelar a inscrição PneuStore deste serviço a qualquer momento. |
Does anyone at Squlpt speak Spanish? |
Yes, we have Spanish-speaking team members who will be more than happy to communicate with you in Spanish or English. |
Portuguese and Spanish are both Romance languages and share many similarities. If you already speak Spanish or have knowledge of Spanish, it can make learning Portuguese easier due to the similarities in vocabulary and grammar. |
The majority of locals in Cuba only speak Spanish, but areas that are popular with tourists are likely to have some people who do speak English well. Learning some basic Spanish phrases and words before you travel is a good idea in case you need help at any point, and also to better immerse yourself in Cuban culture. |
Yes, we have opticians and eye doctors who speak Spanish. Please contact a store for an appointment so we can make sure a Spanish-speaking staff member is available. |
Language barriers in the workplace can have a direct impact on the effectiveness of safety programs. The first step to an effective safety program that accommodates Spanish-speaking workers is to add bilingual employees to the safety committee. By having Spanish-speaking individuals on the committee, you can ensure Hispanic employees are comfortable with talking to the safety committee, asking them questions, |
CachedMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"mini_batch_size": 32,
"gather_across_devices": false
}
per_device_train_batch_size: 128per_device_eval_batch_size: 128num_train_epochs: 1fp16: Truemulti_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 128per_device_eval_batch_size: 128per_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: 1num_train_epochs: 1max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.0warmup_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: 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: Falseignore_data_skip: Falsefsdp: []fsdp_min_num_params: 0fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}fsdp_transformer_layer_cls_to_wrap: Noneaccelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}parallelism_config: Nonedeepspeed: Nonelabel_smoothing_factor: 0.0optim: adamw_torch_fusedoptim_args: Noneadafactor: Falsegroup_by_length: Falselength_column_name: lengthproject: huggingfacetrackio_space_id: trackioddp_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: Nonehub_always_push: Falsehub_revision: Nonegradient_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: Noneinclude_tokens_per_second: Falseinclude_num_input_tokens_seen: noneftune_noise_alpha: Noneoptim_target_modules: Nonebatch_eval_metrics: Falseeval_on_start: Falseuse_liger_kernel: Falseliger_kernel_config: Noneeval_use_gather_object: Falseaverage_tokens_across_devices: Trueprompts: Nonebatch_sampler: batch_samplermulti_dataset_batch_sampler: round_robinrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.0502 | 500 | 1.4085 |
| 0.1003 | 1000 | 0.3267 |
| 0.1505 | 1500 | 0.2822 |
| 0.2007 | 2000 | 0.2655 |
| 0.2508 | 2500 | 0.2463 |
| 0.3010 | 3000 | 0.2391 |
| 0.3512 | 3500 | 0.2322 |
| 0.4013 | 4000 | 0.2252 |
| 0.4515 | 4500 | 0.2172 |
| 0.5017 | 5000 | 0.2162 |
| 0.5518 | 5500 | 0.2101 |
| 0.6020 | 6000 | 0.2099 |
| 0.6522 | 6500 | 0.2007 |
| 0.7023 | 7000 | 0.2043 |
| 0.7525 | 7500 | 0.1987 |
| 0.8026 | 8000 | 0.1985 |
| 0.8528 | 8500 | 0.1948 |
| 0.9030 | 9000 | 0.1973 |
| 0.9531 | 9500 | 0.1978 |
@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",
}
@misc{gao2021scaling,
title={Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup},
author={Luyu Gao and Yunyi Zhang and Jiawei Han and Jamie Callan},
year={2021},
eprint={2101.06983},
archivePrefix={arXiv},
primaryClass={cs.LG}
}
Base model
FacebookAI/xlm-roberta-base