# 向量搜尋成功

By [kisback](https://paragraph.com/@koshibe) · 2024-05-19

---

探索 RAG 在培養複雜的 LLMs 方面的作用。
-------------------------

在 2022 年之前，如果你想在沒有作品本身的情況下快速回憶起你最喜歡的書中的特定段落或你剛剛看過的電影中的台詞，你可能會轉向搜尋引擎。您可以使用精心設計的搜尋輸入來提示它，解析返回的結果，訪問似乎包含您的答案的 SparkNotes 或 IMDB 鏈接，並在幾分鐘內在頁面上找到您要查找的文本。現在，您只需打開 ChatGPT，輸入「最著名的《終結者》名言是什麼？」 或「寫出《兩個城市的故事》的開頭段落」並在幾秒鐘內得到你的逐字回答。

大型語言模型 (LLM) 最簡單的用途之一是作為知識資料庫。 LLMs 接受過包含豐富資訊的大量資料集的培訓，像 ChatGPT 這樣的介面使得檢索變得容易。例如，當您提示 ChatGPT 返回電影或書籍中的內容時，您只是利用模型的能力來回憶其在訓練期間接觸到的信息。但是，如果它沒有接受《魔鬼終結者》劇本的訓練，或者它的權重不重視狄更斯的作品，該怎麼辦？為了即使是最簡單的用例（例如基本資訊檢索）也能提供最準確和相關的結果，LLMs 需要複雜的索引和檢索機制，能夠精確地存取廣泛的資訊。

### 了解 LLMs 內容生成和訓練

LLM 內容是透過稱為下一個令牌預測的過程產生的，該過程可確保回應上下文適當、多樣化，並在一定程度上反映了類似人類的理解。以下是下一個令牌預測的工作原理，一步一步：

輸入處理：當您鍵入提示或問題時，該輸入將轉換為標記：單字或單字片段。

上下文理解：模型會查看您給它的標記，並根據其訓練嘗試理解上下文，其中包括從當前主題到您可能使用的語氣的所有內容。

下一個標記預測：使用它所理解的上下文，模型然後預測最有可能的下一個標記是什麼。這不僅僅是根據前一個單字進行猜測；而是根據前一個單字進行猜測。它正在考慮到目前為止對話的整個背景。

令牌選擇：一旦預測了一系列可能的下一個令牌，它就會選擇一個。這種選擇是基於機率—根據模型訓練的數據，最有可能出現的標記。然而，值得注意的是，這裡也存在一些隨機性，這有助於產生更多樣化和聽起來更自然的反應。

輸出產生：然後將選定的標記轉換回人類可讀的文字。如果回應不完整（通常不是僅在一個令牌之後），則該過程會重複。新的標記被加入到序列中，模型根據更新的上下文預測下一個標記。

迭代細化：重複預測下一個標記並將其添加到序列中的過程，直到模型到達停止點。這可能是當反應達到一定長度時，模型預測一個表示句子或段落結束的標記，或當它滿足提示中嵌入的指令時。

### LLM 訓練中壓縮的局限性

當 LLM 預測令牌時，它會有效地檢索並利用嵌入其權重中的壓縮知識來產生上下文適當的輸出。透過這種方式，LLM 培訓反映了資料庫壓縮。正如資料庫經過最佳化以快速調用經常存取的資料一樣，LLMs 旨在從其權重中檢索資訊（特定的插值記憶）。這種功能使其能夠對訓練期間遇到的熟悉材料的查詢產生精確的響應，就像在資料庫中查詢索引良好的資訊一樣。然而，當模型遇到不太熟悉或模糊的內容時，就會出現限制。

例如，當你向LLMs 詢問《聖經》中的特定段落時，它會逐字引用它們，但它不能逐字引用任何它在訓練期間沒有多餘“見證”的概念，因為與該概念相關的權重太高了。從這個意義上來說，LLMs 也類似於資料庫。正如資料庫可能只傳回已明確儲存在其中的資料一樣，LLMs 可能很難產生其在訓練期間未廣泛見過的主題的內容。

當然，LLMs 超出了這個類比的範圍，因為他們內部有一個世界模型，使他們能夠「理解」純粹不僅僅是查找之外的事物。然而，這種過度簡化有助於我們理解 LLMs 訓練產生內容的方式的一些關鍵限制。

### LLM 訓練的進一步限制

此外，下一個令牌預測系統還具有其他固有的局限性，這些局限性源於其生成文本的基本方法：

上下文視窗大小：主要限制之一是模型的上下文視窗大小 - 模型在進行預測時可以考慮的最大文字量（以標記為單位）。對於許多模型（包括早期版本的GPT）來說，此視窗不夠大，無法維護較長對話或文件的上下文，這可能會導致較長文本或複雜討論失去連貫性，而這些文本或複雜討論需要維護超出前一個標記的上下文。

泛化與特異性：雖然這些模型是在大量資料集上進行訓練的，但它們從訓練中泛化的能力有時會導致它們產生通用或模糊相關的內容。他們可能無法產生高度具體或細緻入微的回應，這些回應需要詳細的理解或訓練資料以外的最新知識。

缺乏外部知識存取：下一個令牌預測模型僅限於其訓練資料集中包含的資訊。他們無法在培訓後存取或整合新訊息，這意味著它們可能很快就會過時或缺乏當前背景，例如最近的事件、發現或熱門話題。

重複性和可預測性：下一個標記預測的演算法性質有時會導致重複或可預測的文字生成。由於該模型通常傾向於在給定上下文的情況下在統計上更有可能遵循的標記，因此它可能會陷入循環或喜歡常見短語，從而減少輸出的可變性。

### 檢索增強生成 (RAG) 解釋

如上所述，LLMs 根據訓練期間分配給資料不同方面的權重產生回應。這些權重反映了模型感知輸入資料的各種元素的重要性或重要性。如果使用者的提示包含訓練資料中未顯著表示的元素，則模型可能無法產生準確或相關的回應。

當對話超出LLM 的上下文視窗時，或者當提示超出LLM 自己的訓練資料集中的重要權重限制時（意味著它無法準確回憶起用戶正在尋找的答案），該模型通常依賴外部向量搜尋資料庫，這使得它能夠搜尋可以附加到使用者提示中的相關上下文或新資料。此過程稱為檢索增強生成 (RAG)。

### “向量搜尋成功”

RAG 過程是透過向量搜尋資料庫實現的：向量搜尋資料庫是一種以向量形式儲存和管理資料的高級資料庫。這些向量表示高維空間中的數據，其中每個維度捕獲數據含義的某些方面，從而允許表示複雜的關係和屬性。在文字和語言的背景下，向量搜尋資料庫使用嵌入等技術將文字轉換為數值向量。這種轉換使系統能夠透過計算多維空間中不同文字片段對應向量之間的距離來測量不同文字片段之間的語義相似性。

在 RAG 期間，查詢（即使用者對 LLM 的輸入）和儲存的資料（例如文章、文件或句子）都使用文字嵌入轉換為向量。這些嵌入將文字資料轉換為數值向量，其中相似的含義被映射到向量空間中的鄰近點。然後，資料庫計算查詢向量與儲存資料向量之間的距離，以確定文字意義的相關程度。資料庫檢索向量最接近查詢向量的資料點（文字內容），即語意上與輸入最相似的資料點。這些數據點在上下文和含義方面被認為是「最近的鄰居」。

這些最近的鄰居為 LLMs 在其自己的訓練資料中可能無法存取的上下文相關的附加資訊提供了基礎，這可以顯著提高 LLMs 輸出的準確性、相關性、豐富性和多樣性。 Sam Altman 等人提倡「向量搜尋成功」方法，即依靠 RAG 來開發代理，而不是單獨進行模型微調。

### RAG 作為微調的替代方案

微調 LLMs 涉及根據特定資料集的額外訓練來調整模型的權重，以提高特定任務的效能或增進對某些領域的理解。這個過程不僅慢於創新的速度，這意味著經過微調的模型幾乎和更新一樣快地過時，而且它也沒有解決新數據的問題。

相比之下，RAG 使模型能夠即時存取外部資料庫，以檢索與當前查詢相關的最新資訊。即使底層模型最近沒有更新或微調，它仍然可以產生包含最新資料的回應。模型可以更長時間地保持相關性，因為它們可以適應新的資料和變化，透過檢索外部資訊來源來了解上下文。

### 解決 LLMs 的進一步限制

除了微調之外，RAG 還解決了先前提到的與標準 LLMs 相關的挑戰：

擴展上下文理解：RAG 透過獲取增強模型響應的最新或詳細資訊來擴展傳統 LLMs 的上下文視窗。

提高特異性和準確性：RAG 允許模型將檢索到的文件中的特定詳細資訊注入到其回應中，而不是僅依賴訓練期間學習的模式，從而使它們不僅更加準確，而且可以針對當前的特定查詢進行自訂。

減少重複性和可預測性：透過為每個查詢動態提取不同的資訊集，RAG 可以顯著改變模型的回應。這種可變性有助於減少純生成模型中常見的重複性和可預測性，因為外部資料在對話中引入了新的措詞和細節。

### RAG 的挑戰與必要的演變

然而，RAG 也有其自身的挑戰，即延遲和缺乏智慧。考慮一個基於回合的代理聊天機器人對話，其中用戶提交提示，LLM 吐出一些標記表明它需要更多上下文，向量搜尋資料庫透過用戶的輸入提示檢索最近鄰居上下文，然後最終發送兩者再次向LLM進行推理。然後，輪到用戶回复，等等。

在此系統中，每個使用者提示都會啟動一個多步驟操作，其中每個步驟都會增加總處理時間。整個過程的速度也取決於向量搜尋資料庫檢索必要上下文的速度。如果資料庫查詢很複雜或資料庫本身很大且沒有最佳索引，則此檢索可能會導致嚴重的延遲。此外，特別是在更複雜的對話中，這種生成和檢索的順序可能需要重複多次才能充分細化回應。這種迭代循環會增加延遲，導致互動速度比僅依賴內部資料的純生成模型慢。

此外，富含 RAG 的 LLMs 的智力在很大程度上取決於從向量搜尋資料庫檢索到的資訊的品質和相關性。如果資料庫內容不全面、不最新或維護良好，則檢索到的資訊的效用可能會受到限制，從而影響回應的整體智慧。

即使檢索到高品質的外部數據，挑戰仍然在於如何有效地將這些資訊整合到 LLMs 現有的回應框架中。該模型不僅必須包含這些外部數據，而且必須以適合上下文且連貫的方式進行。模型的訓練與外部資料的性質之間的不一致可能會導致技術上準確但情境脫節的反應。

### 下一代 LLMs

新一代 LLMs 可能會將基於向量搜尋的 RAG 和傳統的訓練/微調方法以及結構化資料處理（例如 TradFi 市場資料和相關金融新聞的 SQL 資料庫）混合在一起。 「這裡」有一個 LLMs 提供者，「那裡」有一個單獨的向量搜尋資料庫的概念將透過新模型進行整理，該模型直觀地將其索引工作記憶體擴展到具有 TB 向量化上下文的本地 SSD。

Space and Time 已經向客戶提供了Proof of SQL（一種ZK 證明，用於驗證SQL 資料庫處理的準確性和防篡改性），並且最近還提供了Proof of Vector Search（向量搜尋檢索），它對向量搜尋檢索具有相同的作用。這些新穎的證明為未來開闢了道路， LLMs 可以整合新的背景，即時存取更廣泛、更細緻的資料範圍，並整合結構化資料處理以產生更有洞察力的分析，所有這些都以可追蹤、可驗證的方式進行。這些進步最終將擴大 LLMs 的應用範圍，擴大其在金融服務、新聞聚合和風險評估等嚴重依賴最新數據的領域的效用，從而推動下一波創新驅動的人工智慧浪潮。

[https://www.spaceandtime.io/blog/vector-search-to-success](https://www.spaceandtime.io/blog/vector-search-to-success)

---

*Originally published on [kisback](https://paragraph.com/@koshibe/zJ5tPeKvGNUENuRg8Wbz)*
