Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 19
How to use julian-schelb/SPhilBerta-latin-intertextuality with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("julian-schelb/SPhilBerta-latin-intertextuality")
sentences = [
"Query: iam enim quaedam abierunt retro post satanan, oportet primum sensum tractare praecepti et omnem loci huius continentiam discutere atque ita apostolicis uestigiis insistentem ne transuersum quidem, ut dici solet, unguem in partem alteram declinare.",
"Candidate: ille deae donis et tanto laetus honore expleri nequit atque oculos per singula uoluit miraturque interque manus et bracchia uersat terribilem cristis galeam flammasque uomentem, fatiferumque ensem, loricam ex aere rigentem, sanguineam, ingentem, qualis cum caerula nubes solis inardescit radiis longeque refulget; tum leuis ocreas electro auroque recocto hastamque et clipei non enarrabile textum.",
"Candidate: Atqui si voluptas, quae plurimorum patrociniis defenditur, in rebus bonis habenda non est, eaque quo est maior, eo magis mentem ex sua sede et statu demovet, profecto nihil est aliud bene et beate vivere nisi honeste et recte vivere.",
"Candidate: praetura item maioribus delata est tuis."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from bowphs/SPhilBerta. 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: RobertaModel
(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("julian-schelb/SPhilBerta-latin-intertextuality")
# Run inference
sentences = [
'Query: cuius rei argumenta sunt nummi ueteres, in quibus est cum duplici fronte Ianus et in altera parte nauis, sicut idem poeta subiecit: at bona posteritas puppem formauit in aere hospitis aduentum testificata dei.',
'Candidate: at bona posteritas puppem formauit in aere, hospitis aduentum testificata dei.',
'Candidate: cum enim paupertatis una eademque sit vis, quidnam dici potest, quam ob rem Fabricio tolerabilis ea fuerit, alii negent se ferre posse?',
]
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]
query, match, and label| query | match | label | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| query | match | label |
|---|---|---|
Query: nam si, ut ipsa petit maiestas cognita rerum, - dicendum est, deus ille fuit, deus, inclute Memmi |
Candidate: ipse deum genitor caelo terrisque canebat. |
0 |
Query: uerum id genus sacrificii ab Hercule, cum ex Hispania rediret, dicitur esse sublatum, ritu tamen permanente ut pro ueris hominibus imagines iacerentur e scirpo, ut Ouidius in Fastis docet: donec in haec uenit Tirynthius arua, quotannis tristia Leucadio sacra peracta modo. |
Candidate: Vesper adest, iuuenes, consurgite: Vesper Olympo expectata diu uix tandem lumina tollit. |
0 |
Query: Quod in principio templi Ezechielis debui dicere, nunc praepostero ordine in fine dicturus sum, illius uersiculi memor: Hic labor ille domus, et inextricabilis error. |
Candidate: Tu, ut antea fecisti, velim, si qui erunt ad quos aliquid scribendum a me existimes, ipse conficias. |
0 |
OnlineContrastiveLossquery, match, and label| query | match | label | |
|---|---|---|---|
| type | string | string | int |
| details |
|
|
|
| query | match | label |
|---|---|---|
Query: quanti enim operantur terram et exercent uomere et tamen multis inpedientibus causis egestate conficiuntur et penuria! |
Candidate: hoc cum ceterae gentes sic arbitrantur, tum ipsis Siculis ita persuasum est ut in animis eorum insitum atque innatum esse videatur. |
0 |
Query: nam quia tum Corybautes galearum tinnitibus et scutorum pulsibus uagitum pueri texerant , nunc imago rei refertur in sacris, sed pro galeis cymbala, pro scutis tympana feriuntur, ne puerum uagientem Saturnus exaudiat. |
Candidate: quod si essent falsae notitiae enim notitias appellare tu videbare - si igitur essent eae falsae aut eius modi visis inpressae qualia visa a falsis discerni non possent, quo tandem his modo uteremur, quo modo autem quid cuique rei consentaneum esset quid repugnaret videremus? |
0 |
Query: De quibus Uirgilius: Omnigenumque deum monstra, et latrator Anubis. |
Candidate: haec igitur minui, cum sint detrita, videmus. |
0 |
OnlineContrastiveLossoverwrite_output_dir: Trueeval_strategy: stepsper_device_train_batch_size: 32learning_rate: 2e-05weight_decay: 0.01num_train_epochs: 4warmup_steps: 448prompts: {'query': 'Query: ', 'match': 'Candidate: '}overwrite_output_dir: Truedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 32per_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: 2e-05weight_decay: 0.01adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 4max_steps: -1lr_scheduler_type: linearlr_scheduler_kwargs: {}warmup_ratio: 0.0warmup_steps: 448log_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: 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: Falseneftune_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: Falseprompts: {'query': 'Query: ', 'match': 'Candidate: '}batch_sampler: batch_samplermulti_dataset_batch_sampler: proportional@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",
}
Base model
bowphs/SPhilBerta