メインコンテンツまでスキップ

Recall Rate を調整する

Zilliz Cloud は、検索の Recall Rate とパフォーマンスのバランスを取るための検索パラメーター level を提供しています。また、現在の検索の推定 Recall Rate を取得するための別の検索パラメーター enable_recall_calculation も提供しています。これら 2 つのパラメーターを組み合わせて、ベクトル検索の Recall Rate を調整できます。

Notes

これは、基本的なベクトル検索、フィルター検索、範囲検索、グループ化検索、ハイブリッド検索、検索イテレーターを含むすべての検索に適用されます。

概要​

Zilliz Cloud における Recall Rate は通常、検索によって正常に取得された関連結果の割合を指します。これは、コレクションからすべての関連項目を取得するシステムの能力を測るものです。

OdMnbeHYOoAEqKxNEEnc9SwNnmf

検索の Recall Rate を計算するには、取得された関連項目の数を、取得されるべき該当項目の総数で割ります。たとえば、100 個の関連項目のうち 90 個が検索で取得された場合、Recall Rate は 0.9 または 90% になります。

Recall Rate が高いほど通常は検索結果の精度が高くなりますが、時間がかかる場合があります。ベクトル検索の精度と効率のバランスを取るために、Recall Rate を調整することを検討してください。

検索リクエストを設定する​

Recall Rate を調整可能な検索リクエストを設定するには、次のように検索パラメーター内に level パラメーターを含める必要があります。

python
from pymilvus import MilvusClient

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

query_vector = [0.3580376395471989, -0.6023495712049978, 0.18414012509913835, -0.26286205330961354, 0.9029438446296592]

res = client.search(
collection_name="quick_setup",
data=[query_vector],
limit=3, # The number of results to return
search_params={
"params": {
"level": 1 # The precision control
}
}
)

level パラメーターは 1 から 10 の範囲で、デフォルトは 1 です。デフォルト値では Recall Rate は 90% になり、通常はほとんどのユースケースで十分です。

高い Recall Rate(99% 以上)が必要なシナリオでは、level パラメーターを 6 から 10 の間の整数に設定してみてください。検索効率を気にする必要がない場合は、このパラメーターを 10 に設定すると、最も精度の高い結果を得られます。

Notes

最も高いレベルの設定でもまだ不十分な場合は、Zilliz Cloud サポート にお問い合わせください。

Recall Rate を調整する​

Zilliz Cloud は、調整プロセスを容易にするために、enable_recall_calculation という別の検索パラメーターも提供しています。このパラメーターを True に設定すると、Zilliz Cloud が現在の検索の Recall Rate を推定し、その推定値を検索結果と一緒に返します。

python
from pymilvus import MilvusClient

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN"
)

query_vector = [0.3580376395471989, -0.6023495712049978, 0.18414012509913835, -0.26286205330961354, 0.9029438446296592]

res = client.search(
collection_name="quick_setup",
data=[query_vector],
limit=3, # The number of results to return
search_params={
"params": {
"level": 6, # The precision control
"enable_recall_calculation": True # Ask for recall rate calculation
}
}
)

print(res)

上記の検索リクエストを使用すると、現在の検索の推定 Recall Rate を次のように取得できます。

python
# data: [...], recalls: [0.98]

推定プロセスでは、Zilliz Cloud は次の処理を行います。

  1. level パラメーターをユーザーが定義した値に設定して検索します。

  2. 内部の高精度モードで別の検索を実行します。

  3. 2 回目の検索をグラウンドトゥルースとして使用して、Recall Rate を推定します。

enable_recall_calculation を True に設定した状態で level パラメーターの値を調整すると、複数の Recall Rate を取得できます。これらの推定値と各検索の所要時間を考慮することで、適切なレベル設定を概算できます。

Notes

enable_recall_calculation を有効にすると検索パフォーマンスに影響する可能性があるため、本番環境では推奨されません。

制限​

現在、この機能は Zilliz Cloud クラスターの基本ベクトル検索、フィルター検索、範囲検索でのみ使用できます。

このページは役に立ちましたか?