GPU_BRUTE_FORCE
GPU環境専用のGPU_BRUTE_FORCEインデックスは、妥協のない精度が不可欠なシナリオのために設計されています。データセット内のすべてのベクトルに対して各クエリを徹底的に比較することで、一致する可能性が見落とされることなく、再現率1を保証します。GPUアクセラレーションを活用したGPU_BRUTE_FORCEは、ベクトル類似検索の絶対精度を要求するアプリケーションに適しています。
インデックスの構築
MilvusでベクトルフィールドにGPU_BRUTE_FORCE インデックスを構築するには、add_index() メソッドを使用し、index_type とmetric_type パラメータを指定してインデックスを構築します。
from pymilvus import MilvusClient
# Prepare index building params
index_params = MilvusClient.prepare_index_params()
index_params.add_index(
field_name="your_vector_field_name", # Name of the vector field to be indexed
index_type="GPU_BRUTE_FORCE", # Type of the index to create
index_name="vector_index", # Name of the index to create
metric_type="L2", # Metric type used to measure similarity
params={} # No additional parameters required for GPU_BRUTE_FORCE
)
この設定では
index_type:構築するインデックスのタイプ。この例では、GPU_BRUTE_FORCEとします。metric_type:ベクトル間の距離の計算方法。詳細については、メトリック・タイプを参照してください。params:GPU_BRUTE_FORCE インデックスには追加のパラメータは必要ありません。
インデックス・パラメータを設定したら、create_index() メソッドを直接使用するか、create_collection メソッドでインデックス・パラメータを渡してインデックスを作成できます。詳細については、コレクションの作成 を参照してください。
インデックスでの検索
インデックスが構築され、エンティティが挿入されると、インデックスで類似検索を実行できます。
res = MilvusClient.search(
collection_name="your_collection_name", # Collection name
anns_field="vector_field", # Vector field name
data=[[0.1, 0.2, 0.3, 0.4, 0.5]], # Query vector
limit=3, # TopK results to return
search_params={"params": {}} # No additional parameters required for GPU_BRUTE_FORCE
)
インデックス・パラメータ
GPU_BRUTE_FORCE インデックスでは、インデックス作成中も検索処理中も追加のパラメータは必要ありません。