Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
Paper • 1908.10084 • Published • 18
How to use novelcore/Orpheas with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("novelcore/Orpheas")
sentences = [
"Ποιος ήταν ο ρόλος του αγελάτη στην αγέλη και ποιες εξουσίες είχε;",
"Σαμτρέντια\nΗ Σαμτρέντια (γεωργιανά: , ) είναι πόλη στο Ιμερέτι της Γεωργίας. Βρίσκεται σε μια πεδιάδα ανάμεσα στους ποταμούς Ριόνι και Τσχένις-Τσκάλι, 244 χιλιόμετρα δυτικά της Τιφλίδας και 27 χιλιόμετρα δυτικά του Κουτάισι. Οι πιο σημαντικοί σιδηρόδρομοι της χώρας συνδέονται εδώ και αποτελεί συγκοινωνιακό κόμβο ζωτικής σημασίας. Το αεροδρόμιο του Κοπιτνάρι βρίσκεται 10 χιλιόμετρα από την Σαμτρέντια. Το 2014 είχε 25.318 κατοίκους και ήταν η 10η μεγαλύτερη πόλη της χώρας. Η πόλη έχει υγρό υποτροπικό κλίμα με ήπιους και θερμούς χειμώνες και ζεστά καλοκαίρια.\nΗ Σαμτρέντια εξελίχθηκε από μια σιδηροδρομική διασταύρωση ζωτικής σημασίας και απέκτησε καθεστώς πόλης το 1921. Το 1895 ιδρύθηκε το πρώτο σχολείο στην πόλη, το 14ο δημόσιο σχολείο που τώρα είναι το 12ο δημόσιο σχολείο. Υπό την σοβιετική εξουσία, η τοπική οικονομία διαφοροποιήθηκε από τις μεταφορές και επεκτάθηκε στην παραγωγή τροφίμων και ξυλείας.\nΛόγω της στρατηγικής τοποθεσίας της πόλης, είχε σημαντικό ρόλο στην πολιτική αναταραχή της δεκαετίας του 1990 όταν οι αντισοβιετικές αντιπολιτευτικές ομάδες απέκλεισαν την διασταύρωση της Σαμτρέντια από τις 26 έως τις 31 Ιουλίου 1990 για να πιέσουν την σοβιετική γεωργιανή κυβέρνηση να υιοθετήσει ένα πιο φιλελεύθερο εκλογικό νόμο. Η διασταύρωση αποκλείστηκε πάλι τον Μάρτιο με Απρίλιο του 1991 από τη νέα κυβέρνηση του Ζβιάντ Γκαμσαχούρντια, σε μια προσπάθειες να ασκηθεί πίεση στις σοβιετικές αρχές. Αυτός ο αποκλεισμός προκάλεσε μεγάλη ζημιά όχι μόνο στην Γεωργιανή οικονομία αλλά και στην Αρμενική οικονομία η οποία εξαρτώταν σε μεγάλο βαθμό από τους γεωργιανούς σιδηροδρόμους. Το 1993, η Σαμτρέντια αποτέλεσε ένα από τα κύρια πεδία μάχης του Γεωργιανού Εμφυλίου Πολέμου όπου οι δυνάμεις που ήταν πιστές στον έκπτωτο πρόεδρο Γκαμσαχούρντια συγκρούστηκαν με τις μεταπραξικοπηματικές δυνάμεις της κυβέρνησης και κατέλαβαν την πόλη για μια εβδομάδα, από τις 17 έως τις 23 Οκτωβρίου 1993, βάζοντας υπό απειλή όλες τις επαφές της πόλης με τη Τιφλίδα. Παρόλο που η Σαμτρέντια από τότε είναι σταθερή πόλη, η μετασοβιετική κρίση οδήγησε σε",
"Αγέλη\nΣτην αρχαία Κρήτη και την αρχαία Σπάρτη, αγέλη ήταν η ονομασία ομάδων στις οποίες εντάσσονταν οι νέοι.\nΣτην Κρήτη οι νέοι, εντάσσονταν σε αγέλες από την ηλικία των 18 ετών ως και την ώρα του γάμου τους, όπου ζούσαν όλοι μαζί. Είχαν κοινό συσσίτιο, ασκούνταν και γυμνάζονταν, και συντηρούνταν με έξοδα της πολιτείας. Ως μέλη της αγέλης, οι νέοι ονομάζονταν αγελαίοι, ενώ ο αρχηγός της ομάδας ονομαζόταν αγελάτης. Ο αγελάτης μπορούσε να ασκήσει ποινική εξουσία στα υπόλοιπα μέλη της αγέλης, ενώ οι αρχές της πόλης επιτηρούσαν τον αγελάτη.\nΣτη Σπάρτη τα αρσενικά παιδιά κατατάσσονταν σε αγέλες από τα 7 ως τα 30 τους χρόνια. Όσοι ανήκαν στην αγέλη της Σπάρτης, χωρίζονταν σε τρεις τάξεις: στα παιδιά (17-18 ετών), στους μελλείρινες (18-20 ετών) και στους είρηνες (20-30 ετών). Υπάρχουν αναφορές και για διαφορετική οργάνωση των ομάδων των νέων στη Σπάρτη, με χωρισμό σε βούες, ανάλογο των σχολικών τάξεων, και σε ίλες, στις οποίες γινόταν στρατιωτική εκπαίδευση. Η σχέση της αγέλης με τις δύο άλλες ομαδοποιήσεις δεν είναι εξακριβωμένη. Άλλοτε ταυτίζεται με τη βούα, άλλοτε με την ίλα, ενώ, σύμφωνα με μία άλλη άποψη, η βούα ήταν υποδιαίρεση της αγέλης.",
"Τίτλος: ΚΑΝΟΝΙΣΜΟΣ ΥΠ' ΑΡΙΘΜ. 67\nΈτος: 1994\n«Περί διαρθρώσεως, λειτουργίας, διοικήσεως και διαχειρίσεως της εκ της Ιεράς Συνόδου εξηρτημένης Ειδικής Υπηρεσίας του επισήμου Δελτίου «ΕΚΚΛΗΣΙΑ» και των Περιοδικών «ΕΦΗΜΕΡΙΟΣ» και «ΘΕΟΛΟΓΙΑ».\nΆρθρον 9\nΤίτλος άρθρου: Διάθεσις των πόρων\nΟι πόροι της Ειδικής Υπηρεσίας διατίθενται:\nα) Δια την έκδοσιν των περιοδικών «Εκκλησία», «Εφημέριος», «Θεολογία», της «Ελληνικής Θεολογικής Βιβλιογραφίας», του «Αρχείου Θεολογίας», των Ευρετηρίων των περιοδικών, ειδικών βιβλίων, φυλλαδίων, εγκυκλίων, δελτίων, ανακοινώσεων κ.α., τα οποία αποσκοπούν εις την ενημέρωσιν του εφημεριακού Κλήρου, του Χριστεπωνύμου πληρώματος, των εκκλησιαστικών ή πολιτειακών παραγόντων, των ομοδόξων ή ετεροδόξων Εκκλησιών κ.λπ.\nβ) Δια την μισθοδοσίαν του προσωπικού της Ειδικής Υπηρεσίας (διοικητικού και συντακτικού) και την κάλυψιν των νομοθετημένων απαιτήσεων των Ασφαλιστικών Οργανισμών.\nγ) Δια την εκτέλεσιν δαπανών, αι οποίαι ανατίθενται εις την Ειδικήν Υπηρεσίαν δι' αποφάσεως της Ιεράς Συνόδου."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from intfloat/multilingual-e5-base on the generator 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.
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})
(2): Normalize()
)
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 = [
'Evocati Augusti, Διομητιανός, Κικέρωνας, ρωμαϊκός στρατός',
'Evocatus\nEvocatus είναι ο λατινικός όρος που αναφέρεται στο στρατιώτη εκείνο του ρωμαϊκού στρατού που ολοκλήρωσε τη θητεία του, έλαβε το απολυτήριό του "(missio)", ωστόσο επέλεξε εθελοντικά να καταταγεί και πάλι, έπειτα από πρόσκληση κάποιου υπάτου ή άλλου διοικητή.\nΑπό ό,τι φαίνεται, πάντα υπήρχε σημαντικός αριθμός από evocati σε κάθε αξιόλογο στρατό, και όταν ο στρατηγός ήταν αγαπητός στους άνδρες του, ο αριθμός βετεράνων που κατατάσσονταν και πάλι στα στρατεύματά του ήταν αυξημένος. Οι evocati απαλλάσσονταν, όπως οι vexillationes, από τις συνηθισμένες στρατιωτικές αγγαρείες, όπως για παράδειγμα την ύψωση οχυρωμάτων για το στρατόπεδο ή την κατασκευή δρόμων Ο βαθμός τους γενικότερα θεωρείτο υψηλότερος από αυτόν των συνηθισμένων λεγεωναρίων. Ορισμένες φορές γίνεται κοινή αναφορά σε αυτούς με τους ιππείς, ενώ άλλες φορές κατατάσσονται με τους εκατοντάρχους. Φαίνεται δε πως συχνά λάμβαναν προαγωγή για το αξίωμα του εκατοντάρχου. Συνεπώς, ο Πομπήιος παρακίνησε πολλούς από τους βετεράνους που υπηρέτησαν υπό τις διαταγές του σε προγενέστερα έτη να ενωθούν μαζί του κατά την περίοδο των εμφυλίων πολέμων, υποσχόμενος ανταμοιβές και τη διοίκηση εκατονταρχιών. Ωστόσο δεν μπορούσαν όλοι οι evocati να γίνουν εκατόνταρχοι, ούτε να αποτελέσουν τμήμα ορισμένων από τις κοόρτεις. Ο ρήτορας Κικέρων κάνει αναφορά σε κάποιον "praefectus evocatorum", έναν αξιωματικό επικεφαλής για τους evocati.\nΜε το όνομα evocati ήταν επίσης γνωστά τα μέλη ενός επίλεκτου σώματος νεαρών ανδρών από την τάξη των ιππέων στους οποίους ανέθεσε ο Αυτοκράτορας Διομητιανός να φυλάσσουν την κρεβατοκάμαρά του. Ορισμένοι συγγραφείς υποστηρίζουν ότι το σώμα αυτό επιβίωσε και κατά την εποχή επόμενων αυτοκρατόρων, με αποτέλεσμα να ταυτίζεται με εκείνους που αργότερα έγιναν γνωστοί ως "Evocati Augusti".',
"Τίτλος: ΝΟΜΟΣ ΥΠ' ΑΡΙΘΜ. 4174\nΈτος: 2013\nΦορολογικές διαδικασίες και άλλες διατάξεις.\nΆρθρο 24\nΤίτλος άρθρου: Πρόσβαση στα βιβλία και στοιχεία\n1. Η Φορολογική Διοίκηση έχει δικαίωμα να λαμβάνει αντίγραφα των βιβλίων και στοιχείων, καθώς και λοιπών εγγράφων, για τα οποία ο φορολογούμενος δηλώνει ότι αντιπροσωπεύουν ακριβή αντίγραφα. Σε περίπτωση που ο φορολογούμενος αρνείται να προβεί στην ανωτέρω δήλωση, ο οριζόμενος από τη Φορολογική Διοίκηση υπάλληλος προβαίνει σε σχετική επισημείωση επί των εγγράφων. Ο οριζόμενος υπάλληλος δύναται ταυτόχρονα να απαιτεί από το φορολογούμενο ή τον φορολογικό εκπρόσωπό του να παρίσταται στον τόπο όπου διενεργείται ο φορολογικός έλεγχος και να απαντά σε ερωτήματα που του τίθενται, ώστε να διευκολύνεται η διενέργεια του φορολογικού ελέγχου.\n2. Εάν τα βιβλία και στοιχεία τηρούνται σε ηλεκτρονική μορφή, η Φορολογική Διοίκηση έχει δικαίωμα πρόσβασης σε οποιαδήποτε φυλασσόμενα αρχεία, καθώς και στα λογιστικά προγράμματα και τις πληροφορίες που έχουν καταχωριστεί σε αυτά. Η Φορολογική Διοίκηση δικαιούται να λαμβάνει τα ηλεκτρονικά αρχεία σε αναγνώσιμη ηλεκτρονική ή έντυπη μορφή.\n3. Ο υπάλληλος που έχει ορίσει η Φορολογική Διοίκηση δύναται να κατάσχει βιβλία και στοιχεία που τηρούνται ή διαφυλάσσονται σύμφωνα με τη φορολογική νομοθεσία και οποιαδήποτε άλλα ανεπίσημα βιβλία, έγγραφα, αρχεία ή στοιχεία, εφόσον το θεωρήσει αναγκαίο, προκειμένου να διασφαλισθεί η αποδεικτική αξία αυτών.",
]
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.7011, -0.0543],
# [ 0.7011, 1.0000, -0.0311],
# [-0.0543, -0.0311, 1.0000]])
testInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@3 | 0.8113 |
| cosine_accuracy@10 | 0.8851 |
| cosine_precision@3 | 0.2704 |
| cosine_precision@10 | 0.0885 |
| cosine_recall@3 | 0.8113 |
| cosine_recall@10 | 0.8851 |
| cosine_ndcg@3 | 0.7622 |
| cosine_ndcg@10 | 0.7894 |
| cosine_mrr@3 | 0.7452 |
| cosine_mrr@10 | 0.7585 |
| cosine_map@100 | 0.762 |
validInformationRetrievalEvaluator| Metric | Value |
|---|---|
| cosine_accuracy@3 | 0.7682 |
| cosine_accuracy@10 | 0.8548 |
| cosine_accuracy@50 | 0.9314 |
| cosine_precision@10 | 0.0855 |
| cosine_recall@10 | 0.8548 |
| cosine_ndcg@3 | 0.7146 |
| cosine_ndcg@10 | 0.7462 |
| cosine_ndcg@50 | 0.7636 |
| cosine_mrr@10 | 0.7114 |
| cosine_map@100 | 0.7157 |
anchor and positiveMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
How many different types of cells have been identified by 2021? |
Τύπος κυττάρων |
Katzedo (Hangsangnam-do) is the second largest island in South Korea. It is one of the many on the south coast of the Korean peninsula, in the province of Gyungsangnam-do, and on it is built most of the city of Katzeh. Katzedo is only 450m away from the adjacent mainland coast, which is connected with two bridges to the town of Tongyan. Moreover, the "State Connection Busan-Kefze", a combination of two bridge and a submarine tunnel, was inaugurated in December 2010 and provides a more direct connection to the big city of Bosuna. |
Το Κατζεντό είναι νησί του Στενού της Κορέας και έχει έκταση 383,44 τετραγωνικά χιλιόμετρα, που το καθιστά το δεύτερο σε έκταση νησί ολόκληρης της Νότιας Κορέας (το μεγαλύτερο είναι το Τζέτζου). Το τοπίο του Κατζεντό είναι λοφώδες, με αρκετές κορυφές: Το υψηλότερο σημείο του νησιού είναι η κορυφή Γκάρα, με υψόμετρο 580 μέτρα πάνω από την επιφάνεια της θάλασσας, και ακολουθεί η Γκαρόνγκ (554,9 μέτρα). Το νησί είναι γνωστό για τα μεγάλα αποθέματα γρανίτη που διαθέτει. Η νότια ζώνη του, μαζί με ένα μέρος του νησιού Ναμχέ-ντο, συναποτελεί το Εθνικό Θαλάσσιο Πάρκο Χαλυά. Το Κατζεντό έχει αρκετούς φυσικούς λιμένες. Η σημαντικότερη βιομηχανία στο νησί είναι η ναυπηγική. Το δεύτερο και το τρίτο μεγαλύτερο από τα ναυπηγεία της Νότιας Κορέας βρίσκονται αμφότερα στο Κατζεντό: Αυτό της Daewoo (Daewoo Shipbuilding & Marine Engineering, DSME) στο δημοτικό διαμέρισμα Οκπό της Κατζέ και αυτό της Samsung (SHI) στο δημοτικό διαμέρισμα Κοχυάν της Κατζέ. Το κα (거) σημαίνει «μεγάλο», το τζε (제) σημαίνει «... |
Ποιες πληροφορίες πρέπει να γνωστοποιούνται στην Επιτροπή Κεφαλαιαγοράς κατά την απόκτηση ειδικής συμμετοχής; |
Τίτλος: ΝΟΜΟΣ ΥΠ' ΑΡΙΘΜ. 3606 |
MultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"gather_across_devices": false
}
eval_strategy: stepsper_device_train_batch_size: 16per_device_eval_batch_size: 16gradient_accumulation_steps: 8learning_rate: 5e-06max_steps: 232470lr_scheduler_type: cosinewarmup_ratio: 0.1bf16: Truetf32: Trueload_best_model_at_end: Trueoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 16per_device_eval_batch_size: 16per_gpu_train_batch_size: Noneper_gpu_eval_batch_size: Nonegradient_accumulation_steps: 8eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 5e-06weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 3.0max_steps: 232470lr_scheduler_type: cosinelr_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: Falsebf16: Truefp16: Falsefp16_opt_level: O1half_precision_backend: autobf16_full_eval: Falsefp16_full_eval: Falsetf32: Truelocal_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: {'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: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss | Validation Loss | test_cosine_ndcg@10 | valid_cosine_ndcg@50 |
|---|---|---|---|---|---|
| -1 | -1 | - | - | 0.6040 | - |
| 0.8173 | 190000 | 0.6821 | 0.0549 | 0.7944 | 0.7748 |
| 1.0159 | 195000 | 0.6781 | 0.0539 | 0.8008 | 0.7794 |
| 1.0374 | 200000 | 0.6758 | 0.0608 | 0.7964 | 0.7736 |
| 1.0589 | 205000 | 0.6769 | 0.0652 | 0.7936 | 0.7690 |
| 1.0804 | 210000 | 0.6754 | 0.0679 | 0.7922 | 0.7673 |
| 1.1019 | 215000 | 0.6747 | 0.0704 | 0.7907 | 0.7652 |
| 1.1234 | 220000 | 0.6749 | 0.0715 | 0.7902 | 0.7642 |
| 1.1449 | 225000 | 0.6733 | 0.0721 | 0.7897 | 0.7636 |
| 1.1664 | 230000 | 0.675 | 0.0724 | 0.7894 | 0.7636 |
@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{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}
}
Base model
intfloat/multilingual-e5-base