--- 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](https://www.SBERT.net) model: It is adapted on covid related documents using the [GPL](https://github.com/UKPLab/gpl) integration of [Haystack](https://github.com/deepset-ai/haystack). We used the [svalabs/cross-electra-ms-marco-german-uncased](https://huggingface.co/svalabs/cross-electra-ms-marco-german-uncased) as CrossEncoder and [svalabs/mt5-large-german-query-gen-v1](https://huggingface.co/svalabs/mt5-large-german-query-gen-v1) for query generation. ## Usage (Sentence-Transformers) Using this model becomes easy when you have [sentence-transformers](https://www.SBERT.net) installed: ``` pip install -U sentence-transformers ``` Then you can use the model like this: ```python 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": "", "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