向量數據庫已成為現代AI應用的核心部分,因為它們允許軟件存儲、索引和搜索稱為嵌入的數據的數值表示。向量搜索不僅依賴於確切的詞語,而是可以根據語義相似性和上下文來查找信息。Google Cloud將向量數據庫描述為一種存儲、索引和查詢表示文本、圖像或音頻等數據的向量嵌入的數據庫。
什麼是向量數據庫?
向量數據庫旨在處理信息的高維數值表示。嵌入模型將內容轉換為向量,這是一組數字,在數學空間中代表特徵或含義。
當兩個內容片段具有相似含義時,它們的向量可以靠近在一起。然後,向量數據庫可以檢索最相似的記錄以回答用戶的查詢。這使得語義搜索成為可能,即使查詢和存儲的內容使用不同的詞語。 16
向量數據庫如何運作
1. 數據轉換為嵌入
文本、圖像、音頻或其他支持的信息通過嵌入模型處理。該模型生成一個表示內容的數字向量。
2. 向量被存儲和索引
應用程序將這些向量與有用的元數據一起存儲。索引技術幫助數據庫有效地查找附近的向量,而不是比較大型集合中的每一條記錄。
3. 用戶的查詢變成一個向量
當用戶搜索時,查詢也可以轉換為嵌入。數據庫將查詢向量與存儲的向量進行比較。
4. 返回相似的結果
系統檢索最近或最相似的向量,並可以返回其相關的文檔、產品、圖像或其他記錄。
向量搜索 vs 傳統關鍵字搜索
| 功能 | 關鍵字搜索 | 向量搜索 |
|---|---|---|
| 主要匹配方法 | 單詞和術語 | 語義相似性 |
| 同義詞 | 可能需要配置 | 可以識別相關概念 |
| 非結構化數據 | 通常以文本為重點 | 可以支持文本、圖像、音頻和其他嵌入 |
| 典型的 AI 使用 | 精確或詞彙檢索 | 語義檢索和 AI 上下文 |
現代應用也可以結合這兩種方法。例如,Microsoft Azure AI Search 支持在同一請求中組合向量和關鍵字搜索的混合搜索。
為什麼向量數據庫對 AI 重要
大型語言模型具有廣泛的訓練知識,但應用通常需要訪問私有、最近或特定領域的信息。向量搜索提供了一種在 AI 模型生成回應之前檢索相關信息的方法。
這對於檢索增強生成 (RAG) 特別有用。向量數據庫可以作為檢索層的一部分,幫助應用找到相關文檔並將該上下文傳遞給語言模型。
常見的向量數據庫使用案例
AI 驅動的知識助手
組織可以編制內部文檔、政策、手冊和其他批准的來源,以便 AI 助手可以檢索相關信息。
語義搜索
搜索系統即使在用戶的措辭與存儲內容中的措辭不同時,也可以返回概念上相關的結果。
推薦系統
產品、文章、視頻或其他項目可以表示為向量並與用戶的興趣或以前的互動進行比較。
圖像和多媒體搜索
嵌入可以代表視覺或其他多媒體特徵,實現跨支持內容類型的基於相似性的發現。16
欺詐和異常檢測
向量表示可以幫助應用識別與預期簇相距較遠的異常模式或記錄,盡管適當的模型和評估方法取決於使用案例。
最近鄰搜索
向量數據庫中的一個核心操作是最近鄰搜索。系統使用距離或相似性度量來衡量查詢向量與存儲向量之間的接近程度。
常見的方法包括精確最近鄰搜索和近似最近鄰搜索。近似方法可以通過在提速的同時犧牲部分召回來降低搜索大型集合的計算成本。Google Cloud 將 KNN 和 ANN 描述為高效向量檢索的重要機制。
流行的索引方法
不同的系統使用不同的索引結構和算法。例如,pgvector 支持精確搜索以及包括 HNSW 和 IVFFlat 的近似最近鄰索引。02
HNSW
層次可導航小世界索引使用圖形結構來加快相似性搜索。在 pgvector 中,HNSW 提供了速度和召回之間的權衡,並且不需要為索引進行單獨的訓練步驟。
IVFFlat
IVFFlat 將向量分組到列表中,以減少在搜索過程中考慮的數據量。它可以提供更快的近似檢索,儘管其配置涉及速度、召回和索引構建行為之間的權衡。
向量數據庫和元數據過濾
單靠相似性並不總是足夠。一個應用可能需要在找到語義相似產品的同時,根據價格、地點、日期、類別、許可權或其他屬性限制結果。
現代向量搜索系統可以將向量相似性與元數據過濾器結合。Google Cloud 文檔記錄了這類過濾,而 AWS 也支持在向量查詢中進行元數據過濾。 17
你總是需要一個單獨的向量數據庫嗎?
不。專用的向量資料庫是一種選擇,但現有資料庫也可以支持向量工作負載。例如,pgvector 為 PostgreSQL 增加了向量相似性搜索,並支持將向量與傳統關聯數據存儲在一起。AWS 同樣強調在現有資料庫和數據服務中使用向量功能的能力。 04
正確的架構取決於數據量、延遲要求、過濾需求、現有基礎設施、運營專業知識和成本。
AI 應用的向量數據庫架構
一個基本的架構可能如下所示:
- 用戶提交問題或搜索查詢。
- 嵌入模型將查詢轉換為向量。
- 向量資料庫搜索相似記錄。
- 當需要時,元數據過濾器縮小結果集。
- 應用檢索基礎文檔或記錄。
- AI 模型使用檢索到的上下文生成響應。
這個架構將檢索與生成分開。這種分離可以使其更容易在不重新訓練語言模型本身的情況下更新知識庫。
向量數據庫的優勢
- 語義檢索: 找到概念上相關的信息。
- AI 整合: 支持 RAG 和其他基於檢索的應用。
- 多模式潛力: 可以支持不同數據類型的嵌入。
- 靈活的過濾: 可以將相似性與元數據條件結合。
- 可擴展性選項: 索引和近似搜索可以改善大規模檢索性能。
挑戰與限制
嵌入質量
向量搜索系統受到其嵌入模型質量和適用性的強烈影響。差的表示可以產生差的檢索結果。
索引配置
近似索引在速度、內存、索引構建時間和回憶之間引入了權衡。這些設置應針對實際工作負載進行測試,而不是盲目從其他應用中複製。pgvector 文檔中記錄了 HNSW 和 IVFFlat 的這些權衡。
數據新鮮度
如果源文檔經常變更,應用需要一個可靠的過程來更新或移除過時的嵌入。
安全性和訪問控制
檢索系統如果沒有正確執行權限,可能會暴露敏感資訊。存取規則應在檢索的內容到達 AI 模型或用戶之前應用。
成本和運營複雜性
大型向量集合可能需要顯著的儲存、記憶體、索引和監控。對於某些應用而言,簡單的資料庫擴展可能已足夠,而在較大規模時專門的服務可能更有意義。
選擇向量數據庫的專家建議
- 在選擇平台之前,定義您的檢索延遲和規模需求。
- 針對您的實際數據測試多個嵌入模型。
- 使用有代表性的查詢來衡量檢索質量。
- 當確切的術語很重要時,考慮混合關鍵字和向量搜索。
- 保持元數據與每個向量緊密相關,以便過濾仍然實用。
- 從一開始就計劃文檔的更新、刪除和重新索引。
- 對檢索的內容應用授權控制,而不僅僅是用戶介面。
- 基準總運營成本,而不是僅比較資料庫價格。
常見的向量數據庫錯誤
- 假設向量搜索自動理解每一查詢。
- 選擇一個索引而不測試召回和延遲。
- 忽略元數據和存取控制需求。
- 對 RAG 工作負載使用不良的文檔分塊。
- 在部署後未能監控檢索質量。
- 假設專門的向量資料庫總是必要的。
常見問題
什麼是向量數據庫?
向量資料庫儲存、索引和搜索稱為向量或嵌入的數值表示。它常用於語義搜索和 AI 檢索應用。
什麼是向量嵌入?
向量嵌入是數據(如文本、圖像或音頻)的數值表示,捕捉對機器學習應用有用的關係。
向量數據庫僅用於人工智慧嗎?
不。他們可以支持超越生成 AI 的相似性搜索和推薦工作負載,雖然 AI 應用是一個主要的使用案例。
什麼是向量相似性搜索?
這是一種檢索方法,使用距離或相似性度量將查詢向量與存儲的向量進行比較,並返回最接近的匹配項。
向量數據庫和關聯數據庫之間有什麼區別?
關聯式資料庫圍繞著表格、列、欄位和關係來組織結構化資料。向量資料庫專注於高效存儲和檢索高維向量。一些關聯系統也可以添加向量能力。
可以將PostgreSQL用作向量數據庫嗎?
是的。PostgreSQL可以通過擴展如pgvector來支持向量工作負載,該擴展提供向量類型、相似性搜尋和近似索引。
向量數據庫能減少人工智慧的幻覺嗎?
它們可以幫助基於檢索的AI應用提供相關的外部上下文,但不保證事實答案。檢索質量和生成模型仍然很重要。
在選擇向量數據庫時,我應該考慮什麼?
考慮規模、延遲、召回、索引選項、元資料過濾、安全性、整合、操作要求和總成本。
結論
向量資料庫為現代AI應用提供了一個重要的檢索層。通過存儲和搜尋嵌入,這使得軟體能夠根據語義關係尋找資訊,而不僅僅依賴於精確的關鍵字。它們可以支持RAG、語義搜尋、推薦和多媒體探索。
然而,選擇向量資料庫不僅僅是選擇最快的產品。嵌入質量、索引配置、元資料、安全性、資料新鮮度和操作成本都會影響最終系統。對於較小的工作負載,現有資料庫中的向量能力可能已足夠。對於較大或專業的工作負載,專門的向量平台可能更合適。
隨著AI應用變得越來越依賴於私有和特定領域的信息,高效的向量檢索將繼續成為技術堆疊的重要組成部分。
CTA: 建立AI應用程式嗎?首先定義您需要檢索的資料,用戶將進行的查詢,以及您的系統必須達到的質量和延遲。然後根據這些要求評估您的向量搜尋架構。
權威來源: Google Cloud有關向量資料庫和向量搜尋的文檔;Microsoft Learn有關Azure AI搜尋的文檔;AWS有關向量搜尋的文檔;PostgreSQL向量相似性搜尋的pgvector文檔。