テキスト埋め込みプロバイダーの設定
7.4 U70+ ベータ機能
テキスト埋め込みプロバイダーには 2 つの役割があります。
- インデックス時に、指定されたモデルを使用して、インデックス ドキュメントのフィールドから抽出されたテキスト サンプルのテキスト埋め込み表現を作成します。
- 検索時に、指定されたモデルを使用して、検索バーに入力された検索フレーズのテキスト埋め込み表現を作成します。
使用するモデルが最も重要です。ベクトル化されたデータの品質は、選択したモデルの品質によって決まります。
選択したモデルは、検索フレーズのテキスト埋め込みとドキュメントのテキスト埋め込みの 類似性検索 も実行します。 モデルは、Hugging Face 埋め込みサービスと txtai のために Hugging Face に格納されています。 OpenAI には、埋め込みプロバイダーとして OpenAI を使用している場合に選択できる事前トレーニング済みのモデルもあります。
| テキスト埋め込みプロバイダー | 生産に適していますか? |
|---|---|
| Hugging Face Inference API | ✘ |
| ハグフェイス推論エンドポイント | ✔ |
| Liferay DXP 2024.Q4+/Portal GA129+ OpenAI | ✔ |
| txtai | ✔ |
txtaiの設定と実行
ここでの txtai 構成はデモンストレーションを目的としています。 詳細については、 txtai ドキュメント をお読みください。
txtai を設定して API にアクセスします。 txtai を docker コンテナで実行するには、 txtai ドキュメント を参照するか、Linux の場合は次の基本手順に従ってください。
-
txtaiフォルダを作成し、そこにcdします。 -
txtaiフォルダから、以下のDockerfileをダウンロードします。curl https://raw.githubusercontent.com/neuml/txtai/master/docker/api/Dockerfile -O -
config.ymlファイルをtxtaiフォルダに作成し、次の最小限の内容を追加します。path: /tmp/index writable: False embeddings: path: sentence-transformers/msmarco-distilbert-base-dot-prod-v3重要選択したモデル が埋め込みパスに入力されます。
-
txtaiフォルダから実行
docker build -t txtai-api . -
コンテナを起動します。
docker run -p 8000:8000 --rm -it txtai-apiモデルのサイズによっては、サービスの初期化に数分かかる場合があります。
-
Liferayで、 グローバルメニュー (
)→ コントロールパネル → インスタンス設定を開きます。 検索 カテゴリで、 セマンティック検索をクリックします。- テキスト埋め込みの有効化 を trueに設定します。
- テキスト埋め込みプロバイダーとして txtai を選択します。
- ホストアドレスとして
ip:portを入力します。 テストのセットアップに従ってローカルの Liferay インスタンスを実行する場合は、localhost:8000を使用します。 - 上記のテスト設定に従った場合は、Basic Auth ユーザー名と Basic Auth パスワードをデフォルト値のままにします。
- 埋め込みベクトル次元はデフォルト値 (768) のままにします。
重要埋め込みベクトルの次元は、構成されたモデルの次元と一致する必要があります。 モデルは、
config.ymlファイルを使用して txtai で指定されます。 適切な次元数を構成するには、モデルのドキュメントを参照してください。
設定を保存する前に、 「設定のテスト」 をクリックして、Liferay が txtai サーバーに接続でき、設定が正しいことを確認します。
この例の設定はデモンストレーションを目的としています。 ニーズを満たす設定を見つけるには、 txtai ドキュメント を参照してください (たとえば、パフォーマンスを向上させるために GPU コンテナー を実行するなど)。
ハグフェイス推論APIの使用
Hugging Face Inference API はテストと開発に適しています。 Hugging Face を本番環境のテキスト埋め込みプロバイダーとして使用するには、 Hugging Face 推論エンドポイント プロバイダーを使用します。
Hugging Face Inference API を使用するには、まず Hugging Face アカウントを作成します。
アカウントを作成したら、
-
Hugging Face アカウント設定に移動し、アクセス トークンをコピーします。
-
Liferayで、 グローバルメニュー (
)→ コントロールパネル → インスタンス設定を開きます。 検索 カテゴリで、 セマンティック検索をクリックします。テキスト埋め込みプロバイダーとして Hugging Face Inference API を選択し、コピーしたアクセス トークンを入力します。
-
https://huggingface.co/models?pipeline_tag=feature-extractionのリストからモデルの 1 つを選択します。
-
モデルのタイトルとしてモデル名を入力します。
-
選択したモデルに合わせて適切な数の埋め込みベクトル次元を入力します。
重要埋め込みベクトルの次元は、構成されたモデルの次元と一致する必要があります。
-
必要に応じて、その他の Hugging Face 設定を構成します。
モデルのタイムアウト: タイムアウトする前にモデルの読み込みを待機する時間 (秒単位) を設定します。 時間のかかるモデルの繰り返し読み込みを避けるために、Hugging Face モデルをメモリに固定することができます。
設定を保存する前に、 「設定のテスト」 ボタンをクリックして、Liferay が Hugging Face Inference API に接続できること、および設定が正しいことを確認します。
ハグフェイス推論エンドポイントの使用
Hugging Face Inference Endpoints サービスは、Hugging Face が提供するエンタープライズ グレードの有料テキスト埋め込みサービスです。 セマンティック検索ソリューションをテストおよび開発するときには、 推論 APIを使用できます。
セットアップのほとんどはHugging Faceで完了します。 推論APIを設定したら、
-
Hugging Face アカウント設定に移動し、アクセス トークンをコピーします。
-
Liferayで、 グローバルメニュー (
)→ コントロールパネル → インスタンス設定を開きます。 検索 カテゴリで、 セマンティック検索をクリックします。テキスト埋め込みプロバイダーとして Hugging Face Inference Endpoints を選択し、コピーしたアクセス トークンを入力します。
-
ホストアドレスを入力します。
-
選択したモデルに合わせて適切な数の埋め込みベクトル次元を入力します。
重要埋め込みベクトルの次元は、構成されたモデルの次元と一致する必要があります。
設定を保存する前に、 「設定のテスト」 ボタンをクリックして、Liferay が Hugging Face Inference Endpoint に接続できること、および設定が正しいことを確認します。
OpenAIの使用
Liferay DXP 2024.Q4+/ポータル GA129+
OpenAI をセマンティック検索のテキスト埋め込みプロバイダーとして設定できます。 API キーを取得すると、その 埋め込みモデル をセマンティック検索で使用できるようになります。
OpenAIを設定してAPIキーを取得したら、
-
Liferayで、 グローバルメニュー (
)→ コントロールパネル → インスタンス設定を開きます。 検索 カテゴリで、 セマンティック検索をクリックします。 -
テキスト埋め込みプロバイダーとして OpenAI を選択します。
-
OpenAI に必要なフィールドが表示されます。 設定フォームに記入してください。
API キー: OpenAI から取得します。
次元: 結果の出力の次元数。 選択したモデルによって、これが必要かどうか、および許容される値が定義されます。 これは、モデルの出力の次元を削減するための、 OpenAI へのリクエスト時の指示です。 このプロパティをサポートしていないモデルに渡すと、警告が表示されます: このモデルはディメンションの指定をサポートしていません。 設定する寸法については、 OpenAI モデルを参照してください。
モデル: OpenAIからモデルを選択します。
ユーザー: OpenAI が不正使用のリクエストを監視できるように、一意のユーザー ID を入力します。 詳細については、 OpenAI のドキュメント を参照してください。
選択したモデルに合わせて、適切な数の埋め込みベクトル寸法を入力します。
埋め込みベクトルの次元
埋め込みベクトルの次元はモデル固有の設定です。 有効なディメンションについては、埋め込みモデルのドキュメントを参照してください。 検索エンジンに適したディメンションのモデルを選択してください。
| 検索エンジン | 最大寸法 |
|---|---|
| Elasticsearch 8.10 以下 | 2048 |
| Elasticsearch 8.11以降 | 4096 |
| OpenSearch 2.12以降 | 4096 |