Scaling Deep Contrastive Learning Batch Size under Memory Limited Setup
Paper • 2101.06983 • Published • 2
How to use psardin/qwen_0.6B_max_seq_length_2048 with sentence-transformers:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("psardin/qwen_0.6B_max_seq_length_2048")
sentences = [
"Tom provoziert Nico verbal in dessen Bar «zum Wolf», weshalb Nico ihn aus seinem Lokal verweist. Tom ist hierüber erzürnt, wartet bis zum Feierabend bis Nico die Bar verlässt und zieht seine Pistole aus der Jackentasche. Er gibt vor dem Lokal aus einer Distanz von ca. 10 Metern einen gezielten Schuss ab, trifft Nico jedoch nicht. Kurz danach wird Tom von der Polizei festgenommen. Er wird von der Polizei korrekt belehrt und danach zur Sache befragt. Er gibt zu, dass er in der Bar «zum Wolf» etwas getrunken hat, bestreitet aber, irgendetwas mit dem Vorfall zu tun zu haben. Weiter erklärt er, dass er ohne seinen Anwalt keine weiteren Aussagen machen wird. Nach der ersten staatsanwaltschaftlichen Einvernahme wird für Tom ein Rechtsanwalt bestellt. Im Rahmen des Untersuchungsverfahrens findet in der Folge eine Konfrontationseinvernahme zwischen Nico als Hauptbelastungszeuge und Tom statt. Umstritten ist dabei vor allem die Zielrichtung des Schusses. Während Nico sagt, Tom habe direkt auf ihn gezielt, sagt Tom, er habe gezielt danebengeschossen. Weitere Zeugen konnten nicht ausfindig gemacht werden. \nSind die Aussagen von Tom, welche er bei der Polizei machte, verwertbar?",
"1 Für die vorzeitige Erteilung der Niederlassungsbewilligung müssen die Integrationskriterien nach Artikel 58a Absatz 1 AIG erfüllt sein.",
"3 Das Rechtsgeschäft bedarf zu seiner Gültigkeit der öffentlichen Beurkundung oder, wenn es eine Verfügung von Todes wegen oder ein Erbteilungsvertrag ist, der im Erbrecht vorgeschriebenen Form.",
"Die beschuldigte Person muss verteidigt werden, wenn:a. die Untersuchungshaft einschliesslich einer vorläufigen Festnahme mehr als 10 Tage gedauert hat;\nb.61 ihr eine Freiheitsstrafe von mehr als einem Jahr, eine freiheitsentziehende Massnahme oder eine Landesverweisung droht;\nc. sie wegen ihres körperlichen oder geistigen Zustandes oder aus anderen Gründen ihre Verfahrensinteressen nicht ausreichend wahren kann und die gesetzliche Vertretung dazu nicht in der Lage ist;\nd. die Staatsanwaltschaft vor dem erstinstanzlichen Gericht oder dem Berufungsgericht persönlich auftritt;\ne. ein abgekürztes Verfahren (Art. 358–362) durchgeführt wird."
]
embeddings = model.encode(sentences)
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [4, 4]How to use psardin/qwen_0.6B_max_seq_length_2048 with Unsloth Studio:
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for psardin/qwen_0.6B_max_seq_length_2048 to start chatting
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for psardin/qwen_0.6B_max_seq_length_2048 to start chatting
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for psardin/qwen_0.6B_max_seq_length_2048 to start chatting
pip install unsloth
from unsloth import FastModel
model, tokenizer = FastModel.from_pretrained(
model_name="psardin/qwen_0.6B_max_seq_length_2048",
max_seq_length=2048,
)This is a sentence-transformers model finetuned from unsloth/Qwen3-Embedding-0.6B. It maps sentences & paragraphs to a 1024-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': 'PeftModelForFeatureExtraction'})
(1): Pooling({'word_embedding_dimension': 1024, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': True, '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("psardin/qwen_0.6B_max_seq_length_2048")
# Run inference
sentences = [
'Zulasten des Grundstücks GB 100 (Liegenschaft), das im Eigentum von Arthur (A) steht, be steht seit dem 1.1.2019 ein selbständiges und dauerndes Baurecht zugunsten von Beat (B); im Rahmen des Baurechts wurde ein Parkhaus mit 200 Parkplätzen erstellt. Der Baurechtszins, den der Baurechtsnehmer Beat dem Baurechtsgeber Arthur schuldet, ist im Grundbuch eingetragen. Am 1. November 2021 verstirbt Beat. Einziger Erbe ist sein volljähriger Sohn Carl (C). Mit dem Tod von Beat kehrt Unruhe ein: Der jährlich am 1. Januar geschuldete Baurechtszins wird schon im Jahr 2022 nicht mehr geleistet. Arthur lässt sich noch vertrösten, weil Carl ihm erläu tert, er befinde sich gerade in einem finanziellen Engpass; er werde bis Ende 2022 die Zahlung leisten. Als Carl aber auch Ende Januar 2023 weder den Baurechtzins 2022 noch für 2023 ge leistet hat, reisst bei Arthur der Geduldsfaden; er will wissen, ob und gegebenenfalls auf welche Weise er den Baurechtszins erhältlich machen kann. Angesichts der finanziellen Probleme von Carl fürchtet er, dass seine Forderung auf Leistung des Baurechtszinses ungedeckt bleibt. Carl anerkennt den Betrag der offenen Baurechtszinse gegenüber Arthur schriftlich in der Hoffnung, Arthur damit ruhigzustellen und Zeit zu gewinnen. Bevor Arthur seine rechtlichen Möglichkei ten ausschöpft, wird das Baurecht zur Vollstreckung anderweitiger Schulden im Rahmen einer Betreibung auf Pfändung betreibungsrechtlich gepfändet. Carl versucht, seine Gläubiger abzu schütteln, indem er einige Wochen später das selbständige und dauernde Baurecht ohne Ab sprache mit Arthur zu einem geringen Preis auf seinen Freund Dieter (D) zu Eigentum überträgt in der Absicht, damit die Pfändung auszuhebeln. Das Grundbuchamt stellt Arthur korrekt eine Anzeige zu, wonach das selbständige und dauernde Baurecht auf Dieter übertragen worden sei. Arthur ist froh, dass jetzt der finanzkräftige Dieter Eigentümer des Baurechts ist, und kann sich erst jetzt dazu entschliessen, seine Rechte bezüglich des Baurechtszinses vollumfänglich aus zuschöpfen. \nHat Arthur eine Möglichkeit, den ausstehenden Baurechtszins mit einem immobiliarsa chenrechtlichen Instrument erhältlich zu machen? Nennen Sie Rechtsgrundlagen, Vo raussetzungen und Wirkungen des Instruments.',
'1 Das Pfandrecht kann jederzeit eingetragen werden, solange das Baurecht besteht, und ist von der Löschung im Zwangsverwertungsverfahren ausgenommen.',
'1 Ist der Schuldner zu einem Tun verpflichtet, so kann sich der Gläubiger, unter Vorbehalt seiner Ansprüche auf Schadenersatz, ermächtigen lassen, die Leistung auf Kosten des Schuldners vorzunehmen.',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 1024]
# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities)
# tensor([[1.0000, 0.5828, 0.4891],
# [0.5828, 1.0000, 0.3060],
# [0.4891, 0.3060, 1.0000]])
anchor and positive| anchor | positive | |
|---|---|---|
| type | string | string |
| details |
|
|
| anchor | positive |
|---|---|
Die A AG betreibt seit den 1970er-Jahren auf der Parzelle Nr. yyy (Wohn- und Gewerbezone) ein Recyclingunternehmen. Das Unternehmen verarbeitet vorwiegend Metallschrott. Dieser wird im Aussenbereich des Betriebsgeländes zwischengelagert und dort von einem fest instal lierten Metallschredder für die Weiterverarbeitung zerkleinert. Im Jahr 2018 wurde der 1983 bewilligte Metallschredder umfassend modernisiert; nur wenige Teile der Gehäusekonstruktion wurden weiterverwendet. Aufgrund der Modernisierung stieg die jährliche Verarbeitungskapazität von 75'000 auf 84'000 Tonnen, und die durchschnittliche Betriebsleistung pro Tag dehnte sich von zehn auf zwölf Stunden aus. Im Herbst 2020 kauft B das Wohnhaus auf der Parzelle Nr. zzz (Wohn- und Gewerbezone), welches an das Grundstück Nr. yyy angrenzt. Nach kurzer Zeit fühlt er sich vom Lärm des Me tallschredders gestört, zumal dieser gelegentlich bis in die späten Abendstunden (23.00 Uhr) in Betrieb ist. Er beschwert sich deshalb bei den zuständi... |
1 Bevor eine Behörde über die Planung, Errichtung oder Änderung von Anlagen entscheidet, prüft sie möglichst frühzeitig die Umweltverträglichkeit. |
Die A AG betreibt seit den 1970er-Jahren auf der Parzelle Nr. yyy (Wohn- und Gewerbezone) ein Recyclingunternehmen. Das Unternehmen verarbeitet vorwiegend Metallschrott. Dieser wird im Aussenbereich des Betriebsgeländes zwischengelagert und dort von einem fest instal lierten Metallschredder für die Weiterverarbeitung zerkleinert. Im Jahr 2018 wurde der 1983 bewilligte Metallschredder umfassend modernisiert; nur wenige Teile der Gehäusekonstruktion wurden weiterverwendet. Aufgrund der Modernisierung stieg die jährliche Verarbeitungskapazität von 75'000 auf 84'000 Tonnen, und die durchschnittliche Betriebsleistung pro Tag dehnte sich von zehn auf zwölf Stunden aus. Im Herbst 2020 kauft B das Wohnhaus auf der Parzelle Nr. zzz (Wohn- und Gewerbezone), welches an das Grundstück Nr. yyy angrenzt. Nach kurzer Zeit fühlt er sich vom Lärm des Me tallschredders gestört, zumal dieser gelegentlich bis in die späten Abendstunden (23.00 Uhr) in Betrieb ist. Er beschwert sich deshalb bei den zuständi... |
1 Änderungen bestehender Anlagen, die im Anhang aufgeführt sind, unterliegen der Prüfung, wenn:a. die Änderung wesentliche Umbauten, Erweiterungen oder Betriebsänderungen betrifft und |
Die Alpha Consulting AG kann nun ihr Grundstück neu direkt an die soeben erstellte Kana lisationsleitung in der angrenzenden neuen Quartierstrasse anschliessen, so dass sie die von der Grunddienstbarkeit erfasste Abwasserleitung (vgl. Sachverhalt Teil 1) ausser Betrieb nimmt und ihr Grundstück jetzt an die Leitung in der Quartierstrasse anschliesst. Georg (G), der Grundbuchverwalter des Grundbuchkreises, in dem die Grundstücke 1 und 2 liegen, wohnt ganz in der Nähe und beobachtet auf seinem täglichen Weg zur Arbeit die Installation der neuen Kanalisationsleitung in der Quartierstrasse. Einige Tage später liest er zudem in der Zeitung, dass sämtliche Liegenschaften, die an die Quartierstrasse grenzen, neu an die in der Quartierstrasse befindliche Kanalisationsleitung angeschlossen worden seien. Daher fasst Georg den Entschluss, zur Entlastung des Grundbuchs die bisher eingetra gene Leitungsdienstbarkeit von Amtes wegen zu löschen, und setzt sein Vorhaben sofort in die Tat um. |
2 Ungerechtfertigt ist der Eintrag, der ohne Rechtsgrund oder aus einem unverbindlichen Rechtsgeschäft erfolgt ist. |
CachedMultipleNegativesRankingLoss with these parameters:{
"scale": 20.0,
"similarity_fct": "cos_sim",
"mini_batch_size": 32,
"gather_across_devices": false
}
gradient_accumulation_steps: 32learning_rate: 3e-05lr_scheduler_type: constant_with_warmupwarmup_ratio: 0.03fp16: Trueoptim: adamw_8bitbatch_sampler: no_duplicatesoverwrite_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: 32eval_accumulation_steps: Nonetorch_empty_cache_steps: Nonelearning_rate: 3e-05weight_decay: 0.0adam_beta1: 0.9adam_beta2: 0.999adam_epsilon: 1e-08max_grad_norm: 1.0num_train_epochs: 3max_steps: -1lr_scheduler_type: constant_with_warmuplr_scheduler_kwargs: {}warmup_ratio: 0.03warmup_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_8bitoptim_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: Nonebatch_sampler: no_duplicatesmulti_dataset_batch_sampler: proportionalrouter_mapping: {}learning_rate_mapping: {}| Epoch | Step | Training Loss |
|---|---|---|
| 0.0784 | 1 | 0.9694 |
| 0.1569 | 2 | 1.1241 |
| 0.2353 | 3 | 0.926 |
| 0.3137 | 4 | 0.9543 |
| 0.3922 | 5 | 0.7925 |
| 0.4706 | 6 | 1.0496 |
| 0.5490 | 7 | 0.8944 |
| 0.6275 | 8 | 0.9071 |
| 0.7059 | 9 | 0.8504 |
| 0.7843 | 10 | 0.6609 |
| 0.8627 | 11 | 0.7098 |
| 0.9412 | 12 | 0.742 |
| 1.0 | 13 | 0.8155 |
| 1.0784 | 14 | 0.6132 |
| 1.1569 | 15 | 0.7624 |
| 1.2353 | 16 | 0.6856 |
| 1.3137 | 17 | 0.6039 |
| 1.3922 | 18 | 0.7498 |
| 1.4706 | 19 | 0.6171 |
| 1.5490 | 20 | 0.7511 |
| 1.6275 | 21 | 0.5149 |
| 1.7059 | 22 | 0.6284 |
| 1.7843 | 23 | 0.5659 |
| 1.8627 | 24 | 0.5025 |
| 1.9412 | 25 | 0.6576 |
| 2.0 | 26 | 0.6405 |
| 2.0784 | 27 | 0.5653 |
| 2.1569 | 28 | 0.6385 |
| 2.2353 | 29 | 0.5644 |
| 2.3137 | 30 | 0.4759 |
| 2.3922 | 31 | 0.549 |
| 2.4706 | 32 | 0.471 |
| 2.5490 | 33 | 0.5161 |
| 2.6275 | 34 | 0.4642 |
| 2.7059 | 35 | 0.5274 |
| 2.7843 | 36 | 0.57 |
| 2.8627 | 37 | 0.5029 |
| 2.9412 | 38 | 0.4751 |
| 3.0 | 39 | 0.4523 |
@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}
}