AISAQCompatible with Milvus 2.6.4+
AISAQ 是基於磁碟的向量索引,可擴充DISKANN以處理十億級的資料集,而不會超出 RAM 的限制。DISKANN 將壓縮向量儲存在記憶體中,AISAQ 則不同,它將所有資料儲存在磁碟上,提供兩種模式來平衡效能與儲存成本。
當您的向量資料集太大,無法輕鬆放入 RAM,或您需要以降低記憶體需求換取一些查詢效能,以最佳化基礎架構成本時,請使用 AISAQ。
AISAQ 如何運作
上圖比較DISKANN、AISAQ-Performance 和AISAQ-Scale 的儲存配置,顯示資料 (原始向量、邊緣列表和 PQ 代碼) 在 RAM 和磁碟之間的分配方式。
Aisaq Vs Diskann
基礎:DISKANN 回顧
在 DISKANN 中,原始向量和邊緣清單儲存在磁碟上,而 PQ 壓縮向量則儲存在記憶體 (DRAM)。
當 DISKANN 遍歷到一個節點 (例如向量 0):
它會從磁碟載入原始向量(raw_vector_0) 及其邊緣清單(edgelist_0)。
邊緣清單指出下一個要造訪的鄰居 (本範例中的節點 2、3 和 5)。
原始向量用來計算與查詢向量的精確距離,以進行排序。
記憶體中的 PQ 資料用於近似距離篩選,以引導下一次遍歷。
由於 PQ 資料已經快取在 DRAM 中,因此每次節點造訪只需要一次磁碟 I/O,以適度的記憶體使用量達到高查詢速度。
有關這些元件和參數的詳細說明,請參閱DISKANN。
AISAQ 模式
AISAQ 提供兩種以磁碟為基礎的儲存策略。關鍵差異在於 PQ 壓縮資料的儲存方式。
AISAQ-performance
AISAQ-performance透過將 PQ 資料從記憶體移至磁碟,達到完全以磁碟為基礎的儲存,同時透過資料暫存和備援維持低 IOPS。
在此模式下:
每個節點的原始向量、邊緣列表及其鄰居的 PQ 資料都一起儲存在磁碟上。
此佈局可確保訪問一個節點 (例如向量 0) 仍只需要單次磁碟 I/O。
然而,由於 PQ 資料在多個節點附近被重複儲存,索引檔案的大小會大幅增加,消耗更多的磁碟空間。
AISAQ-scale
AISAQ-scale著重於減少磁碟空間使用量,同時將所有資料保留在磁碟上。
在此模式下
PQ 資料會單獨儲存在磁碟上,沒有備援。
此設計可最小化索引大小,但會導致圖形遍歷過程中產生更多 I/O 作業。
為了減少 IOPS 開銷,AISAQ 引進了兩種最佳化方法:
重新排列 (rearrange) 策略,可依優先順序排序 PQ 向量,以改善資料位置性。
DRAM 中的 PQ 快取記憶體 (pq_cache_size),可快取經常存取的 PQ 資料。
因此,與 DISKANN 或 AISAQ-Performance 相比,AISAQ-scale 能達到更好的儲存效率,但效能較低。
配置範例
# milvus.yaml
knowhere:
AISAQ:
build:
max_degree: 56 # Maximum degree of the Vamana graph
pq_code_budget_gb_ratio: 0.125 # Size limit on the PQ code (compared with raw data)
search_list_size: 100 # Size of the candidate list during building graph
search:
beam_width_ratio: 4 # Ratio between the maximum number of IO requests per search iteration and CPU number
AISAQ 特有的參數
AISAQ 繼承了 DISKANN 的許多參數。為避免冗餘,以下只詳細說明 AISAQ 特有的參數。有關共用參數的說明,例如max_degree,pq_code_budget_gb_ratio,search_list_size, 和beam_width_ratio ,請參閱DISKANN。
參數 |
說明 |
值範圍 |
調整建議 |
|---|---|---|---|
|
每個節點內嵌儲存的 PQ 向量數量。決定儲存配置 (Performance vs. Scale mode)。 |
類型:整數 範圍:[0、max_degree] 預設值: |
當 注意:它高度依賴磁碟效能。如果磁碟效能不佳,不建議啟用此選項,因為有限的磁碟頻寬可能會成為瓶頸,降低整體效能。 |
|
啟用 PQ 向量依優先順序排序,以改善 I/O 區域性。 |
類型:布林 範圍:[真,假] 預設值: |
減少查詢 I/O,但增加索引建立時間。 |
|
以 DRAM 為單位的 PQ 快取大小 (位元組)。 |
類型:整數 範圍:[0, 1<<30] 預設值: |
較大的快取記憶體可改善查詢效能,但會增加 DRAM 使用量。 |
注意事項
磁碟效能很重要。AISAQ 非常依賴 SSD IOPS;儲存不良會降低 QPS。
AISAQ 效能模式 ≈ DISKANN 延遲,但可能需要數倍的磁碟空間。
AISAQ 規模模式適合離線搜尋或資料歸檔工作負載,在這些模式下 QPS 不那麼重要。