ELSER推論サービス

  1. APIリクエストは、ELSERモデルがまだダウンロードされていない場合、自動的にダウンロードしてデプロイします。
  2. ## リクエスト
  3. `````PUT /_inference/<task_type>/<inference_id>

パスパラメータ

  • <inference_id>
  • (必須、文字列)推論エンドポイントの一意の識別子。
  • <task_type>
  • (必須、文字列)モデルが実行する推論タスクのタイプ。
    利用可能なタスクタイプ:
    • sparse_embedding.

リクエストボディ

  • service
  • (必須、文字列)指定されたタスクタイプに対してサポートされるサービスのタイプ。この場合、elser
  • service_settings
  • (必須、オブジェクト)推論モデルをインストールするために使用される設定。
    これらの設定はelserサービスに特有です。
    • num_allocations
    • (必須、整数)このモデルが機械学習ノード全体に割り当てられる合計数。 この値を増やすと、一般的にスループットが増加します。
    • num_threads
    • (必須、整数)推論中に各モデル割り当てによって使用されるスレッドの数を設定します。 これは一般的に各推論リクエストの速度を増加させます。 推論プロセスは計算に依存するプロセスです; threads_per_allocationsはノードごとに利用可能な割り当てられたプロセッサの数を超えてはなりません。 2の累乗でなければなりません。 最大許可値は32です。

ELSERサービスの例

以下の例は、my-elser-modelという推論エンドポイントを作成してsparse_embeddingタスクタイプを実行する方法を示しています。 詳細については、ELSERモデルのドキュメントを参照してください。

以下のリクエストは、ELSERモデルがまだダウンロードされていない場合、自動的にダウンロードし、その後モデルをデプロイします。

Python

  1. resp = client.inference.put(
  2. task_type="sparse_embedding",
  3. inference_id="my-elser-model",
  4. inference_config={
  5. "service": "elser",
  6. "service_settings": {
  7. "num_allocations": 1,
  8. "num_threads": 1
  9. }
  10. },
  11. )
  12. print(resp)

Js

  1. const response = await client.inference.put({
  2. task_type: "sparse_embedding",
  3. inference_id: "my-elser-model",
  4. inference_config: {
  5. service: "elser",
  6. service_settings: {
  7. num_allocations: 1,
  8. num_threads: 1,
  9. },
  10. },
  11. });
  12. console.log(response);

コンソール

  1. PUT _inference/sparse_embedding/my-elser-model
  2. {
  3. "service": "elser",
  4. "service_settings": {
  5. "num_allocations": 1,
  6. "num_threads": 1
  7. }
  8. }

例の応答:

コンソール-結果

  1. {
  2. "inference_id": "my-elser-model",
  3. "task_type": "sparse_embedding",
  4. "service": "elser",
  5. "service_settings": {
  6. "num_allocations": 1,
  7. "num_threads": 1
  8. },
  9. "task_settings": {}
  10. }

Kibanaコンソールを使用しているときに502 Bad Gatewayエラーが応答に表示されることがあります。このエラーは通常、バックグラウンドでモデルがダウンロードされている間のタイムアウトを反映しています。 マシンラーニングUIでダウンロードの進行状況を確認できます。 Pythonクライアントを使用している場合、timeoutパラメータをより高い値に設定できます。