日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

向量檢索高級參數

本文介紹如何設置向量檢索高級參數。

使用數據類型定義可以設置檢索時的高級參數。

設置多向量檢索時每個向量的候選個數

title_vector = [0.1, 0.2, 0.3, 0.4]
content_vector = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6]
vectors = {
    "title": VectorQuery(vector=title_vector, num_candidates=10),
    "content": VectorQuery(vector=content_vector),
}
ret = collection.query(
    vector=vectors,
    topk=20,
)

上面的代碼中,設置title向量召回10條結果,content向量沒有設置num_candidates,召回topk=20條結果。

開啟線性(暴力)檢索

print(collection.query(vector=VectorQuery(np.random.rand(768), is_linear=True)))
重要
  1. 生產環境不建議開啟線性檢索,檢索性能會顯著下降。

  2. 開啟線性檢索后,不一定保證召回達到100%.

    1. 對于開啟量化的集合,會使用量化后的數據做計算,召回可能小于100%.

    2. 對于未開啟量化的集合,召回為100%.

調整HNSW檢索的ef參數

print(collection.query(vector=VectorQuery(np.random.rand(768), ef=100)))

HNSW索引中,ef表示檢索過程中的候選集個數,具體可參考這里。通過調整ef值,可以在檢索性能和召回之間獲得一定的權衡:增大ef值,會提升召回但可能降低檢索性能;減小ef值,會提高檢索性能但可能降低召回。

ef 的取值范圍為[0, 4294967295],其中0表示使用默認ef值。

說明
  1. ef 取值超過一定值之后可能性能/召回結果達到穩定,取更大的值也不再變化。

  2. 建議生產環境不要使用過大的ef,以免影響檢索效率。

RNN 檢索

RNN(Radius nearest neighbour)在一般的向量檢索基礎上增加了限制條件,只返回距離query向量的距離不超過閾值radius的文檔。

print(collection.query(vector=VectorQuery(np.random.rand(768), radius=1.0)))

對于不同的距離類型,radius含義不同

  1. 對于歐式距離和余弦距離,返回 score <= radius 的doc。

  2. 對于內積距離,返回 score >= radius 的doc。

說明

RNN 檢索返回的結果條數仍然受topk限制。