向量資料庫
本節涵蓋 NetApp AI 解決方案中向量資料庫的定義與使用。
向量資料庫
向量資料庫是一種特殊類型的資料庫、專門設計用來處理、索引及搜尋非結構化資料、並使用機器學習模型的內嵌資料。它不會以傳統的表格格式來組織資料、而是將資料排列成高維向量、也稱為向量嵌入式。這種獨特的結構可讓資料庫更有效率且更準確地處理複雜的多維資料。
向量資料庫的關鍵功能之一、就是使用泛型 AI 來執行分析。這包括相似性搜尋、資料庫可識別資料點、例如指定的輸入、以及異常狀況偵測、藉此找出與正常情況大不相同的資料點。
此外、向量資料庫非常適合處理時間資料或時間戳記資料。這類資料會依序、針對指定 IT 系統內的所有其他事件、提供有關「發生什麼事」及發生時間的資訊。這種處理和分析時間資料的能力、使得向量資料庫對於需要瞭解一段時間內事件的應用程式特別有用。
ML 和 AI 向量資料庫的優點:
-
高維度搜尋:向量資料庫在管理和擷取高維度資料方面表現優異、這通常是在 AI 和 ML 應用程式中產生的。
-
擴充性:可有效擴充以處理大量資料、支援 AI 和 ML 專案的成長與擴充。
-
靈活度:向量資料庫提供高度靈活度、可容納多種資料類型和結構。
-
效能:提供高效能的資料管理與擷取功能、對於 AI 和 ML 作業的速度與效率而言非常重要。
-
可自訂的索引:向量資料庫提供可自訂的索引選項、可根據特定需求來最佳化資料組織和擷取。
向量資料庫和使用案例。
本節提供各種向量資料庫及其使用案例詳細資料。
Faiss 和 ScaNN
這些程式庫是向量搜尋領域中的重要工具。這些程式庫提供的功能有助於管理和搜尋向量資料、讓它們在這個專門的資料管理領域中擁有寶貴的資源。
彈性搜尋
這是一款廣為使用的搜尋與分析引擎、最近整合了向量搜尋功能。這項新功能可強化其功能、讓 IT 更有效地處理及搜尋向量資料。
Pinecone
它是一個強大的向量資料庫、具有一組獨特的功能。它在索引功能中同時支援密集和稀疏的向量、可增強其靈活度和適應能力。其主要優勢之一在於能夠將傳統搜尋方法與 AI 型密集向量搜尋結合、建立混合式搜尋方法、充分發揮兩者的最佳效益。
Pinecone 主要是雲端型、專為機器學習應用程式所設計、並與多種平台完美整合、包括 GCP 、 AWS 、 Open AI 、 GPT -3 、 GPT-3.5 、 GPT-4 、 Catgut Plus 、 Elasticsearch 、 Haystack 、 還有更多。請務必注意、 Pinecone 是一個封閉來源平台、可作為「軟體即服務」( SaaS )產品使用。
Pinecone 具備先進功能、特別適合網路安全產業、可有效運用其高維度搜尋和混合式搜尋功能來偵測和回應威脅。
CHROMA
這是一個向量資料庫、具有四個主要功能的核心 API 、其中一個包含記憶體內文件向量儲存區。它也利用 Face Transformers 程式庫來向文件進行向量化、以增強文件的功能和多用途性。
Chroma 可在雲端和內部環境中運作、根據使用者需求提供靈活度。特別是在音訊相關應用程式中、它是音訊型搜尋引擎、音樂推薦系統和其他音訊相關使用案例的最佳選擇。
Weaviate
這是一個多功能的向量資料庫、可讓使用者使用其內建模組或自訂模組、將內容向量化、根據特定需求提供靈活度。它同時提供完全託管和自行代管的解決方案、可因應各種部署偏好。
Weaviate 的其中一項重要功能是能夠同時儲存向量和物件、以增強其資料處理能力。它廣泛用於多種應用程式、包括在 ERP 系統中進行語義搜尋和資料分類。在電子商務領域、它提供搜尋和推薦引擎。Weaviate 也可用於影像搜尋、異常偵測、自動資料協調、以及網路安全威脅分析、顯示其在多個網域中的多功能性。
紅皮
Redis 是高效能的向量資料庫、以其快速的記憶體內儲存設備聞名、提供低延遲的讀寫作業。因此、對於需要快速存取資料的推薦系統、搜尋引擎和資料分析應用程式來說、這是絕佳的選擇。
Redis 支援各種向量資料結構、包括清單、集和排序集。它也提供向量作業、例如計算向量之間的距離、或尋找交叉和聯合。這些功能對於相似性搜尋、叢集和內容型建議系統特別有用。
在擴充性和可用度方面、 Redis 在處理高處理量工作負載方面表現優異、並提供資料複寫功能。它也能與其他資料類型完美整合、包括傳統關聯式資料庫( RDBMS )。
Redis 包含發佈 / 訂閱(發佈 / 訂閱(發佈 / 訂閱)(發佈 / 訂閱)(發佈 / 訂閱)功能、可用於即時更新、這對管理即時向量很有幫助。此外、 Redis 不僅重量輕、使用簡易、更是管理向量資料的易用解決方案。
Milvus
這是一個多功能的向量資料庫、提供類似文件儲存區的 API 、就像 MongoDB 一樣。它之所以脫穎而出、是因為它支援多種資料類型、使其成為資料科學和機器學習領域的熱門選擇。
Milvus 的獨特功能之一是其多向量化功能、可讓使用者在執行階段指定用於搜尋的向量類型。此外、它還利用 KnowWhere 程式庫、它位於其他程式庫(如 Faiss )之上、來管理查詢與向量搜尋演算法之間的通訊。
由於 Milvus 與 PyTorch 和 TensorFlow 相容、因此也能與機器學習工作流程無縫整合。這使得它成為各種應用程式的絕佳工具、包括電子商務、影像和視訊分析、物件辨識、影像相似度搜尋和內容型影像擷取。在自然語言處理領域、 Milvus 用於文件叢集、語義搜尋和問題解答系統。
針對此解決方案、我們選擇 Milvus 進行解決方案驗證。為了提升效能、我們同時使用 milvus 和 postgres ( pgveco.RS )。
為什麼我們選擇 milvus 來解決此問題?
-
開放原始碼: Milvus 是開放原始碼向量資料庫、鼓勵社群導向的開發與改善。
-
AI 整合:利用內嵌相似性搜尋和 AI 應用程式來增強向量資料庫功能。
-
大容量處理: Milvus 可儲存、索引及管理深度神經網路( DNN )和機器學習( ML )模式所產生的十多億種內嵌向量。
-
易用:使用方便、設定不到一分鐘。Milvus 也提供適用於不同程式設計語言的 SDK 。
-
速度:提供超快的擷取速度、比某些替代方案快 10 倍。
-
擴充性與可用度: Mivus 具有高度擴充性、並可視需要進行擴充。
-
功能豐富:支援不同的資料類型、屬性篩選、使用者定義功能( UDF )支援、可設定的一致性層級和差旅時間、讓它成為各種應用程式的多功能工具。
Milvus 架構總覽
本節提供更高的槓桿元件和服務、用於 Milvus 架構。
* 存取層:由一組無狀態 Proxy 組成、可做為使用者的系統和端點的前層。
* 協調員服務:將工作指派給工作節點、並做為系統的大腦。它有三種協調器類型:根座標、資料座標和查詢座標。
* 工作者節點:它遵循協調器服務的指示、執行使用者觸發的 DML/DDL commands.it 有三種類型的工作者節點、例如查詢節點、資料節點和索引節點。
* 儲存:負責資料持續性。它包含中繼儲存設備、記錄檔代理程式和物件儲存設備。NetApp 儲存設備(例如 ONTAP 和 StorageGRID )可為客戶資料和向量資料庫資料、提供物件儲存和檔案型儲存設備給 Milvus 。