SentenceTransformer based on intfloat/multilingual-e5-large-instruct

This is a sentence-transformers model finetuned from intfloat/multilingual-e5-large-instruct. It maps sentences & paragraphs to a 1024-dimensional dense vector space and can be used for claim matching. Claim matching is the task of finding semantically identical texts for a given query-text. It finds application in the context of automated fact-checking for which it is important to identify copies of the same (misinformation) claim or previously checked claims.

Model Details

Model Description

  • Model Type: Sentence Transformer
  • Base model: intfloat/multilingual-e5-large-instruct
  • Maximum Sequence Length: 512 tokens
  • Output Dimensionality: 1024 tokens
  • Similarity Function: Cosine Similarity

Model Sources

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: XLMRobertaModel 
  (1): Pooling({'word_embedding_dimension': 1024, '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()
)

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

def embed_query(texts:list, model):
    return model.encode(sentences=texts, 
                prompt="Instruct: Retrieve semantically similar text.\nQuery: ",
                batch_size=32,
                show_progress_bar=True,
                normalize_embeddings=False,
                convert_to_numpy=True,
                device="cuda")
def embed_documents(texts:list, model):
    return model.encode(sentences=texts, 
                batch_size=1024,
                show_progress_bar=True,
                normalize_embeddings=False,
                convert_to_numpy=True,
                device="cuda")

# Download from the 🤗 Hub
model = SentenceTransformer("Sami92/multiling-e5-large-instruct-claim-matching")
# Run inference

queries = ['Die Pentagon-Mitarbeiter wechseln zum Überstundenmodus Internetnutzer stellten fest, dass es in der Gegend, in der sich die Abteilung befindet, einen starken Anstieg der Bestellungen für Pizzalieferungen gab und gleichzeitig die örtlichen Bars leer waren. Zuletzt geschah dies im April, kurz vor und nach dem iranischen Angriff auf Israel. Dann bemerkte The Sun die hohe Auslastung der Pizzerien von Papa Johns mit Bestellungen vom Pentagon. Unsere Website <URL> Unser Kanal auf Englisch <URL>',]
documents = [
    'Erinnern Sie sich an meinen Beitrag von vorhin über die massiven Cyberausfälle. Verbinden Sie das alles mit dem, was wir seit „Shot Heard Round the World“ am Samstag gesagt haben. BQQM BQQM BQQM BQQM 1776 1776 BRICS',
    'Heute sind offensichtlich ältere Flugzeuge am Himmel die entweder Turbinen Probleme haben oder schon elektrisch Fliegen... Die ganzen Lügen sind sooo offensichtlich das es schon weh tut sie bewusst zu ignorieren bzw nicht zu erkennen... Ihr wollt die Wahrheit <URL>',
]
query_embeddings = embed_documents(texts=queries, model=model)
doc_embeddings = embed_query(texts=documents, model=model)

# Get the similarity scores for the embeddings
similarities = model.similarity(query_embeddings, doc_embeddings)

Evaluation

Metrics

Binary Classification

Metric Value
cosine_accuracy 0.9758
cosine_accuracy_threshold 0.9067
cosine_f1 0.4887
cosine_f1_threshold 0.9035
cosine_precision 0.6736
cosine_recall 0.3834
cosine_ap 0.5012
dot_accuracy 0.9758
dot_accuracy_threshold 0.9067
dot_f1 0.4887
dot_f1_threshold 0.9035
dot_precision 0.6736
dot_recall 0.3834
dot_ap 0.5012
manhattan_accuracy 0.975
manhattan_accuracy_threshold 11.0116
manhattan_f1 0.4921
manhattan_f1_threshold 11.2187
manhattan_precision 0.6563
manhattan_recall 0.3936
manhattan_ap 0.4936
euclidean_accuracy 0.9758
euclidean_accuracy_threshold 0.432
euclidean_f1 0.4887
euclidean_f1_threshold 0.4394
euclidean_precision 0.6736
euclidean_recall 0.3834
euclidean_ap 0.5012
max_accuracy 0.9758
max_accuracy_threshold 11.0116
max_f1 0.4921
max_f1_threshold 11.2187
max_precision 0.6736
max_recall 0.3936
max_ap 0.5012

The following figure depicts f1, recall, and precision on the test data for different thresholds.

The following figure depicts how well matches and mismatches in the test data are separated by the model. For results with a minimum of false positives, a threshold higher than 0.91 is recommended. For the optimal F1 score, the right treshold is 0.9050.

Training Details

Training Dataset

The model was trained on a weakly annotated dataset. The data was taken from Telegram. More specifically from a set of about 200 channels that have been subject to a fact-check from either Correctiv, dpa, Faktenfuchs or AFP.

Weak annotation was performed using GPT-4o. The model was prompted to find semantically identical posts using this prompt. For non-matches the cosine similarity was reduced by 1.2 for training and for matches it was frozen to 0.98.

Unnamed Dataset

  • Size: 51,106 training samples
  • Columns: sentence1, sentence2, and score
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 score
    type string string float
    details
    • min: 41 tokens
    • mean: 154.84 tokens
    • max: 322 tokens
    • min: 32 tokens
    • mean: 133.5 tokens
    • max: 339 tokens
    • min: -1.65
    • mean: nan
    • max: 1.0
  • Samples:
    sentence1 sentence2 score
    Instruct: Retrieve semantically similar text.
    Query: AfD-Chefin Weidel verurteilt Verbot von COMPACT-Magazin NICHT (!) Was ist das für eine Stellungnahme? Der Angriff auf COMPACT ist ein Frontalangriff auf die Presse- und Meinungsfreiheit in diesem Land. Und muss entschieden verurteilt werden. Doch ausgerechnet AfD-Frontfrau Alice Weidel kommt mit einer handzahmen Alibi-Erklärung daher, spricht von einem „unguten Zeichen“ und will „kritisch begleiten“. Was es jetzt von der Bundestags-AfD braucht, ist parlamentarischer Druck, z.B. mit einer Sondersitzung des Innenausschusses. Faeser muss sich dafür verantworten, COMPACT verboten zu haben. Und dafür braucht es keine Alibi-Erklärungen, sondern knallharte Offensive. Schließlich plakatiert die AfD - ebenso, wie es der COMPACT-Leitspruch war - "Mut zur Wahrheit." Und nicht "Wir kuschen vor Faeser und Haldenwang". Übrigens: Björn Höcke hat das Verbot mit deutlichen Worten scharf verurteilt und geht zum Gegenangriff über. Dieser Mann hat es verstanden. FREIE SACHSEN: Folgt uns!
    Paul Klemm: „COMPACT-Verbot ist Anschlag auf den gesamten Widerstand“ Die Journalisten des Compact Magazins betrachten das Verbot ihrer Zeitschrift nicht nur als Attacke gegen sich selbst. Im Gegenteil: Nancy Faeser ziele mit ihrem Versuch auf die gesamte Systemopposition in Deutschland. Das sagt jedenfalls der bisherige TV-Chef von Compact, Paul Klemm, gegenüber AUF1. Die AUF1-Sondersendung „Tag 2 COMPACT-Verbot: So kann es jeden treffen!“ von gestern sehen Sie hier: -1.518102343739742
    Instruct: Retrieve semantically similar text.
    Query: vier Monate vor der allerersten Impfung RKI-Protokoll vom 17. August 2020 - mehr als 4 Monate bevor die erste Impfdosis gespritzt wurde "...wichtiger offener Punkt" RKI-LEAK Pressekonferenz 23.07.2024 🫵 Möge die gesamte Republik mit dem Finger auf Regierungs-Journalisten zeigen! ‼ Karl Lauterbach hat geringes Risiko von Covid absichtlich vor Impfpflicht-Abstimmung nicht kommuniziert Zwei Tage nach erstem Lockdown konnte man Massnahmen schon nicht mehr begründen Komplette Pressekonferenz Österreich: ÖRR berichtet über RKI-Files! "Die Pandemie der Ungeimpften" - Österreich Edition RKI-Files zum Download: Server 1 / Server 2 / Server 3 / Server 4 / Server 5 / Server 6 Danke Bernd Reiser auf telegram auf substack auf youtube auf odyssee auf Twitter .
    ‼ Corona: Nächste Impf-Lüge von Lauterbach aufgedeckt Gegen den Rat des Robert-Koch-Institutes (RKI) hat Bundesgesundheitsminister Karl Lauterbach (SPD) die Deutschen über die Wirkung der Corona-Impfung in Bezug auf Long Covid belogen. Wie aus den jetzt von der Journalistin Aya Velázquez veröffentlichten E-Mails des RKI hervorgeht, hatte der Experten-Rat keine verläßliche Wirkung der Vakzine gegen Long Covid erkannt. Vielmehr hatte er auf Bitten Lauterbachs, diese These wissenschaftlich zu untermauern, im Juli ausdrücklich davon abgeraten, eine solche Behauptung aufzustellen. Zunächst hieß es noch zurückhaltend, aber eindeutig, »die Evidenzlage ist bislang nicht klar«. Link zum Artikel 0.998
    Instruct: Retrieve semantically similar text.
    Query: "Kommunen und Sozialverbände fordern Hilfen für Hitzeschutz Hitzewellen werden durch den Klimawandel immer wahrscheinlicher. Kommunen müssen sich deshalb besser gegen extreme Temperaturen schützen. Es fehlt aber das Geld dafür." ------- Es fehlt mittlerweile das Geld für Hitzeschutz... Quelle
    Heute in Großweitzschen: Die Zukunft unserer Kinder sollte nicht von einer wirtschaftlichen Entwicklung abhängig sein. Die Gemeindeverwaltung Großweitzschen planen die Kindertagesstätte ,,Wirbelwind"in Westewitz zu schließen. Wir müssen die kleinen Dorf-Kitas erhalten. Daher braucht es mehr Flexibilität im starren Kita-System und Geld vom Land, um die Dorf-Kitas zu erhalten. So entlasten wir unsere Gemeinden und schaffen es, dass junge Familien aufs Land ziehen. Mehr Infos gibt es auch hier: Kommt alle heute, den 16.07.2024 in den Versammlungsraum Gallschütz Nr. 13! Gemeinsam versuchen wir diese Entscheidung abzuwenden. Folgt uns bei Telegram, denn wir vernetzen und informieren den Widerstand! Hier geht's zum Kanal: ₂, ! Übersicht Termine einsenden Ländergruppen Alle Spazis Der Kanal, der den Regierenden und Mitmach-Tätern Beine macht ! -0.5582272769313432
  • Loss: AnglELoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "pairwise_angle_sim"
    }
    

Evaluation Dataset

Evaluation was performed on a dataset from the same Telegram channels as the training data. Again, GPT-4o was used to identify matching claims. However, for the test data, trained annotators validated the results and mismatches that were classified as matches by GPT-4o were removed. A ratio of 1:30 was chosen. In other words, for 1 match there are 30 mismatches. This is supposed to reflect a realistic scenario in which there are much more posts that are not identical to a query-post.

Manually checked Telegram Dataset

  • Size: 18,355 evaluation samples
  • Columns: sentence1, sentence2, and label
  • Approximate statistics based on the first 1000 samples:
    sentence1 sentence2 label
    type string string int
    details
    • min: 41 tokens
    • mean: 129.21 tokens
    • max: 391 tokens
    • min: 30 tokens
    • mean: 123.46 tokens
    • max: 379 tokens
    • 0: ~96.50%
    • 1: ~3.50%
  • Samples:
    sentence1 sentence2 label
    Instruct: Retrieve semantically similar text.
    Query: Дорогие подписчики и гости канала! У человека назначенного президентом России и похожего на Владимира Путина обострилось хроническое заболевание почек. В связи с этим под угрозой планы проведения и посещения "Путиным" мероприятий, и совещаний в ближайшие дни.
    Ядерную дубину попова показали на канале Россия 1 Качественная графика , современный дизайн. Да и попов внушительно устрашающий . Подпишись сегодня и узнаешь, что будет завтра В ЧАТ СЮДА🪓 0
    Instruct: Retrieve semantically similar text.
    Query: An alle Maskenbefürworter Schaut Euch dieses Video an, und entscheidet selbst wie Ihr mit Eurer Gesundheit umgehen wollt ! Hier wird die CO2 Konzentration unter der Maske gemessen.
    Das mit den Masken, sozusagen wie einfach es ist Double hinzustellen und die Leute zu verarschen, zu belügen und zu betrügen, zeigte uns schon Stefan Raab. Wahrheit macht frei und Freiheit macht wahr Denk selbst und informiere Dich 0
    Instruct: Retrieve semantically similar text.
    Query: Elementares Bor in flüssiger und ionischer Form ~ hochdosiert mit 3 mg~ Elementares Bor enthält konzentrierte Mineraltropfen (CMD), ein besonderes Meerwasserkonzentrat mit vollem Spektrum an Mineralstoffen und Spurenelementen. Fast vollständig von Natrium befreit, wird es durch Sonnenenergie natürlich konzentriert und mit zusätzlichem Bor in Form von Natriumborat ergänzt. leicht resorbierbar durch die gelöste, ionische Form Meerwasserkonzentrat aus dem Großen Salzsee in Utah, Vereinigte Staaten ideal dosierbar mit Opti-Dose-Tropfer Besonderheiten des Herstellers Vitals: erfüllt höchste Qualitätsanforderungen (ISO 22000) verwendet hochwertige Rohstoffe Nahrungsergänzungsmittel seit 1988 Die bio-apo lebt die ganzheitliche Philosophie schon seit über 25 Jahren. Elementares Bor empfehle ich dir hier Mit dem Code "vital15" schenken wir dir 15% Rabatt.
    Beitrag zu 10 : 05 Ich esse sehr viele Früchte und Zucker , wie meine Grosseltern auch getan haben . Trotzdem hatte Niemand von uns Diabetes . Meine Schwester ist allergisch auf Fruchtzucker und isst auch sonst selten Süsses . Trotzdem hat sie Probleme mit zu hohen Zuckerwerten ! Impfungen und Fertignahrung sind die Hauptursache . Denkt immer daran , dass wir in jedem Bereich angelogen werden . Vitamine wurden auch nie isoliert und diese "Vitaminpräparate" sind Chemie und sehr schädlich , was sich erst Jahre später bemerkbar macht . Übrigens war die Pharmalobby , die schrieb , dass zu wenig Vitamine in Früchte und Gemüse enthalten sei . Damit "Vitaminmittel" überhaupt verkauft werden , muss man ja ein Mangel haben . 0
  • Loss: AnglELoss with these parameters:
    {
        "scale": 20.0,
        "similarity_fct": "pairwise_angle_sim"
    }
    

Training Hyperparameters

Non-Default Hyperparameters

  • eval_strategy: steps
  • per_device_eval_batch_size: 16
  • gradient_accumulation_steps: 8
  • learning_rate: 2e-05
  • num_train_epochs: 2
  • warmup_ratio: 0.1
  • fp16: True
  • push_to_hub: True
  • hub_model_id: Sami92/multiling-e5-large-instruct-claim-matching
  • push_to_hub_model_id: multiling-e5-large-instruct-claim-matching

All Hyperparameters

Click to expand
  • overwrite_output_dir: False
  • do_predict: False
  • eval_strategy: steps
  • prediction_loss_only: True
  • per_device_train_batch_size: 8
  • per_device_eval_batch_size: 16
  • per_gpu_train_batch_size: None
  • per_gpu_eval_batch_size: None
  • gradient_accumulation_steps: 8
  • eval_accumulation_steps: None
  • learning_rate: 2e-05
  • weight_decay: 0.0
  • adam_beta1: 0.9
  • adam_beta2: 0.999
  • adam_epsilon: 1e-08
  • max_grad_norm: 1.0
  • num_train_epochs: 2
  • 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}
  • deepspeed: None
  • label_smoothing_factor: 0.0
  • optim: adamw_torch
  • 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: True
  • resume_from_checkpoint: None
  • hub_model_id: Sami92/multiling-e5-large-instruct-claim-matching
  • hub_strategy: every_save
  • hub_private_repo: False
  • hub_always_push: False
  • gradient_checkpointing: False
  • gradient_checkpointing_kwargs: None
  • include_inputs_for_metrics: False
  • eval_do_concat_batches: True
  • fp16_backend: auto
  • push_to_hub_model_id: multiling-e5-large-instruct-claim-matching
  • 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
  • dispatch_batches: None
  • split_batches: None
  • include_tokens_per_second: False
  • include_num_input_tokens_seen: False
  • neftune_noise_alpha: None
  • optim_target_modules: None
  • batch_eval_metrics: False
  • batch_sampler: batch_sampler
  • multi_dataset_batch_sampler: proportional

Training Logs

Epoch Step Training Loss loss FineTuned_8_max_ap
0 0 - - 0.4155
0.1252 100 3.1911 0.3698 0.4095
0.2504 200 3.0285 0.3700 0.4180
0.3756 300 2.9879 0.3623 0.3774
0.5009 400 2.9907 0.3641 0.4271
0.6261 500 2.9632 0.3441 0.4599
0.7513 600 2.9207 0.3323 0.4447
0.8765 700 2.9043 0.3271 0.5012

Framework Versions

  • Python: 3.10.12
  • Sentence Transformers: 3.0.1
  • Transformers: 4.41.2
  • PyTorch: 2.3.1+cu121
  • Accelerate: 0.32.0
  • Datasets: 2.20.0
  • Tokenizers: 0.19.1

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

AnglELoss

@misc{li2023angleoptimized,
    title={AnglE-optimized Text Embeddings}, 
    author={Xianming Li and Jing Li},
    year={2023},
    eprint={2309.12871},
    archivePrefix={arXiv},
    primaryClass={cs.CL}
}
Downloads last month
573
Safetensors
Model size
560M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for Sami92/multiling-e5-large-instruct-claim-matching

Finetuned
(35)
this model

Evaluation results