スパース検索モデル「SPLADE」を日本語で試す
SPLADE
このリポジトリには、SPLADEモデルのトレーニング、インデックス作成、検索を行うためのコードが含まれています。また、BEIRベンチマークの評価を開始するために必要なすべての内容も含まれています。
TL; DR SPLADEは、BERTのMLMヘッドと疎な正則化により、クエリ/ドキュメントの疎な展開を学習するニューラル検索モデルです。疎な表現は、密なアプローチと比較して、いくつかの利点があります。転置インデックスの効率的な利用、明示的な語彙の一致、解釈可能性などです。また、ドメイン外のデータ(BEIRベンチマーク)に対する汎化にも優れているようです。
- (v1、SPLADE)SPLADE:ファーストステージランキングのための疎な語彙および拡張モデル, Thibault Formal, Benjamin Piwowarski and Stéphane Clinchant。SIGIR21ショートペーパー。
ニューラル検索エンジンのトレーニングにおける最近の進歩を活用することで、私たちのv2モデルは、ハードネガティブマイニング、蒸留、より優れた事前学習言語モデルの初期化に依存し、ドメイン内(MS MARCO)およびドメイン外(BEIRベンチマーク)の両方の評価において、その有効性をさらに高めています。
- (v2、SPLADE v2) SPLADE v2: 情報検索のための疎な語彙および拡張モデル、Thibault Formal, Benjamin Piwowarski, Carlos Lassance, and Stéphane Clinchant。 arxiv。
- (v2bis、SPLADE++) 蒸留からハードネガティブサンプリングへ:疎なニューラル情報検索モデルをより効果的に、Thibault Formal, Carlos Lassance, Benjamin Piwowarski, and Stéphane Clinchant。 SIGIR22ショートペーパー(SPLADE v2 の拡張)。
最後に、いくつかの修正(クエリ固有の正則化、独立エンコーダーなど)を導入することで、効率性を向上させ、同じコンピューティング制約下で BM25 と同等のレイテンシを達成することができました。
-(効率的な SPLADE)SPLADE モデルの効率性に関する研究、Carlos Lassance および Stéphane Clinchant。SIGIR22 ショートペーパー。
さまざまな設定で学習したモデルの重みは、Hugging Faceと同様に、Naver Labs Europeのウェブサイトでもご覧いただけます。SPLADEは、モデルそのものというよりもモデルのクラスであることを念頭に置いてください。正則化の程度に応じて、異なる特性とパフォーマンスを持つさまざまなモデル(非常に疎なモデルから、クエリ/ドキュメントの拡張を頻繁に行うモデルまで)を得ることができます。
splade: 片側または両側の刃が鋭利なスプーンで、ナイフ、フォーク、スプーンとして使用できます。
日本語で学習させたモデル
参考
SPLADE(Sparse Lexical and Expansion Model)は、その名の通りスパース(疎)なベクトルを用いた検索モデルです。スパース検索といえば、長年利用されているBM25が代表的で、高い性能を誇るアルゴリズムとして広く利用されています。しかし、BM25はクエリとドキュメントの単語の完全一致に依存しているため、関連する単語や同義語を含む文書を見逃す可能性があります。
一方、SPLADEはTransformerアーキテクチャを活用して、文脈に基づく関連性の高い単語もベクトルに含めることができます。これにより、完全一致以外の単語も検索候補として取り込むことができ、より柔軟で効果的な検索が可能となります。
SPLADEとは関係ないけど、BAAI/bge-m3でもsparse vectorは生成できる。というか、Dense/Sparse/Multi-vector(ColBERT)を個別・組み合わせの全部ができる。
以前試した際には単純なdense retrievalでしか試せてないので、こちらも改めて確認してみるつもり。