モデル概要
モデル特徴
モデル能力
使用事例
🚀 Silver Retriever Base (v1)
Silver Retrieverモデルは、ポーランド語の文章や段落を768次元の密ベクトル空間にエンコードし、ドキュメント検索や意味検索などのタスクに使用できます。
このモデルは、HerBERT-baseモデルから初期化され、PolQAとMAUPQAのデータセットで、バッチサイズ1,024で15,000ステップのファインチューニングが行われました。詳細については、SilverRetriever: Advancing Neural Passage Retrieval for Polish Question Answeringを参照してください。
🚀 クイックスタート
Silver Retriever Base (v1) モデルは、ポーランド語の文章や段落を768次元の密ベクトル空間にエンコードし、ドキュメント検索や意味検索などのタスクに利用できます。以下に、このモデルの使用方法や評価結果などの詳細を説明します。
✨ 主な機能
- ポーランド語の文章や段落を768次元の密ベクトル空間にエンコードします。
- ドキュメント検索や意味検索などのタスクに使用できます。
- HerBERT-baseモデルから初期化され、PolQAとMAUPQAのデータセットでファインチューニングされています。
📦 インストール
sentence-transformers
を使用する場合、以下のコマンドでインストールできます。
pip install -U sentence-transformers
💻 使用例
基本的な使用法
sentence-transformers
を使用した推論の例です。
from sentence_transformers import SentenceTransformer
sentences = [
"Pytanie: W jakim mieście urodził się Zbigniew Herbert?",
"Zbigniew Herbert</s>Zbigniew Bolesław Ryszard Herbert (ur. 29 października 1924 we Lwowie, zm. 28 lipca 1998 w Warszawie) – polski poeta, eseista i dramaturg.",
]
model = SentenceTransformer('ipipan/silver-retriever-base-v1')
embeddings = model.encode(sentences)
print(embeddings)
高度な使用法
sentence-transformers
を使用せず、HuggingFace Transformers
を直接使用する場合の例です。
from transformers import AutoTokenizer, AutoModel
import torch
def cls_pooling(model_output, attention_mask):
return model_output[0][:,0]
# Sentences we want sentence embeddings for
sentences = [
"Pytanie: W jakim mieście urodził się Zbigniew Herbert?",
"Zbigniew Herbert</s>Zbigniew Bolesław Ryszard Herbert (ur. 29 października 1924 we Lwowie, zm. 28 lipca 1998 w Warszawie) – polski poeta, eseista i dramaturg.",
]
# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('ipipan/silver-retriever-base-v1')
model = AutoModel.from_pretrained('ipipan/silver-retriever-base-v1')
# Tokenize sentences
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
# Compute token embeddings
with torch.no_grad():
model_output = model(**encoded_input)
# Perform pooling. In this case, cls pooling.
sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])
print("Sentence embeddings:")
print(sentence_embeddings)
📚 ドキュメント
評価
以下は、各モデルの評価結果です。
モデル | 平均 [Acc] | 平均 [NDCG] | PolQA [Acc] | PolQA [NDCG] | Allegro FAQ [Acc] | Allegro FAQ [NDCG] | Legal Questions [Acc] | Legal Questions [NDCG] |
---|---|---|---|---|---|---|---|---|
BM25 | 74.87 | 51.81 | 61.35 | 24.51 | 66.89 | 48.71 | 96.38 | 82.21 |
BM25 (lemma) | 80.46 | 55.44 | 71.49 | 31.97 | 75.33 | 55.70 | 94.57 | 78.65 |
MiniLM-L12-v2 | 62.62 | 39.21 | 37.24 | 11.93 | 71.67 | 51.25 | 78.97 | 54.44 |
LaBSE | 64.89 | 39.47 | 46.23 | 15.53 | 67.11 | 46.71 | 81.34 | 56.16 |
mContriever-Base | 86.31 | 60.37 | 78.66 | 36.30 | 84.44 | 67.38 | 95.82 | 77.42 |
E5-Base | 91.58 | 66.56 | 86.61 | 46.08 | 91.89 | 75.90 | 96.24 | 77.69 |
ST-DistilRoBERTa | 73.78 | 48.29 | 48.43 | 16.73 | 84.89 | 64.39 | 88.02 | 63.76 |
ST-MPNet | 76.66 | 49.99 | 56.80 | 21.55 | 86.00 | 65.44 | 87.19 | 62.99 |
HerBERT-QA | 84.23 | 54.36 | 75.84 | 32.52 | 85.78 | 63.58 | 91.09 | 66.99 |
Silver Retriever v1 | 92.45 | 66.72 | 87.24 | 43.40 | 94.56 | 79.66 | 95.54 | 77.10 |
Silver Retriever v1.1 | 93.18 | 67.55 | 88.60 | 44.88 | 94.00 | 79.83 | 96.94 | 77.95 |
凡例:
- Acc は、上位10件の正解率です。
- NDCG は、上位10件の正規化割引累積ゲインです。
入力の準備
このモデルは質問と文章のペアで学習されており、学習時と同じ形式の入力を使用すると最適な結果が得られます。
- 質問の先頭に
Pytanie:
というフレーズを追加します。 - 学習用の文章は、
title
とtext
を特殊トークン</s>
で連結したものです。文章にtitle
がない場合でも、</s>
トークンを文章の先頭に付けることが推奨されます。 - 学習時にはドット積を使用しましたが、このモデルはコサイン距離を使用する方が通常はうまく機能します。
モデルのアーキテクチャ
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
🔧 技術詳細
このモデルは、ポーランド語の質問応答タスク向けに開発されたSilver Retrieverモデルです。モデルはHerBERT-baseから初期化され、PolQAとMAUPQAのデータセットで15,000ステップのファインチューニングが行われました。
評価結果から、このモデルは他のポーランド語モデルよりも優れた性能を示し、大規模な多言語モデルとも競争力があることがわかります。
📄 ライセンス
CC BY-SA 4.0
モデルの作成者
このモデルは、Institute of Computer Science, Polish Academy of SciencesのPiotr Rybakによって作成されました。
この研究は、2014–2020 Smart Growth Operational Programmeの一部として、European Regional Development Fundによって支援されたCLARIN — Common Language Resources and Technology Infrastructureプロジェクト(プロジェクト番号: POIR.04.02.00-00C002/19)の一環として行われました。
引用情報
@inproceedings{rybak-ogrodniczuk-2024-silver-retriever,
title = "Silver Retriever: Advancing Neural Passage Retrieval for {P}olish Question Answering",
author = "Rybak, Piotr and
Ogrodniczuk, Maciej",
editor = "Calzolari, Nicoletta and
Kan, Min-Yen and
Hoste, Veronique and
Lenci, Alessandro and
Sakti, Sakriani and
Xue, Nianwen",
booktitle = "Proceedings of the 2024 Joint International Conference on Computational Linguistics, Language Resources and Evaluation (LREC-COLING 2024)",
month = may,
year = "2024",
address = "Torino, Italia",
publisher = "ELRA and ICCL",
url = "https://aclanthology.org/2024.lrec-main.1291",
pages = "14826--14831",
abstract = "Modern open-domain question answering systems often rely on accurate and efficient retrieval components to find passages containing the facts necessary to answer the question. Recently, neural retrievers have gained popularity over lexical alternatives due to their superior performance. However, most of the work concerns popular languages such as English or Chinese. For others, such as Polish, few models are available. In this work, we present Silver Retriever, a neural retriever for Polish trained on a diverse collection of manually or weakly labeled datasets. Silver Retriever achieves much better results than other Polish models and is competitive with larger multilingual models. Together with the model, we open-source five new passage retrieval datasets.",
}







