本文介紹了向量檢索服務Milvus版(簡稱Milvus)的計算節點(Query Node)的CU類型及節點數量,旨在協助使用者選擇與自身業務情境相符的執行個體規格。
CU類型介紹
Milvus的計算節點當前支援以下CU類型,以滿足不同的業務情境和需求:
效能型:適用於查詢QPS(Query Per Second)高、查詢延遲低的情境。對於高並發、大流量及低延遲情境,可以選擇效能型執行個體,例如搜尋、推薦系統、產生型AI以及對話機器人等應用。
容量型:適用於資料規模大,但對搜尋效率相對要求較低的情境。容量型相對於效能型有4倍的儲存容量優勢,能夠儲存和管理更多的向量資料。容量型執行個體同樣具備優秀的技術指標,可滿足大部分情境需求。例如特別適合大規模的非結構化資料檢索、著作權識別、模型資料準備等。
重要目前,容量型CU存在以下限制:
僅支援水平擴縮容,不支援垂直變更配置。購買前,請您務必仔細確認CU的規格。
僅推薦使用DiskANN索引,且該索引類型僅支援Float類型的向量資料。測量向量之間距離時,僅支援歐氏距離(L2)、內積 (IP)或餘弦相似性(COSINE)。
儲存容量對比
CU類型 | 索引類型 | CU規格 | 向量資料容量參考(基於SIFT的128維向量資料) | 向量資料容量參考(基於GIST的960維向量資料) |
效能型 | HNSW M:30 efConstruction:360 | 4 vCPU 16 GiB(4CU) | 1600 萬 | 300 萬 |
8 vCPU 32 GiB(8CU) | 3200 萬 | 600 萬 | ||
16 vCPU 64 GiB(16CU) | 6400 萬 | 1200 萬 | ||
32 vCPU 128 GiB(32CU) | 1.28 億 | 2400 萬 | ||
容量型 | DiskANN | 8 vCPU 32 GiB(8CU) | 1.2 億 | 2300 萬 |
16 vCPU 64 GiB(16CU) | 2.4 億 | 4600 萬 | ||
32 vCPU 128 GiB(32CU) | 4.8 億 | 9200 萬 |
以上資料均通過實際測實驗證,可以作為容量評估的參考!
上述用於容量測試的資料中不包含任何標量資料,僅包含主鍵和向量資料,主鍵由從零開始自增的正整數轉換為字串。在大多數實際生產情境中,標量欄位是不可或缺的,標量資料同樣會佔用儲存空間,這將導致實際儲存的向量數量低於上述表格所示。
檢索效能對比
CU類型 | CU規格 | 索引類型 | topk=50 | topk=100 | topk=250 | topk=1000 | ||||
QPS | RT_p99 | QPS | RT_p99 | QPS | RT_p99 | QPS | RT_p99 | |||
效能型 | 16 vCPU 64 GiB (16 CU) | HNSW M:30 efConstruction:360 | 2000 | < 10 ms | 1200 | < 10 ms | 550 | < 15 ms | 150 | < 30 ms |
容量型 | 16 vCPU 64 GiB (16 CU) | DiskANN | 700 | < 15 ms | 550 | < 20 ms | 200 | < 30 ms | 60 | < 50 ms |
上述資料基於Cohere資料集(1000萬768維度)的實測結果。然而,由於不同資料集的資料分布對效能產生影響,因此上述資料僅供參考。
RT_p99的測量是通過串列執行1000條查詢,並對回應時間進行排序,以獲得第99百分位的結果。
上述用於效能測試的資料不包含任何標量資料,僅包含主鍵和向量資料。主鍵為從零開始的自增正整數。在效能型中採用的索引類型為HNSW,而在容量型中採用的索引類型為DiskANN。
Milvus將在後台定期進行向量索引最佳化,通常在寫入完成後的3小時內完成,屆時系統效能將達到最優狀態。
計算節點數量
Milvus支援調整計算節點(Query Node)的數量,目前可選範圍為1~50。節點數量越多,可支援的QPS越高,呈線性關係。同時,節點數量越多,服務的可用性也越高。因此,建議對可用性有較高要求的生產環境選擇不少於2個節點。
情境分析
如果您正在構建一個包含2000萬個圖片的圖片檢索系統,並且每個圖片均用一個768維的向量進行表示,目標是能夠快速處理每秒2000次的搜尋請求,並在10毫秒內返回前100張相關圖片的搜尋結果。您可以按照以下內容進行選型評估:
時延評估:根據時延要求選擇合適的CU類型。例如,如果需要10毫秒以內的時延,效能型CU是唯一能夠滿足此要求的類型。
容量考量:根據資料量和維度計算所需的CU數量。一個16 vCPU 64GiB(16CU)的效能型CU能夠處理1200萬個960維向量。為了容納2000萬個768維向量資料,建議至少配置2個此類CU,總計32 CU。
輸送量檢驗:在給定的top-k設定下,驗證每個CU的輸送量。例如,在top-k設定為100的情況下,效能型CU的每秒查詢量(QPS)為1200。為保持2000 QPS的持久性能,需要將節點數量增加至2倍。
綜上所述,針對該應用情境,建議選擇效能型CU,配置4個節點,單節點規格為16 vCPU 64GiB(16CU),以確保效能滿足相關標準。