
譯者 | 陳峻
審校 | 重樓
目前,數據科學家們已經熟悉了那些以不同的文件格式作為處理輸入與輸出的各類機器學習模型。在大多數情況下,人工智能智能體(AI agent)都需要通過維護上下文,從人機交互中學習,以及按需訪問其他模型無法處理的海量知識存儲。這無疑需要龐大的內存架構。
你可以試想這樣的數字:GPT-4 的 128k 令牌限制,就相當于大約 96,000 個單詞。這樣的限制,對于那些需要與整個館藏資料打交道的學術研究助理、或每天管理數千筆交易的客戶服務代表來說,是極具挑戰的。他們其實需要的是更加智能化的內存架構,而不是更大的上下文窗口。
這便是向量數據庫的用武之處,它可以成為AI基礎架構中必不可少的部分,將“語義記憶”的模糊問題轉化為數據科學家所理解的高維相似性搜索的精確領域。下面,讓我們來詳細了解一下。
從特征工程到語義嵌入
嵌入(Embeddings),是從標準的機器學習到智能體內存系統轉變的第一步。現代化嵌入模型如同智能特征提取器,可以將普通語言轉換為豐富且有意義的表示形式。
而神經嵌入代表的是連續空間中的語義鏈接,與 TF-IDF 和 n-gram 等稀疏且脆弱的特征并不相同。其中,OpenAI 的 text-embedding-3-large 是將“機器學習模型部署”轉換為具有余弦相似性的 3072 個維向量,以滿足人類語義相關性的各類評估。

從稀疏特征到密集語義嵌入
實際上,我們已能夠將定性相似性(即,某些文檔具有相似的主題)轉換為可量化的距離測量值,進而測量、優化、以及系統性地改進這些測量值。這也是數據科學的研究基礎。
矢量數據庫:基礎設施層
當前,向量數據庫已經解決了當你在需要實時搜索數百萬個高維嵌入時出現的可擴展性挑戰。作為數據科學家,我們可以將它們視為針對相似性查詢(而非聚合進行優化)的專用 OLAP 系統。

矢量數據庫的工作流
不過,此類矢量數據庫面臨的核心技術挑戰,恰好是我們在其他領域已解決的問題:如何在不進行詳盡比較的情況下,有效地搜索高維空間?而且當維數的量級超過大約 20 個的時候,維度的詛咒便會使得傳統的基于樹的索引(如,KD 樹、球樹)變得毫無用處。
在此基礎上,現代化的矢量數據庫采用了復雜的索引策略:
- HNSW(分層可導航小世界,Hierarchical Navigable Small World):構建一個多層圖形,其中每個節點都連接到其最近的鄰居節點上。這主要是因為搜索的復雜性會按照對數的方式,以及數百萬個向量的請求來擴展。因此,在大多數情況下,這些請求可能會在不到 100 毫秒的時間內被完成。
- IVF-PQ(具有乘積量化的倒置文件,Inverted File with Product Quantization):通過對向量空間進行聚類并采用學習壓縮(learnt compression),它可以將內存占用減少 75%,同時保持較強的召回率。這便是我們從機器學習模型調整中獲悉到的經典精度召回率(precision-recall)的優化--使用其中一些準確性換取了巨大的可擴展性。

HNSW 與 IVF-PQ
當然,影響選擇上述方法的因素往往涉及到對延遲與吞吐量、內存與準確性、以及成本與性能等諸多數據因素的了解與科學權衡。
內存架構:情景存儲與語義存儲
借鑒認知心理學研究,有效的智能體記憶系統實現了反映人類記憶模式的雙重存儲機制,即:
- 情景記憶,存儲了原始的、帶有時間戳的交互。這些交互不限于每一次對話回合、工具的執行、以及環境觀察等屬性。它為調試、審計跟蹤和上下文重建提供了完美的調用。從數據科學的角度來看,我們可以將其視為“原始數據湖”,它不會丟失或轉換任何內容。
- 語義記憶,包含了從情景體驗中提取的結構化知識。基于此,智能體存儲了從有關用戶、領域知識、以及行為模式中學習到的事實。與機器學習管道中的特征存儲類似,語義記憶提供了對已處理的見解的快速訪問。

情景記憶與語義記憶
可見,這些不同的記憶模式不僅可以被使用在不同的數據庫中,而且能夠服務于不同的分析目的,并且具有不同的保留、更新和查詢模式。
用于設計和評估的架構
為了讓智能體能夠提供有效且能產生預期結果的記憶系統,我們從數據科學角度通過如下方面來設計內存架構:
- 檢索質量:使用人工標記的相關性評級來衡量recall@k(信息檢索和推薦系統中常用的評價指標)和平均倒數排名 (Mean Reciprocal Rank,MRR)。在該架構中,我們不會進行一般性的猜測和測量,而是會描述智能體應該如何實際處理查詢的測試集。
- 從開始到結束的性能:在該架構中,我們需要跟蹤完成了多少任務,檢查用戶的滿意度,以及響應的效率。同時,為了衡量答案質量的變化,我們還應使用 BLEU、ROUGE 或語義相似性指標之類的工具。
- 系統性能:我們需要密切關注安裝成本、存儲增長量、查詢延遲分布方式、以及基礎結構增長情況。這些實用的指標通常會比純粹準確性的衡量標準更重要。
- 消融研究(Ablation studies):我們可以通過移除部分組件來驗證其必要性,進而確保以有計劃的方式,更改嵌入模型、塊大小、恢復方法、以及上下文壓縮技術。顯然,這將有助于確定哪些部分可以帶來更好的速度,以及哪些部分需要被調整。
提高效率的模式和策略
- 混合檢索:使用這種檢索方法,我們可以確保密集矢量從搜索開始,使用 BM25(Best Matching 25,一種信息檢索領域的經典算法)進行稀疏關鍵字匹配,以獲得各種查詢的良好結果。其實,我們正是從模型堆疊中獲悉了這種模式:這種組合方法通常比單獨使用任何一種方法都更有效。
- 動態分配上下文:我們通過設置學習的規則,根據查詢的復雜性、用戶的過往交互、以及作業的需求,來更改上下文窗口的使用方式。這將從效率上解決靜態資源的分配問題。
- 進行小的更改:對特定于某些智能體的數據,我們使用對比學習,使得通用嵌入模型更適應用戶所在的區域。毫不夸張地說,目前市場上已經上市的模型可能沒有幾個能夠達到該模型的準確水平(通常僅達到其15-30%)。
可能面臨的挑戰
- 管理成本:將 API 放入文本中,會使得成本隨著文本量的增加而直接上升。智能的分塊計劃、壓縮方法、以及精心添加的高價值內容都需要成本。為此,我們需要持續監控每位用戶所增加的費用,并設置警報,以便在超出限額時能及時發出通知。
- 數據質量:矢量系統可能會使得數據質量問題變得更糟。例如,無法正常工作的分塊、不均勻的風格、以及難以閱讀的文本都會減慢系統的運行速度。此外,我們還要確保結果質量得到跟蹤,并確保數據能夠正確地使用類似于機器學習功能的管道。
- 安全保障:采用嵌入的方式會跟蹤源文本的含義,這可能會帶來安全方面的風險。我們應對此考慮不同的隱私設置、訪問控制、以及保存數據的規則,使之既實用又合法。
小結
作為新興的學習和適應智能系統的基礎,數據科學家不僅可以使用矢量數據庫作為工具來創建 AI 聊天機器人,也能夠利用其邏輯來創建一套智能體內存,以監控系統、協調測試、并加快響應。面對復雜的系統開發與變化,我們不是要改進某一個模型,而是要構建出由多個協同工作能力的 AI 部件組成的分布式內存架構,讓更多單打獨斗的AI系統轉變成協同服務的AI智能體。
譯者介紹
陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。
原文標題:LLMs + Vector Databases: Building Memory Architectures for AI Agents,作者:Lanre Shittu

































