RAG架構(gòu)

完整的RAG應(yīng)用流程主要包含兩個(gè)階段:

下面我們?cè)敿?xì)介紹一下各環(huán)節(jié)的技術(shù)細(xì)節(jié)和注意事項(xiàng):

數(shù)據(jù)準(zhǔn)備階段:

數(shù)據(jù)準(zhǔn)備一般是一個(gè)離線的過(guò)程,主要是將私域數(shù)據(jù)向量化后構(gòu)建索引并存入數(shù)據(jù)庫(kù)的過(guò)程。主要包括:數(shù)據(jù)提取、文本分割、向量化、數(shù)據(jù)入庫(kù)等環(huán)節(jié)。

數(shù)據(jù)準(zhǔn)備

向量化是一個(gè)將文本數(shù)據(jù)轉(zhuǎn)化為向量矩陣的過(guò)程,該過(guò)程會(huì)直接影響到后續(xù)檢索的效果。目前常見(jiàn)的embedding模型如表中所示,這些embedding模型基本能滿足大部分需求,但對(duì)于特殊場(chǎng)景(例如涉及一些罕見(jiàn)專有詞或字等)或者想進(jìn)一步優(yōu)化效果,則可以選擇開(kāi)源Embedding模型微調(diào)或直接訓(xùn)練適合自己場(chǎng)景的Embedding模型。

模型名稱描述獲取地址
ChatGPT-EmbeddingChatGPT-Embedding由OpenAI公司提供,以接口形式調(diào)用。https://platform.openai.com/docs/guides/embeddings/what-are-embeddings
ERNIE-Embedding V1ERNIE-Embedding V1由百度公司提供,依賴于文心大模型能力,以接口形式調(diào)用。https://cloud.baidu.com/doc/WENXINWORKSHOP/s/alj562vvu
M3EM3E是一款功能強(qiáng)大的開(kāi)源Embedding模型,包含m3e-small、m3e-base、m3e-large等多個(gè)版本,支持微調(diào)和本地部署。https://huggingface.co/moka-ai/m3e-base
BGEBGE由北京智源人工智能研究院發(fā)布,同樣是一款功能強(qiáng)大的開(kāi)源Embedding模型,包含了支持中文和英文的多個(gè)版本,同樣支持微調(diào)和本地部署。https://huggingface.co/BAAI/bge-base-en-v1.5

數(shù)據(jù)向量化后構(gòu)建索引,并寫(xiě)入數(shù)據(jù)庫(kù)的過(guò)程可以概述為數(shù)據(jù)入庫(kù)過(guò)程,適用于RAG場(chǎng)景的數(shù)據(jù)庫(kù)包括:FAISS、Chromadb、ES、milvus等。一般可以根據(jù)業(yè)務(wù)場(chǎng)景、硬件、性能需求等多因素綜合考慮,選擇合適的數(shù)據(jù)庫(kù)。

應(yīng)用階段:

在應(yīng)用階段,我們根據(jù)用戶的提問(wèn),通過(guò)高效的檢索方法,召回與提問(wèn)最相關(guān)的知識(shí),并融入Prompt;大模型參考當(dāng)前提問(wèn)和相關(guān)知識(shí),生成相應(yīng)的答案。關(guān)鍵環(huán)節(jié)包括:數(shù)據(jù)檢索、注入Prompt等。

數(shù)據(jù)檢索

常見(jiàn)的數(shù)據(jù)檢索方法包括:相似性檢索、全文檢索等,根據(jù)檢索效果,一般可以選擇多種檢索方式融合,提升召回率。

LLM生成

Prompt作為大模型的直接輸入,是影響模型輸出準(zhǔn)確率的關(guān)鍵因素之一。在RAG場(chǎng)景中,Prompt一般包括任務(wù)描述、背景知識(shí)(檢索得到)、任務(wù)指令(一般是用戶提問(wèn))等,根據(jù)任務(wù)場(chǎng)景和大模型性能,也可以在Prompt中適當(dāng)加入其他指令優(yōu)化大模型的輸出。一個(gè)簡(jiǎn)單知識(shí)問(wèn)答場(chǎng)景的Prompt如下所示:

【任務(wù)描述】
假如你是一個(gè)專業(yè)的客服機(jī)器人,請(qǐng)參考【背景知識(shí)】,回
【背景知識(shí)】
{content} // 數(shù)據(jù)檢索得到的相關(guān)文本
【問(wèn)題】
石頭掃地機(jī)器人P10的續(xù)航時(shí)間是多久?

Prompt的設(shè)計(jì)只有方法、沒(méi)有語(yǔ)法,比較依賴于個(gè)人經(jīng)驗(yàn),在實(shí)際應(yīng)用過(guò)程中,往往需要根據(jù)大模型的實(shí)際輸出進(jìn)行針對(duì)性的Prompt調(diào)優(yōu)。

本文搜集了一些開(kāi)源的基于LLMRAG(Retrieval-Augmented Generation)框架,旨在吸納業(yè)界最新的RAG應(yīng)用方法與思路。

RAG應(yīng)用框架

  1. RAGFlow
  1. QAnything
  1. open-webui
  1. FastGPT
  1. Langchain-Chatchat
  1. MaxKB

文章轉(zhuǎn)自微信公眾號(hào)@機(jī)器學(xué)習(xí)AI算法工程

上一篇:

Gemini vs ChatGPT:為您的企業(yè)選擇合適的對(duì)話式 AI

下一篇:

LLM預(yù)訓(xùn)練從0到1
#你可能也喜歡這些API文章!

我們有何不同?

API服務(wù)商零注冊(cè)

多API并行試用

數(shù)據(jù)驅(qū)動(dòng)選型,提升決策效率

查看全部API→
??

熱門(mén)場(chǎng)景實(shí)測(cè),選對(duì)API

#AI文本生成大模型API

對(duì)比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)

#AI深度推理大模型API

對(duì)比大模型API的邏輯推理準(zhǔn)確性、分析深度、可視化建議合理性

10個(gè)渠道
一鍵對(duì)比試用API 限時(shí)免費(fèi)