檢索增強生成(Retrieval Augmented Generation,RAG)已成為基于大型語言模型的生成式人工智能應用的關鍵組成部分。其主要目標是通過將通用語言模型與外部信息檢索系統集成,增強通用語言模型的能力。這種混合方法旨在解決傳統語言模型在處理復雜、知識密集型任務方面的局限性。通過這樣做,RAG顯著提高了生成響應的事實準確性和可靠性,尤其是在需要精確或最新信息的情況下。
RAG以其增強語言模型知識的能力脫穎而出,使其能夠產生更準確、上下文感知和可靠的輸出。其應用范圍從增強聊天機器人到驅動復雜的數據分析工具,使其成為構建聊天機器人和人工智能代理的重要工具。
但讓我們更仔細地看一看針對生產環境的RAG流水線性能的潛在瓶頸。
提示模板
LLM中的提示模板在確定模型響應質量方面起著關鍵作用。一個結構不良的提示可能導致模糊或無關的響應。
每個LLM都有一個定義良好的提示模板,成為模型的通用語言。為了從模型中獲得最佳結果,確保提示按照預訓練期間使用的格式正確構造非常重要。
例如,下面的模板確保 Llama 2 對提示做出適當的響應。
<s>[INST] <<SYS>>{{ system_prompt }}<</SYS>>{{ user_message }}[/INST]
OpenAI 的 LLMs 使用以下格式:
{“role”: “system”, “content”: “system_prompt“},
{“role”: “user”, “content”: “user_message“}
LLM 上下文長度
LLMs 有一個固定的上下文窗口,限制了它們在一個實例中可以考慮的信息量。這取決于預訓練期間使用的參數。標準的 GPT-4 模型提供一個上下文窗口為 8,000 個 token。還有一個擴展版本,具有 32,000 個 token 的上下文窗口。此外,OpenAI 推出了 GPT-4 Turbo 模型,其上下文窗口顯著擴大至 128,000 個 token。Mistral 具有一個在技術上無限制的上下文窗口,具有 4,000 個滑動窗口上下文大小。Llama 2 具有 4,096 的上下文窗口。
即使一些 LLMs 具有較大的上下文窗口,這并不意味著我們可以跳過 RAG 流水線的某些階段,一次性傳遞整個上下文。“上下文 stuffing” 即在提示中嵌入大量上下文數據,已被證明會降低 LLM 的性能。因為模型支持更大的上下文長度,所以在提示中包含整個 PDF 并不是一個好主意。
確保提示和上下文的組合大小在合理上下文長度的限制內,可確保更快、更準確的響應。
分塊策略
分塊是一種用于處理超過模型最大token限制的長文本的技術。由于LLMs一次只能處理固定數量的token,基于上下文窗口,分塊涉及將較長的文本劃分為更小、可管理的段落或“塊”。每個塊都按順序處理,使模型能夠通過一次專注于一個段落來處理廣泛的數據。
分塊是處理存儲在文件中的內容(如PDF和TXT)的重要過程,其中大文本被劃分為更小、更易管理的段落,以適應嵌入模型輸入限制。這些模型將文本塊轉換為代表它們語義含義的數值向量。這一步驟對于確保每個文本段保持其上下文相關性并準確表示語義內容至關重要。生成的向量然后存儲在向量數據庫中,允許在語義搜索和內容推薦等應用中進行高效的向量化數據處理。基本上,分塊允許以上下文感知的方式高效處理、分析和檢索大量文本數據,克服了嵌入模型的限制。
以下列表突顯了一些經過驗證的嵌入模型的分塊策略。
- 基于句子的分塊:這種策略將文本劃分為單獨的句子,確保每個塊捕捉完整的思想或觀點;適用于側重于句子級語義的模型。
- 基于行的分塊:將文本分割成行,通常用于詩歌或腳本,其中每行的結構和韻律對理解至關重要。
- 基于段落的分塊:這種方法按段落對文本進行分塊,非常適合保持每個文本塊內的主題連貫性和上下文。
- 固定長度令牌分塊:在這里,文本被劃分為包含固定數量token的塊,平衡模型輸入約束與上下文完整性。
- 滑動窗口分塊:涉及使用“滑動窗口”方法創建重疊塊,確保相鄰塊之間的連續性和上下文,特別適用于具有復雜敘述的長文本。
選擇適合文本嵌入模型和語言模型的正確分塊策略是RAG流水線中最關鍵的方面。
嵌入模型的維度
嵌入模型的維度指的是用于在向量空間中表示文本的維度數量。在自然語言處理(NLP)中,這些模型,比如Word2Vec這樣的詞嵌入,或者來自BERT的句子嵌入,將單詞、短語或句子轉換為數值向量。維度通常從幾十到幾百,甚至幾千,決定了模型捕捉語言語義和句法細微差別的粒度和容量。更高維度的嵌入可以捕捉更多信息和細微差別,但也需要更多計算資源,可能導致機器學習模型中的過擬合等問題。
在LLMs中,嵌入模型的維度影響其捕捉語義細微差別的能力。更高的維度通常意味著更好的性能,但代價是增加的計算資源。
以下是一些常見的文本嵌入模型及其維度的列表:
- sentence-transformers/all-MiniLM-L6-v2:這個適用于一般用途且維度較低的模型,維度為384。它專為在英文文本中嵌入句子和段落而設計。
- BAAI/bge-large-en-v1.5:這是性能最好的文本嵌入模型之一,維度為1024,適用于嵌入整個句子和段落。
- OpenAI text-embedding-3-large:OpenAI最近宣布的嵌入模型具有3072個維度的嵌入大小。這更大的維度使模型能夠捕捉更多的語義信息,提高下游任務的準確性。
- Cohere Embed v3s:Cohere最新的嵌入模型Embed v3,提供了維度為1024或384的版本。模型提供商聲稱這是最高效和成本效益最高的嵌入模型。
在性能和計算效率(成本)之間取得平衡至關重要。研究集中于找到在最大化性能的同時最小化資源使用的最佳維度。
向量數據庫中的相似性搜索算法
向量數據庫中相似性搜索算法的效率對于RAG中的語義搜索和文檔檢索等任務至關重要。
優化索引和選擇正確的算法顯著影響查詢處理機制。一些向量數據庫允許用戶在創建索引時選擇度量或算法:
- 余弦相似度:該指標測量兩個向量之間夾角的余弦,提供了一個相似度分數,不考慮它們的大小。在文本檢索應用中特別有效,其中向量的方向(指示它們上下文方向相似性的方向)比它們的大小更為重要。
- HSNW(Hierarchical Navigable Small World Graphs):一種基于圖的方法,HSNW構建了多層次的可導航小世界圖,實現了高效的最近鄰搜索。在高維數據空間中,它以高召回率和搜索速度而聞名。
- 用戶定義的算法:也可以實現定制算法,以適應特定用例。這些算法可以利用領域特定的見解來優化搜索和索引策略,為不同數據集和應用的獨特要求提供定制方法。
這些方法共同為向量數據庫中的搜索準確性和查詢效率的提升做出貢獻,滿足了在各種數據類型和用例中的多樣化要求。
總結
RAG(Retrieval Augmented Generation)流水線的瓶頸包括提示模板設計、上下文長度限制、分塊策略、嵌入模型的維度以及在向量數據庫中用于相似性搜索的算法。這些挑戰對RAG模型的效果和效率產生影響,從生成準確響應到處理大量文本和保持上下文連貫性。解決這些瓶頸對于提高基于各種LLM的應用性能至關重要,確保它們能夠準確解釋和生成語言響應。
如何系統的去學習大模型LLM ?
作為一名熱心腸的互聯網老兵,我意識到有很多經驗和知識值得分享給大家,也可以通過我們的能力和經驗解答大家在人工智能學習中的很多困惑,所以在工作繁忙的情況下還是堅持各種整理和分享。
但苦于知識傳播途徑有限,很多互聯網行業朋友無法獲得正確的資料得到學習提升,故此將并將重要的 AI大模型資料
包括AI大模型入門學習思維導圖、精品AI大模型學習書籍手冊、視頻教程、實戰學習等錄播視頻免費分享出來。
所有資料 ?? ,朋友們如果有需要全套 《LLM大模型入門+進階學習資源包》,掃碼獲取~
👉CSDN大禮包🎁:全網最全《LLM大模型入門+進階學習資源包》免費分享(安全鏈接,放心點擊)👈
?
一、全套AGI大模型學習路線
AI大模型時代的學習之旅:從基礎到前沿,掌握人工智能的核心技能!
二、640套AI大模型報告合集
這套包含640份報告的合集,涵蓋了AI大模型的理論研究、技術實現、行業應用等多個方面。無論您是科研人員、工程師,還是對AI大模型感興趣的愛好者,這套報告合集都將為您提供寶貴的信息和啟示。
三、AI大模型經典PDF籍
隨著人工智能技術的飛速發展,AI大模型已經成為了當今科技領域的一大熱點。這些大型預訓練模型,如GPT-3、BERT、XLNet等,以其強大的語言理解和生成能力,正在改變我們對人工智能的認識。 那以下這些PDF籍就是非常不錯的學習資源。
四、AI大模型商業化落地方案
階段1:AI大模型時代的基礎理解
- 目標:了解AI大模型的基本概念、發展歷程和核心原理。
- 內容:
- L1.1 人工智能簡述與大模型起源
- L1.2 大模型與通用人工智能
- L1.3 GPT模型的發展歷程
- L1.4 模型工程
- L1.4.1 知識大模型
- L1.4.2 生產大模型
- L1.4.3 模型工程方法論
- L1.4.4 模型工程實踐 - L1.5 GPT應用案例
階段2:AI大模型API應用開發工程
- 目標:掌握AI大模型API的使用和開發,以及相關的編程技能。
- 內容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具類框架
- L2.1.4 代碼示例 - L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架應用現狀
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架與Thought
- L2.2.5 Prompt框架與提示詞 - L2.3 流水線工程
- L2.3.1 流水線工程的概念
- L2.3.2 流水線工程的優點
- L2.3.3 流水線工程的應用 - L2.4 總結與展望
- L2.1 API接口
階段3:AI大模型應用架構實踐
- 目標:深入理解AI大模型的應用架構,并能夠進行私有化部署。
- 內容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的設計理念
- L3.1.2 Agent模型框架的核心組件
- L3.1.3 Agent模型框架的實現細節 - L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的應用場景 - L3.3 ChatGLM
- L3.3.1 ChatGLM的特點
- L3.3.2 ChatGLM的開發環境
- L3.3.3 ChatGLM的使用示例 - L3.4 LLAMA
- L3.4.1 LLAMA的特點
- L3.4.2 LLAMA的開發環境
- L3.4.3 LLAMA的使用示例 - L3.5 其他大模型介紹
- L3.1 Agent模型框架
階段4:AI大模型私有化部署
- 目標:掌握多種AI大模型的私有化部署,包括多模態和特定領域模型。
- 內容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的關鍵技術
- L4.3 模型私有化部署的實施步驟
- L4.4 模型私有化部署的應用場景
學習計劃:
- 階段1:1-2個月,建立AI大模型的基礎知識體系。
- 階段2:2-3個月,專注于API應用開發能力的提升。
- 階段3:3-4個月,深入實踐AI大模型的應用架構和私有化部署。
- 階段4:4-5個月,專注于高級模型的應用和部署。
這份完整版的所有 ?? 大模型 LLM 學習資料已經上傳CSDN,朋友們如果需要可以微信掃描下方CSDN官方認證二維碼免費領取【保證100%免費
】
全套 《LLM大模型入門+進階學習資源包》↓↓↓ 獲取~
👉CSDN大禮包🎁:全網最全《LLM大模型入門+進階學習資源包》免費分享(安全鏈接,放心點擊)👈
?