🚀 svalabs/german-gpl-adapted-covid
このモデルは、COVID関連のドキュメントに適応させたドイツ語版のsentence-transformersモデルです。HaystackのGPL統合を使用して、COVID関連のドキュメントに適応させています。CrossEncoderにはsvalabs/cross-electra-ms-marco-german-uncasedを、クエリ生成にはsvalabs/mt5-large-german-query-gen-v1を使用しています。
🚀 クイックスタート
このモデルを使用するには、sentence-transformersをインストールする必要があります。以下のコマンドでインストールできます。
pip install -U sentence-transformers
✨ 主な機能
- このモデルは、COVID関連のドキュメントに適応させたドイツ語版のsentence-transformersモデルです。
- HaystackのGPL統合を使用して、COVID関連のドキュメントに適応させています。
📦 インストール
pip install -U sentence-transformers
💻 使用例
基本的な使用法
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(f"{score:0.02f}\t{doc}")
print("Original Model")
show_examples(org_model)
print("\n\nAdapted Model")
show_examples(model)
📚 ドキュメント
評価結果
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
トレーニング
このモデルは以下のパラメータでトレーニングされました。
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
fit()
メソッドのパラメータ:
{
"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
}
モデルの全アーキテクチャ
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})
)