mmBERTscandi-base-embedding

mmBERTscandi-base-embedding is finetuned on the Scandinavian (Danish, Norwegian, Swedish) text embeddings dataset from DDSC (nordic-embedding-training-data) using jonasaise/scandmmBERT-base-scandinavian/jhu-clsp/mmBERT-base as the base model via the sentence-transformers framework.

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.

Model Details

Model Description

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 8192, 'do_lower_case': False, 'architecture': 'ModernBertModel'})
  (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})
)

Usage

Direct Usage (Sentence Transformers)

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("emillykkejensen/mmBERTscandi-base-embedding")
# Run inference
query = "Hvad var årsagen til at Christian IVs militære felttog mod Sverige fik så katastrofale følger?"
documents = [
    "Kong Christian IVs mange byggerier, herunder Rundetårn og Børsen, kostede statskassen dyrt og førte til økonomiske problemer. Hans passion for arkitektur og storslåede monumenter var medvirkende til rigets finansielle vanskeligheder i 1600-tallet.",
    "Den Store Nordiske Krig fra 1700-1721 resulterede i Sveriges tab af mange territorier til Rusland. Karl XIIs aggressive ekspansionspolitik endte med nederlag ved Poltava i 1709, hvilket markerede begyndelsen på Sveriges decline som stormagt.",
    "Christian IV indledte Kalmarkrigen i 1611 mod Sverige, motiveret af ønsket om at genvinde kontrollen over Øresund. Selvom Danmark opnåede nogle territoriale gevinster, var konflikten kostbar og udmattende for begge lande.",
    "Kongens manglende militære erfaring og overvurdering af Danmarks styrke var afgørende faktorer i nederlagene under Torstenson-fejden. Christian IVs personlige ledelse på slagmarken viste sig katastrofal, da han ikke forstod moderne krigsførelsesteknikker og undervurderede den svenske hærs disciplin og taktiske overlegenhed.",
    "Gustav II Adolf moderniserede den svenske hær med forbedret artilleri og mobile enheder. Hans militære reformer revolutionerede europæisk krigsførelse og gav Sverige en betydelig fordel i konflikter under 1600-tallet.",
    "Christian 4.s militære felttog mod Sverige, primært Kalmarkrigen (1611-13) og Torstenssonfejden (1643-45), var katastrofale, fordi hans forsøg på at genoprette Danmarks nordiske dominans og genindføre Kalmarunionen mislykkedes, hvilket resulterede i betydelige territoriale tab for Danmark og Norge, øget svensk magt og ydmygende fredsaftaler som «Freden i Brømsebro», der understregede Danmarks svækkelse som stormagt"
]
query_embeddings = model.encode_query(query, 'retrieval')
document_embeddings = model.encode_document(documents)
print(query_embeddings.shape, document_embeddings.shape)
# (768,) (6, 768)

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, document_embeddings)
print(similarities)
# tensor([[0.4894, 0.6639, 0.6522, 0.7178, 0.5717, 0.8075]])

Evaluation

Metrics

Information Retrieval

Metric nordic-embedding-eval-instruct nordic-embedding-test-instruct
cosine_accuracy@1 0.4524 0.4464
cosine_accuracy@3 0.5758 0.5726
cosine_accuracy@5 0.6198 0.6164
cosine_accuracy@10 0.6776 0.6696
cosine_precision@1 0.4524 0.4464
cosine_precision@3 0.1919 0.1909
cosine_precision@5 0.124 0.1233
cosine_precision@10 0.0678 0.067
cosine_recall@1 0.4524 0.4464
cosine_recall@3 0.5758 0.5726
cosine_recall@5 0.6198 0.6164
cosine_recall@10 0.6776 0.6696
cosine_ndcg@10 0.5614 0.5556
cosine_mrr@10 0.5246 0.5194
cosine_map@100 0.5295 0.5251

Training Details

Training Dataset

nordic-embedding-training-data

  • Dataset: nordic-embedding-training-data at fba903a
  • Size: 958,249 training samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 9 tokens
    • mean: 60.67 tokens
    • max: 435 tokens
    • min: 3 tokens
    • mean: 96.48 tokens
    • max: 664 tokens
    • min: 2 tokens
    • mean: 35.8 tokens
    • max: 329 tokens
  • Samples:
    anchor positive negative
    Task: similarity
    Query: Jag letar efter recensioner som nämner den nya bruksanvändarvänliga gränssnittet som presenterades i den senaste uppdateringen av databasen. Speciellt är jag intresserad av hur användarna upplever navigationen efter nerladdningar och hur intuitivt det är att söka efter specifika filer.
    Jag har använt databasen i flera år nu, och jag måste säga att den senaste uppdateringen är fantastiskt. Det nya gränssnittet är verkligen användarvänligt, mycket mer än tidigare. Det är så mycket enklare att navigera runt och hitta de filer jag behöver. Till exempel, när jag laddar ner en fil kan jag nu enkelt se alla relaterade dokument direkt på samma sida, vilket sparar mig mycket tid. Och sökmotorn är otroligt intuitiv - jag kan bokstavligen skriva in några nyckelord och hitta det jag söker på ett ögonblick. Det känns som om utvecklarna verkligen lyssnade på användarna och gjorde ändringar som verkligen gör en skillnad.
    Task: similarity
    Query: Det er fedt!
    Det er fremragende!
    Task: classification\nQuery: Hej allihopa! Har ni hört den senaste nyheten? Det verkar som om vår klasskamrat Pelle har vunnit lotteri! Han ska tydligen resa runt i världen nu. Hur häftigt är inte det? Informell
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 32,
        "gather_across_devices": false
    }
    

Evaluation Dataset

nordic-embedding-training-data

  • Dataset: nordic-embedding-training-data at fba903a
  • Size: 5,000 evaluation samples
  • Columns: anchor, positive, and negative
  • Approximate statistics based on the first 1000 samples:
    anchor positive negative
    type string string string
    details
    • min: 9 tokens
    • mean: 62.42 tokens
    • max: 557 tokens
    • min: 3 tokens
    • mean: 93.78 tokens
    • max: 896 tokens
    • min: 2 tokens
    • mean: 33.44 tokens
    • max: 335 tokens
  • Samples:
    anchor positive negative
    Task: retrieval
    Query: beste rekkevidde
    Elbilens rekkevidde er et sentralt tema for mange potensielle kjøpere. Batteriteknologi har utviklet seg enormt de siste årene, og moderne elbiler kan nå kjøre opptil 500 kilometer eller mer på en enkelt lading. Men rekkevidden varierer avhengig av flere faktorer, som bilens størrelse, vekt, kjørestil og værforhold. For eksempel vil en stor SUV med firehjulsdrift typisk ha lavere rekkevidde enn en liten bybil. Kaldt vær kan også redusere rekkevidden betydelig, mens varm vær har mindre innvirkning.

    Det er viktig å huske at oppgitte rekkevidder ofte er basert på standardiserte tester, og den faktiske rekkevidden kan variere i praksis. Mange produsenter oppgir WLTP-rekkevidden, som er en europeisk standard for måling av bilers drivstofforbruk og utslipp. WLTP-testen tar hensyn til faktorer som kjøreforhold, temperatur og kjørestil, og gir et mer realistisk bilde av bilens rekkevidde enn eldre tester.

    For å maksimere rekkevidden på din elbils, kan du følge noen enkle tips. Kjøre forsikti...
    Når det kommer til kjøp av bil, er det mange faktorer å ta hensyn til. Pris, design, ytelse og sikkerhetsfunksjoner er alle viktige elementer som bør vurderes. En annen viktig faktor er bilens miljøpåvirkning. Elbiler har blitt mer populære i det siste på grunn av deres lave utslipp. De produserer ingen direkte utslipp av skadelige gasser, noe som gjør dem til et mer miljøvennlig alternativ til bensindrevne biler.

    Men elbiler har også noen ulemper. De kan være dyrere å kjøpe enn tradisjonelle biler, og rekkevidden kan være begrenset. Dessuten krever det infrastruktur for lading, og det kan være vanskelig å finne ladesteder i noen områder. Likevel, med den raskt voksende infrastrukturen for lading og stadig mer overkommelige priser, blir elbiler et stadig mer attraktivt valg for bilkjøpere.
    Task: classification\nQuery: Vi, undertegnede, hermed erklære os enige om at sælge den ejendom, der er beskrevet i vedlagte bilag. Køber og sælger er enige om en købesum på 2.500.000 kroner, som skal betales kontant ved underskrivelsen af denne aftale. Ejendommen overdrages til køber den 1. juli 2024. Kontrakt
    Task: similarity
    Query: Vi planlegger en tur til Italia i slutten av november. Vi er interessert i å oppleve den italienske kulturen og historien, og vi håper å besøke Roma, Firenze og Venezia. Vi vil gjerne kombinere sightseeing med god mat og vin, og vi er åpne for å prøve lokale spesialiteter. Vi er også interessert i å besøke museer og historiske steder.

    For å spare penger, vil vi gjerne benytte offentlig transport, og vi er åpne for å bo på rimelige hoteller eller Airbnb.
    Florenzia blomstrer i hjertet av Toscana og er et av verdens mest berømte reisemål. Med sin rikholdige historie, kunst, arkitektur og matkultur, er Firenze en perfekt destinasjon for alle som søker en autentisk italiensk opplevelse.

    Området rundt Piazza della Signoria er et must-visit. Her finner du Palazzo Vecchio, Uffizi Gallery, Ponte Vecchio og Duomo, alle ikoniske landemerker som vitner om Florens' fortid. Uffizi Gallery huser mesterverk av Michelangelo, Leonardo da Vinci og Raphael, mens Duomo med sin imponerende kupol er et arkitektonisk mesterverk.


    For en smak av lokal kultur, utforsk de smale gatene i Oltrarno-distriktet, der håndverkere og kunstnere har sine verksteder. Her kan du finne unike souvenirs og smake på tradisjonelle spesialiteter som bistecca alla fiorentina - et saftig biffstykke grillet over vedfyrt kull.


    Firenze er også hjem til en rekke museer, inkludert Galleria dell'Accademia, som huser Michelangelos David, og Palazzo Pitti, som huser Palatine Gallery...
  • Loss: CachedMultipleNegativesRankingLoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "cos_sim",
        "mini_batch_size": 32,
        "gather_across_devices": false
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 64
  • learning_rate: 5e-06
  • num_train_epochs: 1
  • warmup_ratio: 0.1
  • fp16: True
  • gradient_checkpointing: True
  • batch_sampler: no_duplicates

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 64
  • per_device_eval_batch_size: 64
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 1
  • eval_accumulation_steps: None
  • torch_empty_cache_steps: None
  • learning_rate: 5e-06
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 1
  • max_steps: -1
  • lr_scheduler_type: linear
  • lr_scheduler_kwargs: {}
  • warmup_ratio: 0.1
  • warmup_steps: 0
  • log_level: passive
  • log_level_replica: warning
  • log_on_each_node: True
  • logging_nan_inf_filter: True
  • save_safetensors: True
  • save_on_each_node: False
  • save_only_model: False
  • restore_callback_states_from_checkpoint: False
  • no_cuda: False
  • use_cpu: False
  • use_mps_device: False
  • seed: 42
  • data_seed: None
  • jit_mode_eval: False
  • use_ipex: False
  • bf16: False
  • fp16: True
  • fp16_opt_level: O1
  • half_precision_backend: auto
  • bf16_full_eval: False
  • fp16_full_eval: False
  • tf32: None
  • local_rank: 0
  • ddp_backend: None
  • tpu_num_cores: None
  • tpu_metrics_debug: False
  • debug: []
  • dataloader_drop_last: False
  • dataloader_num_workers: 0
  • dataloader_prefetch_factor: None
  • past_index: -1
  • disable_tqdm: False
  • remove_unused_columns: True
  • label_names: None
  • load_best_model_at_end: False
  • ignore_data_skip: False
  • fsdp: []
  • fsdp_min_num_params: 0
  • fsdp_config: {'min_num_params': 0, 'xla': False, 'xla_fsdp_v2': False, 'xla_fsdp_grad_ckpt': False}
  • fsdp_transformer_layer_cls_to_wrap: None
  • accelerator_config: {'split_batches': False, 'dispatch_batches': None, 'even_batches': True, 'use_seedable_sampler': True, 'non_blocking': False, 'gradient_accumulation_kwargs': None}
  • parallelism_config: None
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch_fused
  • optim_args: None
  • adafactor: False
  • group_by_length: False
  • length_column_name: length
  • ddp_find_unused_parameters: None
  • ddp_bucket_cap_mb: None
  • ddp_broadcast_buffers: False
  • dataloader_pin_memory: True
  • dataloader_persistent_workers: False
  • skip_memory_metrics: True
  • use_legacy_prediction_loop: False
  • push_to_hub: False
  • resume_from_checkpoint: None
  • hub_model_id: None
  • hub_strategy: every_save
  • hub_private_repo: None
  • hub_always_push: False
  • hub_revision: None
  • gradient_checkpointing: True
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • include_for_metrics: []
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: None
  • push_to_hub_organization: None
  • mp_parameters:
  • auto_find_batch_size: False
  • full_determinism: False
  • torchdynamo: None
  • ray_scope: last
  • ddp_timeout: 1800
  • torch_compile: False
  • torch_compile_backend: None
  • torch_compile_mode: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • eval_on_start: False
  • use_liger_kernel: False
  • liger_kernel_config: None
  • eval_use_gather_object: False
  • average_tokens_across_devices: False
  • prompts: None
  • batch_sampler: no_duplicates
  • multi_dataset_batch_sampler: proportional
  • router_mapping: {}
  • learning_rate_mapping: {}

Training Logs

Click to expand
Epoch Step Training Loss Validation Loss nordic-embedding-eval-instruct_cosine_ndcg@10 nordic-embedding-test-instruct_cosine_ndcg@10
-1 -1 - - 0.2565 -
0.0067 100 3.3624 - - -
0.0134 200 2.4464 - - -
0.0200 300 1.0373 - - -
0.0267 400 0.5657 - - -
0.0334 500 0.4352 - - -
0.0401 600 0.3905 - - -
0.0468 700 0.3318 - - -
0.0534 800 0.3098 - - -
0.0601 900 0.293 - - -
0.0668 1000 0.2791 0.1232 0.4904 -
0.0735 1100 0.2464 - - -
0.0801 1200 0.239 - - -
0.0868 1300 0.2273 - - -
0.0935 1400 0.2121 - - -
0.1002 1500 0.2001 - - -
0.1069 1600 0.1974 - - -
0.1135 1700 0.1871 - - -
0.1202 1800 0.1855 - - -
0.1269 1900 0.1844 - - -
0.1336 2000 0.1741 0.0108 0.5289 -
0.1403 2100 0.1803 - - -
0.1469 2200 0.167 - - -
0.1536 2300 0.1667 - - -
0.1603 2400 0.1522 - - -
0.1670 2500 0.1488 - - -
0.1736 2600 0.148 - - -
0.1803 2700 0.1564 - - -
0.1870 2800 0.1632 - - -
0.1937 2900 0.1548 - - -
0.2004 3000 0.1491 0.0030 0.5290 -
0.2070 3100 0.1456 - - -
0.2137 3200 0.1421 - - -
0.2204 3300 0.1531 - - -
0.2271 3400 0.1532 - - -
0.2338 3500 0.1423 - - -
0.2404 3600 0.1397 - - -
0.2471 3700 0.1422 - - -
0.2538 3800 0.1336 - - -
0.2605 3900 0.134 - - -
0.2671 4000 0.148 0.0096 0.5472 -
0.2738 4100 0.1394 - - -
0.2805 4200 0.125 - - -
0.2872 4300 0.1334 - - -
0.2939 4400 0.1449 - - -
0.3005 4500 0.1261 - - -
0.3072 4600 0.1417 - - -
0.3139 4700 0.1285 - - -
0.3206 4800 0.119 - - -
0.3273 4900 0.1226 - - -
0.3339 5000 0.1153 0.0047 0.5572 -
0.3406 5100 0.1316 - - -
0.3473 5200 0.1358 - - -
0.3540 5300 0.1188 - - -
0.3606 5400 0.1267 - - -
0.3673 5500 0.1221 - - -
0.3740 5600 0.1306 - - -
0.3807 5700 0.1296 - - -
0.3874 5800 0.1158 - - -
0.3940 5900 0.1268 - - -
0.4007 6000 0.1389 0.0029 0.5619 -
0.4074 6100 0.0461 - - -
0.4141 6200 0.0 - - -
0.4208 6300 0.0001 - - -
0.4274 6400 0.0 - - -
0.4341 6500 0.0002 - - -
0.4408 6600 0.0 - - -
0.4475 6700 0.0 - - -
0.4542 6800 0.0 - - -
0.4608 6900 0.0 - - -
0.4675 7000 0.0 0.0016 0.5608 -
0.4742 7100 0.0 - - -
0.4809 7200 0.0 - - -
0.4875 7300 0.0 - - -
0.4942 7400 0.0 - - -
0.5009 7500 0.0 - - -
0.5076 7600 0.0 - - -
0.5143 7700 0.0 - - -
0.5209 7800 0.0 - - -
0.5276 7900 0.0 - - -
0.5343 8000 0.0 0.0017 0.5632 -
0.5410 8100 0.0 - - -
0.5477 8200 0.0 - - -
0.5543 8300 0.0 - - -
0.5610 8400 0.0 - - -
0.5677 8500 0.0 - - -
0.5744 8600 0.0 - - -
0.5810 8700 0.0 - - -
0.5877 8800 0.0 - - -
0.5944 8900 0.0 - - -
0.6011 9000 0.0 0.0017 0.5642 -
0.6078 9100 0.0 - - -
0.6144 9200 0.0 - - -
0.6211 9300 0.0069 - - -
0.6278 9400 0.0069 - - -
0.6345 9500 0.0 - - -
0.6412 9600 0.0 - - -
0.6478 9700 0.0 - - -
0.6545 9800 0.0 - - -
0.6612 9900 0.0 - - -
0.6679 10000 0.0 0.0017 0.5640 -
0.6745 10100 0.0 - - -
0.6812 10200 0.0 - - -
0.6879 10300 0.0 - - -
0.6946 10400 0.0 - - -
0.7013 10500 0.0 - - -
0.7079 10600 0.0 - - -
0.7146 10700 0.0 - - -
0.7213 10800 0.0 - - -
0.7280 10900 0.0 - - -
0.7347 11000 0.0 0.0017 0.5642 -
0.7413 11100 0.0 - - -
0.7480 11200 0.0069 - - -
0.7547 11300 0.0 - - -
0.7614 11400 0.0 - - -
0.7680 11500 0.0 - - -
0.7747 11600 0.0 - - -
0.7814 11700 0.0 - - -
0.7881 11800 0.0 - - -
0.7948 11900 0.0 - - -
0.8014 12000 0.0 0.0018 0.5648 -
0.8081 12100 0.0 - - -
0.8148 12200 0.0 - - -
0.8215 12300 0.0 - - -
0.8282 12400 0.0 - - -
0.8348 12500 0.0 - - -
0.8415 12600 0.0 - - -
0.8482 12700 0.0 - - -
0.8549 12800 0.0 - - -
0.8616 12900 0.0 - - -
0.8682 13000 0.0 0.0018 0.5644 -
0.8749 13100 0.0 - - -
0.8816 13200 0.0 - - -
0.8883 13300 0.0 - - -
0.8949 13400 0.0 - - -
0.9016 13500 0.0 - - -
0.9083 13600 0.0 - - -
0.9150 13700 0.0 - - -
0.9217 13800 0.0 - - -
0.9283 13900 0.0 - - -
0.9350 14000 0.0 0.0019 0.5611 -
0.9417 14100 0.0 - - -
0.9484 14200 0.0 - - -
0.9551 14300 0.0069 - - -
0.9617 14400 0.0 - - -
0.9684 14500 0.0 - - -
0.9751 14600 0.0 - - -
0.9818 14700 0.0 - - -
0.9884 14800 0.0 - - -
0.9951 14900 0.0 - - -
-1 -1 - - 0.5614 0.5556

Framework Versions

  • Python: 3.12.3
  • Sentence Transformers: 5.1.0
  • Transformers: 4.56.1
  • PyTorch: 2.8.0+cu128
  • Accelerate: 1.10.1
  • Datasets: 4.0.0
  • Tokenizers: 0.22.0

Citation

BibTeX

Sentence Transformers

@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",
}

CachedMultipleNegativesRankingLoss

@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}
}
Downloads last month
5
Safetensors
Model size
307M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for emillykkejensen/mmBERTscandi-base-embedding

Finetuned
(2)
this model

Dataset used to train emillykkejensen/mmBERTscandi-base-embedding

Evaluation results

  • Cosine Accuracy@1 on nordic embedding eval instruct
    self-reported
    0.452
  • Cosine Accuracy@3 on nordic embedding eval instruct
    self-reported
    0.576
  • Cosine Accuracy@5 on nordic embedding eval instruct
    self-reported
    0.620
  • Cosine Accuracy@10 on nordic embedding eval instruct
    self-reported
    0.678
  • Cosine Precision@1 on nordic embedding eval instruct
    self-reported
    0.452
  • Cosine Precision@3 on nordic embedding eval instruct
    self-reported
    0.192
  • Cosine Precision@5 on nordic embedding eval instruct
    self-reported
    0.124
  • Cosine Precision@10 on nordic embedding eval instruct
    self-reported
    0.068
  • Cosine Recall@1 on nordic embedding eval instruct
    self-reported
    0.452
  • Cosine Recall@3 on nordic embedding eval instruct
    self-reported
    0.576