Sarashina3 rerank: 日本語検索に指示付きリランキングを導入する

こんにちは、自然言語処理チームの李聖哲です。

本記事では、新たにAPI提供を開始する Sarashina3 rerank についてご紹介します。

Sarashina3 rerankは、ベクトル検索やキーワード検索で取得した候補文書を、クエリとの関連度に基づいて並べ替えるリランキングモデルです。検索システムやRAGにおいて、ユーザーに提示する文書やLLMに渡す文書を選び直す後段処理としての活用を想定しています。

TL;DR

  • Sarashina3 rerankは、検索で取得した候補文書をクエリとの関連度に基づいてリランキングするモデルです。検索システムやRAGの後段で、ユーザーやLLMに渡す候補文書を整理する用途を想定しています。
  • リランキング時の指示設定に対応していることを特徴とした日本語リランカーで、定型指示に加えて、用途に応じた独自の指示文を指定できます。
  • 公開ベンチマークでは、既存のSOTA日本語リランカーと同水準の性能を示しています。

Rerankとは

大規模な文書集合から情報を探す場合、まずベクトル検索やキーワード検索を使って、関連しそうな候補文書を高速に取得することが一般的です。一方で、この段階では「キーワードは近いが、実際には欲しい情報が含まれていない文書」や「表記は似ているが、文脈が異なる文書」が含まれることがあります。Rerankは、こうした候補文書をクエリとの関連度に基づいて再評価し、より適切な順序に並べ替える処理です。

ユーザーのクエリ
  ↓
ベクトル検索 / キーワード検索
  ↓
候補文書を取得
  ↓
Rerankでリランキング
  ↓
上位文書をユーザーまたはLLMに提示

RAGシステムでは、リランキング後の上位文書をLLMに渡すことで、回答生成に使われるコンテキストを調整できます。

Sarashina3 rerankの特徴

Sarashina3 rerankは、1つのクエリと複数の候補文書を入力として受け取り、それぞれの文書に対して関連度スコアを出力するリランキングAPIです。出力はスコアの降順に並べ替えられるため、検索の後段で、よりクエリとの関連度が高い文書に絞る用途に利用できます。

モデルはSB IntuitionsのModernBERT-Ja-1.4Bをベースとしており、入力長は、クエリのトークン数と候補文書中で最も長い文書のトークン数の合計が8,192トークン以内となるように設計されています。また、APIでは、1回のリクエストで扱える候補ドキュメント数は最大20件です。

指示付きリランキング

Sarashina3 rerankの特徴のひとつは、リランキング時の指示設定に対応している点です。

本モデルでは、あらかじめ用意された定型指示を選ぶことも、CUSTOMIZE モードで独自の指示文を指定することもできます。定型指示としては、一般検索、QA、ニュース検索、意味的類似度評価などの用途に対応しています。

タスクタイプ 指示の種類
GENERAL_RETRIEVAL 一般的な検索クエリに関連する文書取得のための定型指示
GENERAL_QA 質問に回答する文書を検索するための定型指示
NEWS_RETRIEVAL ニュース記事関連の文書取得のための定型指示
SEMANTIC_SIMILARITY テキスト同士の意味的類似度評価のための定型指示
CUSTOMIZE 特定用途に合わせてユーザーが設定する独自指示

検索タスクでは、「関連している」と判断する基準が用途によって異なります。Sarashina3 rerankでは、定型指示または独自の指示を通じて、用途ごとの評価軸をリランキングに反映できます。たとえば、学術論文検索では次のような指示を与えることができます。

学術論文のタイトルに合った論文の内容を検索してください。

このように指示を与えることで、単なるキーワード一致ではなく、用途に合った文書を優先するようなリランキングを行えます。FAQ検索、ECサイトの商品検索、学術論文検索、社内文書検索など、ドメインごとに「良い検索結果」の定義が異なる場面での活用が考えられます。

性能評価

Sarashina3 rerankのベンチマーク評価結果を以下に示します。比較対象として、既存のSOTA日本語リランカーであるcl-nagoya/ruri-v3-reranker-310mなどを掲載しています。

評価には、日本語テキスト埋め込みベンチマークJMTEBに含まれるESCIJaCWIRJQaRAMIRACLMLDRの5タスクを用いました。これらは商品検索、Web検索、QA検索、長文検索など、性質の異なるリランキングタスクを含んでいます。なお、JMTEBは埋め込みモデルの評価にも用いられますが、本評価ではクエリと候補文書を別々にベクトル化して類似度を計算する (Siamese Network) のではなく、クエリと候補文書をペアとしてモデルに入力し、その関連度スコアを用いて (Cross Encoder) 評価しています。

モデル 指示による最適化 Avg. ESCI JaCWIR JQaRA MIRACL MLDR
BAAI/bge-reranker-v2-m3 No 88.51 93.50 95.51 67.84 90.18 95.51
hotchpotch/japanese-bge-reranker-v2-m3-v1 No 88.97 93.61 95.69 69.78 90.08 95.69
cl-nagoya/ruri-v3-reranker-310m No 93.56 93.62 97.38 86.95 93.45 96.38
Sarashina3 rerank Yes 93.08 93.67 97.13 85.79 92.61 96.20

Sarashina3 rerankは、評価対象のベンチマークにおいて既存のSOTA日本語リランカーと同水準の性能を示しています。

また、日本語リランカーの評価にはまだ課題があります。現状では実務利用に近い評価タスクが少なく、一部の公開タスクはWikipedia由来のデータに依存しています。加えて、既存の評価タスクではモデル間のスコア差が小さくなっており、実運用での使いやすさやドメイン適応性の違いを十分に見分けにくい可能性があります。そのため、上記のスコアはモデルの性質を把握するための参考値として捉えるのが適切です。実運用を想定する場合には、公開ベンチマークだけでなく、対象ドメインの文書、検索クエリ、RAGの回答品質などを用いて評価することが重要です。

使用例

次に、Sarashina3 rerankの利用イメージを2つ紹介します。

例1: RAGシステムにおける候補文書のリランキング

たとえば、次のようなクエリを考えます。

Sarashinaのテキスト埋め込みモデルはありますか?

候補文書は次の3件です。

0: 更級日記は、平安時代中期に菅原孝標女によって書かれた回想録です。
1: サラシナエンベディングは日本語言語モデルをベースにした日本語埋め込みモデルです。
2: Sarashinaは、SB Intuitionsが開発した日本語大規模言語モデルです。

GENERAL_RETRIEVAL を指定してリランキングすると、次のような順序になります。

[
  {"document_id": 1, "score": 0.9987583},
  {"document_id": 2, "score": 0.9919946},
  {"document_id": 0, "score": 0.6058235}
]

この例では、「サラシナエンベディング」について説明している文書1が最上位に配置されています。文書2は、同じ会社が開発したLLMであるSarashinaについて説明しているためクエリと一定の関連がありますが、テキスト埋め込みモデルそのものの説明ではないため、文書1より低いスコアになっています。一方で、「更級日記」に関する文書0は表記としては似ていますが、クエリの意図とは異なるため、相対的に低いスコアになっています。

例2: 指示によってリランキング結果を変える

次に、同じクエリと候補文書に対して、指示を変える例を考えます。ここでは、ログデータを外部サービスに送信して分析したい場面を想定します。 クエリ:

ログデータを外部サービスに送信して分析したい

候補文書は次の4件です。

0: 外部分析サービスにログデータを送信する場合は、APIキーを発行し、HTTPSエンドポイントにJSON形式でイベントログを送信します。送信前に必須フィールド、タイムスタンプ、ユーザーIDの形式を確認してください。
1: ログデータに個人情報が含まれる場合は、外部サービスへの送信前に利用目的、保存期間、委託先の管理体制を確認する必要があります。必要に応じて匿名化やマスキングを行い、社内の承認フローに従ってください。
2: 分析ダッシュボードでは、送信されたログをもとにユーザー数、クリック率、エラー率などを可視化できます。期間やイベント種別でフィルタリングし、サービス改善に役立てることができます。
3: ログデータは、アプリケーションの動作状況やユーザー操作を記録したデータです。障害調査、利用状況の把握、機能改善など、さまざまな目的で活用されます。

たとえば、エンジニア向けにリランキングしたい場合は、次のような指示を指定できます。

エンジニア向けの文書を優先してください。

この場合、APIキー、HTTPSエンドポイント、JSON形式など、実装に必要な情報を説明している文書0が最上位になります。

[
  {"document_id": 0, "score": 0.9999995232},
  {"document_id": 1, "score": 0.9999942780},
  {"document_id": 2, "score": 0.9996356964},
  {"document_id": 3, "score": 0.9969851375}
]

一方で、法務担当者向けにリランキングしたい場合は、次のような指示を指定できます。

法務担当者向けの文書を優先してください。

この場合、個人情報の取り扱い、保存期間、委託先の管理体制、匿名化、社内承認について説明している文書1が最上位になります。

[
  {"document_id": 1, "score": 0.9999679327},
  {"document_id": 0, "score": 0.9999588728},
  {"document_id": 2, "score": 0.9850180745},
  {"document_id": 3, "score": 0.9355987906}
]

この例では、文書0と文書1はどちらも「ログデータを外部サービスに送信して分析したい」というクエリに強く関連しているため、どちらの指示でも高いスコアになっています。一方で、指示を変えることで、エンジニア向けでは実装に必要な情報を含む文書0が、法務担当者向けでは個人情報の取り扱いや社内承認に関する情報を含む文書1が最上位になっています。

このように、同じクエリと候補文書であっても、誰に向けた文書を優先したいかによって、上位に来る文書は変わります。用途に応じた独自の指示文を与えることで、検索結果の並び順をより目的に合わせやすくなります。

おわりに

本記事では、API提供を開始するSarashina3 rerankについて紹介しました。

Sarashina3 rerankにより、検索システムやRAGの後段で、用途に応じたリランキングをAPIとして組み込みやすくなります。特に、定型指示に加えて独自の指示文を指定できるため、FAQ検索、商品検索、学術論文検索、社内文書検索など、ドメインごとに異なる検索意図や重視したい観点を反映しやすい点が特徴です。

今後は、モデルの改善に加えて、ドメインごとの指示文の設計や、検索システム・RAG全体における回答品質への影響を検証していきます。その知見をもとに、日本語検索やRAGの実用的な品質向上に向けて、モデル開発と評価方法の整備に取り組みます。

プロジェクトメンバー(五十音順)

  • 小川隼斗 (※ インターン生)
  • 福地成彦
  • 李聖哲