readme: ---
  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.
  
  
  <!--- Describe your model here -->
  
  ## 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": "<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
  
  <!--- Describe where people can find more information -->