隨著 ChatGPT 這類生成式 AI(Generative AI)的創新,我們已經進入了一個對話式智慧時代。這些大型語言模型(LLM)的對話能力確實令人驚艷,但許多企業和開發者很快就發現一個核心問題:「LLM 不懂我們的資料。」
不是模型不夠強大,而是它沒有接觸過你公司內部的文件、專案歷史,或是最新的產品手冊。在初始的 LLM 中,世界的知識被壓縮成靜態參數,模型既不會記住你個人的偏好,也無法調用額外的知識來輔助判斷。這就導致了一個常見的困擾:模型容易產生「幻覺」(Hallucination),給出聽起來可信但與事實不符的答案。
那麼,我們如何才能打造一個「懂你資料」的 AI 助理,讓它從「很會說」進化到「說得對」呢?
答案就藏在我們今天的主角——向量資料庫(Vector Database),以及它所驅動的 檢索增強生成(RAG, Retrieval-Augmented Generation) 架構中。向量資料庫正是為 LLM 應用提供「記憶」和「外部知識庫」的剛性需求工具。接下來,讓我們深入拆解這項關鍵技術的定義、原理以及它在 AI 時代的應用潛力。
向量資料庫是 AI 應用底層基礎設施中的重要一環。它提供了一種高效且快速的方式,用來儲存和擷取高維度的點(即向量)。
向量資料庫通常採用近似最近鄰 (ANN) 演算法進行索引,例如 k-最近鄰 (k-NN) 索引技術,而 HNSW (Hierarchical Navigable Small World) 就是其中一種被廣泛採用的演算法。
HNSW 演算法的核心是建立一個多層級的圖形結構,就像一張具有不同縮放級別的地圖。
分層結構 (Hierarchy):
搜索流程 (Greedy Search):
HNSW 的性能取決於幾個控制圖形結構和搜索行為的關鍵參數:
參數 | 說明 | 調整建議 | 影響結果 |
---|---|---|---|
M | 每個節點在圖中每個層次的最大連線數(邊緣數)。 | 預設值為 30。對於高維度數據或高召回率要求,可增加 M。追求速度或降低記憶體時可減少 M。建議範圍:。 | M 越高,圖形越密集,召回率和準確性越高,但記憶體開銷增加,插入時間變慢。 |
efConstruction | 索引構建過程中考慮的候選鄰居數量。 | 預設值為 360。增加 efConstruction 可提高索引準確性,因為探索了更多潛在連接。建議範圍:。 | efConstruction 越高,索引越準確,但索引時間變長,構建期間記憶體使用量增加。 |
ef | 搜索過程中評估的鄰居數量。此參數僅影響搜索過程,且專門應用於圖形的底層。 | 預設值為 TopK 结果 (limit)。增加 ef 可提高找到最近鄰的可能性(高召回率),但會增加搜索時間。建議範圍:[K, 10K]。 | ef 越高,搜索準確性越高,但搜索時間增加。 |
向量資料庫不只是一個資料儲存工具,它更是驅動下一代 AI 應用,特別是 RAG 架構的基礎設施。
向量資料庫最關鍵且爆發式增長的應用,就是為大型語言模型提供「記憶」,這主要透過 RAG(Retrieval-Augmented Generation) 架構實現。
RAG 結合了兩個階段:檢索 (Retrieval) 和生成 (Generation)。
| 步驟 | 說明 | 技術實現 |
| :--- | :--- | :--- | :--- |
| Step 1:語料庫準備 (Prepare) | 將企業專有的知識或語料(如文件、簡報、手冊)整理、拆段 (chunking),並透過 Embedding 模型轉化為向量化文本。這些向量被索引並儲存在向量資料庫中。 | 使用 get_embedding
函式將文字轉為向量。 Milvus/Pinecone/pgvector 等向量資料庫。 |
| Step 2:問題輸入 (Input) | 使用者的提問 (Query) 會被 Embedding 引擎轉化為提問向量。 | 使用 get_embedding
函式將提問轉為向量。 |
| Step 3:向量搜索 (Search) | 提問向量進入向量資料庫,透過向量搜尋引擎(例如 HNSW 索引)計算向量相似度。 | 搜尋向量資料庫找出 Top N 條語義最相關的內容(Facts/Context)。這是個模糊匹配過程。 |
| Step 4:Prompt 優化 (Prompt Optimization) | 輸出的 Top N 條相關內容,會與使用者的問題一起作為 Prompt (提示) 輸入給 LLM 模型。 | 組合 Prompt,通常包含一個 Prefix Prompt(例如:「根據以下內容回答問題,如果答案不在提供的文本中,請回答『我不知道』」)。 |
| Step 5:結果返回 (Result) | LLM 根據提供的上下文 (Context) 生成最終回答。 | 得到的生成內容更精準,且有效緩解了幻覺問題。 |
透過 RAG 架構,向量資料庫使 AI 應用不再僅限於通用的對話,更能處理具備語義理解需求的應用:
向量資料庫的興起並非偶然,而是由 LLM 應用帶來的剛性需求驅動。
儘管向量資料庫帶來巨大的創新,但作為一項相對新穎的技術,它也面臨著多方面的挑戰。
在實際導入 RAG 系統時,企業會遇到以下挑戰:
向量資料庫的應用直接受大模型應用的影響。儘管市場發展迅速,但如果商業應用落地推進緩慢,則會影響相關公司的市場開拓。此外,國內廠商在技術推進上可能存在不及預期的風險,因為目前市場仍以海外產品為主。
當開發者開始選型時,市場上有幾種主要的解決方案,從專用的向量資料庫到傳統資料庫的擴展,各有其優勢與限制。
專用向量資料庫(如 Milvus, Weaviate, Qdrant)是天生為了處理高維度向量運算而設計的。相對地,關係型資料庫如 PostgreSQL 則透過擴展功能(如 pgvector)來支援向量。
類別 | 代表產品 | 技術焦點與優勢 | 限制與挑戰 |
---|---|---|---|
專用向量資料庫 | Milvus, Weaviate, Qdrant, Pinecone | 專為向量相似性搜索優化,採用 ANN 算法。高性能、高可擴展性(能處理數百萬到萬億向量)。 Milvus:支援 GPU 加速向量搜索,有可視化操作界面。 Weaviate:支援內建嵌入、文本搜索、以及 BM25 關鍵詞搜索 + 混合搜索。 Qdrant:資源佔用少,可以在一個集合中儲存多種向量。 | 需要額外學習與維護新系統。 Pinecone 是專有技術,可能產生供應商鎖定。 |
關係型 DB 擴展 | PostgreSQL + pgvector | 團隊熟悉度高,部署容易。可以將文字、metadata 和向量儲存在同一個地方。內建對全文搜索(如 BM25 擴展功能)的良好支援。 | 效能通常較差,在資料量大時難以擴展。在 ANN 基準測試中,pgvector 通常墊底。 |
向量庫/非 DB | FAISS, ANNOY, HNSWLib | 適合概念驗證 (PoC)。HNSWLib 可支持并发读写,並且在生產環境中如果 RAM 空間足夠,可以實現極致效能。 | 通常只儲存靜態向量,不儲存關聯對象,缺乏 CRUD 功能。缺乏部署生態系統和容錯性。 |
在專用向量資料庫中,搜索方式也呈現多樣化,不再是單純的向量比對:
資料庫 | 獨特的搜索方式/功能 | 說明 |
---|---|---|
Milvus | 多向量搜索 (Multi-vector Search) | 適用於集合中有兩個或更多向量字段的情況。通過執行多個 ANN 搜索並結合結果進行重排,可明顯增加召回能力和提高搜索結果的有效性。 |
Weaviate | 混合搜索 (Hybrid Search) | 將 BM25 關鍵詞搜索和向量相似度搜索結合起來對結果進行排名,實現了語義和關鍵詞的優勢結合。 |
Qdrant | 全文過濾器應用於向量搜索 | 雖然 Qdrant 不打算支持 BM25 或其他非向量基礎的檢索,但它可以將全文過濾器應用於向量搜索,即在具有特定單詞或短語的記錄中執行向量搜索。 |
向量資料庫使用不同的距離函數來衡量向量之間的相似性。Milvus 支援 COSINE (餘弦距離)、L2 (歐幾里得距離) 和 IP (內積) 等。選擇合適的度量標準對於不同任務的準確性至關重要。
指標名稱 | 描述 | 適用場景 | 優點與缺點 |
---|---|---|---|
餘弦距離 (COSINE) | 測量兩個向量之間角度的餘弦值。 | 高維空間/文本比較 (如文檔分類、語義搜索)。 | 主要考慮向量方向,適合文本等高維且標準化的數據。不適用於需要匹配向量維度的場景。 |
歐幾里得距離 (L2) | 在多維空間中計算兩個向量之間的直線距離。 | 圖像識別、語音識別、手寫分析。 | 直觀、易於計算。在高維空間中可能因「維度災難」而表現不佳。 |
內積 (IP/Dot Product) | 計算向量對應分量的乘積之和。 | 推薦系統、協同過濾。 | 計算速度快,能反映向量的大小和方向。對向量的大小和方向都敏感。 |
今天的內容有點硬核,我們從向量資料庫的定義、到 HNSW 的多層結構,再到 RAG 的完整流程和市場選型,詳細探討了這項為 AI 賦予「記憶」的關鍵技術。
從過去依賴 TF-IDF 演算法的簡單關鍵詞匹配,到現在利用向量實現語義相似度搜索,AI 技術的發展已經從「數據檢索」進化到「語義理解」。向量資料庫正是釋放資料語義價值,讓 AI 不只是會講話,而是講**「對你有幫助的話」**的基礎。
如果你是開發者,正在努力讓你的 AI 助理能回答企業內部知識;如果你是產品經理,正在思考如何打造更精準的推薦系統;那麼向量資料庫絕對是你在 AI 時代不能忽視的基石。
雖然技術仍在快速發展,新的向量資料庫不斷湧現,但掌握 RAG 架構和向量索引(如 HNSW)的核心原理,能幫助你在這場 AI 浪潮中,選對工具,少走冤枉路。讓我們一起期待並動手實作,將這些知識庫變成真正有智慧的 AI 應用吧!