Open3

スパース検索モデル「SPLADE」を日本語で試す

kun432kun432

https://github.com/naver/splade

SPLADE

このリポジトリには、SPLADEモデルのトレーニング、インデックス作成、検索を行うためのコードが含まれています。また、BEIRベンチマークの評価を開始するために必要なすべての内容も含まれています。

TL; DR SPLADEは、BERTのMLMヘッドと疎な正則化により、クエリ/ドキュメントの疎な展開を学習するニューラル検索モデルです。疎な表現は、密なアプローチと比較して、いくつかの利点があります。転置インデックスの効率的な利用、明示的な語彙の一致、解釈可能性などです。また、ドメイン外のデータ(BEIRベンチマーク)に対する汎化にも優れているようです。

ニューラル検索エンジンのトレーニングにおける最近の進歩を活用することで、私たちのv2モデルは、ハードネガティブマイニング、蒸留、より優れた事前学習言語モデルの初期化に依存し、ドメイン内(MS MARCO)およびドメイン外(BEIRベンチマーク)の両方の評価において、その有効性をさらに高めています。

最後に、いくつかの修正(クエリ固有の正則化、独立エンコーダーなど)を導入することで、効率性を向上させ、同じコンピューティング制約下で BM25 と同等のレイテンシを達成することができました。

-(効率的な SPLADE)SPLADE モデルの効率性に関する研究Carlos Lassance および Stéphane Clinchant。SIGIR22 ショートペーパー。

さまざまな設定で学習したモデルの重みは、Hugging Faceと同様に、Naver Labs Europeのウェブサイトでもご覧いただけます。SPLADEは、モデルそのものというよりもモデルのクラスであることを念頭に置いてください。正則化の程度に応じて、異なる特性とパフォーマンスを持つさまざまなモデル(非常に疎なモデルから、クエリ/ドキュメントの拡張を頻繁に行うモデルまで)を得ることができます。

splade: 片側または両側の刃が鋭利なスプーンで、ナイフ、フォーク、スプーンとして使用できます。

kun432kun432

日本語で学習させたモデル

https://huggingface.co/aken12/splade-japanese-v3

https://huggingface.co/hotchpotch/japanese-splade-base-v1

参考

https://secon.dev/entry/2024/10/07/100000/

SPLADE(Sparse Lexical and Expansion Model)は、その名の通りスパース(疎)なベクトルを用いた検索モデルです。スパース検索といえば、長年利用されているBM25が代表的で、高い性能を誇るアルゴリズムとして広く利用されています。しかし、BM25はクエリとドキュメントの単語の完全一致に依存しているため、関連する単語や同義語を含む文書を見逃す可能性があります。

一方、SPLADEはTransformerアーキテクチャを活用して、文脈に基づく関連性の高い単語もベクトルに含めることができます。これにより、完全一致以外の単語も検索候補として取り込むことができ、より柔軟で効果的な検索が可能となります。