0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DityのRerank設定について

Posted at

はじめに

DifyでRAGを使う場合、検索設定を次の3つから選択することになります。

  • ベクトル検索
  • 全文検索
  • ハイブリッド検索

ハイブリッド検索とは文字通り、ベクトル検索と全文検索とをハイブリッドで行うため、こちらの方が精度が高くなります。ハイブリッド検索が推奨値となります。そして、ハイブリッド検索を選択すると、次に「ウェイト設定」と「Rerankモデル」が選択できるようになります。

image.png

ウェイト設定

ウェイト設定のウェイトとは重みのことです。なぜか訳を「重み設定」とせずに「ウェイト設定」と訳しています。何のウェイトかといえば、ベクトル検索で使われる「セマンティック優先度」と、全文検索で使われる「キーワード優先度」のこととなります。単にベクトル検索と全文検索を行うだけでなく、ウェイトを考慮した上で検索した方が、精度をあげることができます。

セマンティック優先度とキーワード優先度の重みの付け方は諸刃の剣です。つまり、セマンティック優先度を高く設定すれば、キーワード優先度は低くなり、逆にセマンティック優先度を低く設定すれば、キーワード優先度は高くなります。

どの程度の重み加減にするといい塩梅になるのかついては、少し話が難しくなりそうです。

Rerank設定

精度をよくしたい場合は、「ウェイト設定」ではなく「Rerank設定」をすることになります。ウェイト設定よりもRerank設定の方が検索の精度が高くなります。Rerank設定にすれば、重みを付けたハイブリッド検索は行ってくれないが、その代わりに、再順位付けを行うようになります。

Rerank設定の場合、Rerank専用のモデルを別途指定する必要があります。プルダウンメニューからRerankモデルの一覧が表示されない場合は、Rerank用のモデルのAPI-KEY設定ができていません。

OpenAIのAPI-KEY設定を行っただけでは、Rerank用のモデルは使えるようになりません。OpenAIはそもそも、Rerank用のモデルを提供していないためです。新たに、Rerank用のモデルを提供しているプロバイダーからAPI-KEYを取得して設定する必要があります。

どこのプロバイダーがRerank用のモデルを提供しているのかについては、下記の赤線部分を見れば分かります。

image.png

提供しているプロバイダーの数はそれ程多くはありません。迷ったならCohereを選択するといいようです。Cohereが提供しているモデルが一番精度が高くて有名なためです。Cohereのモデルは無償で提供されています。

image.png

「rerank-v3.5」は最新のモデルでv3.0よりも精度が上がっています。推論が強化されているようで、多言語にも対応しています。100以上の言語に対応しており、当然日本語にも対応しています。最新のモデルで試した場合は「rerank-v3.5」を選択することになります。

Cohereとは

RAGを使うにあたって、なぜ、Rerank用のモデルが必要になるのかといわれれば、LLMのモデルだけでは高い精度が担保できないためです。LLMにはハルシネーション(幻覚)を発生させる弱点を持っています。LLMのモデルに更にRerankのモデルを組み合わせることで、ハルシネーションを抑制することができるようになります。

CohereはOpenAIほど知名度は高くはないが、カナダに拠点を持つスタートアップ企業で、特にRAGに向けたモデルの開発に力を入れています。また、OracleやNVIDIAなどが出資しており、OpenAIの有力なライバルと目されているようです。

埋め込みモデルとは(補足)

RAGを使う場合、LLMとは別に埋め込みモデルを選択することになります。Rankモデルともまた異なります。埋め込みモデルはデータを数値ベクトルに変換する際に利用されるモデルです。

OpenAIのAPI-KEYを登録すると3つの埋め込みモデルが選択できるようになります。

image.png

CohereのAPI-KEYを登録すると7つの埋め込みモデルが選択できるようになります。

image.png

OpenAIの埋め込みモデルは、「ada-002 → small → large」とバージョンアップしていっているようで、largeが一番性能がいいことになります。どれを選択したらいいか迷った場合は、largeをとりあえず選択しておけば問題ないかと思います。ただし、largeの場合、1Kトークンあたり$0.00013のコストがかかり、smallの場合は、 1Kトークンあたり$0.00002コストがかかることになります。

Cohereではナレッジで読み込みデータが英語である場合は「embed-english-v3.0」を選択し、英語以外であれば「embed-multilingual-v3.0」を選択します。日本語であれば「embed-multilingual-v3.0」を選択することになります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?