Improving Efficient Neural Ranking Models with Cross-Architecture Knowledge Distillation
Paper
•
2010.02666
•
Published
This is a sentence-transformers model finetuned from sentence-transformers/quora-distilbert-multilingual. 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': 128, 'do_lower_case': False}) with Transformer model: DistilBertModel
(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("HipFil98/sbert-mariannaQA-ita")
# Run inference
sentences = [
"Ade è l'antagonista principale nel musical Hadestown.",
"Chi è l'antagonista principale nel musical Hadestown?",
"Perchè la poesia resta l\\'unico elemento eterno",
]
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]
sentence_0, sentence_1, sentence_2, and label| sentence_0 | sentence_1 | sentence_2 | label | |
|---|---|---|---|---|
| type | string | string | string | float |
| details |
|
|
|
|
| sentence_0 | sentence_1 | sentence_2 | label |
|---|---|---|---|
A lungo si è discusso a quale genere appartenesse un'opera tanto innovativa come quella ovidiana. Per gli studiosi è stato subito chiaro che l'intenzione di Ovidio fosse quella di scrivere un poema epico. D'altronde l'utilizzo dell'esametro, il tipico metro della tradizione epica usato da Omero e da Virgilio, presupponeva proprio questo, che ci trovassimo di fronte a un altro poema epico. Quello che però non ha convinto - e su cui i critici hanno dibattuto per tutto l'inizio del XX secolo - è stata la scelta tematica fatta da Ovidio: non l'epopea di un unico eroe, ma un'infinità di storie legate insieme da un unico elemento, le metamorfosi. D'altronde non dobbiamo scordare che Ovidio, prima di scrivere il poema, era considerato il più famoso poeta elegiaco della corte augustea insieme a Properzio. Anderson ha notato che proprio i primi due versi delle Metamorfosi sono in un certo senso esemplificative del passaggio da poeta elegiaco a epico: Tenendo presente che un distico elegiaco è ... |
Cosa hanno in comune i primi due versi delle Metamorfosi secondo Anderson? |
Perché il Mormando utilizzò l'ordine corinzio completo di piedistallo nelle chiese napoletane del cinquecento? |
0.4587586522102356 |
Negli anni successivi, Atene viene attaccata come tutta la Grecia dall'Impero persiano. Nel 490 a.C la flotta persiana sbarca in Eubea e tenta di assediare Atene. La città chiede aiuto a Sparta ma rimane sola. Gli ateniesi non si scoraggiano e a Maratona in una epica battaglia riescono a sconfiggere e a ricacciare in patria i persiani. Qualche anno dopo, il re Serse sbaraglia i greci alle Termopili e assedia Atene. Gli abitanti riescono a rifugiarsi a Salamina ma la città è distrutta dai persiani. Sotto la guida di Temistocle, gli ateniesi riescono comunque a sconfiggere i persiani e a ricostruire la loro città ed a costruire una cinta difensiva, che sarà ricordata come le mura di Temistocle, nella speranza di proteggersi da ulteriori invasioni. |
Perchè le mura di Temistocle furono costruite? |
Chi ha ammirato la Crypta Neapolitana? |
0.371756911277771 |
Quando a Napoli cadevano le bombe di Aldo De Gioia (2009) Morso di luna nuova di Erri De Luca pubblicato nel 2005 e portato in scena dal 2008 da varie Compagnie teatrali. Libertà: Omaggio alle Quattro Giornate di Napoli - spettacolo in prosa e musica di Giovanni D'Angelo (2003) |
Cosa è stato rappresentato nel testo? |
Chi insegnò il giordano Filodemo di Gadara e Sirone a Napoli? |
0.08001580834388733 |
MarginMSELossnum_train_epochs: 1multi_dataset_batch_sampler: round_robinoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: noprediction_loss_only: Trueper_device_train_batch_size: 8per_device_eval_batch_size: 8per_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: Falseuse_ipex: Falsebf16: Falsefp16: Falsefp16_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}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: Nonehub_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: batch_samplermulti_dataset_batch_sampler: round_robin| Epoch | Step | Training Loss |
|---|---|---|
| 0.0158 | 500 | 11.4697 |
| 0.0316 | 1000 | 0.0719 |
| 0.0473 | 1500 | 0.0431 |
| 0.0631 | 2000 | 0.0372 |
| 0.0789 | 2500 | 0.0309 |
| 0.0947 | 3000 | 0.0272 |
| 0.1105 | 3500 | 0.0249 |
| 0.1262 | 4000 | 0.0209 |
| 0.1420 | 4500 | 0.0186 |
| 0.1578 | 5000 | 0.0164 |
| 0.1736 | 5500 | 0.0142 |
| 0.1894 | 6000 | 0.0131 |
| 0.2051 | 6500 | 0.0123 |
| 0.2209 | 7000 | 0.0134 |
| 0.2367 | 7500 | 0.0102 |
| 0.2525 | 8000 | 0.0101 |
| 0.2683 | 8500 | 0.0091 |
| 0.2840 | 9000 | 0.0083 |
| 0.2998 | 9500 | 0.008 |
| 0.3156 | 10000 | 0.0083 |
| 0.3314 | 10500 | 0.0072 |
| 0.3472 | 11000 | 0.0075 |
| 0.3629 | 11500 | 0.0069 |
| 0.3787 | 12000 | 0.0063 |
| 0.3945 | 12500 | 0.0062 |
| 0.4103 | 13000 | 0.0064 |
| 0.4261 | 13500 | 0.0057 |
| 0.4418 | 14000 | 0.0058 |
| 0.4576 | 14500 | 0.005 |
| 0.4734 | 15000 | 0.005 |
| 0.4892 | 15500 | 0.0048 |
| 0.5050 | 16000 | 0.0046 |
| 0.5207 | 16500 | 0.0046 |
| 0.5365 | 17000 | 0.0044 |
| 0.5523 | 17500 | 0.0042 |
| 0.5681 | 18000 | 0.0038 |
| 0.5839 | 18500 | 0.0037 |
| 0.5996 | 19000 | 0.0038 |
| 0.6154 | 19500 | 0.0036 |
| 0.6312 | 20000 | 0.0033 |
| 0.6470 | 20500 | 0.0033 |
| 0.6628 | 21000 | 0.0031 |
| 0.6785 | 21500 | 0.0029 |
| 0.6943 | 22000 | 0.0029 |
| 0.7101 | 22500 | 0.0028 |
| 0.7259 | 23000 | 0.0028 |
| 0.7417 | 23500 | 0.0028 |
| 0.7574 | 24000 | 0.0025 |
| 0.7732 | 24500 | 0.0024 |
| 0.7890 | 25000 | 0.0023 |
| 0.8048 | 25500 | 0.0023 |
| 0.8206 | 26000 | 0.0021 |
| 0.8363 | 26500 | 0.0022 |
| 0.8521 | 27000 | 0.002 |
| 0.8679 | 27500 | 0.0019 |
| 0.8837 | 28000 | 0.0019 |
| 0.8995 | 28500 | 0.0019 |
| 0.9152 | 29000 | 0.0018 |
| 0.9310 | 29500 | 0.0018 |
| 0.9468 | 30000 | 0.0018 |
| 0.9626 | 30500 | 0.0017 |
| 0.9784 | 31000 | 0.0017 |
| 0.9941 | 31500 | 0.0016 |
@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{hofstätter2021improving,
title={Improving Efficient Neural Ranking Models with Cross-Architecture Knowledge Distillation},
author={Sebastian Hofstätter and Sophia Althammer and Michael Schröder and Mete Sertkan and Allan Hanbury},
year={2021},
eprint={2010.02666},
archivePrefix={arXiv},
primaryClass={cs.IR}
}