🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 關於 Milvus

Milvus 是什麼?

Milvus 是一個高效能、高度可擴充的向量資料庫,可在從筆記型電腦到大型分散式系統等各種環境中有效率地執行。它同時以開源軟體和雲端服務的形式提供。

Milvus 是 LF AI & Data Foundation 的開源專案,以 Apache 2.0 授權釋出。大多數的貢獻者都是來自高效能運算 (HPC) 社群的專家,專精於建立大型系統和優化硬體感知程式碼。核心貢獻者包括來自 Zilliz、ARM、NVIDIA、AMD、Intel、Meta、IBM、Salesforce、阿里巴巴和微軟的專業人士。

非結構化資料、嵌入式與 Milvus

非結構化資料,例如文字、圖片和音訊,格式各異,並帶有豐富的基本語意,因此分析起來極具挑戰性。為了管理這種複雜性,我們使用 embeddings 將非結構化資料轉換成可捕捉其基本特徵的數值向量。這些向量隨後會儲存在向量資料庫中,以實現快速、可擴展的搜尋和分析。

Milvus 提供強大的資料建模功能,讓您能夠將非結構化資料或多模式資料組織成結構化的集合。它支援各種不同屬性建模的資料類型,包括常見的數值和字元類型、各種向量類型、陣列、集合和 JSON,讓您省去維護多個資料庫系統的麻煩。

Untructured data, embeddings, and Milvus 非結構化資料、嵌入與 Milvus

Milvus 提供三種部署模式,涵蓋各種資料規模 - 從 Jupyter Notebooks 中的本機原型,到管理數百億向量的大型 Kubernetes 集群:

  • Milvus Lite 是一個 Python 函式庫,可輕鬆整合至您的應用程式。Milvus Lite 是 Milvus 的輕量版,非常適合在 Jupyter Notebooks 中快速建立原型,或在資源有限的邊緣裝置上執行。瞭解更多資訊
  • Milvus Standalone 是單機伺服器部署,所有元件都綁定在單一 Docker 映像檔中,方便部署。進一步瞭解
  • Milvus Distributed 可部署在 Kubernetes 集群上,其雲端原生架構專為十億級或更大規模的場景而設計。此架構可確保關鍵元件的備援。進一步瞭解

是什麼讓 Milvus 如此快速?

Milvus 從一開始就被設計成高效率的向量資料庫系統。在大多數情況下,Milvus 的效能比其他向量資料庫高出 2 至 5 倍 (請參閱 VectorDBBench 結果)。這種高效能是幾個關鍵設計決策的結果:

硬體感知最佳化:為了讓 Milvus 適用於各種硬體環境,我們特別針對許多硬體架構和平台優化了其效能,包括 AVX512、SIMD、GPU 和 NVMe SSD。

進階搜尋演算法:Milvus 支援廣泛的記憶體內與磁碟上索引/搜尋演算法,包括 IVF、HNSW、DiskANN 等,這些演算法都經過深度最佳化。與 FAISS 和 HNSWLib 等熱門實作相比,Milvus 的效能提升了 30%-70%。

C++ 搜尋引擎:向量資料庫超過 80% 的效能取決於其搜尋引擎。由於 C++ 語言的高效能、低階最佳化和有效率的資源管理,Milvus 使用 C++ 來處理這個關鍵元件。最重要的是,Milvus 整合了許多硬體感知的程式碼最佳化,從匯編等級向量化到多執行緒平行化和排程,以充分發揮硬體能力。

面向列:Milvus 是一個面向列的向量資料庫系統。其主要優勢來自資料存取模式。在執行查詢時,面向列的資料庫只讀取查詢所涉及的特定欄位,而不是整行,這大大減少了存取的資料量。此外,針對以列為基礎的資料進行的作業可以輕鬆地向量化,讓作業可以一次套用整個列,進一步提升效能。

是什麼讓 Milvus 具備如此高的可擴展性?

2022 年,Milvus 支援十億級向量;2023 年,Milvus 以一致的穩定性擴充至百億級向量,為超過 300 家主要企業的大型應用程式提供支援,包括 Salesforce、PayPal、Shopee、Airbnb、eBay、NVIDIA、IBM、AT&T、LINE、ROBLOX、Inflection 等。

Milvus 的雲原生與高度解耦的系統架構,可確保系統能隨著資料成長而持續擴充:

Highly decoupled system architecture of Milvus Milvus 高度解耦的系統架構

Milvus 本身是完全無狀態的,因此可借助 Kubernetes 或公有雲輕鬆擴展。此外,Milvus 各個元件都有很好的解耦功能,其中最重要的三個任務 - 搜尋、資料插入和索引/壓縮 - 都被設計成容易並行化的流程,並將複雜的邏輯分離出來。這可確保相對應的查詢節點、資料節點和索引節點都能獨立擴充,以最佳化效能和成本效益。

Milvus 支援的搜尋類型

Milvus 支援多種類型的搜尋功能,以滿足不同用例的需求:

  • ANN 搜尋:找出最接近您查詢向量的前 K 個向量。
  • 過濾搜尋:在指定過濾條件下執行 ANN 搜尋。
  • 範圍搜尋:尋找距離您的查詢向量指定半徑範圍內的向量。
  • 混合搜尋:根據多向量領域進行 ANN 搜尋。
  • 全文搜尋:根據 BM25 進行全文搜尋。
  • 重新排序:根據附加條件或輔助演算法調整搜尋結果的順序,精煉最初的 ANN 搜尋結果。
  • 擷取:依據主鍵擷取資料。
  • 查詢:使用特定的表達方式擷取資料。

全面的功能集

除了上述的關鍵搜尋功能外,Milvus 還提供了一系列圍繞 ANN 搜尋實施的功能,以便您能充分利用其功能。

API 與 SDK

進階資料類型

除了原始資料類型外,Milvus 還支援各種進階資料類型及其各自適用的距離度量。

加速

  • 搜尋演算法 Milvus 支援一組可調整的索引和搜尋演算法。如需詳細資訊,請參閱「記憶體內索引」、「磁碟上索引」和「GPU 索引」。

  • 分區和分區鍵值 分區是 Milvus 資料集中的子分區。您可以選擇標量欄位作為分割鍵,以獲得更好的搜尋效能。如需詳細資訊,請參閱管理分割區和 使用分割區金鑰

  • 可調整的一致性模型 一致性可確保每個 Milvus 節點或副本在特定時間寫入或讀取資料時,擁有相同的資料視圖。在 Milvus 中執行 ANN 搜尋時,您可以輕鬆調整一致性層級。如需詳細資訊,請參閱一致性

  • 高通量資料匯入 要匯入大量資料到 Milvus,而不是一個接一個地插入,請考慮使用我們的高通量資料匯入工具。詳情請參閱準備來源資料匯入資料

  • 多租用支援 Milvus 實現了許多面向多租用場景的功能,包括分區鑰匙、集群鑰匙等。詳情請參閱多租戶策略

安全性與授權

  • 可調整的一致性模型 一致性確保每個 Milvus 節點或副本在特定時間寫入或讀取資料時,擁有相同的資料視圖。在 Milvus 中執行 ANN 搜尋時,您可以輕鬆調整一致性層級。如需詳細資訊,請參閱一致性

  • 資料隔離及資源控制 對於多租戶情境,資料隔離是基本的安全需求。Milvus 實現了多種功能來解決您的安全問題。如需詳細資訊,請參閱管理資源 群組群集壓縮

AI 整合

  • 嵌入式模型整合 嵌入式模型將非結構化資料轉換成高維資料空間中的數值表示,以便您可以將它們儲存在 Milvus 中。目前 Python SDK PyMilvus 整合了多種嵌入模型,讓您可以快速將資料準備成向量嵌入。如需詳細資訊,請參閱嵌入概述

  • 重排模型 (Reranking Model Integrations) 在資訊檢索與生成式人工智慧領域中,重排器 (reranker) 是優化初始搜尋結果順序的重要工具。PyMilvus 也整合了幾個 reranking 模型來優化從初始搜尋返回結果的順序。詳情請參閱Rerankers 總覽

  • LangChain 與其他 AI 工具整合 在 GenAI 時代,LangChain 等工具獲得許多應用程式開發人員的關注。作為核心元件,Milvus 通常在這些工具中扮演向量儲存的角色。要了解如何將 Milvus 整合到您最喜愛的 AI 工具中,請參考我們的整合教學

工具與生態系統

  • Attu Attu 是一個多合一的直覺式圖形使用者介面,可協助您管理 Milvus 及其儲存的資料。如需詳細資訊,請參閱Attu資源庫。

  • Birdwatcher Birdwatcher 是 Milvus 的調試工具。使用它連線到 etcd,您可以檢查 Milvus 系統的狀態或即時設定。如需詳細資訊,請參閱BirdWatcher

  • Promethus & Grafana 整合 Prometheus 是 Kubernetes 的開放原始碼系統監控與警示工具套件。Grafana 是可與所有資料來源連接的開放原始碼視覺化堆疊。您可以使用 Promethus & Grafana 作為監控服務提供者,以視覺化方式監控 Milvus 分散式的效能。詳情請參閱部署監控服務

  • Milvus 備份 Milvus 備份是一個允許使用者備份和還原 Milvus 資料的工具。它同時提供 CLI 和 API,以適合不同的應用情境。詳情請參閱Milvus 備份

  • Milvus Capture Data Change (CDC) Milvus-CDC 可以捕捉和同步 Milvus 實例中的增量數據,並通過源實例和目標實例之間的無縫傳輸來確保業務數據的可靠性,從而實現簡便的增量備份和災難恢復。詳情請參閱Milvus CDC

  • Milvus Connectors Milvus 已經規劃了一套連接器,讓您可以無縫整合 Milvus 與第三方工具,例如 Apache Spark。目前,您可以使用我們的 Spark Connector 將 Milvus 資料饋送至 Apache Spark 進行機器學習處理。如需詳細資訊,請參閱Spark-Milvus Connector

  • 矢量傳輸服務 (VTS) Milvus 提供了一套工具,讓您可以在 Milvus 實例和一堆資料來源之間傳輸資料,包括 Zilliz 集群、Elasticsearch、Postgres (PgVector) 和另一個 Milvus 實例。詳情請參閱遷移

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?