Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup
Paper • 2101.06983 • Published • 2
How to use fanyak/embeddinggemma-300m-aade-346 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("fanyak/embeddinggemma-300m-aade-346")
sentences = [
"Ποιοι είναι υπόχρεοι υποβολής δήλωσης απόδοσης φόρου των έκτακτω ν αμοιβών και \nποσοστών ( bonus ) πέραν των μισθών των ναυτιλιακών εταιρειών του άρθρου 25 του ν. \n27/1975;",
"Σε περίπτωση που για τη δωρεά ή τη γονική παροχή συντάσσεται συμβολαιογραφικό έγγραφο, η \nδήλωση υποβάλλεται πριν από την κατάρτιση του συμβολαίου. Όταν δεν συντάσσεται συμβόλαιο, \nη δήλωση υποβάλλεται μέσα σε έξι (6) μήνες από την παράδοση του αντικειμένου της δωρεάς ή \nτης γονικής παροχής (άρθρο 86 ν. 2961/2001). ",
"Ως έδρα του υπό ίδρυση φυσικού προσώπου ορίζεται η διεύθυνση της κατοικίας του ιδρυτή. Εναλλακτικά, μπορεί να οριστεί η έδρα της επιχειρηματικής δραστηριότητας του ιδρυτή, είτε πρόκειται για φυσικό ή νομικό πρόσωπο, είτε για νομική οντότητα αντίστοιχα.",
"Υπόχρεοι σε υποβολή δήλωσης απόδοσης του φόρου δέκα τοις εκατό (10%) με βάση τις διατάξεις \nτης παραγράφου 5 του άρθρου 43 του ν. 4111/2013 είναι οι πιο κάτω δικαιούχοι: \nα) μέλη του Δ.Σ . ή Διευθυντές και στελέχη για έκτακτες αμοιβές και ποσοστά (bonus) επιπλέον των \nμισθών που λαμβάνουν από αλλοδαπές επιχειρήσεις της περ. α΄ της παρ. 5 του άρθρου 43 του ν. \n4111/2013 από το έτος 2012 και μετά, \nβ) υπάλληλοι για έκτακτες αμοιβές και ποσοστά (bonus) επιπλέον των μισθών που λαμβάνουν \nαπό αλλοδαπές επιχειρήσεις της περ. α΄ της παρ. 5 του ίδιου άρθρου και νόμου από το έτος 2019 \nκαι μετά, \nγ) μέλη του Δ.Σ . ή Διευθυντές, στελέχη και υπάλληλοι για έκτακτες αμοιβές και ποσοστά (bonus) \nεπιπλέον των μισθών, που λαμβάνουν από ημεδαπές επιχειρήσεις της περ. β΄ της παρ. 5 του ίδιου \nάρθρου και νόμου από το έτος 2019 και μετά και \nδ) μέλη του Δ.Σ . ή Διευθυντές, στελέχη και υπάλληλοι για έκτακτες αμοιβές και ποσοστά (bonus) \nεπιπλέον των μισθών που λαμβάνουν από διαχειρίστριες εταιρείες ή επιχειρήσεις εγκατεστημένες \nστην Ελλάδα σύμφωνα με το άρθρο 25 του ν. 27/1975 από το έτος 2019 και μετά. "
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]This is a sentence-transformers model finetuned from google/embeddinggemma-300m. 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': 2048, 'do_lower_case': False, 'architecture': 'Gemma3TextModel'})
(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): Dense({'in_features': 768, 'out_features': 3072, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
(3): Dense({'in_features': 3072, 'out_features': 768, 'bias': False, 'activation_function': 'torch.nn.modules.linear.Identity'})
(4): 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("fanyak/embeddinggemma-300m-aade-346")
# Run inference
queries = [
"\u03a0\u03bf\u03cd \u03c5\u03c0\u03bf\u03b2\u03ac\u03bb\u03bb\u03b5\u03c4\u03b1\u03b9 \u03b7 \u03b4\u03ae\u03bb\u03c9\u03c3\u03b7 \u03c6\u03cc\u03c1\u03bf\u03c5 \u03ba\u03bb\u03b7\u03c1\u03bf\u03bd\u03bf\u03bc\u03b9\u03ac\u03c2;",
]
documents = [
'Η δήλωση φόρου κληρονομιάς υποβάλλεται στη Δ.Ο.Υ., στην χωρική αρμοδιότητα της οποίας \nανήκει η τελευταία διεύθυνση κατοικίας του κληρονομουμένου, όπως αυτή έχει δηλωθεί στο \nΜητρώο του και σε περίπτωση που η ως άνω διεύθυνση κατοικίας βρίσκεται στην χωρική αρμοδιότητα των ΚΕ.ΦΟ.Δ.Ε. Αττικής κα ι Θεσσαλονίκης, υποβάλλεται στα ΚΕ.ΦΟ.Κ. Αττικής και \nΘεσσαλονίκης, αντίστοιχα. \nΑν ο κληρονομούμενος κατοικούσε στο εξωτερικό, η δήλωση υποβάλλεται στ o KE.ΦΟ.Κ. Αττικής \n(Δ.ΟΡΓ.Α 1065199 ΕΞ 2022/20 -7-2022 Απόφαση - Β΄ 3886, ΑΔΑ: ΨΒΛΕ46ΜΠ3Ζ -Ε6Λ, όπως \nίσχυει ι).',
'Εάν κατά την είσοδο στις ψηφιακές υπηρεσίες με τους κωδικούς TAXISnet δεν επιτρέπεται η υποβολή αιτήματος λόγω προβλήματος στα στοιχεία Μητρώου, εμφανίζεται ένα ενημερωτικό μήνυμα. Αυτό το μήνυμα ενημερώνει τον φορολογούμενο ότι πρέπει να εξυπηρετηθεί με αυτοπρόσωπη παρουσία από την αρμόδια Υπηρεσία.',
'Δύο εγκύκλιοι του ΓΓΔΕ ασχολούνται με τη χορήγηση ΑΦΜ σε αλλοδαπούς, καλύπτοντας διαφορετικές κατηγορίες. Η εγκύκλιος ΠΟΛ 1230/08-10-2013 αφορά τη χορήγηση ΑΦΜ σε αλλοδαπούς, υπηκόους τρίτων χωρών, οι οποίοι είναι κάτοχοι δελτίου αιτήσαντος άσυλο αλλοδαπού ή δελτίου αιτούντος διεθνή προστασία. Επίσης, η εγκύκλιος ΠΟΛ 1250/25-11-2013 ρυθμίζει τη χορήγηση ΑΦΜ σε αλλοδαπά φυσικά πρόσωπα, υπηκόους τρίτων χωρών, που αντικειμενικά στερούνται διαβατηρίου.',
]
query_embeddings = model.encode_query(queries)
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# [1, 768] [3, 768]
# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[ 0.7931, 0.0623, -0.0191]])
aade-eval-60q-80d-v2 and miriad-test-60-150InformationRetrievalEvaluator| Metric | aade-eval-60q-80d-v2 | miriad-test-60-150 |
|---|---|---|
| cosine_accuracy@1 | 0.8333 | 0.8322 |
| cosine_accuracy@3 | 0.9 | 0.9463 |
| cosine_accuracy@5 | 0.9167 | 0.9732 |
| cosine_accuracy@10 | 0.95 | 0.9732 |
| cosine_precision@1 | 0.8333 | 0.8322 |
| cosine_precision@3 | 0.3 | 0.3154 |
| cosine_precision@5 | 0.1833 | 0.1946 |
| cosine_precision@10 | 0.095 | 0.0973 |
| cosine_recall@1 | 0.8333 | 0.8322 |
| cosine_recall@3 | 0.9 | 0.9463 |
| cosine_recall@5 | 0.9167 | 0.9732 |
| cosine_recall@10 | 0.95 | 0.9732 |
| cosine_ndcg@10 | 0.8923 | 0.9128 |
| cosine_mrr@10 | 0.8736 | 0.8923 |
| cosine_map@100 | 0.8765 | 0.8936 |
Ερώτηση and Απάντηση| Ερώτηση | Απάντηση | |
|---|---|---|
| type | string | string |
| details |
|
|
| Ερώτηση | Απάντηση |
|---|---|
Πώς συμβάλλουν η απλούστευση και η ψηφιοποίηση των διαδικασιών στη βελτίωση των υπηρεσιών της ΑΑΔΕ; |
Η απλούστευση και ψηφιοποίηση των διαδικασιών συμβάλλει στη βελτίωση του χρόνου εξυπηρέτησης πολιτών και επιχειρήσεων. Παράλληλα, οδηγεί στη μείωση της φυσικής παρουσίας και επικοινωνίας των φορολογουμένων με τις Υπηρεσίες, καθώς και στη μείωση του διοικητικού βάρους που καλούνται να επωμιστούν όλοι οι εμπλεκόμενοι. |
Τα γεωργικά εισοδήματα συμπληρώνονται και στο Ε3; |
Από το φορολογικό έτος 2014 και μετά, κατά την υποβολή των δηλώσεων φορολογίας |
Ποια βήματα ακολουθεί ένα τρίτο εξουσιοδοτημένο πρόσωπο για την υποβολή αίτησης εγγραφής και παραλαβής Κλειδαρίθμου; |
Στην περίπτωση υποβολής της αίτησης εγγραφής και παραλαβής Κλειδαρίθμου από τρίτο εξουσιοδοτημένο από το νόμιμο εκπρόσωπο πρόσωπο, το τρίτο πρόσωπο εισέρχεται στην εφαρμογή με τη χρήση των προσωπικών του κωδικών πρόσβασης. Αρχικά, συμπληρώνει τον ΑΦΜ του μη φυσικού προσώπου για το οποίο ενεργεί και ανακτά τα στοιχεία του. Στη συνέχεια, επισυνάπτει τη σχετική εξουσιοδότηση και υποβάλλει την αίτηση. |
CachedMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"mini_batch_size": 8,
"gather_across_devices": false
}
Ερώτηση and Απάντηση| Ερώτηση | Απάντηση | |
|---|---|---|
| type | string | string |
| details |
|
|
| Ερώτηση | Απάντηση |
|---|---|
Πότε απαιτείται υπεύθυνη δήλωση από τον φορολογικό εκπρόσωπο; |
Υπεύθυνη δήλωση από τον φορολογικό εκπρόσωπο απαιτείται για την αποδοχή του ορισμού του. Αυτό συμβαίνει εφόσον την αίτηση απόδοσης ΑΦΜ και Κλειδαρίθμου δεν την υποβάλλει ο ίδιος ο φορολογικός εκπρόσωπος. Η δήλωση αυτή πρέπει να έχει βεβαιωμένο το γνήσιο της υπογραφής. |
Ποιες αντικειμενικές δαπάνες λαμβάνονται υπόψη για τον προσδιορισμό της συνολικής |
Οι αντικειμενικές δαπάνες που λαμβάνονται υπόψη για τον προσδιορισμό της συνολικής |
Πού ορίζεται η έδρα ενός υπό ίδρυση φυσικού προσώπου και ποιες είναι οι εναλλακτικές επιλογές; |
Ως έδρα του υπό ίδρυση φυσικού προσώπου ορίζεται η διεύθυνση της κατοικίας του ιδρυτή. Εναλλακτικά, μπορεί να οριστεί η έδρα της επιχειρηματικής δραστηριότητας του ιδρυτή, είτε πρόκειται για φυσικό ή νομικό πρόσωπο, είτε για νομική οντότητα αντίστοιχα. |
CachedMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"mini_batch_size": 8,
"gather_across_devices": false
}
eval_strategy: stepsper_device_train_batch_size: 60per_device_eval_batch_size: 60learning_rate: 2e-05num_train_epochs: 1warmup_ratio: 0.1fp16: Trueprompts: {'Ερώτηση': 'task: search result | query: ', 'Απάντηση': 'title: none | text: '}batch_sampler: no_duplicatesoverwrite_output_dir: Falsedo_predict: Falseeval_strategy: stepsprediction_loss_only: Trueper_device_train_batch_size: 60per_device_eval_batch_size: 60per_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.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 1max_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: 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: 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: {'Ερώτηση': 'task: search result | query: ', 'Απάντηση': 'title: none | text: '}batch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | aade-eval-60q-80d-v2_cosine_ndcg@10 | miriad-test-60-150_cosine_ndcg@10 |
|---|---|---|---|
| -1 | -1 | 0.8923 | 0.9128 |
@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
google/embeddinggemma-300m