影響生產RAG流水線5大瓶頸

檢索增強生成(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大模型時代的學習之旅:從基礎到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型報告合集

這套包含640份報告的合集,涵蓋了AI大模型的理論研究、技術實現、行業應用等多個方面。無論您是科研人員、工程師,還是對AI大模型感興趣的愛好者,這套報告合集都將為您提供寶貴的信息和啟示。

img

三、AI大模型經典PDF籍

隨著人工智能技術的飛速發展,AI大模型已經成為了當今科技領域的一大熱點。這些大型預訓練模型,如GPT-3、BERT、XLNet等,以其強大的語言理解和生成能力,正在改變我們對人工智能的認識。 那以下這些PDF籍就是非常不錯的學習資源。

img

在這里插入圖片描述

四、AI大模型商業化落地方案

img

階段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 總結與展望

階段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 其他大模型介紹

階段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大模型入門+進階學習資源包》免費分享(安全鏈接,放心點擊)👈

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/19686.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/19686.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/19686.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

無法刪除dll文件

碰到xxxxxx.dll文件無法刪除不要慌&#xff01; 通過Tasklist /m dll文件名稱 去查看它和哪個系統文件綁定運行&#xff0c;發現是explorer.exe。 我們如果直接通過del命令【當然需要在該dll文件所在的路徑中】。發現拒絕訪問 我們需要在任務管理器中&#xff0c;將資源管理器…

如何處理網安發出的網絡安全監督檢查限期整改通知

近期&#xff0c;很多客戶都收到了網安發出的限期整改通知。大家都比較關心的問題是&#xff0c;如何應對處理這些限期整改通知。后續是否有其他的影響&#xff0c;需要如何做進一步的優化整改和調整。今天就這些問題給大家做一些分享。 一. 為什么會有網安的網絡安全檢查 主…

大多數JAVA程序員都干不到35歲嗎?

在開始前剛好我有一些資料&#xff0c;是我根據網友給的問題精心整理了一份「 Java的資料從專業入門到高級教程」&#xff0c; 點個關注在評論區回復“888”之后私信回復“888”&#xff0c;全部無償共享給大家&#xff01;&#xff01;&#xff01;不少人認為的程序員吃青春飯…

邊緣計算:推動智能時代的前沿技術

邊緣計算:推動智能時代的前沿技術 引言 隨著物聯網(IoT)、5G通信和人工智能(AI)技術的迅猛發展,邊緣計算(Edge Computing)成為現代計算架構中的一個重要組成部分。邊緣計算通過將數據處理和存儲移至網絡邊緣,靠近數據生成源頭,從而顯著提高響應速度、降低延遲和帶寬…

項目VS運營

一、項目與運營的定義與區別 項目與運營是企業管理中的兩個重要概念&#xff0c;盡管在實際運作中它們常被視為同義詞&#xff0c;但它們之間存在明顯的區別。 項目&#xff0c;指的是為達到特定目標&#xff0c;通過臨時性、系統性、有計劃的組織、協調、控制等系列活動&…

基于深度學習的端到端語音識別時代

隨著深度學習的發展&#xff0c;語音識別由DNN-HMM時代發展到基于深度學習的“端到端”時代&#xff0c;這個時代的主要特征是代價函數發生了變化&#xff0c;但基本的模型結構并沒有太大變化。總體來說&#xff0c;端到端技術解決了輸入序列長度遠大于輸出序列長度的問題。 采…

Visual Studio中調試信息格式參數:/Z7、/Zi、/ZI參數

一般的調試信息都保存在pdb文件中。 Z7參數表示這些調試信息保存到OBJ目標文件中&#xff0c;這樣的好處是不需要單獨分發PDB文件給下游。Zi就是把所有的調試信息都保存在pdb文件中&#xff0c;以縮小發布文件的大小。ZI和Zi類似&#xff0c;但是增加了熱重載的能力&#xff1…

Django admin后臺創建密文密碼

Django admin后臺創建密文密碼 如題現在有一張用戶表User # user/models.py from django.db import models from django.contrib.auth.models import AbstractUserclass User(AbstractUser):SEX_CHOICES [(0, 男),(1, 女),]sex models.IntegerField(choicesSEX_CHOICES, de…

數據結構:詳解二叉樹(樹,二叉樹順序結構,堆的實現與應用,二叉樹鏈式結構,鏈式二叉樹的4種遍歷方式)

目錄 1.樹的概念和結構 1.1樹的概念 1.2樹的相關概念 1.3樹的代碼表示 2.二叉樹的概念及結構 2.1二叉樹的概念 2.2特殊的二叉樹 2.3二叉樹的存儲結構 2.3.1順序存儲 2.3.2鏈式存儲 3.二叉樹的順序結構和實現 3.1二叉樹的順序結構 3.2堆的概念和結構 3.3堆的特點 3…

k-means聚類算法

在Python中&#xff0c;可以使用scikit-learn庫來實現k-means聚類算法。scikit-learn是一個強大的機器學習庫&#xff0c;提供了許多算法的實現&#xff0c;包括k-means聚類。 以下是使用scikit-learn實現k-means聚類的基本步驟&#xff1a; 安裝scikit-learn&#xff1a; 如果…

一文掌握JavaScript 中類的用法

文章導讀&#xff1a;AI 輔助學習前端&#xff0c;包含入門、進階、高級部分前端系列內容&#xff0c;當前是 JavaScript 的部分&#xff0c;瑤琴會持續更新&#xff0c;適合零基礎的朋友&#xff0c;已有前端工作經驗的可以不看&#xff0c;也可以當作基礎知識回顧。 這篇文章…

SQL常用語句--模糊查詢LIKE

like模糊查詢&#xff0c;支持%和下劃線匹配&#xff0c;%匹配多個字符&#xff0c;_下劃線&#xff1a;任意一個字符&#xff0c;示例&#xff1a; 1&#xff09;查詢名字中含有張的學生信息 select * from student where sname like ‘%張%’&#xff1b; 2&#xff09;查…

MySQL統計字符長度:CHAR_LENGTH(str)

對于SQL表&#xff0c;用于計算字符串中字符數的最佳函數是 CHAR_LENGTH(str)&#xff0c;它返回字符串 str 的長度。 另一個常用的函數 LENGTH(str) 在這個問題中也適用&#xff0c;因為列 content 只包含英文字符&#xff0c;沒有特殊字符。否則&#xff0c;LENGTH() 可能會返…

django使用fetch上傳文件

在上一篇文章中&#xff0c;我包裝了fetch方法&#xff0c;使其攜帶cookie。但是之前fetch傳遞的是json數據&#xff0c;現在有了一個上傳文件的需求&#xff0c;因此需要進行修改&#xff1a; const sendRequest (url, method, data) > {const csrftoken Cookies.get(cs…

discuz如何添加主導航

大家好&#xff0c;今天教大家怎么樣給discuz添加主導航。方法其實很簡單&#xff0c;大家跟著我操作既可。一個網站的導航欄是非常重要的&#xff0c;一般用戶進入網站的第一印象就是看網站的導航欄。如果大家想看效果的話可以搜索下網創有方&#xff0c;或者直接點擊查看效果…

精選免費在線工具與資源推薦20240531

精選免費在線工具與資源推薦 引言 在互聯網高速發展的今天&#xff0c;我們身處一個信息爆炸的時代。為了更好地應對工作和學習中的挑戰&#xff0c;我們時常需要借助各種工具和資源來提高效率。幸運的是&#xff0c;網絡上存在著大量免費且高效的在線工具和資源&#xff0c;…

Google VertexAI API 接入

import vertexai import os #此步非常重要&#xff0c;否則無法訪問&#xff0c;去GCP創建服務賬號密鑰。 os.environ["GOOGLE_APPLICATION_CREDENTIALS"] "服務賬號json格式key" from vertexai.generative_models import GenerativeModel, Part # TO…

嵌入式學習——4——c++ 結構體+類

1、數據類型 基本數據類型&#xff1a;char、int 、float、 double、string、bool 構造數據類型&#xff1a;數組、指針、結構體、共用體、枚舉、類 2、引用 引用就是 別名 數據類型 &引用名 同類型的變量名 &#xff08;&引用符號&#xff09; int a 10;int &…

標準發布 | 反滲透和納濾水處理膜修復再利用技術要求

本文件由浙江大學、中華環保聯合會水環境治理專業委員會提出。 本文件由中華環保聯合會歸口。 本文件主編單位&#xff1a;浙江大學、河南一膜環保技術有限公司、安徽精高水處理有限公司、國能龍源環保有限公司、湖南沁森高科新材料有限公司。 本文件參編單位&#xff1a;深…

rtl8723DU移植 android4.4 4418

一、 linux 的移植。 首先編譯一遍確保沒有問題。 將驅動拷貝到 driver/net/wireless 目錄下。 使用的是&#xff1a; 改寫 makefile Kconfig 去改寫 8723 的makefile 設置menuconfig 使能固有的 庫。 使能USB部分 ieee 部分 編譯一遍 有報錯。 解決&#xff1a; …