bavincSVA's picture
Update README.md
1d77df9
metadata
pipeline_tag: sentence-similarity
tags:
  - sentence-transformers
  - feature-extraction
  - sentence-similarity
  - transformers

svalabs/german-gpl-adapted-covid

This is a german on covid adapted sentence-transformers model: It is adapted on covid related documents using the GPL integration of Haystack. We used the svalabs/cross-electra-ms-marco-german-uncased as CrossEncoder and svalabs/mt5-large-german-query-gen-v1 for query generation.

Usage (Sentence-Transformers)

Using this model becomes easy when you have sentence-transformers installed:

pip install -U sentence-transformers

Then you can use the model like this:

from sentence_transformers import SentenceTransformer, util
from transformers import AutoTokenizer, AutoModel


org_model = SentenceTransformer("sentence-transformers/msmarco-distilbert-multilingual-en-de-v2-tmp-trained-scratch")
org_model.max_seq_length = max_seq_length

model = SentenceTransformer('svalabs/german-gpl-adapted-covid')

def show_examples(model):
    query = "Wie wird Covid-19 übermittelt"
    docs = [
        "Corona ist sehr ansteckend",
        "Corona wird über die Luft verbreitet",
        "Ebola wird durch direkten Kontakt mit Blut übertragen",
        "HIV wird durch Sex oder den Austausch von Nadeln übertragen",
        "Polio wird durch kontaminiertes Wasser oder Lebensmittel übertragen",
    ]

    query_emb = model.encode(query)
    docs_emb = model.encode(docs)
    scores = util.dot_score(query_emb, docs_emb)[0]
    doc_scores = sorted(zip(docs, scores), key=lambda x: x[1], reverse=True)

    print("Query:", query)
    for doc, score in doc_scores:
        # print(doc, score)
        print(f"{score:0.02f}\t{doc}")
        
        
print("Original Model")
show_examples(org_model)

print("\n\nAdapted Model")
show_examples(model)

Evaluation Results

Original Model
Query: Wie wird Covid-19 übermittelt
33.01	HIV wird durch Sex oder den Austausch von Nadeln übertragen
32.78	Polio wird durch kontaminiertes Wasser oder Lebensmittel übertragen
29.10	Corona wird über die Luft verbreitet
24.41	Ebola wird durch direkten Kontakt mit Blut übertragen
10.85	Corona ist sehr ansteckend


Adapted Model
Query: Wie wird Covid-19 übermittelt
29.82	Corona wird über die Luft verbreitet
27.44	Polio wird durch kontaminiertes Wasser oder Lebensmittel übertragen
24.89	Ebola wird durch direkten Kontakt mit Blut übertragen
23.81	HIV wird durch Sex oder den Austausch von Nadeln übertragen
20.03	Corona ist sehr ansteckend

Training

The model was trained with the parameters:

DataLoader:

torch.utils.data.dataloader.DataLoader of length 125 with parameters:

{'batch_size': 16, 'sampler': 'torch.utils.data.sampler.RandomSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}

Loss:

sentence_transformers.losses.MarginMSELoss.MarginMSELoss

Parameters of the fit()-Method:

{
    "epochs": 1,
    "evaluation_steps": 0,
    "evaluator": "NoneType",
    "max_grad_norm": 1,
    "optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
    "optimizer_params": {
        "lr": 2e-05
    },
    "scheduler": "WarmupLinear",
    "steps_per_epoch": null,
    "warmup_steps": 12,
    "weight_decay": 0.01
}

Full Model Architecture

SentenceTransformer(
  (0): Transformer({'max_seq_length': 200, 'do_lower_case': False}) with Transformer model: DistilBertModel 
  (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})
)

Citing & Authors