ELSER推論サービス
APIリクエストは、ELSERモデルがまだダウンロードされていない場合、自動的にダウンロードしてデプロイします。
## リクエスト
`````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
resp = client.inference.put(
task_type="sparse_embedding",
inference_id="my-elser-model",
inference_config={
"service": "elser",
"service_settings": {
"num_allocations": 1,
"num_threads": 1
}
},
)
print(resp)
Js
const response = await client.inference.put({
task_type: "sparse_embedding",
inference_id: "my-elser-model",
inference_config: {
service: "elser",
service_settings: {
num_allocations: 1,
num_threads: 1,
},
},
});
console.log(response);
コンソール
PUT _inference/sparse_embedding/my-elser-model
{
"service": "elser",
"service_settings": {
"num_allocations": 1,
"num_threads": 1
}
}
コンソール-結果
{
"inference_id": "my-elser-model",
"task_type": "sparse_embedding",
"service": "elser",
"service_settings": {
"num_allocations": 1,
"num_threads": 1
},
"task_settings": {}
}
Kibanaコンソールを使用しているときに502 Bad Gatewayエラーが応答に表示されることがあります。このエラーは通常、バックグラウンドでモデルがダウンロードされている間のタイムアウトを反映しています。 マシンラーニングUIでダウンロードの進行状況を確認できます。 Pythonクライアントを使用している場合、timeout
パラメータをより高い値に設定できます。