揭曉 2023 年支配 Milvus 社群的十大關鍵字
在 2023 年結束之際,讓我們回顧 Milvus 社群的非凡歷程:擁有25,000 個 GitHub Stars、推出Milvus 2.3.0,以及Docker 映像下載量突破 1,000 萬次。本篇文章透過分析聊天記錄,揭示討論中的十大關鍵字,探索社群的核心。
#1 版本 - AIGC 的崛起推動 Milvus 快速迭代
令人驚訝的是,「版本」成為 2023 年討論最多的關鍵字。這一啟示根源於這一年的 AI 浪潮,向量資料庫成為解決 AIGC 應用程式幻覺問題挑戰的重要基礎架構。
圍繞向量資料庫的熱情驅使 Milvus 進入快速迭代的階段。僅在 2023 年,社群就見證了 20 個版本的釋出,滿足了 AIGC 開發人員的需求,他們的詢問充斥著社群,詢問如何為各種應用選擇最佳版本的 Milvus。對於正在瀏覽這些更新的使用者,我們建議您使用最新的版本,以增強功能和效能。
如果您對 Milvus 的發行規劃有興趣,請參考官方網站的Milvus Roadmap頁面。
#2 搜尋 - 超越向量搜尋
「搜尋 」排在第二位,反映出它在資料庫運作中的基本角色。Milvus 支援各種搜尋功能,從 Top-K ANN 搜尋到標量篩選搜尋和範圍搜尋。即將發行的 Milvus 3.0 (Beta) 承諾提供關鍵字搜尋 (sparse embeddings),許多 RAG 應用程式開發人員都熱切期待。
社群中關於搜尋的討論著重於效能、功能和原則。使用者經常會問關於屬性過濾、設定索引臨界值以及解決延遲問題等問題。查詢和搜尋文件、Milvus 增強提案 (MEP) 和 Discord 討論等資源已成為了解 Milvus 搜尋複雜性的參考資料。
#3 記憶體 - 在效能與精確度之間取捨,以達到最小的記憶體開銷
"記憶體」在過去一年也成為社群討論的焦點。向量是一種獨特的資料類型,本身就有很高的維度。為了達到最佳效能,將向量儲存於記憶體是常見的做法,但不斷增加的資料量卻限制了可用記憶體。Milvus 採用MMap和 DiskANN 等技術來優化記憶體的使用。
然而,要在資料庫系統中同時達到低記憶體使用率、優異效能和高準確度的目標仍然相當複雜,必須在效能和準確度之間作出權衡,以盡量減少記憶體開銷。
就人工智慧產生的內容 (AIGC) 而言,開發人員通常會將快速回應和結果精確度放在優先地位,而非嚴格的效能要求。Milvus 新增的 MMap 和 DiskANN 可將記憶體佔用量降至最低,同時最大化資料處理和結果精確度,達到符合 AIGC 應用程式實際需求的平衡。
#4 Insert - 資料插入一帆風順
高效率的資料插入是開發人員最關心的問題,因此 Milvus 社群經常討論如何優化插入速度。由於 Milvus 擅於分離串流和批次資料,因此在高效插入串流資料和建立索引方面表現優異。與其他向量資料庫供應商(如 Pinecone)相比,這種能力使其成為性能卓越的解決方案。
以下是關於資料插入的一些寶貴見解及建議:
批次插入:選擇批次插入而非單行插入,以提高效率。值得注意的是,從檔案插入的速度超越批次插入。當處理超過一千萬筆記錄的大型資料集時,請考慮使用
bulk_insert
介面,以簡化並加速匯入程序。策略性
flush()
使用:與其在每個批次之後呼叫flush()
介面,不如在完成所有資料插入之後呼叫一次。在批次之間過度使用flush()
介面會導致產生零碎的區段檔案,對系統造成相當大的壓縮負擔。主索引鍵重複資料刪除:使用
insert
介面插入資料時,Milvus 不會執行重複主索引鍵。如果您需要重複主索引鍵,我們建議您部署upsert
介面。然而,upsert
的插入性能比insert
低,這是由於多了一個內部查詢操作。
#5 配置 - 解碼參數迷宮
Milvus 是一個分散式向量資料庫,整合了許多第三方元件,例如物件儲存、訊息佇列和 Etcd。使用者致力於調整參數,並瞭解其對 Milvus 效能的影響,因此「組態」成為經常討論的話題。
在所有關於組態的問題中,「調整哪些參數」可說是最具挑戰性的一環,因為在不同的情況下,參數會有所不同。例如,優化搜尋性能參數與優化插入性能參數就有所不同,而且在很大程度上依賴於實際經驗。
一旦用戶確定了 「哪些參數需要調整」,接下來的 「如何調整 」問題就變得更容易處理了。有關具體程序,請參閱我們的文檔配置 Milvus。好消息是 Milvus 自 2.3.0 版起已支援動態參數調整,無需重新啟動更改即可生效。具體步驟請參考Configure Milvus on the Fly。
#6 日誌 - 導航故障排除指南針
"日誌」是故障排除者的指南針。使用者在社群中尋求有關匯出 Milvus 日誌、調整日誌層級,以及與 Grafana's Loki 等系統整合的指引。以下是一些關於 Milvus 日誌的建議。
如何檢視和匯出 Milvus 日誌:您可以使用 GitHub 套件庫中的export-milvus-log.sh一鍵式腳本輕鬆匯出Milvus日誌。
日誌層級:Milvus 有多種日誌層級,以因應不同的使用情況。info 層級足以應付大多數情況,而 debug 層級則用於除錯。過多的 Milvus 日誌可能表示日誌層級設定錯誤。
我們建議將 Milvus 日誌與Loki 之類的日誌收集系統整合,以便在未來的故障排除中簡化日誌檢索。
#7 集群 - 為生產環境擴展
考慮到 Milvus 作為分散式向量資料庫的特性,「叢集」一詞是社群中經常討論的話題。討論圍繞著叢集中的資料擴充、資料遷移、資料備份與同步。
在生產環境中,強大的可擴展性和高可用性是分散式資料庫系統的標準要求。Milvus 的儲存與運算分離架構可透過擴充運算與儲存節點的資源,實現無縫的資料擴充能力,以容納無限的資料規模。Milvus 還提供多複本架構的高可用性,以及強大的備份和同步功能。 如需詳細資訊,請參閱協調器 HA。
#8 文件 - 瞭解 Milvus 的門戶
在社群討論中,「文件」是另一個經常被提出的關鍵字,通常是關於特定功能是否有任何文件頁面,以及在哪裡可以找到的問題。
作為了解 Milvus 的門戶,大約 80% 的社區查詢都能在官方文件中找到答案。我們建議您在使用 Milvus 或遇到任何問題前先閱讀我們的說明文件。此外,您可以在不同的 SDK 套件庫中探索程式碼範例,以了解如何使用 Milvus。
#9 部署 - 簡化 Milvus 旅程
簡單部署一直是 Milvus 團隊的目標。為了實現這一承諾,我們推出了Milvus Lite,這是 Milvus 的輕量級替代品,功能完整,但不需要依賴 K8s 或 Docker。
我們透過引入更輕量的NATS訊息傳送解決方案和整合節點元件,進一步簡化部署。為回應使用者的回饋意見,我們正準備推出無相關依賴的獨立版本,並持續努力強化功能和簡化部署作業。Milvus 的快速迭代展現了社群對持續精進部署流程的不懈努力。
#10 刪除 - 解開影響
關於「刪除」的討論普遍圍繞著刪除後資料數量不變、刪除資料的持續可擷取性,以及刪除後磁碟空間恢復失敗等問題。
Milvus 2.3 引入了count(*)
表達式來處理延遲的實體計數更新。查詢中已刪除資料的持續性可能是因為資料一致性模型使用不當所致。磁碟空間恢復失敗的疑慮促使我們重新設計 Milvus 的垃圾回收機制,在完全刪除資料前設定等待期。這個方法允許一個時間窗來進行潛在的復原。
總結
前十名的關鍵字提供了 Milvus 社群內部熱烈討論的一瞥。隨著 Milvus 的持續發展,社群仍是開發人員尋求解決方案、分享經驗,以及在 AI 時代推進向量資料庫的寶貴資源。
在 2024 年加入我們的Discord 頻道,加入這段令人振奮的旅程。在那裡,您可以與我們傑出的工程師交流,並與志同道合的 Milvus 愛好者聯繫。此外,請參加Milvus 社群午餐會 (Milvus Community Lunch and Learn),時間為太平洋標準時間每週二下午 12:00 至 12:30。分享您的想法、問題和反饋,因為每一個貢獻都會增加推動 Milvus 前進的合作精神。我們不僅歡迎您的積極參與,也非常感謝您的參與。讓我們一起創新!
- #1 版本 - AIGC 的崛起推動 Milvus 快速迭代
- #2 搜尋 - 超越向量搜尋
- #3 記憶體 - 在效能與精確度之間取捨,以達到最小的記憶體開銷
- #4 Insert - 資料插入一帆風順
- #5 配置 - 解碼參數迷宮
- #6 日誌 - 導航故障排除指南針
- #7 集群 - 為生產環境擴展
- #8 文件 - 瞭解 Milvus 的門戶
- #9 部署 - 簡化 Milvus 旅程
- #10 刪除 - 解開影響
- 總結
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word