LLM大模型向量資料庫技術架構淺析

danny_2018發表於2023-11-10

AI 智慧時代,開發者需要一個真正的向量資料庫嗎?

答案很簡單,這取決於開發者的應用場景。舉個例子,晚飯選擇去一家五星級餐廳用餐或是是快餐店,往往和你的胃口和期望有關。

如果只是想簡單解決一頓飯,一家快餐店就能滿足你。同理,如果想為自己的個人網站快速搭建一個問答機器人,或者為相簿裡的十萬張照片建立一個索引,你可以選擇最熟悉和便捷的方法,無論是使用免費的向量檢索雲服務,或者安裝基於 PostgreSQL 的開源向量檢索外掛 PG Vector,抑或是在本地透過 pip 安裝 Faiss、HNSW、Annoy 等開源向量檢索庫,都是不錯的選擇。

然而,如果我們的目標是一個品質高階的晚宴,大機率會選擇一個五星級餐廳。這就好像我們想要構建一個企業級的向量檢索應用,資料量超過千萬級,要求延遲在 10ms 以下,需要使用高階功能如標量過濾、動態架構、多租戶、實時更新/刪除、批次匯入等。不止如此,我們甚至希望能夠在短短十分鐘內快速構建一個可用的 Demo……這就不得不借助原生向量資料庫的能力和優勢了,它就像五星級餐廳一般,不僅可以滿足你的基本需求,更是質量和服務的保證。

什麼是向量檢索?

向量資料庫具有快速計算向量相似度的優勢,能在 N 個向量中找出與目標向量在高維空間中最相似的前 K 個向量。然而,這種能力並非僅有向量資料庫所具備。例如,我們可以透過使用 Python 的 NumPy 庫,用不到 20 行程式碼就能實現最近鄰演算法。

我們可以試著生成 100 個 2 維向量,然後找出與向量[0.5,0.5]最近的鄰居。

向量資料庫的底層技術

向量資料庫底層技術已經被研究多年,有以下3點關鍵技術:

第一、基於嵌入的檢索( Embedding-Based Retrieval, EBR)已經被研究了十多年。

第二、相似性搜尋(Similarity Search)持續了長達半個世紀。

第三、NumPy 或其他 FAISS 向量搜尋庫也可以用來構建向量搜尋系統。

為什麼最近向量資料庫變成如此火熱,推動力就是 LLM 大語言模型。推動從演算法嚮應用系統轉變的,是新的「資料密集型應用程式」 = 大量的「非結構化」資料儲存 + 「可靠、安全、快速和可伸縮」的查詢處理能力。

傳統資料庫以行和列的表格式儲存資料,並且基於精確匹配或預定義條件搜尋精確的資料。

然而,大量業務資料是非結構化的,以文字、影像、音訊、影片或其他格式儲存,這給傳統資料庫帶來了挑戰。

Vector Database 儲存的“向量資料”,通常是透過對這些非結構化資料使用某種轉換或嵌入函式來生成的。

來自 “ 玄姐聊AGI ”, 原文作者:玄姐;原文連結:https://mp.weixin.qq.com/s/O_0tjwptqr61hhmuxqG-dQ,如有侵權,請聯絡管理員刪除。

相關文章