RAG,即檢索增強生成(Retrieval Augmented Generation),是一種結合預訓練大型語言模型與外部數據源的技術。這種方法結合了 GPT-3 或 GPT-4 等大型語言模型的生成能力與專門數據檢索機制的精確性,從而產生能夠提供細膩回應的系統。

本文將詳細探討檢索增強生成技術,給出一些實用的例子和應用,並提供一些資源幫助你深入了解大型語言模型(LLM)。

請參考我們的 LLM大型語言導入服務。可諮詢了解如何使用 PineCone 與 RAG 替企業打造自家商務需求的生成式 AI RAG。

RAG 是一種利用從外部來源獲取的事實來提高生成人工智慧模型準確性和可靠度的技術。要理解 RAG 對於生成式 AI 的運作方式,可以想像 RAG 最為一個法庭。法官根據對法律的一般理解來聆聽並做出判決。有時候,一個案件,比如過失訴訟或勞資爭議,需要特殊專業知識,所以法官會派遣法庭助理到法律圖書館,尋找可以引用的先例和特定案例。

RAG 就像一位優秀的法官一樣,大型語言模型(LLM)可以回應各種人類查詢。但為了提供引用來源的權威答案,該模型需要助手進行一些研究。RAG 就像是人工智慧的法庭助理。

為什麼使用 RAG 來改善大型語言模型?範例

為了更好地展示 RAG 是什麼以及這種技術如何運作,讓我們考慮一個當今許多企業面臨的情景。

假設你是一家銷售智能手機和筆記型電腦等設備的電子公司高管。你想為公司創建一個客戶支持聊天機器人,以回答用戶關於產品規格、故障排除、保修信息等方面的問題。你希望使用 GPT-3 或 GPT-4 等大型語言模型的功能來驅動你的聊天機器人。然而,大型語言模型有以下限制,導致客戶體驗低效:

缺乏具體信息

語言模型只能基於其訓練數據提供通用答案。如果用戶提出有關你銷售的軟件的具體問題,或詢問如何進行深入故障排除,傳統的大型語言模型可能無法提供準確答案。這是因為 LLM 沒有針對你的組織特定數據進行訓練。此外,這些模型的訓練數據有一個截止日期,限制了它們提供最新回應的能力。

幻覺

大型語言模型會產生“幻覺”,即它們傾向於自信地生成基於想像事實的錯誤回應。如果它們對用戶的問題沒有準確答案,這些算法還可能提供偏離主題的回應,導致糟糕的客戶體驗。

通用回應

語言模型通常提供不針對特定情境的通用回應。在客戶支持場景中,這可能是一個重大缺陷,因為個性化的客戶體驗通常需要滿足個別用戶偏好。

RAG 有效地彌補了這些不足,讓你能夠將大型語言模型的通識知識庫與訪問特定信息(例如產品數據庫和用戶手冊中的數據)的能力結合起來。這種方法可以生成高度準確且可靠的回應,符合你組織的需求。

RAG 是如何運作的?

現在你已經了解了 RAG 是什麼,讓我們看看設置這個框架所需的步驟:

一般 RAG 圖像數據預處理工作流程

第一步:數據收集

首先必須收集應用所需的所有數據。對於電子公司來說,這可以包括用戶手冊、產品數據庫和常見問題解答列表。

第二步:數據分塊

數據分塊是將數據分解成更小、更易管理的部分的過程。例如,如果你有一個長達 100 頁的用戶手冊,你可以將其分解成不同的部分,每個部分可能回答不同的客戶問題。

這樣,每塊數據都專注於特定主題。當從數據源數據集中檢索信息時,更可能直接適用於用戶的問題,因為我們避免了從整個文檔中包括無關信息。

這也提高了效率,因為系統可以快速獲取最相關的信息塊,而不是處理整個文檔。

使用定製的 MLLM 處理不同類型圖像的 RAG 預處理工作流程

第三步:文檔嵌入

現在數據源已分解成較小部分,需要將其轉換為向量資料庫 (Vector DB) 可用的訊號。這涉及將數據轉換為嵌入。簡而言之,嵌入文件使系統能夠理解用戶查詢並根據文本的含義將其與數據源中的相關信息匹配,而不是簡單的詞對詞比較。這種方法確保了回應的相關性並與用戶查詢保持一致。

如果你想了解更多有關如何將文本數據轉換為 Pinecone Vector Database,請諮詢我們的企業 AI 導入服務 - 使用 OpenAI API  與 Pinecone Vector DB 導入 AI RAG 服務。

第四步:處理用戶查詢

當用戶查詢進入系統時,它也必須轉換為嵌入或向量表示。為了確保查詢和文檔嵌入之間的一致性,必須使用相同的模型。

一旦查詢轉換為嵌入,系統會將查詢嵌入與文檔嵌入進行比較。系統會識別並檢索與查詢嵌入最相似的數據塊,使用餘弦相似度和歐幾里得距離等度量方法。這些數據塊被認為是最相關於用戶查詢的。

圖 - NVIDIA

第五步:使用大型語言模型生成回應

檢索到的文本塊連同初始用戶查詢一起被輸入語言模型。算法將使用這些信息通過聊天界面生成對用戶問題的連貫回應。

以下是一個簡化的流程圖,總結了 RAG 的工作原理:

為了無縫完成生成回應所需的步驟,你可以使用像 LlamaIndex 這樣的數據框架。

這種解決方案允許你通過有效管理從外部數據源到 GPT-3 等語言模型的信息流來開發自己的大型語言模型應用程序。要了解更多有關此框架以及如何使用它構建基於大型語言模型的應用程序,請閱讀我們的文章 LlamaIndex:將個人數據添加到大型語言模型

RAG 的實際應用

我們現在知道 RAG 允許大型語言模型根據其訓練數據之外的信息生成連貫的回應。這樣的系統在各種業務用例中具有提高組織效率和用戶體驗的潛力。除了本文前面提到的客戶聊天機器人示例外,以下是一些 RAG 的實際應用:

文本摘要

RAG 可以使用外部來源的內容生成準確的摘要,從而節省大量時間。例如,經理和高級主管是忙碌的人,他們沒有時間瀏覽冗長的報告。

使用 RAG 驅動的應用程序,他們可以快速獲取文本數據中最關鍵的發現,從而更有效地做出決策,而不必閱讀冗長的文檔。

個性化推薦

RAG 系統可以用來分析客戶數據,例如過去的購買和評論,生成產品推薦。這將提高用戶的整體體驗,並最終為組織增加更多收入。

例如,RAG 應用程序可以用於根據用戶的觀看歷史和評分推薦更好的電影在流媒體平台上。它們還可以用於分析電子商務平台上的書面評論。

由於大型語言模型在理解文本數據語義方面表現出色,RAG 系統可以提供比傳統推薦系統更細緻的個性化建議。

商業智能

組織通常通過密切關注競爭對手行為和分析市場趨勢來做出商業決策。這需要仔細分析商業報告、財務報表和市場研究文件中的數據。

使用 RAG 應用程序,組織不再需要手動分析這些文檔中的趨勢。相反,可以利用大型語言模型高效地提取有意義的見解並改善市場研究過程。

使用 RAG 的好處是?

RAG 技術為組織導入自家的生成式 AI 帶來了多種好處。

具成本效益

聊天機器人的開發通常從使用基礎模型開始。基礎模型(FMs)是基於廣泛且無標籤的數據訓練的 API 可訪問的大型語言模型。為組織或特定領域的信息重新訓練基礎模型在計算和財務上成本高昂。RAG 是將新數據引入 LLM 的更具成本效益的方法。它使生成式人工智慧(生成式 AI)技術更廣泛地可訪問和使用。

最新信息

即使 LLM 的原始訓練數據來源適合你的需求,也很難保持其相關性。RAG 允許開發者向生成模型提供最新的研究、統計數據或新聞。他們可以使用 RAG 將 LLM 直接連接到實時社交媒體流、新聞網站或其他經常更新的信息來源。LLM 可以向用戶提供最新信息。

增強用戶信任

RAG 允許 LLM 提供帶有來源標註的準確信息。輸出可以包括引用或參考資料。如果用戶需要進一步澄清或更多細節,也可以自行查閱來源文檔。這可以增加用戶對你生成式 AI 解決方案的信任和信心。

更多開發者控制

通過 RAG,開發者可以更有效地測試和改進他們的聊天應用程序。他們可以控制和更改 LLM 的信息來源,以適應變化的需求或跨功能使用。開發者還可以將敏感信息檢索限制在不同的授權級別,並確保 LLM 生成適當的回應。此外,如果 LLM 針對特定問題引用了錯誤的信息來源,他們也可以進行故障排除和修正。組織可以更自信地將生成式 AI 技術應用於更廣泛的應用場景。

實施 RAG 系統的挑戰和最佳實踐

雖然 RAG 應用程序使我們能夠在信息檢索和自然語言處理之間架起橋樑,但它們的實施面臨一些獨特的挑戰。在本節中,我們將探討構建 RAG 應用程序時遇到的複雜問題,並討論如何減輕這些問題。

集成複雜性

將檢索系統與大型語言模型集成可能很困難。當有多個格式各異的外部數據源時,這種複雜性會增加。輸入 RAG 系統的數據必須一致,生成的嵌入需要在所有數據源中保持一致。

為了解決這一挑戰,可以設計單獨的模塊來獨立處理不同的數據源。每個模塊中的數據都可以預處理以保持一致性,並使用標準化模型確保嵌入格式一致。

可擴展性

隨著數據量的增加,維持 RAG 系統效率變得更加困難。需要執行許多複雜操作——如生成嵌入、比較不同文本片段的語義和實時檢索數據。

這些任務計算量大,隨著源數據量的增加會降低系統速度。

為了應對這一挑戰,可以將計算負載分佈在不同服務器上,並投資於強大的硬件基礎設施。為了提高響應時間,也可以緩存經常詢問的查詢。

向量數據庫的實施還可以緩解 RAG 系統中的可擴展性問題。這些數據庫允許你輕鬆處理嵌入,並能快速檢索與每個查詢最密切相關的向量。

數據質量

RAG 系統的有效性在很大程度上取決於輸入數據的質量。如果應用程序訪問的源內容質量差,生成的回應將不準確。

組織必須投入大量精力於內容篩選和微調過程。必須精煉數據源以提高其質量。對於商業應用,涉及主題專家審查並填補數據集中的信息空白可能是有益的。

為什麼 RAG 尚未普及以及它的應用難度?

探討為什麼檢索增強生成(RAG)技術尚未廣泛採用

在數據科學社群中,檢索增強生成(Retrieval-Augmented Generation, RAG)技術最近引起了不少討論。這種技術結合了檢索和生成模型的優勢,理論上能夠提供更準確和上下文相關的回答。然而,為什麼這樣一個看似強大的技術尚未被廣泛應用呢?

1. 技術的複雜性

RAG 結合了檢索模型和生成模型,這意味著需要在一個系統中有效地整合兩種不同類型的模型。這樣的整合需要大量的工程工作和調試,以確保模型之間的協同工作和性能表現。對於許多公司和團隊來說,這樣的複雜性可能會增加開發成本和時間,使其望而卻步。

2. 資源需求

運行 RAG 需要大量的計算資源和數據。檢索部分需要龐大的數據庫來檢索相關信息,而生成部分則需要強大的計算能力來生成高質量的文本。對於資源有限的企業和團隊來說,這可能是一個很大的挑戰。此外,維護這樣一個系統所需的資源也是一個不容忽視的問題。

3. 預訓練模型的限制

目前的 RAG 模型通常依賴於預訓練的生成模型,如 GPT-3 等。然而,這些生成模型並非專為特定應用場景設計,其在某些專業領域的表現可能不如專門訓練的模型。此外,這些預訓練模型的更新和維護也是一個問題,因為它們的性能可能會隨著時間的推移而下降。

4. 使用場景的局限性

儘管 RAG 在理論上具有很大的潛力,但在實際應用中,其效果可能不如預期。RAG 更適合於需要大量上下文信息和靈活生成的場景,但對於一些特定的應用場景,如精確的數據查詢或結構化數據處理,傳統的方法可能更為有效。此外,在某些情況下,生成的內容可能會出現偏差或錯誤,這對於一些高精度需求的應用來說是不可接受的。

5. 市場認知度和教育

RAG 作為一項新技術,其市場認知度尚不高。許多企業和開發者對其了解不夠,甚至不知道它的存在。這需要時間和教育來提高市場對 RAG 的認知度,讓更多的人了解和接受這項技術。

RAG 的導入難度

儘管 RAG 技術在理論上具有很大的潛力,但其在實際應用中的複雜性、資源需求、預訓練模型的限制、使用場景的局限性以及市場認知度不足等因素,使其尚未被廣泛採用。然而,隨著技術的進步和市場的教育,RAG 的應用前景依然值得期待。未來,我們相信,隨著技術的進一步發展和完善,RAG 可能會在更多的應用場景中發揮重要作用。

總結

RAG 是目前 AI 應用領域成長最快的技術之一,能夠將大型語言模型的語言能力與專業數據庫相結合。這些系統解決了在使用語言模型時遇到的一些最緊迫的挑戰,並在自然語言處理領域提出了創新解決方案。

然而,與其他技術一樣,RAG 應用程序也有其局限性,尤其是它們對輸入數據質量的依賴。為了充分利用 RAG 系統,過程中加入人為監督至關重要。精心篩選數據並結合專家知識,對於確保這些解決方案的可靠性至關重要。

如果你想深入了解 RAG 的世界並了解它如何用於構建有效的人工智能應用程序,可以觀看我們的文章 使用 LangChain 構建 AI 應用程序

關於作者

Erik.C - Founder, CEO: 專注於企業資安, 數據科學, 行銷科技AI 的運用。他相信,數據如果被明智地使用,能夠激發個人和組織的巨大成長。作為多家科技新創公司的投資人和創始人,Erik 撰寫文章幫助企業 AI 轉型與數據科學的人進入該行業,他的部落格和 Tenten Newsletter AI for Business 平均每月吸引 10 萬次瀏覽。


RAG 常見問題

什麼是 RAG (檢索增強生成)?

RAG 是一種結合預訓練大型語言模型(LLMs)與外部數據源的技術,允許生成更細緻和準確的人工智能回應。

為什麼 RAG 對提高大型語言模型的功能很重要?

RAG 解決了大型語言模型的一些關鍵限制,如提供通用答案的傾向、生成錯誤回應(幻覺)以及缺乏具體信息。通過將大型語言模型與特定的外部數據集成,RAG 可以生成更精確、可靠和上下文相關的回應。

RAG 是如何工作的?其實施過程涉及哪些步驟?

RAG 包括幾個步驟:數據收集、數據分塊、文檔嵌入、處理用戶查詢和使用大型語言模型生成回應。此過程確保系統能夠準確地將用戶查詢與外部數據源中的相關信息匹配。

實施 RAG 系統面臨哪些挑戰,如何應對這些挑戰?

挑戰包括集成複雜性、可擴展性和數據質量。解決方案包括為不同數據源創建單獨的模塊,投資於強大的基礎設施,以及確保仔細的內容篩選和微調。

RAG 可以與 GPT-3 或 GPT-4 之外的其他語言模型集成嗎?

是的,RAG 可以與各種語言模型一起工作,只要它們能夠進行複雜的語言理解和生成。其效果取決於模型的具體優勢。

RAG 與傳統搜索引擎或數據庫有何不同?

RAG 將搜索引擎的檢索能力與語言模型的細緻理解和回應生成能力相結合,提供上下文感知和詳細的答案,而不僅僅是檢索文檔。

Learn more about RAG

Share this post