🛠️

DifyからXinferenceを利用するための環境構築手順-Dify設定編

2024/12/15に公開

前回の記事では、Google CloudのCOS上にXinferenceをインストールする方法を紹介しました。今回はその続きとして、DifyのモデルプロバイダーとしてXinferenceを登録する方法を解説します。

XinferenceをDifyのモデルプロバイダーとして登録するメリット

Difyでは、RAGの仕組みを簡単に構築することができます。RAGの検索精度向上テクニックの一つに、リランキングやハイブリッド検索があります。Difyでこれらの機能を利用するためには、対応したモデルプロバイダーを選択する必要があります。Xinferenceは、リランキングに対応したモデルプロバイダーの一つです。またXinferenceはローカル環境でセルフホストできるため、情報を外部に渡すことなく処理が完結でき、業務上の制約が厳しい環境でも採用がしやすいといえます。

Xinferenceの登録

ではここから具体的なDifyでの設定の手順を解説していきます。

前提

  • Xinferenceがインストールされ、かつ起動していること。
  • Difyが動作するコンテナからXinferenceが動作するコンテナに通信ができること。
  • Difyがインストールされ、かつ起動していること。
  • Difyの管理画面にアクセスできること。
  • Difyはバージョン0.13.2を使用しています。

手順

モデルプロバイダーの選択

Dify開発画面の右上のアカウント名をクリックし、設定画面を開きます。
設定 > モデルプロバイダーを選択し、モデルプロバイダー一覧からxorbits Inferenceを選択し、「+ モデルを追加」をクリックします。

Xinferenceの接続設定

設定項目 補足
Model Type Rerank 今回はリランキング用のモデルを設定したいのでRerankを選びます
Model Name bge-reranker-v2-m3 xinference構築時のlaunchコマンドのオプションで指定したモデル名を設定します。
Server url http://xinference-container:9997 Xinference構築時に設定したDockerコンテナ名およびDockerfileに記載したxinference起動時に指定したポート番号を指定します
Model uid bge-reranker-v2-m3 xinferenceのログに「Model uid: bge-reranker-v2-m3」が出力されているのでその値を設定します

それ以外の値は空白またはデフォルトのままとしていますが、必要に応じて設定します。

保存ボタンを押して設定を保存します。
設定が成功した場合は以下のメッセージが画面右上に表示されます。

もし設定が失敗する場合には画面右上にエラーメッセージが表示されます。その場合は、xinference側のログにエラーを示すメッセージが表示されていないかを確認します。もしxinference側のログに何もメッセージが表示されていないのであれば、Dify側のAPIコンテナ内のログを確認してみてください。

確認

設定が成功すると以下のように、モデルプロバイダー一覧に表示されます。設定を変更する場合、モデルを追加する場合、設定を無効にする場合はここから操作を行います。

Difyでリランキングを使用する

登録したXinferenceのリランキングモデルはDifyでは以下の用途で利用可能です。

  • ナレッジ検索でのベクトル検索結果に対するリランキング
  • ナレッジ検索でのハイブリッド検索結果に対するリランキング
  • Difyスタジオの「知識取得」ノードでの検索設定での詳細設定

今回は、ベクトル検索結果に対するリランキングを例にします。
なお、ナレッジ登録の際にはデータをエンベディングするためのモデルの設定を予め行っておく必要があります。

ナレッジの登録とリランクモデルの設定

ナレッジ > データソースの選択 > テキストの前処理とクリーニング 画面で、リランクモデルを設定している場合は、Rrankモデルにそれが表示されます。今回は前の手順で設定した bge-reranker-v2-m3が表示されます。


設定後、「保存して処理」ボタンを押してエンベディングを開始します。
エンベディングが成功すると、エンベディング済みのドキュメントが作成されるので、そのドキュメントに対する「検索テスト」を実施してみます。

検索テスト

  • まず、ドキュメント画面の左側の「検索テスト」をクリックします。

  • 次にソーステキスト欄右側の「ベクトル検索」ボタンをクリックし、画面右側に検索設定画面が表示され、そこにRerankモデルが表示され有効になっていることを確認します。

  • 検索したいテキスト(RAGアプリケーションではこれがプロンプトに相当します)を入力し「テスト中」ボタンをクリックして検索を実行します。

  • これが正常に動作すれば、リランキングを用いたベクトル検索が行われていることになります。なお、リランキングをオフにして検索すると検索結果が変わるのでそのことからもリランキング有効になっていることを確認することができます。

まとめ

DifyのモデルプロバイダーとしてXinferenceを登録することで、強力なリランキング機能を利用することができます。ぜひXinferenceを活用して、RAGの検索精度を向上させてください。

Discussion