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

再現率を調整する

Zilliz Cloud は、ユーザーが検索の再現率とパフォーマンスのバランスを取れるようにするための検索パラメーター level を導入しています。また、現在の検索の推定再現率をユーザーに提供するために、もう 1 つの検索パラメーター enable_recall_calculation を提供しています。これら 2 つのパラメーターを組み合わせることで、ベクトル検索の再現率を調整できます。

Notes

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

概要​

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

OdMnbeHYOoAEqKxNEEnc9SwNnmf

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

再現率が高いと、通常はより精度の高い検索結果が得られますが、時間がかかることがあります。ベクトル検索の精度と効率のバランスを取るために、再現率を調整するとよいでしょう。

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

再現率を調整可能な検索リクエストを設定するには、次のように、検索パラメーター内に 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 です。デフォルト値では再現率が 90% となり、通常はほとんどのユースケースで十分です。

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

Notes

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

再現率を調整する​

Zilliz Cloud は、調整プロセスを容易にするために、enable_recall_calculation というもう 1 つの検索パラメーターも導入しています。このパラメーターを True に設定すると、Zilliz Cloud が現在の検索の再現率を推定し、その推定値を検索結果とともに返すようになります。

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)

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

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

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

  1. ユーザー定義の値に設定された level パラメーターを使用して検索を実行し、

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

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

enable_recall_calculation を True に設定したうえで、level パラメーターの値を調整すると、複数の再現率を取得できます。これらの推定値と各検索の所要時間を考慮することで、適切な level 設定を大まかに見積もることができます。

Notes

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

制限事項​

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

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