2025爆火的RAG技術(shù)是什么?從原理到應(yīng)用全面科普!

前言

最近,RAG 這個(gè)詞在網(wǎng)絡(luò)中爆火,特別是一些 AI 方向的小伙伴,網(wǎng)上鋪天蓋地的文章、視頻等教程,但是他們都各有各的不同看法,接下來(lái)就讓我從一名 AI 產(chǎn)品經(jīng)理角度,帶你們徹底了解什么是? ?RAG、前世今生是什么、實(shí)用場(chǎng)景、工作原理、具體應(yīng)用。

上期回顧:

一、RAG 是什么

RAG 全稱是 Retrieval-Augmented Generation,翻譯成中文是 檢索增強(qiáng)生成,是一種將信息檢索與自然語(yǔ)言生成相結(jié)合的 AI 架構(gòu)模式。讓大模型在回答問(wèn)題時(shí)能夠先去查找相關(guān)的外部知識(shí),然后再基于這些知識(shí)來(lái)生成答案。

核心是把“先找資料(檢索)”和“再用大模型寫(xiě)答案。它是一種技術(shù)框架,它通過(guò)在生成回答之前主動(dòng)檢索外部知識(shí)源中的相關(guān)信息,然后將這些信息作為上下文輸入給大語(yǔ)言模型,從而讓大語(yǔ)言模型(LLM)生成更準(zhǔn)確、更有依據(jù)的回答,彌補(bǔ)大語(yǔ)言模型的知識(shí)邊界。雖然大語(yǔ)言模型在訓(xùn)練過(guò)程中學(xué)習(xí)了海量數(shù)據(jù),但它們的知識(shí)是固定在訓(xùn)練時(shí)間點(diǎn)的,無(wú)法獲取實(shí)時(shí)信息,也難以覆蓋所有專業(yè)領(lǐng)域的深度知識(shí)。RAG 通過(guò)動(dòng)態(tài)檢索外部信息,有效解決了這一局限性。

簡(jiǎn)單說(shuō):在模型回答前,先從你的知識(shí)庫(kù)/網(wǎng)頁(yè)里找出最相關(guān)的片段,把這些片段連同問(wèn)題一起喂給大模型,讓它基于證據(jù)作答,并標(biāo)注來(lái)源。

RAG 把“外部檢索到的資料”接到“生成式大模型”上,模型先檢索相關(guān)文檔,再讀懂與綜合這些證據(jù)來(lái)生成回答。這樣既能減少幻覺(jué)、提供可溯源的引用,又能用更新的知識(shí)而不必頻繁重訓(xùn)參數(shù)。這個(gè)名字來(lái)自 2020 年 Meta/FAIR 的論文,提出了兩種經(jīng)典配方:RAG-Sequence 與 RAG-Token(按序列或按 token 融合檢索證據(jù))。

2025爆火的RAG技術(shù)是什么?從原理到應(yīng)用全面科普!

一、RAG 的前世今生

RAG 的發(fā)展歷程可以追溯到多個(gè)研究領(lǐng)域的交匯,它的起源可以追溯到 2020 年,由 Facebook AI Research (FAIR) 團(tuán)隊(duì)發(fā)表的一篇開(kāi)創(chuàng)性論文。以下是 RAG 從概念誕生到成為主流范式的關(guān)鍵時(shí)間線和重大事件:接下來(lái)就詳細(xì)介紹一下它的起源和演變過(guò)程。

第一階段:RAG 的“史前”時(shí)代(2010 - 2019 年)

在 RAG 這個(gè)術(shù)語(yǔ)出現(xiàn)之前,相關(guān)的技術(shù)和思想就已經(jīng)存在,但它們是分散和獨(dú)立的。

信息檢索技術(shù)的發(fā)展:

關(guān)鍵詞檢索:傳統(tǒng)的搜索算法如TF-IDF、BM25等,已廣泛用于從文檔庫(kù)中快速匹配和召回相關(guān)內(nèi)容。

大型語(yǔ)言模型的崛起:

  1. Transformer架構(gòu)的誕生(2017年):Google發(fā)布的Transformer模型奠定了后續(xù)所有大型語(yǔ)言模型的基礎(chǔ)。
  2. BERT (2018) 和 GPT-2/3 (2019/2020):這些模型展示了強(qiáng)大的文本生成能力,但它們存在一個(gè)致命缺陷——“閉卷(closed-book)”。它們只能依賴訓(xùn)練數(shù)據(jù)中的內(nèi)部知識(shí)來(lái)回答問(wèn)題,無(wú)法獲取實(shí)時(shí)或特定領(lǐng)域的外部信息,容易出現(xiàn)“幻覺(jué)”(Hallucination,即生成不實(shí)信息)。

這個(gè)階段的特點(diǎn)是:檢索可以找到信息,但無(wú)法進(jìn)行復(fù)雜的推理和生成;而生成模型雖然能流暢地創(chuàng)造文本,但缺乏事實(shí)的準(zhǔn)確性。這為 RAG 的誕生創(chuàng)造了需求。

早期理論基礎(chǔ)(2000-2010 初期)

RAG 的概念源于幾個(gè)關(guān)鍵的研究方向:

  1. 信息檢索(IR)領(lǐng)域:傳統(tǒng)的搜索引擎和文檔檢索系統(tǒng)為 RAG 提供了基礎(chǔ)架構(gòu)。早期的 TF-IDF、BM25 等算法建立了文本相似性匹配的理論基礎(chǔ)。
  2. 問(wèn)答系統(tǒng):IBM 的 Watson 系統(tǒng)(2011 年在 Jeopardy!中獲勝)展示了結(jié)合知識(shí)庫(kù)和推理能力的可能性,雖然當(dāng)時(shí)還不是現(xiàn)代意義上的 RAG。
  3. 知識(shí)圖譜:Google 的 Knowledge Graph(2012 年發(fā)布)等結(jié)構(gòu)化知識(shí)表示方法,為后來(lái)的外部知識(shí)整合提供了思路。

深度學(xué)習(xí)時(shí)代的鋪墊(2010 中期)

  1. 神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型:Word2Vec(2013)、GloVe 等詞嵌入技術(shù)為文本的向量化表示奠定基礎(chǔ)。
  2. 序列到序列模型:Seq2Seq 架構(gòu)(2014)和注意力機(jī)制(2015)為生成式任務(wù)提供了新的范式。
  3. 記憶網(wǎng)絡(luò):Facebook AI 的 Memory Networks(2014)首次提出了外部記憶模塊的概念,允許模型訪問(wèn)和更新外部知識(shí)庫(kù)。

Transformer 革命(2017-2019)

  1. Transformer 架構(gòu):2017 年"Attention Is All You Need"論文發(fā)布,為后續(xù)的大規(guī)模預(yù)訓(xùn)練模型鋪平道路。
  2. 預(yù)訓(xùn)練語(yǔ)言模型:BERT(2018)、GPT(2018)等模型展示了預(yù)訓(xùn)練的巨大潛力,但也暴露出知識(shí)更新困難、幻覺(jué)等問(wèn)題。
  3. 知識(shí)增強(qiáng)模型:研究者開(kāi)始探索如何將外部知識(shí)整合到預(yù)訓(xùn)練模型中,如 KnowBERT、ERNIE 等。

第二階段:RAG 概念的誕生(2020 年)

這是一個(gè)里程碑式的時(shí)刻,RAG 作為一種全新的范式被正式提出。

重大事件:

  1. 2020年,F(xiàn)acebook AI Research (FAIR) 團(tuán)隊(duì)發(fā)表了論文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》。
  2. ?這篇論文首次提出了 "Retrieval-Augmented Generation" 這一術(shù)語(yǔ),并構(gòu)建了一個(gè)端到端(end-to-end)可訓(xùn)練的RAG模型。

核心創(chuàng)新:

  1. 將“檢索器(Retriever)”和“生成器(Generator)”無(wú)縫集成。 論文中的模型使用了一個(gè)基于BERT的檢索器,從外部維基百科數(shù)據(jù)中查找相關(guān)段落;并使用一個(gè)基于T5的生成器,將檢索到的信息和用戶問(wèn)題一起作為輸入,生成最終答案。
  2. 可端到端訓(xùn)練:與簡(jiǎn)單地將檢索結(jié)果作為提示詞(prompt)不同,F(xiàn)AIR的RAG模型是一個(gè)可聯(lián)合訓(xùn)練的深度學(xué)習(xí)模型。這意味著檢索器會(huì)“學(xué)習(xí)”如何更好地為生成器提供信息,而生成器也會(huì)“學(xué)習(xí)”如何更有效地利用這些信息。

這個(gè)事件標(biāo)志著 RAG 從一個(gè)樸素的“檢索+生成”流程,正式升級(jí)為一種具有理論基礎(chǔ)和可優(yōu)化空間的 AI 架構(gòu)。

RAG 的正式提出(2020)

里程碑論文:Facebook AI Research 在 2020 年發(fā)表了"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks",正式提出 RAG 架構(gòu)。

核心創(chuàng)新:

  1. 將密集檢索器(通?;贐ERT)與生成器(基于BART)結(jié)合
  2. 端到端訓(xùn)練整個(gè)系統(tǒng)
  3. 在多個(gè)知識(shí)密集型任務(wù)上取得顯著提升

技術(shù)特點(diǎn):

  1. 使用DPR(Dense Passage Retrieval)進(jìn)行文檔檢索
  2. 將檢索到的文檔與輸入問(wèn)題拼接后輸入生成器
  3. 支持對(duì)檢索器和生成器的聯(lián)合優(yōu)化

第三階段:RAG 的發(fā)展與應(yīng)用(2021 年至今)

RAG 的概念提出后,迅速在 AI 社區(qū)和工業(yè)界引起轟動(dòng),并進(jìn)入了快速發(fā)展的快車道。

2021年:

  1. 向量數(shù)據(jù)庫(kù)的興起:隨著RAG的普及,專門用于存儲(chǔ)和檢索高維向量的向量數(shù)據(jù)庫(kù)(如Pinecone, Milvus, Weaviate)開(kāi)始流行,極大地提升了RAG系統(tǒng)的檢索效率。

2022年 - 2023年:

  1. RAG技術(shù)成為主流:OpenAI發(fā)布了ChatGPT,引發(fā)了LLM熱潮。與此同時(shí),企業(yè)開(kāi)始面臨數(shù)據(jù)安全和模型幻覺(jué)的挑戰(zhàn)。RAG因其能夠利用企業(yè)內(nèi)部私有數(shù)據(jù)、有效減少幻覺(jué)、并且成本遠(yuǎn)低于模型微調(diào)(Fine-tuning)等優(yōu)點(diǎn),迅速成為構(gòu)建企業(yè)級(jí)AI應(yīng)用的首選范式。
  2. RAG框架與工具的繁榮:LangChain、LlamaIndex等開(kāi)源框架的出現(xiàn),大大簡(jiǎn)化了RAG應(yīng)用的開(kāi)發(fā)過(guò)程,使得開(kāi)發(fā)者可以快速集成不同的檢索器、LLM和數(shù)據(jù)源,進(jìn)一步推動(dòng)了RAG的普及。

2024年至今:

  1. RAG架構(gòu)的深度演進(jìn):研究者們開(kāi)始探索更復(fù)雜的RAG變體,如Self-RAG(模型能夠自我評(píng)估檢索到的信息質(zhì)量并決定是否需要更多信息)、Multi-hop RAG(模型能夠進(jìn)行多輪檢索來(lái)回答復(fù)雜問(wèn)題)。
  2. RAG與多模態(tài)的融合:RAG的應(yīng)用不再局限于文本,開(kāi)始與圖像、音頻等多模態(tài)數(shù)據(jù)結(jié)合,實(shí)現(xiàn)跨模態(tài)的檢索和生成。

快速發(fā)展期(2021-2023)

檢索方法改進(jìn):

  1. 從稀疏檢索(BM25)到密集檢索(DPR)
  2. 混合檢索方法的探索
  3. 更高效的向量檢索技術(shù)(如FAISS優(yōu)化)

架構(gòu)變體:

  1. FiD(Fusion-in-Decoder):在解碼器中融合多個(gè)檢索文檔
  2. RAG-Token vs RAG-Sequence:不同的生成策略
  3. Iterative RAG:多輪檢索和生成的迭代過(guò)程

應(yīng)用拓展:

  1. 從問(wèn)答擴(kuò)展到對(duì)話、摘要、代碼生成等任務(wù)
  2. 多模態(tài)RAG:整合圖像、表格等非文本信息

大模型時(shí)代的 RAG(2023 至今)

與大語(yǔ)言模型結(jié)合:

  1. ChatGPT、GPT-4等大模型的出現(xiàn)重新定義了RAG的價(jià)值
  2. RAG成為緩解大模型幻覺(jué)、知識(shí)更新問(wèn)題的重要方案

技術(shù)突破:

  1. Advanced RAG:引入查詢重寫(xiě)、文檔重排序、答案合成等復(fù)雜流程
  2. ?Modular RAG:模塊化設(shè)計(jì),支持靈活的檢索和生成策略
  3. Self-RAG:模型自我反思和批判檢索內(nèi)容的質(zhì)量

工程化進(jìn)展:

  1. LangChain、LlamaIndex等開(kāi)源框架的普及
  2. 向量數(shù)據(jù)庫(kù)(Pinecone、Weaviate、Chroma等)的成熟
  3. 企業(yè)級(jí)RAG解決方案的商業(yè)化

2025爆火的RAG技術(shù)是什么?從原理到應(yīng)用全面科普!

  1. 多智能體 RAG:多個(gè)專門化的檢索和生成智能體協(xié)作。
  2. GraphRAG:結(jié)合知識(shí)圖譜的結(jié)構(gòu)化信息進(jìn)行檢索和推理。
  3. Long-context RAG:利用長(zhǎng)上下文模型減少檢索依賴。
  4. 實(shí)時(shí) RAG:支持動(dòng)態(tài)知識(shí)更新和實(shí)時(shí)檢索。

RAG 的演變反映了 AI 領(lǐng)域從單一模型能力向組合式、模塊化系統(tǒng)的轉(zhuǎn)變,它不僅解決了大模型的一些固有限制,也為構(gòu)建更可靠、更可控的 AI 應(yīng)用提供了重要范式。

二、RAG 的工作原理

前面提到了都是關(guān)于RAG的重要性,那么他的工作原理是什么樣的呢,或者換句話來(lái)說(shuō),他的什么能力才使得RAG在如今有不可代替的重要性呢?

先說(shuō)結(jié)論:RAG 的原理可以分解為兩個(gè)主要階段:檢索(Retrieval)和生成(Generation)。而檢測(cè)和生成這兩個(gè)步驟里面又分為很多細(xì)小內(nèi)容。

標(biāo)準(zhǔn)架構(gòu)(一步步的流水線)

  1. 數(shù)據(jù)準(zhǔn)備:把 PDF、網(wǎng)頁(yè)、FAQ、產(chǎn)品庫(kù)、類目表等匯總成文檔集。
  2. 切塊(Chunking):把文檔按段落/標(biāo)題切成小塊(比如 300–800 字符,適度重疊)。
  3. 向量化(Embedding):用向量模型把每個(gè)塊變成向量,存進(jìn)向量數(shù)據(jù)庫(kù)(FAISS/Milvus/PGVector/Elastic 等)。
  4. 檢索:收到用戶問(wèn)題 → 在庫(kù)里找Top-k相關(guān)塊(可“向量 + 關(guān)鍵字 BM25 的混合檢索”)。
  5. 重排(Rerank,可選):用更強(qiáng)的交叉編碼器把候選塊重新打分,提升命中質(zhì)量。
  6. 組合提示(Prompt):把問(wèn)題 + 選中的證據(jù)塊拼成提示詞,明確“只能依據(jù)以下資料回答”。
  7. 生成:大模型基于證據(jù)作答,并引用來(lái)源。
  8. 反饋與評(píng)估:記錄命中率/準(zhǔn)確率,持續(xù)優(yōu)化“切塊、檢索、提示”。

RAG 的核心原理

首先我們來(lái)講 RAG 的核心流程,主要分為以下五個(gè)方面,

分片、索引、召回、重排、生成

2025爆火的RAG技術(shù)是什么?從原理到應(yīng)用全面科普!

RAG 的基本架構(gòu)

典型的 RAG 系統(tǒng)包含三個(gè)核心組件:

  1. 檢索器(Retriever):負(fù)責(zé)從外部知識(shí)庫(kù)中找到與查詢相關(guān)的信息片段
  2. 生成器(Generator):通常是大語(yǔ)言模型,負(fù)責(zé)基于檢索到的信息生成最終回答
  3. 知識(shí)庫(kù)(Knowledge Base):存儲(chǔ)外部信息的數(shù)據(jù)庫(kù),通常以向量形式索引(分片,索引,召回,重排,生成)

2025爆火的RAG技術(shù)是什么?從原理到應(yīng)用全面科普!

RAG 的工作流程

RAG 的工作流程可以分為兩大階段:離線階段(數(shù)據(jù)準(zhǔn)備)和在線階段(實(shí)際問(wèn)答)。

1. 離線階段:數(shù)據(jù)準(zhǔn)備(Indexing)

這一階段的目標(biāo)是為你的知識(shí)庫(kù)(例如,公司內(nèi)部文檔、PDF、網(wǎng)頁(yè)、書(shū)籍等)構(gòu)建一個(gè)高效的索引,以便后續(xù)能快速檢索。這個(gè)過(guò)程通常包括以下步驟:

數(shù)據(jù)加載與分片(Loading & Chunking)

  1. 數(shù)據(jù)加載:首先,你需要將各種格式的非結(jié)構(gòu)化數(shù)據(jù)加載進(jìn)來(lái)。這可能需要不同的加載器來(lái)處理 PDF、DOCX、Markdown、HTML 等文件。
  2. 分片:加載進(jìn)來(lái)的文檔通常很長(zhǎng),無(wú)法直接處理。因此,需要將它們分割成更小、更易于管理的文本塊(Chunks)。分片是 RAG 成功的關(guān)鍵之一,分片太大會(huì)導(dǎo)致檢索不精確(包含太多無(wú)關(guān)信息),分片太小又可能丟失上下文。常用的分片策略包括按固定大小分片、按句子或段落分片、或者基于語(yǔ)義內(nèi)容分片。

向量化與索引(Embedding & Indexing)

  1. 向量化:將每個(gè)分片后的文本塊使用一個(gè)嵌入模型(Embedding Model)轉(zhuǎn)換成一個(gè)向量(Vector)。這個(gè)向量是文本在多維空間中的數(shù)學(xué)表示,它捕捉了文本的語(yǔ)義信息。語(yǔ)義上相似的文本塊,其對(duì)應(yīng)的向量在空間中的距離會(huì)非常接近。
  2. 索引:所有這些向量會(huì)被存儲(chǔ)到一個(gè)**向量數(shù)據(jù)庫(kù)(Vector Database)**中。向量數(shù)據(jù)庫(kù)專門為高效的相似性搜索而設(shè)計(jì),它使用如 HNSW(Hierarchical Navigable Small World)等算法來(lái)快速找到與給定向量最相似的其他向量。這個(gè)過(guò)程就像是為圖書(shū)館的每一本書(shū)建立一個(gè)精確的坐標(biāo)索引。

2. 在線階段:?jiǎn)柎鹆鞒?/strong>

當(dāng)用戶提出一個(gè)問(wèn)題時(shí),RAG 系統(tǒng)會(huì)立即啟動(dòng),完成召回、重排、生成這幾個(gè)關(guān)鍵步驟:

召回(Retrieval)

  1. 查詢向量化:系統(tǒng)首先使用與離線階段相同的嵌入模型,將用戶的查詢(例如,“公司的報(bào)銷流程是什么?”)轉(zhuǎn)換成一個(gè)查詢向量。
  2. 向量搜索:系統(tǒng)拿著這個(gè)查詢向量,在向量數(shù)據(jù)庫(kù)中進(jìn)行相似性搜索。它會(huì)找出與查詢向量最接近的幾個(gè)文檔塊向量。這些向量對(duì)應(yīng)的原始文本塊就是系統(tǒng)認(rèn)為最相關(guān)的候選項(xiàng),它們被召回以供下一步使用。

重排(Re-ranking)

  1. 召回階段通常會(huì)返回幾十甚至上百個(gè)潛在相關(guān)的文檔塊。但其中有些可能相關(guān)性不強(qiáng),或者存在冗余。重排的目的是對(duì)這些召回的文檔塊進(jìn)行二次排序,以選出真正最相關(guān)、最優(yōu)質(zhì)的少數(shù)幾個(gè)。
  2. 重排模型:通常使用一個(gè)專門的重排模型(Re-ranker),它比嵌入模型更復(fù)雜,能更深入地理解查詢和文檔塊之間的語(yǔ)義關(guān)系。重排模型會(huì)對(duì)每個(gè)召回的文檔塊打分,得分最高的幾個(gè)(比如前 3-5 個(gè))將被選出作為最終的上下文。這個(gè)步驟極大地提高了最終答案的質(zhì)量和精確度。

生成(Generation)

  1. 構(gòu)建提示:系統(tǒng)將用戶的原始問(wèn)題與經(jīng)過(guò)重排篩選出的高質(zhì)量文檔塊拼接在一起,形成一個(gè)完整的、結(jié)構(gòu)化的提示(Prompt)。這個(gè)提示通常會(huì)明確告訴 LLM:“根據(jù)以下提供的上下文信息,回答這個(gè)問(wèn)題:[用戶問(wèn)題]”。
  2. LLM 推理:這個(gè)包含豐富上下文的提示被發(fā)送給 LLM。LLM 會(huì)利用其強(qiáng)大的語(yǔ)言理解和生成能力,僅基于提供的外部知識(shí),來(lái)生成一個(gè)連貫、準(zhǔn)確且相關(guān)的最終答案。
  3. 輸出答案:LLM 生成的答案被返回給用戶。由于答案是基于可追溯的外部知識(shí)生成的,這大大降低了模型“幻覺(jué)”(編造事實(shí))的可能性,并且讓答案更具可信度。
    它們其實(shí)就是把 RAG 拆開(kāi)的 5 個(gè)關(guān)鍵環(huán)節(jié),從“把資料喂得合適”到“讓模型基于證據(jù)作答”的整條流水線

三、RAG 步驟拆分

1. 分片(Chunking)

分片(Chunking)是 RAG 工作流程中離線階段的第一個(gè)關(guān)鍵步驟,它的核心作用是:將大型、非結(jié)構(gòu)化的原始文檔,切分成更小、更易于管理的文本片段。

這個(gè)過(guò)程就像是圖書(shū)館管理員在整理一批新書(shū)時(shí),不是把整本書(shū)作為一個(gè)整體來(lái)處理,而是把每本書(shū)的內(nèi)容拆解成章節(jié)、段落或知識(shí)卡片,并對(duì)每張卡片進(jìn)行單獨(dú)的索引和編號(hào)。這樣做是為了方便讀者在查找特定信息時(shí),能快速定位到最小、最相關(guān)的部分,而不是被迫去閱讀整本書(shū)

分片步驟的主要工作內(nèi)容

在做什么:把長(zhǎng)文檔切成較小的“知識(shí)塊”(chunks),避免語(yǔ)義被截?cái)唷⒁脖阌诰_檢索。

做法:結(jié)構(gòu):把標(biāo)題+正文放同一塊;對(duì)目錄型/表格型內(nèi)容用 Parent-Child(命中 child,上下文補(bǔ) parent)。

① 數(shù)據(jù)加載(Data Loading)

  1. 在分片之前,首先需要將不同格式的原始數(shù)據(jù)加載到系統(tǒng)中。這些數(shù)據(jù)可以是 PDF 文件、Word 文檔、網(wǎng)頁(yè)、Markdown 文件,甚至是純文本或 JSON 文件。
  2. 不同的文件類型需要特定的加載器(Loader)來(lái)處理,將它們的內(nèi)容提取出來(lái),準(zhǔn)備進(jìn)行切分。

② 文本切分(Text Splitting)

  1. 這是分片的核心。加載進(jìn)來(lái)的長(zhǎng)文本被切分成多個(gè)“塊(chunks)”。切分的方式有很多種,具體選擇哪種取決于數(shù)據(jù)類型和應(yīng)用場(chǎng)景
  2. 按固定大小切分(Fixed-size Chunking):這是最簡(jiǎn)單也最常用的方法。你設(shè)定一個(gè)固定的大?。ɡ?,512 個(gè)字符或 256 個(gè)詞),然后沿著這個(gè)大小切分文本。為了避免切斷句子的中間,通常會(huì)設(shè)置一個(gè)重(overlap)即相鄰的兩個(gè)塊之間有一部分內(nèi)容是重合的。
  3. 長(zhǎng)度:≈ 300–800 中文字符(或 200–500 tokens),10–20% 重疊。
  4. 按分隔符切分(Recursive Character Text Splitting):這種方法會(huì)根據(jù)一系列分隔符(如 \n\n\n、.、 )來(lái)遞歸地切分文本。這是一種更智能的方法,它會(huì)優(yōu)先按段落切分,如果段落太長(zhǎng)再按句子切分,直到滿足設(shè)定的塊大小。這種方式能更好地保留文本的語(yǔ)義完整性。
  5. 語(yǔ)義切分(Semantic Chunking):這是更高級(jí)的方法。它會(huì)使用嵌入模型來(lái)分析文本的語(yǔ)義,然后根據(jù)文本主題或思想的變化來(lái)切分。例如,當(dāng)文本從介紹 RAG 的原理轉(zhuǎn)到討論它的優(yōu)點(diǎn)時(shí),就在這里進(jìn)行切分。

③ 優(yōu)劣勢(shì)

為什么需要:切得好,檢索才“命中要點(diǎn)”;切得差,RAG 后面再?gòu)?qiáng)也難救。

  1. 克服上下文窗口限制:大型語(yǔ)言模型(LLM)的輸入長(zhǎng)度是有限的(通常幾千到幾萬(wàn)個(gè) token)。如果文檔太長(zhǎng),直接將整個(gè)文檔喂給 LLM 是不可行的。分片讓我們可以只向 LLM 提供最相關(guān)的、小塊的信息。
  2. 提高檢索準(zhǔn)確性:一個(gè)大文檔可能包含多個(gè)主題。如果將整個(gè)文檔作為一個(gè)整體進(jìn)行向量化,它的向量會(huì)變得“模糊”,因?yàn)樗砹硕鄠€(gè)主題的混合。而將文檔切分成小塊后,每個(gè)塊的向量會(huì)更精確地代表其內(nèi)容,從而在檢索時(shí)能更準(zhǔn)確地匹配用戶的查詢。
  3. 降低“噪音”:在一個(gè)長(zhǎng)文檔中,真正與查詢相關(guān)的可能只有一兩個(gè)段落。如果將整個(gè)文檔都送給 LLM,無(wú)關(guān)的信息可能會(huì)干擾 LLM 的判斷,甚至導(dǎo)致它“分心”,從而生成一個(gè)質(zhì)量較低或不準(zhǔn)確的答案。分片確保了只有最相關(guān)的部分被用來(lái)生成答案,減少了“噪音”的干擾。
  4. 常見(jiàn)坑:塊太長(zhǎng)(噪聲大、成本高)、太短(語(yǔ)義丟失)、無(wú)重疊(句子被劈斷)。

總結(jié),分片是將一個(gè)大問(wèn)題拆解成小問(wèn)題,將復(fù)雜信息細(xì)化為可管理單元的過(guò)程,為后續(xù)的向量化、索引和高效檢索奠定了堅(jiān)實(shí)的基礎(chǔ)。

2. 索引(Indexing)

索引(Indexing)是 RAG 工作流程中離線階段的第二個(gè)關(guān)鍵步驟。在分片(Chunking)之后,索引的核心任務(wù)是:將分片后的文本數(shù)據(jù),轉(zhuǎn)換為一種可以被計(jì)算機(jī)快速搜索和檢索的格式,并進(jìn)行存儲(chǔ)。

這個(gè)過(guò)程就像是圖書(shū)館管理員給每張知識(shí)卡片(即分片)打上一個(gè)獨(dú)一無(wú)二的、包含了其內(nèi)容精髓的“編碼”,然后把這些編碼放入一個(gè)特制的卡片柜(向量數(shù)據(jù)庫(kù))中,以便在未來(lái)需要時(shí),能通過(guò)這個(gè)編碼快速找到對(duì)應(yīng)的卡片。

索引步驟的主要工作內(nèi)容

在做什么:把分片后的塊“編目入庫(kù)”,以便快速查找。

① 兩類索引(實(shí)際?!盎旌嫌谩保?/p>

  1. 向量索引:用嵌入模型把塊轉(zhuǎn)成向量,存 FAISS / Milvus / pgvector 等;擅長(zhǎng)同義表達(dá)的語(yǔ)義匹配。
  2. 關(guān)鍵詞倒排索引:BM25/Elastic;擅長(zhǎng)精確詞匹配、數(shù)字/代號(hào)/條款號(hào)檢索。
  3. 元數(shù)據(jù)(metadata):給每塊打標(biāo)簽(語(yǔ)種、時(shí)間、類目路徑、權(quán)限等),便于檢索時(shí)過(guò)濾。

② 向量化(Embedding)

  1. 核心動(dòng)作:使用一個(gè)嵌入模型(Embedding Model),將每一個(gè)分片好的文本塊轉(zhuǎn)換成一個(gè)向量(Vector)。
  2. 為什么這樣做:這個(gè)向量是文本在多維空間中的數(shù)學(xué)表示。它捕捉了文本的語(yǔ)義信息。在向量空間中,語(yǔ)義上相似的文本塊(即使它們使用的詞語(yǔ)不完全相同),其對(duì)應(yīng)的向量在空間中的位置也更接近。
  3. 重要性:向量化是索引的核心,它將人類可讀的語(yǔ)言信息轉(zhuǎn)化成了計(jì)算機(jī)可以高效處理的數(shù)值信息。沒(méi)有這個(gè)步驟,后續(xù)的相似性搜索就無(wú)法進(jìn)行。

③ 存儲(chǔ)與構(gòu)建索引(Storing & Index Building)

  1. 核心動(dòng)作:將所有分片文本的向量,連同其原始文本內(nèi)容和元數(shù)據(jù)(如文檔 ID、章節(jié)名等),一起存儲(chǔ)到一個(gè)專門的**向量數(shù)據(jù)庫(kù)(Vector Database)**中。
  2. 為什么這樣做:傳統(tǒng)的數(shù)據(jù)庫(kù)(如關(guān)系型數(shù)據(jù)庫(kù))不擅長(zhǎng)處理高維向量的相似性搜索。向量數(shù)據(jù)庫(kù)則專門為此類任務(wù)而設(shè)計(jì)。它利用先進(jìn)的索引算法,如 HNSW(Hierarchical Navigable Small World)、Faiss 或 ScaNN,來(lái)構(gòu)建一個(gè)高效的索引結(jié)構(gòu)。
  3. 技術(shù)細(xì)節(jié):這些索引結(jié)構(gòu)允許向量數(shù)據(jù)庫(kù)在處理數(shù)百萬(wàn)甚至數(shù)十億個(gè)向量時(shí),依然能以毫秒級(jí)的速度找到與給定向量最相似的鄰居。它們通過(guò)犧牲極小的精確度(這就是近似最近鄰搜索)來(lái)?yè)Q取巨大的搜索速度提升,這對(duì)于實(shí)時(shí)響應(yīng)的用戶查詢至關(guān)重要。

④ 優(yōu)劣勢(shì)

為什么需要:索引是 RAG 系統(tǒng)性能和可擴(kuò)展性的關(guān)鍵,它解決了以下幾個(gè)問(wèn)題:

  1. 高效檢索:索引使得系統(tǒng)能夠快速地從海量數(shù)據(jù)中找到相關(guān)信息,而不是進(jìn)行耗時(shí)的線性搜索。
  2. 語(yǔ)義匹配:傳統(tǒng)的關(guān)鍵詞搜索(如 BM25)無(wú)法理解語(yǔ)義,它只能匹配字面上的詞匯。而向量索引能夠進(jìn)行語(yǔ)義匹配,即使查詢和文檔使用的詞匯不同,只要它們表達(dá)的是相同的意思,也能被正確地檢索出來(lái)。
  3. 可擴(kuò)展性:隨著知識(shí)庫(kù)的增長(zhǎng),索引能夠確保系統(tǒng)的檢索性能不會(huì)急劇下降。
    常見(jiàn)坑:用錯(cuò)嵌入模型(跨語(yǔ)種偏差)、沒(méi)做去重/清洗、缺權(quán)限過(guò)濾導(dǎo)致越權(quán)命中。

總結(jié),索引是將經(jīng)過(guò)分片的文本數(shù)據(jù)從原始狀態(tài)轉(zhuǎn)化為可檢索的“知識(shí)資產(chǎn)”,為后續(xù)的召回、重排和生成奠定了堅(jiān)實(shí)的技術(shù)基礎(chǔ)。

3. 召回(Retrieval / 粗排)

召回(Retrieval)是 RAG 工作流程中至關(guān)重要的第一步,其核心目標(biāo)是:從龐大的外部知識(shí)庫(kù)中,快速且準(zhǔn)確地找到與用戶查詢最相關(guān)的少數(shù)幾個(gè)文檔片段。

這個(gè)過(guò)程可以形象地比喻為:當(dāng)一個(gè)圖書(shū)館管理員接到一個(gè)主題請(qǐng)求時(shí),他不會(huì)去逐字逐句地閱讀圖書(shū)館里的每一本書(shū),而是會(huì)根據(jù)主題關(guān)鍵詞,快速地在目錄或索引卡片上進(jìn)行查找,找出最有可能包含相關(guān)信息的幾本書(shū)。

召回步驟的主要工作內(nèi)容

在做什么:收到用戶問(wèn)題,先從索引里找一批候選塊。

策略:

  1. Hybrid 檢索最穩(wěn):向量 + BM25 合并(可各取 Top-k,再歸一化打分合并)。
  2. 固定 Top-k(例如 20);過(guò)小會(huì)漏召,過(guò)大后續(xù)噪聲多。
  3. 可加 metadata filter(例如 language=zh、category="車品"、更新時(shí)間≥2025-06)。
    與“召回率”區(qū)別:這里“召回”是一個(gè)動(dòng)作階段;評(píng)估里“召回率(recall@k)”是一個(gè)指標(biāo)。

① 查詢向量化(Query Embedding)

  1. 核心動(dòng)作:使用一個(gè)嵌入模型(Embedding Model),將用戶的自然語(yǔ)言查詢(例如:“RAG 的工作流程是什么?”)轉(zhuǎn)換成一個(gè)查詢向量(Query Vector)。
  2. 為什么這樣做:這個(gè)查詢向量是查詢?cè)诙嗑S空間中的數(shù)學(xué)表示。它捕捉了查詢的語(yǔ)義信息。在向量空間中,語(yǔ)義相似的文本(無(wú)論詞匯是否相同),其對(duì)應(yīng)的向量在空間中的位置也更接近。
  3. 重要性:這個(gè)向量是進(jìn)行后續(xù)相似性搜索的“鑰匙”,它把用戶的語(yǔ)言問(wèn)題轉(zhuǎn)換成了計(jì)算機(jī)可以高效處理的數(shù)字格式。

② 向量數(shù)據(jù)庫(kù)搜索(Vector Database Search)

  1. 核心動(dòng)作:將上一步生成的查詢向量作為輸入,在預(yù)先構(gòu)建好的向量數(shù)據(jù)庫(kù)中進(jìn)行搜索。
  2. 為什么這樣做:向量數(shù)據(jù)庫(kù)專門為高效的相似性搜索而優(yōu)化。它不進(jìn)行傳統(tǒng)的文本匹配(如關(guān)鍵詞搜索),而是計(jì)算查詢向量與數(shù)據(jù)庫(kù)中所有文檔塊向量之間的距離或相似度(例如,余弦相似度)。距離越近,相似度越高。
  3. 技術(shù)細(xì)節(jié):為了在海量數(shù)據(jù)中實(shí)現(xiàn)快速搜索,向量數(shù)據(jù)庫(kù)通常不進(jìn)行精確搜索,而是使用**近似最近鄰(Approximate Nearest Neighbor, ANN)**算法,如 HNSW、Faiss、ScaNN 等。這些算法犧牲了極小的精確度,換取了指數(shù)級(jí)的搜索速度提升。
  4. 搜索結(jié)果:系統(tǒng)會(huì)返回與查詢向量最相似的Top-K個(gè)文檔塊向量,通常是幾十到幾百個(gè)。這些向量對(duì)應(yīng)的原始文本塊就是初步召回的結(jié)果。

③ 結(jié)果篩選與返回

  1. 核心動(dòng)作:將召回的 Top-K 向量轉(zhuǎn)換回它們對(duì)應(yīng)的原始文本片段。
  2. 為什么這樣做:這些文本片段包含了與用戶查詢相關(guān)的潛在信息。它們被打包成一個(gè)列表,作為召回結(jié)果,傳遞給 RAG 工作流的下一個(gè)步驟:重排(Re-ranking)。

④ 優(yōu)劣勢(shì)

為什么需要

  1. 召回率(Recall):如何確保召回的結(jié)果中包含了所有真正相關(guān)的文檔片段?
  2. 效率(Efficiency):如何在面對(duì)數(shù)百萬(wàn)甚至數(shù)十億個(gè)文檔片段時(shí),依然能做到毫秒級(jí)的搜索響應(yīng)?
  3. 質(zhì)量(Quality):如何避免召回那些雖然詞匯相似但語(yǔ)義上不相關(guān)的“噪聲”文檔片段?
  4. 常見(jiàn)坑:只用向量不管關(guān)鍵詞 → 數(shù)值/縮寫(xiě)查不準(zhǔn);只用關(guān)鍵詞不管語(yǔ)義 → 換個(gè)說(shuō)法就找不到。

為了應(yīng)對(duì)這些難題,實(shí)踐中通常會(huì)結(jié)合多種召回方法,例如除了基于向量相似度的稠密召回(Dense Retrieval),還可以結(jié)合傳統(tǒng)的稀疏召回(Sparse Retrieval),如關(guān)鍵詞搜索(BM25),以提高召回的全面性。

4. 重排(Re-ranking / 精排)

重排(Re-ranking)是 RAG 工作流程中的一個(gè)關(guān)鍵步驟,它發(fā)生在召回(Retrieval)之后、生成(Generation)之前。它的核心作用是:對(duì)召回階段初步篩選出的文檔片段進(jìn)行二次精煉,選出真正最相關(guān)、最優(yōu)質(zhì)的少數(shù)幾個(gè),作為最終的上下文輸入給大型語(yǔ)言模型(LLM)

可以把重排比作一個(gè)編輯,它的任務(wù)是從一個(gè)包含幾十篇可能相關(guān)的文章草稿中,挑選出最核心、最能支持主題觀點(diǎn)的幾段內(nèi)容,然后將它們呈交給最終的作者(LLM)。

重排步驟的主要工作內(nèi)容

在做什么:對(duì)“召回的一批候選”做更細(xì)的相關(guān)性判定,把最相關(guān)的 3–8 條放前面。
方法:

  1. 交叉編碼器(cross-encoder):如 Cohere/BAAI/MTEB 系列、或 LLM-as-reranker;效果最好但算力更貴。
  2. 簡(jiǎn)單融合:把向量分+BM25分做 Reciprocal Rank Fusion (RRF) 也有奇效。

① 接收召回結(jié)果

重排階段接收來(lái)自召回模塊的輸入。這個(gè)輸入通常是一個(gè)包含 Top-K 個(gè)(比如 50 到 100 個(gè))文檔片段的列表。這些片段都是通過(guò)向量相似度搜索找到的,它們雖然與查詢相關(guān),但相關(guān)性有高有低,甚至可能存在冗余信息。

② 深度語(yǔ)義分析與打分

這是重排的核心。重排模型(通常是一個(gè)比嵌入模型更復(fù)雜、更強(qiáng)大的模型)會(huì)同時(shí)分析用戶查詢和每個(gè)召回的文檔片段。

它不像召回階段那樣只關(guān)注向量距離,而是進(jìn)行更細(xì)致的**交叉注意力(cross-attention)**計(jì)算,深度理解查詢和文檔片段之間的語(yǔ)義關(guān)系。這能捕捉到更微妙的關(guān)聯(lián)性,例如:

  1. 某個(gè)文檔片段雖然與查詢的關(guān)鍵詞不完全匹配,但其語(yǔ)義是完美的答案。
  2. 某個(gè)文檔片段雖然包含關(guān)鍵詞,但實(shí)際上是在討論一個(gè)不相關(guān)的概念。
  3. 重排模型會(huì)為每個(gè)文檔片段計(jì)算一個(gè)新的相關(guān)性得分。

③ 重新排序與精選

根據(jù)上一步計(jì)算出的新得分,對(duì)所有召回的文檔片段進(jìn)行重新排序。

最終,只選擇得分最高的少數(shù)幾個(gè)(比如 3-5 個(gè))文檔片段。這些被精選出的片段就是最終會(huì)作為上下文,送給 LLM 進(jìn)行生成。

④ 優(yōu)劣勢(shì)

為什么重要:RAG 的質(zhì)量上限,很大程度由重排是否把“對(duì)的證據(jù)”放到最前決定。重排是提高 RAG 系統(tǒng)質(zhì)量的關(guān)鍵,它解決了召回階段的一些固有局限性:

  1. 召回的“噪音”問(wèn)題:向量搜索雖然快,但有時(shí)會(huì)因?yàn)檎Z(yǔ)義的微妙差異或多義性,召回一些相關(guān)性不高的文檔。重排可以過(guò)濾掉這些“噪音”。
  2. 上下文的限制:大型語(yǔ)言模型的輸入窗口(上下文長(zhǎng)度)是有限的。如果直接把召回的幾十個(gè)文檔片段都塞進(jìn)去,不僅會(huì)浪費(fèi)計(jì)算資源,還可能稀釋掉真正有用的信息,導(dǎo)致 LLM 生成的答案不夠精確。
  3. 提升答案質(zhì)量:通過(guò)精選出最相關(guān)的文檔片段,重排確保了 LLM 在生成答案時(shí)所依賴的上下文是最高質(zhì)量的,這直接提高了最終答案的準(zhǔn)確性和可信度,并有效減少了“幻覺(jué)”的發(fā)生。
  4. 常見(jiàn)坑:直接把召回的 Top-20 全塞給大模型——貴且亂;或重排閾值太嚴(yán)導(dǎo)致“沒(méi)證據(jù)”。

總結(jié),重排是一個(gè)“去粗取精”的過(guò)程,它將召回階段的“廣撒網(wǎng)”結(jié)果,通過(guò)更精細(xì)的“二次篩選”,轉(zhuǎn)化為高質(zhì)量的、可以直接用于生成的上下文。

5. 生成(Generation)

生成(Generation)是 RAG 工作流程的最后一個(gè)關(guān)鍵步驟,也是將所有前期準(zhǔn)備工作轉(zhuǎn)化為最終用戶答案的環(huán)節(jié)。簡(jiǎn)單來(lái)說(shuō),這是 RAG 系統(tǒng)的核心產(chǎn)出階段。

可以把這個(gè)步驟想象成:一位作家(LLM)從圖書(shū)館管理員(檢索與重排)那里拿到了所有最相關(guān)的參考資料(上下文),然后根據(jù)這些資料,撰寫(xiě)出最終的文章(答案)。

生成的主要工作內(nèi)容

在做什么:把“問(wèn)題 + 最終證據(jù)塊們”放進(jìn)提示詞,讓大模型嚴(yán)格依據(jù)證據(jù)組織答案,并引用來(lái)源。

① 最佳實(shí)踐:

  1. 明確規(guī)則:“若證據(jù)不足,要直說(shuō)不知道/需人工;必須引用 [文檔名 §小節(jié)]”。
  2. 控制長(zhǎng)度與結(jié)構(gòu)化輸出(如 JSON),避免模型自由發(fā)揮。

② 構(gòu)建增強(qiáng)提示(Prompt Construction)

這是生成階段的第一步,也是最重要的一步。系統(tǒng)會(huì)將用戶的原始問(wèn)題和重排后精選出的高質(zhì)量文檔片段(上下文)結(jié)合起來(lái),形成一個(gè)完整的、結(jié)構(gòu)化的提示(Prompt)。

這個(gè)提示的設(shè)計(jì)至關(guān)重要,它會(huì)清晰地告訴 LLM 應(yīng)該做什么。一個(gè)好的提示通常會(huì)包含:

  1. 明確的指令:例如,“根據(jù)以下提供的上下文信息,回答這個(gè)問(wèn)題?!?/li>
  2. 注入的上下文:重排后篩選出的 3-5 個(gè)最相關(guān)的文檔片段。
  3. 用戶的原始問(wèn)題:例如,“RAG 有什么優(yōu)點(diǎn)?”

③ LLM 推理(LLM Inference)

  1. 構(gòu)建好的增強(qiáng)提示被發(fā)送給一個(gè)大型語(yǔ)言模型(LLM)。
  2. LLM 會(huì)利用其強(qiáng)大的語(yǔ)言理解和生成能力,嚴(yán)格地基于提供的上下文來(lái)生成答案。它不再依賴其自身訓(xùn)練時(shí)的參數(shù)記憶,而是將外部知識(shí)作為唯一的事實(shí)來(lái)源。
  3. 這個(gè)過(guò)程就像是 LLM 在一個(gè)“受限的環(huán)境”中工作,它被明確告知“你只能從給定的文本中尋找答案,不能編造任何信息”。這大大降低了“幻覺(jué)”(Hallucination,即模型編造或虛構(gòu)事實(shí))的風(fēng)險(xiǎn)。

④ 格式化與輸出

LLM 生成的答案通常是純文本形式。

系統(tǒng)可能會(huì)對(duì)答案進(jìn)行一些后處理,例如格式化為 Markdown(加粗、列表、標(biāo)題等)、檢查語(yǔ)法或邏輯流暢度,以確保最終呈現(xiàn)給用戶的答案清晰、易讀。

最后,將格式化好的答案返回給用戶。

⑤ 優(yōu)劣勢(shì)

為什么重要

  1. 準(zhǔn)確性與可信度:生成階段的答案是基于可驗(yàn)證的、外部的知識(shí)源,而不是 LLM 的“記憶”,這使得答案更加準(zhǔn)確,用戶可以信任其內(nèi)容。
  2. 可溯源性:由于答案的生成依賴于特定的上下文,RAG 系統(tǒng)可以輕松地提供這些來(lái)源文檔的鏈接或引用,讓用戶可以追溯和驗(yàn)證答案的真實(shí)性。
  3. 彌補(bǔ) LLM 知識(shí)的不足:LLM 的知識(shí)是靜態(tài)的,停留在其訓(xùn)練數(shù)據(jù)的截止日期。而生成階段依賴于外部知識(shí)庫(kù),這意味著系統(tǒng)可以回答關(guān)于最新事件、公司內(nèi)部文檔或任何新信息的問(wèn)題,而無(wú)需重新訓(xùn)練模型。
  4. 減少幻覺(jué):這是 RAG 最核心的價(jià)值之一。通過(guò)提供精確的、相關(guān)的上下文,RAG 幾乎消除了 LLM 編造事實(shí)的可能性,因?yàn)槟P椭雷约河锌煽康男畔⒖梢砸蕾嚒?/li>

常見(jiàn)坑:提示詞沒(méi)設(shè)約束 → 幻覺(jué);把太多噪聲證據(jù)塞進(jìn)去 → 答案漂移。

總結(jié),生成是 RAG 整個(gè)流程的終點(diǎn),它將前兩個(gè)階段(召回和重排)精心準(zhǔn)備好的“原材料”轉(zhuǎn)化為一個(gè)高質(zhì)量、可信賴的最終產(chǎn)品,為用戶提供了所需的答案。

總結(jié):(一句話版)

  1. 分片:決定檢索的“顆粒度”。
  2. 索引:決定能否“快速且可過(guò)濾地”找到候選。
  3. 召回:先撈到“可能相關(guān)”的那一批(粗排)。
  4. 重排:把真正有用的證據(jù)排在最前(精排)。
  5. 生成:讓模型在證據(jù)的“護(hù)欄里”完成回答/分類/摘要,并產(chǎn)出可審計(jì)的結(jié)果。

缺了任何一個(gè)環(huán)節(jié),RAG 的“基于證據(jù)回答”就不穩(wěn);做得越好,準(zhǔn)確率、可解釋性、時(shí)效性越高。

四、RAG 使用場(chǎng)景

使用場(chǎng)景一

問(wèn):假設(shè)你是一名汽車工程師,正在開(kāi)發(fā)一款新型電動(dòng)汽車,并且想讓大模型回答一個(gè)非常具體的問(wèn)題:“特斯拉 Model 3 最新款的電池?zé)峁芾硐到y(tǒng)有什么創(chuàng)新?”

1. 沒(méi)有 RAG 的情況

如果沒(méi)有 RAG,大模型只能依靠它在訓(xùn)練時(shí)所接觸到的通用知識(shí)。它可能知道一些關(guān)于特斯拉和熱管理系統(tǒng)的基本信息,但很可能不知道最新款的 Model 3 有哪些具體的創(chuàng)新。它可能會(huì)給出一些泛泛而談的答案,甚至?xí)耙槐菊?jīng)地胡說(shuō)八道”,因?yàn)樗鼪](méi)有訪問(wèn)到最新的、具體的文檔。

2. 使用 RAG 的情況

現(xiàn)在,假設(shè)我們?yōu)榇竽P筒渴鹆?RAG,并且它的外部知識(shí)庫(kù)包含了所有特斯拉官方發(fā)布的最新技術(shù)文檔、新聞稿和專業(yè)評(píng)測(cè)文章。

① 檢索: 當(dāng)你提出“特斯拉 Model 3 最新款的電池?zé)峁芾硐到y(tǒng)有什么創(chuàng)新?”這個(gè)問(wèn)題時(shí),RAG 會(huì)立即去知識(shí)庫(kù)中搜索與“Model 3”、“電池”、“熱管理系統(tǒng)”和“創(chuàng)新”等關(guān)鍵詞相關(guān)的文檔。它會(huì)找到幾篇描述最新款 Model 3 熱管理系統(tǒng)改進(jìn)的官方技術(shù)文檔和新聞報(bào)道。

② 增強(qiáng):RAG 會(huì)將你的問(wèn)題和這些文檔片段組合成一個(gè)提示,發(fā)送給大模型,例如:

“請(qǐng)根據(jù)以下提供的文檔內(nèi)容,回答問(wèn)題:特斯拉 Model 3 最新款的電池?zé)峁芾硐到y(tǒng)有什么創(chuàng)新?

文檔片段 1: ‘最新款 Model 3 引入了集成式熱泵系統(tǒng),能夠更高效地在制冷和制熱模式之間切換,相比老款提升了 50% 的效率…’

文檔片段 2: ‘電池管理系統(tǒng)(BMS)的軟件算法也得到了升級(jí),能夠根據(jù)駕駛習(xí)慣和環(huán)境溫度動(dòng)態(tài)調(diào)整電池溫度,從而延長(zhǎng)電池壽命…’

文檔片段 3: …(其他相關(guān)信息)”

③ 生成: 大模型收到這個(gè)包含具體信息的提示后,就會(huì)利用這些信息來(lái)生成一個(gè)準(zhǔn)確且詳細(xì)的答案,例如:

“根據(jù)最新的技術(shù)文檔,特斯拉 Model 3 最新款的電池?zé)峁芾硐到y(tǒng)主要有兩大創(chuàng)新:

集成式熱泵系統(tǒng): 車輛引入了新的熱泵系統(tǒng),提高了在不同溫度下的制冷和制熱效率,相比老款提升了 50%。

升級(jí)的軟件算法: 電池管理系統(tǒng)的軟件算法也得到了優(yōu)化,能夠更智能地管理電池溫度,從而有助于延長(zhǎng)電池的整體壽命。”

通過(guò)這個(gè)例子可以看出,RAG 極大地提升了大模型回答特定或最新問(wèn)題的能力,使其不再局限于訓(xùn)練數(shù)據(jù),而是能夠像一個(gè)真正的專家一樣,在查閱了最新資料后給出權(quán)威的回答。

使用場(chǎng)景二

給企業(yè)內(nèi)部搭建一個(gè)智能客服助手

1. 不使用 RAG 情況下

傳統(tǒng)流程產(chǎn)品知識(shí)手冊(cè)??LLM??輸出

弊端:

  1. 模型無(wú)法讀取所有內(nèi)容(產(chǎn)品手冊(cè)如果幾十上百頁(yè),字?jǐn)?shù)過(guò)多,超過(guò)上下文窗口大小,模型容易只讀后面、不讀前面,造成信息不準(zhǔn)確)
  2. 模型推理成本高(輸入內(nèi)容過(guò)多,所消耗tokens也過(guò)多)
  3. 模型推理慢(輸入越多、模型需要消化的內(nèi)容就越多,模型的輸出就會(huì)越慢)

2. 使用 RAG 的情況下

當(dāng)企業(yè)希望利用 RAG 搭建一個(gè)智能客服助手時(shí),整個(gè)流程會(huì)比通用 RAG 流程更加具體和有針對(duì)性。這個(gè)過(guò)程可以分為兩大階段:離線階段(知識(shí)庫(kù)構(gòu)建)和在線階段(實(shí)時(shí)問(wèn)答)。

第一階段:離線知識(shí)庫(kù)構(gòu)建

這個(gè)階段的目標(biāo)是讓智能客服助手“學(xué)習(xí)”企業(yè)的所有內(nèi)部知識(shí),從而能夠回答客戶的各種問(wèn)題。

① 數(shù)據(jù)源收集與加載

收集數(shù)據(jù):首先,你需要確定所有可能包含客服所需知識(shí)的數(shù)據(jù)源。這可能包括:

  1. 公司內(nèi)部文檔:產(chǎn)品手冊(cè)、服務(wù)協(xié)議、技術(shù)文檔、FAQ、內(nèi)部知識(shí)庫(kù)文章等。
  2. 歷史客服記錄:將過(guò)去的客服對(duì)話記錄(電話錄音轉(zhuǎn)錄、聊天記錄等)進(jìn)行脫敏處理,作為問(wèn)答的語(yǔ)料庫(kù)。
  3. 網(wǎng)頁(yè)信息:公司官網(wǎng)、幫助中心、博客、社交媒體上的常見(jiàn)問(wèn)題。

數(shù)據(jù)加載:使用特定的工具(如 LlamaIndex 或 LangChain 的文檔加載器)將這些不同格式的數(shù)據(jù)(PDF、DOCX、HTML、JSON 等)提取出來(lái),為后續(xù)處理做準(zhǔn)備。

② 數(shù)據(jù)處理與分片

  1. 清理與預(yù)處理:對(duì)加載的數(shù)據(jù)進(jìn)行清洗,去除無(wú)關(guān)信息(如頁(yè)眉、頁(yè)腳、廣告等),并進(jìn)行統(tǒng)一格式化。
  2. 分片(Chunking):將清理后的長(zhǎng)文檔切分成更小的文本塊。對(duì)于客服場(chǎng)景,分片策略至關(guān)重要。例如,可以按段落或問(wèn)答對(duì)進(jìn)行分片,確保每個(gè)片段都包含一個(gè)完整的、有意義的知識(shí)點(diǎn)。

③ 索引構(gòu)建

  1. 向量化(Embedding):使用一個(gè)高質(zhì)量的嵌入模型將每一個(gè)文本塊轉(zhuǎn)換成一個(gè)向量。對(duì)于客服助手,選擇一個(gè)能理解問(wèn)答語(yǔ)義的嵌入模型非常重要,確保用戶的問(wèn)題能準(zhǔn)確匹配到對(duì)應(yīng)的答案片段。
  2. 元數(shù)據(jù)添加:除了文本向量,你還應(yīng)該為每個(gè)文檔塊添加元數(shù)據(jù),如來(lái)源文檔的 URL、文檔類型、創(chuàng)建日期等。這對(duì)于后續(xù)的答案溯源和審計(jì)非常有幫助。
  3. 向量數(shù)據(jù)庫(kù)存儲(chǔ):將向量和元數(shù)據(jù)存儲(chǔ)到向量數(shù)據(jù)庫(kù)中。這一步是為了實(shí)現(xiàn)毫秒級(jí)的檢索速度,確保客服助手能夠快速響應(yīng)客戶。

第二階段:在線實(shí)時(shí)問(wèn)答

當(dāng)客戶在官網(wǎng)或 App 上發(fā)起咨詢時(shí),智能客服助手會(huì)立即啟動(dòng),完成以下流程:

① 用戶查詢處理

查詢向量化:當(dāng)客戶輸入問(wèn)題時(shí)(例如,“如何申請(qǐng)退款?”),系統(tǒng)會(huì)立即使用與離線階段相同的嵌入模型,將這個(gè)問(wèn)題轉(zhuǎn)換成一個(gè)查詢向量。

② 召回與重排

  1. 召回(Retrieval):系統(tǒng)在向量數(shù)據(jù)庫(kù)中進(jìn)行相似性搜索,根據(jù)查詢向量找到最相似的 Top-K 個(gè)文檔塊(例如 20 個(gè))。這些文檔塊包含了潛在的答案信息。
  2. 重排(Re-ranking):為了提升答案質(zhì)量,重排模型會(huì)對(duì)這 20 個(gè)文檔塊進(jìn)行二次排序,選擇其中最相關(guān)、最核心的幾個(gè)(例如 3 個(gè))作為最終的上下文。這能有效排除無(wú)關(guān)信息,讓 LLM 獲得最干凈的輸入。

③ 增強(qiáng)生成

  1. 構(gòu)建提示:系統(tǒng)將客戶的原始問(wèn)題、重排后精選出的上下文以及一個(gè)明確的指令(例如,“根據(jù)提供的客服知識(shí),回答客戶的退款問(wèn)題。”)組合成一個(gè)增強(qiáng)提示。
  2. LLM 推理:將這個(gè)增強(qiáng)提示發(fā)送給大型語(yǔ)言模型。LLM 將嚴(yán)格依據(jù)提供的上下文來(lái)生成一個(gè)連貫、專業(yè)的回答。

④ 答案輸出與后處理

  1. 格式化:LLM 生成的答案會(huì)被格式化,以增強(qiáng)可讀性(如使用粗體、列表等)。
  2. 溯源:在答案的底部,可以添加一個(gè)鏈接或引用,指向原始的知識(shí)文檔,讓客戶可以點(diǎn)擊查看完整信息,增加透明度和信任。
  3. 轉(zhuǎn)人工選項(xiàng):如果智能助手無(wú)法給出滿意的答案,或客戶提出更復(fù)雜的問(wèn)題,系統(tǒng)應(yīng)提供無(wú)縫轉(zhuǎn)接人工客服的選項(xiàng),確保服務(wù)不中斷。

3. 為什么 RAG 會(huì)成為“默認(rèn)選項(xiàng)”

  1. 知識(shí)隨時(shí)更新:不需重訓(xùn)模型就可更新知識(shí)庫(kù)(RAG/Atlas/RETRO 強(qiáng)調(diào)的核心賣點(diǎn))
  2. 可解釋/可溯源:外部證據(jù)可被展示與審計(jì),便于企業(yè)合規(guī)與人工復(fù)核。
  3. 成本效率:把“長(zhǎng)尾知識(shí)”放在索引里,用更小模型也能打過(guò)超大模型(Atlas 的少樣本結(jié)果尤為典型)

4. 為什么要用 RAG?

前面講到了 RAG 的起源、用法等,現(xiàn)在來(lái)講一下,為什么要用 RAG,不使用 RAG 直接通過(guò)大語(yǔ)言模型不可以呢?主要從以下幾個(gè)方面要講一下 RAG 的重要性。

① 解決 LLM 局限性(幻覺(jué)、過(guò)時(shí)知識(shí)、成本)

盡管 LLM 具有強(qiáng)大的生成能力,但其存在以下固有局限:

  1. 時(shí)效性問(wèn)題: LLM的訓(xùn)練數(shù)據(jù)是靜態(tài)的,訓(xùn)練完成后無(wú)法獲取新信息,這意味著它們可能基于舊信息生成響應(yīng)
  2. 專業(yè)性不足:沒(méi)有RAG,LLM無(wú)法引用信息來(lái)源,用戶難以驗(yàn)證其生成內(nèi)容的真實(shí)性,難以涵蓋所有專業(yè)領(lǐng)域的深度知識(shí)
  3. 幻覺(jué): LLM可能生成看似合理但事實(shí)上不正確或具有誤導(dǎo)性的信息,即所謂的“幻覺(jué)” 。這種不可預(yù)測(cè)性會(huì)削弱用戶信任 。
  4. 成本和可擴(kuò)展性: 使用新數(shù)據(jù)重新訓(xùn)練LLM的計(jì)算和財(cái)務(wù)成本極高 。對(duì)于龐大且動(dòng)態(tài)的知識(shí)庫(kù),擴(kuò)展傳統(tǒng)LLM也面臨挑戰(zhàn) 。

RAG 通過(guò)向 LLM 提供實(shí)時(shí)、權(quán)威的外部信息,直接緩解了這些問(wèn)題,從而使響應(yīng)基于事實(shí)并減少幻覺(jué) 。

② 提升企業(yè) AI 應(yīng)用價(jià)值

對(duì)于企業(yè)而言,RAG 技術(shù)具有重要意義:

  1. 知識(shí)資產(chǎn)利用:將企業(yè)內(nèi)部文檔、流程、經(jīng)驗(yàn)轉(zhuǎn)化為可查詢的知識(shí)庫(kù)
  2. 降低部署成本:無(wú)需重新訓(xùn)練大模型,通過(guò)更新知識(shí)庫(kù)即可獲得最新知識(shí)
  3. 增強(qiáng)可信度:提供信息來(lái)源,增加AI回答的可追溯性和可信度
  4. 定制化能力:針對(duì)特定行業(yè)和場(chǎng)景構(gòu)建專門的知識(shí)庫(kù)

③ RAG 的核心優(yōu)勢(shì):事實(shí)依據(jù)、時(shí)效性、信任和控制

RAG 技術(shù)為生成式 AI 帶來(lái)了多項(xiàng)顯著優(yōu)勢(shì):

  1. 事實(shí)依據(jù): RAG確保LLM的輸出基于來(lái)自外部來(lái)源的已驗(yàn)證事實(shí),顯著減少了“生成式AI幻覺(jué)” 。
  2. 時(shí)效性: 它能夠動(dòng)態(tài)整合最新的研究、統(tǒng)計(jì)數(shù)據(jù)或新聞,克服了LLM訓(xùn)練數(shù)據(jù)靜態(tài)的局限性 。
  3. 增強(qiáng)用戶信任: RAG允許提供來(lái)源歸屬(引用或參考文獻(xiàn)),使用戶能夠驗(yàn)證信息,從而增強(qiáng)對(duì)AI解決方案的信心 。
  4. 成本效益: 與為新數(shù)據(jù)進(jìn)行大規(guī)模微調(diào)或重新訓(xùn)練LLM相比,RAG是一種更經(jīng)濟(jì)的方法 。
  5. 更強(qiáng)的開(kāi)發(fā)者控制: 開(kāi)發(fā)者對(duì)LLM的信息來(lái)源擁有更大的控制權(quán),從而更容易進(jìn)行測(cè)試、適應(yīng)不斷變化的需求以及限制敏感信息的檢索 。

④ 降低運(yùn)營(yíng)成本與提高效率

訓(xùn)練一個(gè)大型語(yǔ)言模型需要巨大的計(jì)算資源和時(shí)間,成本高達(dá)數(shù)百萬(wàn)甚至數(shù)千萬(wàn)美元。

允許你使用一個(gè)通用的、預(yù)訓(xùn)練好的 LLM,通過(guò)在其外部知識(shí)庫(kù)中添加特定領(lǐng)域的知識(shí),就能讓模型回答專業(yè)領(lǐng)域的問(wèn)題。這比微調(diào)(Fine-tuning)模型更加高效且經(jīng)濟(jì),因?yàn)槟悴恍枰薷哪P偷臋?quán)重,只需更新數(shù)據(jù)庫(kù)即可。

⑤ 適用于特定領(lǐng)域和私有數(shù)據(jù)

LLM 是通用模型,無(wú)法訪問(wèn)企業(yè)的內(nèi)部數(shù)據(jù),例如公司文檔、客戶服務(wù)記錄或?qū)S屑夹g(shù)手冊(cè)。

允許你將這些私有和特定領(lǐng)域的數(shù)據(jù)作為知識(shí)庫(kù),讓 LLM 能夠安全地訪問(wèn)和利用這些信息,從而構(gòu)建強(qiáng)大的企業(yè)內(nèi)部知識(shí)庫(kù)問(wèn)答系統(tǒng)或智能客服。

總結(jié),RAG 就像是給一個(gè)聰明但記憶有限的大腦(LLM)安裝了一個(gè)可以隨時(shí)更新、隨時(shí)查閱的“外部硬盤”。這使得 LLM 不僅能夠回答通用問(wèn)題,還能處理特定、最新且私有的信息,大大擴(kuò)展了其應(yīng)用范圍和可靠性。

5. RAG 系統(tǒng)的挑戰(zhàn)與局限性

上邊講到了 RAG 的重要性,但是 RAG 是萬(wàn)能的么,并不是,他也有許多的局限性。

① 知識(shí)庫(kù)質(zhì)量問(wèn)題(不準(zhǔn)確、偏見(jiàn)、格式)

核心問(wèn)題:RAG 系統(tǒng)的輸出質(zhì)量直接取決于其知識(shí)庫(kù)的質(zhì)量 。

主要問(wèn)題:

  1. “垃圾進(jìn),垃圾出”: 不準(zhǔn)確、過(guò)時(shí)或有偏見(jiàn)的源內(nèi)容會(huì)導(dǎo)致AI生成不正確或不完整的答案 ()。系統(tǒng)缺乏固有的“謊言檢測(cè)器”,會(huì)傳播現(xiàn)有的偏見(jiàn)或錯(cuò)誤。
  2. 覆蓋空白: 缺失的關(guān)鍵主題會(huì)造成系統(tǒng)無(wú)法提供幫助的盲點(diǎn) 。
  3. 信息過(guò)時(shí): 在技術(shù)等快速變化的領(lǐng)域,昨天的“事實(shí)”很快就會(huì)變成誤導(dǎo)性信息,如果未能及時(shí)更新 。
  4. 明顯偏見(jiàn): 如果知識(shí)庫(kù)嚴(yán)重傾向于某些觀點(diǎn),RAG系統(tǒng)將成為一個(gè)回音室,將這些偏見(jiàn)傳遞給用戶 。
  5. 格式混亂: 文檔結(jié)構(gòu)不一致可能導(dǎo)致檢索系統(tǒng)遺漏隱藏在格式不佳內(nèi)容中的重要細(xì)節(jié) 。

“垃圾進(jìn),垃圾出”原則在 RAG 中被放大。雖然這適用于任何 AI 系統(tǒng),但 RAG 對(duì)外部知識(shí)的直接依賴意味著知識(shí)庫(kù)中的缺陷(不準(zhǔn)確性、偏見(jiàn)、過(guò)時(shí)、格式不佳)會(huì)立即傳播,并可能導(dǎo)致自信但錯(cuò)誤的答案,從而損害用戶信任并增加合規(guī)風(fēng)險(xiǎn) 。LLM 對(duì)于檢索到的上下文缺乏固有的“謊言檢測(cè)器”。因此,數(shù)據(jù)治理、質(zhì)量控制和知識(shí)庫(kù)的持續(xù)更新對(duì)于 RAG 的成功至關(guān)重要,通常需要大量的人工驗(yàn)證 。

② 信息檢索挑戰(zhàn)(語(yǔ)義不匹配、分塊錯(cuò)誤、排序問(wèn)題)

核心問(wèn)題: 即使知識(shí)庫(kù)完美無(wú)缺,檢索組件也可能無(wú)法找到正確的信息 。

檢索難題:

  1. 語(yǔ)言脫節(jié)/同義詞盲區(qū): 用戶查詢的措辭與文檔內(nèi)容不同,例如,“遠(yuǎn)程辦公”可能導(dǎo)致檢索失敗 。
  2. 分塊噩夢(mèng): 不正確的分塊大?。ㄌ?dǎo)致上下文丟失,太大導(dǎo)致噪聲)會(huì)影響檢索效率 。
  3. 排序錯(cuò)誤: 系統(tǒng)可能優(yōu)先考慮表面上的詞語(yǔ)匹配而非實(shí)際相關(guān)性 。
  4. 復(fù)雜查詢: 帶有多個(gè)條件或細(xì)微差別的復(fù)雜問(wèn)題可能被過(guò)度簡(jiǎn)化,返回通用信息 。
  5. 低精度/低召回率: 檢索到的塊不匹配(低精度)或未能檢索到所有相關(guān)塊(低召回率) 。

檢索精度存在“最后一公里”問(wèn)題。研究反復(fù)強(qiáng)調(diào),即使采用高級(jí)嵌入技術(shù),初始檢索也常常不完美 。語(yǔ)義不匹配、分塊問(wèn)題和排序錯(cuò)誤意味著即使存在相關(guān)信息,也可能無(wú)法有效地呈現(xiàn)或正確地優(yōu)先提供給 LLM。

確保最相關(guān)信息到達(dá) LLM 的“最后一公里”至關(guān)重要。這解釋了混合搜索以及最關(guān)鍵的重排序技術(shù)的必要性,它們能夠優(yōu)化初始檢索結(jié)果并克服這些固有的局限性。

③ 生成與連貫性問(wèn)題(沖突來(lái)源、上下文遺忘)

核心問(wèn)題: 檢索到信息后,生成模型可能難以將其合成為連貫、有用的答案,尤其是在處理沖突來(lái)源或長(zhǎng)時(shí)間對(duì)話時(shí) 。

生成難題:

  1. 沖突來(lái)源: 知識(shí)庫(kù)中相互矛盾的信息可能導(dǎo)致不一致或令人困惑的答案 。
  2. 上下文遺忘: 在長(zhǎng)時(shí)間對(duì)話中,系統(tǒng)可能忘記之前的上下文,導(dǎo)致不相關(guān)的響應(yīng) 。
  3. ?“弗蘭肯斯坦式響應(yīng)”: 將來(lái)自多個(gè)來(lái)源的內(nèi)容拼湊在一起可能導(dǎo)致不合邏輯或排序混亂的答案 。
  4. 自信但錯(cuò)誤的答案: 模型可能生成流暢但事實(shí)上不正確且未出現(xiàn)在源文件中的文本 。
  5. 合成癱瘓: 難以將細(xì)微、沖突的信息整合為簡(jiǎn)單答案 。
  6. 過(guò)度依賴增強(qiáng)信息: 模型可能僅僅重復(fù)檢索到的內(nèi)容,而沒(méi)有進(jìn)行適當(dāng)?shù)暮铣?。

LLM 的角色從純粹的生成轉(zhuǎn)向“智能合成”。通過(guò) RAG,LLM 不再是憑空生成,而是受限于檢索到的上下文 。這將其主要挑戰(zhàn)從生成合理文本轉(zhuǎn)變?yōu)閷⒖赡芊稚⑸踔撩艿臋z索信息

合成為連貫、準(zhǔn)確且符合上下文的答案 。“弗蘭肯斯坦式響應(yīng)”的局限性突出了這一新挑戰(zhàn)。因此,優(yōu)化 RAG 中的生成階段需要關(guān)注 LLM 整合、協(xié)調(diào)和重述來(lái)自多個(gè)來(lái)源信息的能力,這可能通過(guò)針對(duì) RAG 特定任務(wù)的微調(diào)或高級(jí)提示工程來(lái)實(shí)現(xiàn)。

④ 性能、可擴(kuò)展性和維護(hù)開(kāi)銷

核心問(wèn)題: 隨著知識(shí)庫(kù)的增長(zhǎng)和用戶流量的增加,RAG 系統(tǒng)性能可能顯著下降,導(dǎo)致響應(yīng)時(shí)間變慢和基礎(chǔ)設(shè)施成本增加 。

擴(kuò)展噩夢(mèng):

  1. 搜索時(shí)間慢: 大型知識(shí)庫(kù)導(dǎo)致搜索速度變慢。
  2. 高 GPU 成本: 高維嵌入和復(fù)雜模型計(jì)算密集。
  3. 指數(shù)級(jí)基礎(chǔ)設(shè)施成本: 擴(kuò)展以支持更多文檔和用戶通常需要昂貴的硬件升級(jí)。
  4. 延遲瓶頸: 應(yīng)用程序和數(shù)據(jù)庫(kù)之間的網(wǎng)絡(luò)跳躍會(huì)增加響應(yīng)時(shí)間(10萬(wàn)文檔可能增加150-300毫秒)
  5. 維護(hù)開(kāi)銷: 更新文檔涉及計(jì)算密集型的重新嵌入、重新索引和重新平衡 ()。這可能導(dǎo)致更新緩慢、版本控制混亂、同步問(wèn)題和潛在的服務(wù)中斷。
  6. 量化損失: 高維嵌入的精度下降。

RAG 從概念驗(yàn)證到生產(chǎn)就緒存在運(yùn)營(yíng)差距。雖然 RAG 提供了顯著的理論優(yōu)勢(shì),但研究明確指出在規(guī)?;渴鸷途S護(hù) RAG 系統(tǒng)方面存在巨大的實(shí)際挑戰(zhàn)。管理動(dòng)態(tài)知識(shí)庫(kù)和大型向量索引的成本、延遲和復(fù)雜性是巨大的。這表明學(xué)術(shù)研究與實(shí)際企業(yè)對(duì)性能、效率和持續(xù)運(yùn)營(yíng)的需求之間存在差距。因此,構(gòu)建一個(gè)“合格”的 RAG 系統(tǒng)不僅涉及選擇正確的算法,還需要穩(wěn)健的工程實(shí)踐、基礎(chǔ)設(shè)施規(guī)劃以及持續(xù)集成和更新的策略。透明度、可解釋性和倫理問(wèn)題

⑤ 透明度與可解釋性局限性

核心問(wèn)題:RAG 系統(tǒng)的決策過(guò)程通常不透明,難以理解答案是如何得出的或追溯其來(lái)源。

透明度難題:

  1. 不透明的選擇邏輯: 不清楚系統(tǒng)為何選擇某些文檔而非其他文檔。
  2. ?“幽靈來(lái)源”: 難以追溯哪些文檔對(duì)響應(yīng)的特定部分做出了貢獻(xiàn)。
  3. 信任問(wèn)題: 用戶和審計(jì)人員無(wú)法驗(yàn)證合成的響應(yīng)。
  4. 隱藏偏見(jiàn): 不透明的過(guò)程使得系統(tǒng)性偏見(jiàn)難以被發(fā)現(xiàn)和修復(fù)。
  5. 問(wèn)責(zé)制和透明度: AI系統(tǒng)的普遍倫理問(wèn)題也適用于RAG。

可解釋性是 RAG 中的倫理要求。RAG 在事實(shí)依據(jù)和來(lái)源歸屬方面的承諾因其在信息檢索和合成方式上的不透明性而受到損害。這帶來(lái)了關(guān)鍵的倫理和實(shí)踐挑戰(zhàn),尤其是在信任和可審計(jì)性至關(guān)重要的高風(fēng)險(xiǎn)領(lǐng)域(例如法律、醫(yī)療)?!坝撵`來(lái)源”問(wèn)題直接與出處的好處相悖。因此,未來(lái)的 RAG 開(kāi)發(fā)必須優(yōu)先考慮可解釋 AI(XAI)技術(shù),以提供清晰的檢索邏輯和來(lái)源歸屬,從而增強(qiáng)用戶信任并實(shí)現(xiàn)合規(guī)性。

2025爆火的RAG技術(shù)是什么?從原理到應(yīng)用全面科普!

6. 工程實(shí)施挑戰(zhàn)

成本考量

  1. 存儲(chǔ)成本:大規(guī)模向量數(shù)據(jù)庫(kù)的存儲(chǔ)成本
  2. 計(jì)算成本:實(shí)時(shí)向量檢索和模型推理的計(jì)算開(kāi)銷
  3. 維護(hù)成本:知識(shí)庫(kù)更新和系統(tǒng)維護(hù)的人力成本

性能瓶頸

  1. 檢索延遲:大規(guī)模向量檢索的響應(yīng)時(shí)間
  2. 并發(fā)處理:高并發(fā)場(chǎng)景下的系統(tǒng)性能
  3. 一致性問(wèn)題:分布式系統(tǒng)的數(shù)據(jù)一致性

7. 應(yīng)用場(chǎng)景限制

知識(shí)類型限制

  1. 難以處理高度抽象或創(chuàng)造性的問(wèn)題
  2. 對(duì)隱性知識(shí)的捕獲和表達(dá)能力有限
  3. 在需要常識(shí)推理的場(chǎng)景中表現(xiàn)不佳

實(shí)時(shí)性要求

  1. 知識(shí)更新存在延遲
  2. 難以處理快速變化的信息
  3. 在危機(jī)響應(yīng)等場(chǎng)景中可能不夠及時(shí)

五、什么是“合格的 RAG”(Checklist + 目標(biāo)線)

1. 合格 RAG 系統(tǒng)的特征

關(guān)鍵特征:

  1. 高檢索質(zhì)量: 確保檢索到最相關(guān)和最精確的塊。這涉及優(yōu)化分塊策略、嵌入模型和索引結(jié)構(gòu)。
  2. 事實(shí)依據(jù)和幻覺(jué)緩解: 持續(xù)生成基于檢索事實(shí)的響應(yīng),最大限度地減少不準(zhǔn)確性。
  3. 上下文相關(guān)性和連貫性: 提供的響應(yīng)不僅事實(shí)正確,而且與用戶意圖相關(guān),并以連貫的方式呈現(xiàn)。
  4. 可擴(kuò)展性和效率: 隨著數(shù)據(jù)和用戶流量的增長(zhǎng),系統(tǒng)表現(xiàn)良好,具有可接受的延遲和成本。
  5. 可維護(hù)性和時(shí)效性: 允許輕松頻繁地更新知識(shí)庫(kù),無(wú)需昂貴的再訓(xùn)練或顯著停機(jī)。
  6. 透明度和可解釋性: 提供來(lái)源歸屬,理想情況下,還能提供對(duì)檢索和生成過(guò)程的洞察。
  7. 對(duì)噪聲和歧義的魯棒性: 能夠優(yōu)雅地處理不完善的查詢和有噪聲的檢索文檔。
  8. 適應(yīng)性: 能夠適應(yīng)不斷變化的用戶期望和特定領(lǐng)域的需求。

2. RAG 性能的關(guān)鍵評(píng)估指標(biāo)

答案質(zhì)量(Generation Quality)

這是最直觀的指標(biāo),直接關(guān)系到用戶體驗(yàn)。它衡量 RAG 系統(tǒng)最終生成的答案有多好。

  1. 相關(guān)性(Relevance):答案是否與用戶的查詢高度相關(guān)?它是否準(zhǔn)確地回答了用戶的問(wèn)題?
  2. 準(zhǔn)確性(Faithfulness):答案中的信息是否完全來(lái)源于提供的上下文?系統(tǒng)是否添加了任何不屬于源文檔的“幻覺(jué)”信息?這是 RAG 系統(tǒng)的核心優(yōu)勢(shì),也是必須嚴(yán)格評(píng)估的指標(biāo)。
  3. 完整性(Completeness):答案是否包含了所有從上下文可以得出的相關(guān)信息?它是否遺漏了任何關(guān)鍵點(diǎn)?
  4. 流暢性與可讀性(Fluency & Readability):答案的語(yǔ)法是否正確、表述是否流暢、結(jié)構(gòu)是否清晰易讀?

檢索性能(Retrieval Performance)

這是 RAG 系統(tǒng)有效性的基礎(chǔ)。如果檢索環(huán)節(jié)出了問(wèn)題,后續(xù)的生成環(huán)節(jié)再優(yōu)秀也無(wú)濟(jì)于事。

  1. 命中率(Hit Rate):在召回的 Top-K 文檔中,是否包含了能回答問(wèn)題的正確文檔?這是一個(gè)二元指標(biāo)(是或否),用來(lái)評(píng)估召回的有效性。
  2. 排名位置(Rank):正確文檔在召回列表中的排名位置如何?排名越靠前,說(shuō)明檢索越準(zhǔn)確。一個(gè)好的 RAG 系統(tǒng)應(yīng)該將最相關(guān)的文檔放在 Top 1。
  3. 上下文相關(guān)性(Context Relevance):召回的文檔片段有多相關(guān)?評(píng)估所有召回文檔與查詢的平均相關(guān)性。如果召回了大量不相關(guān)的文檔,那會(huì)增加“噪音”,影響生成質(zhì)量。

系統(tǒng)效率(System Efficiency)

合格的 RAG 系統(tǒng)不僅要準(zhǔn)確,還要快。

  1. 延遲(Latency):從用戶提問(wèn)到收到答案所需要的時(shí)間。這包括查詢向量化、召回、重排和生成的所有時(shí)間。對(duì)于實(shí)時(shí)交互的智能客服,延遲是至關(guān)重要的指標(biāo)。
  2. 吞吐量(Throughput):系統(tǒng)在單位時(shí)間內(nèi)能處理的請(qǐng)求數(shù)量。這決定了系統(tǒng)在高并發(fā)場(chǎng)景下的承載能力。
  3. 資源消耗(Resource Usage):系統(tǒng)在運(yùn)行時(shí)所需的 CPU、GPU 和內(nèi)存等資源。一個(gè)高效的系統(tǒng)應(yīng)該在保證性能的前提下,盡可能節(jié)省資源。

穩(wěn)健性與可擴(kuò)展性(Robustness & Scalability)

一個(gè)合格的 RAG 系統(tǒng)應(yīng)該能夠應(yīng)對(duì)各種復(fù)雜情況。

  1. 魯棒性(Robustness):系統(tǒng)在面對(duì)不同類型、不同風(fēng)格的查詢時(shí)(例如,口語(yǔ)化、長(zhǎng)問(wèn)題、復(fù)雜問(wèn)題等),是否能保持穩(wěn)定的性能?
  2. 可擴(kuò)展性(Scalability):隨著知識(shí)庫(kù)的不斷增長(zhǎng)(例如,從 1000 個(gè)文檔到 1000 萬(wàn)個(gè)文檔),系統(tǒng)的檢索性能和響應(yīng)時(shí)間是否能保持穩(wěn)定?這主要取決于索引和向量數(shù)據(jù)庫(kù)的性能。

3. 提高 RAG 準(zhǔn)確性

關(guān)鍵設(shè)計(jì)要點(diǎn)(把準(zhǔn)確率做上去)

切塊(Chunking)

300–800 字符常見(jiàn);圖表/長(zhǎng)條目用“父子文檔”(child 塊檢索、parent 塊作為上下文)。

重疊 10–20% 以防語(yǔ)義被截?cái)?;?biāo)題要與正文一起入塊。

檢索(Retrieval)

Hybrid = 向量 + 關(guān)鍵字 往往最穩(wěn)。

Top-k 不宜過(guò)大(常見(jiàn) 8–20);過(guò)大=噪聲多,過(guò)小=漏召。

用 Reranker(交叉編碼器) 精排前 3–8 條,召回準(zhǔn)度會(huì)肉眼提升。

提示(Prompt)

明確“只基于以下資料回答;無(wú)法支持時(shí)要直說(shuō)”。

要求引用來(lái)源(文檔名+行/節(jié)),并說(shuō)明“不引用 = 不得分”。

對(duì)分類場(chǎng)景用受限候選 + 結(jié)構(gòu)化輸出(JSON)。

模型與向量

盡量用與你語(yǔ)種/領(lǐng)域貼合的嵌入模型(中文/跨境電商可選多語(yǔ)種嵌入)。

向量庫(kù)選型關(guān)注:延遲、并發(fā)、過(guò)濾條件(metadata filter)、可擴(kuò)展。

權(quán)限與合規(guī)

在檢索層做權(quán)限過(guò)濾(只能看到有權(quán)看的塊),避免“越權(quán)泄露”。

進(jìn)階玩法(當(dāng)基礎(chǔ)版跑通后)

  1. Query Rewriting:拼寫(xiě)糾錯(cuò)、同義詞擴(kuò)展、HyDE(先生成假想答案再檢索)。
  2. Multi-hop / 分步檢索:先找定義,再找數(shù)據(jù),再綜合。
  3. Multi-vector / ColBERT:更細(xì)粒度的詞-詞交互,提高精排效果。
  4. Graph RAG:把實(shí)體與關(guān)系抽成圖,適合多跳推理與縱覽。
  5. 長(zhǎng)上下文模型 + 壓縮:先用“總結(jié)/抽取器”把證據(jù)壓成要點(diǎn)再喂給生成模型。
  6. 4緩存(Caching):對(duì)高頻問(wèn)法、穩(wěn)定文檔做答案緩存,降本提速。

評(píng)估與監(jiān)控(別跳過(guò))

  1. 檢索層:Recall@k、MRR、NDCG(看“該找的有沒(méi)有被找回來(lái)”)。
  2. 生成層:Faithfulness(與證據(jù)一致性)、Correctness(答案對(duì)不對(duì))、Conciseness(是否啰嗦)。
  3. 常用工具思路:構(gòu)造帶標(biāo)準(zhǔn)答案的評(píng)測(cè)集(含易混樣本),離線對(duì)比不同切塊/Top-k/重排策略;線上做 A/B。
  4. 對(duì)“類目預(yù)測(cè)”特別關(guān)注:Top-1 / Top-3、拒判率、審閱耗時(shí);把錯(cuò)例回灌到類目卡。

六、RAG 與 Agent 的關(guān)系

RAG 是“知識(shí)工具”,Agent 是“調(diào)度與決策大腦”。

Agent 的能力很大程度上取決于它能調(diào)用和使用的“工具”。RAG 就是 Agent 可以使用的、用來(lái)處理特定“知識(shí)密集型”任務(wù)的強(qiáng)大工具。

1. 工作流程

規(guī)劃(Planning):Agent 接收到用戶指令,例如:“幫我分析下公司最新的銷售報(bào)告,并總結(jié)出關(guān)鍵增長(zhǎng)點(diǎn)?!?/p>

工具選擇(Tool Selection):Agent 意識(shí)到這個(gè)任務(wù)需要查閱內(nèi)部文檔,而它自己沒(méi)有這些信息。這時(shí),它會(huì)選擇使用它的**“RAG 工具”**。

工具執(zhí)行(Tool Execution):

  1. Agent 調(diào)用 RAG 工具,將“公司最新的銷售報(bào)告”作為查詢輸入。
  2. RAG 工具啟動(dòng)其內(nèi)部流程:分片、索引、召回、重排。
  3. RAG 工具從公司的內(nèi)部知識(shí)庫(kù)(如 SharePoint、Confluence)中檢索出所有相關(guān)的銷售報(bào)告片段。
  4. RAG 工具將這些檢索到的片段,連同原始查詢,傳遞給一個(gè) LLM。

結(jié)果解析與行動(dòng):

  1. LLM 基于 RAG 提供的上下文,生成一份關(guān)于銷售報(bào)告關(guān)鍵增長(zhǎng)點(diǎn)的總結(jié)。
  2. Agent 接收到這份總結(jié),可能會(huì)進(jìn)一步分析,或者直接將其作為最終答案返回給用戶。

在這個(gè)過(guò)程中,RAG 并不是 Agent 的全部,而是 Agent 實(shí)現(xiàn)特定任務(wù)目標(biāo)的有效手段之一。Agent 還可以使用其他工具來(lái)完成不同類型的任務(wù),例如:

  1. 代碼解釋器:用于數(shù)據(jù)分析和圖表生成。
  2. API 調(diào)用工具:用于查詢天氣、發(fā)送郵件或執(zhí)行外部命令。
  3. 網(wǎng)絡(luò)搜索工具:用于獲取最新公開(kāi)信息。

2. 多 Aagent 協(xié)作中的 RAG

在多 Agent 系統(tǒng)中,RAG 可以實(shí)現(xiàn):

  1. 知識(shí)共享:多個(gè)Agent共享同一個(gè)知識(shí)庫(kù)
  2. 專業(yè)分工:不同Agent訪問(wèn)不同的專業(yè)知識(shí)庫(kù)
  3. 協(xié)同學(xué)習(xí):Agent通過(guò)RAG系統(tǒng)交換學(xué)習(xí)成

總結(jié):關(guān)系和區(qū)別

2025爆火的RAG技術(shù)是什么?從原理到應(yīng)用全面科普!

所以,你可以這樣理解:Agent 是一個(gè)“全能型選手”,它擁有多個(gè)工具箱來(lái)完成不同的任務(wù)。而 RAG 就是其中一個(gè)非常重要的“專業(yè)工具箱”,專門用來(lái)解決 Agent 在執(zhí)行任務(wù)時(shí)遇到的知識(shí)瓶頸。兩者結(jié)合,能夠讓 Agent 變得更加聰明、強(qiáng)大、且能夠應(yīng)對(duì)現(xiàn)實(shí)世界中更復(fù)雜的挑戰(zhàn)。

七、RAG 與 MCP 的關(guān)系

MCP(Model Context Protocol)是把數(shù)據(jù)源與工具“標(biāo)準(zhǔn)化接入 LLM/Agent”的開(kāi)放協(xié)議——像給 AI 裝了“USB-C”。在 MCP 下,RAG 的“資源(索引/搜索)”與“工具(檢索、重排、摘要)”都可以通過(guò)統(tǒng)一接口暴露給模型/代理調(diào)用,降低集成成本并增強(qiáng)可觀測(cè)性與安全性。

這讓你能把多數(shù)據(jù)域(文件庫(kù)、Git、工單、CRM、數(shù)據(jù)庫(kù))接成統(tǒng)一檢索層,再由 Agent 調(diào)用實(shí)現(xiàn)跨源 RAG。

RAG 和 MCP 的關(guān)系可以從以下幾個(gè)角度理解:

RAG 是 MCP 的一個(gè)工具:MCP 的核心是讓 LLM 調(diào)用工具。如果這個(gè)工具是用來(lái)進(jìn)行文檔檢索的,那么它就是 RAG。因此,一個(gè)更高級(jí)的 Agent (智能體) 可以使用 MCP 協(xié)議,將 RAG 作為其眾多工具之一,來(lái)解決需要知識(shí)檢索的任務(wù)。

共同增強(qiáng) LLM 的上下文:兩者都旨在為 LLM 提供外部上下文,但方式不同。RAG 側(cè)重于靜態(tài)、非結(jié)構(gòu)化的知識(shí),而 MCP 更側(cè)重于動(dòng)態(tài)、結(jié)構(gòu)化的實(shí)時(shí)數(shù)據(jù)和操作。
結(jié)合使用以獲得更全面的能力:在實(shí)際應(yīng)用中,RAG 和 MCP 常常被結(jié)合使用。例如,一個(gè)客服智能助手可能會(huì):

  1. 使用 RAG 從公司的知識(shí)庫(kù)中檢索產(chǎn)品使用說(shuō)明和常見(jiàn)問(wèn)題解答。
  2. 使用 MCP 調(diào)用一個(gè) CRM 系統(tǒng)的 API,獲取客戶當(dāng)前的訂單狀態(tài)和賬戶信息。
  3. 最終將這些信息整合起來(lái),提供一個(gè)既包含通用知識(shí)又針對(duì)個(gè)人情況的個(gè)性化答案。

RAG 在 MCP 框架中的角色

數(shù)據(jù)連接標(biāo)準(zhǔn)化

  1. MCP為RAG系統(tǒng)提供了標(biāo)準(zhǔn)化的數(shù)據(jù)接入方式
  2. 支持多種數(shù)據(jù)源的統(tǒng)一接入:數(shù)據(jù)庫(kù)、API、文件系統(tǒng)
  3. 簡(jiǎn)化了RAG系統(tǒng)與不同數(shù)據(jù)源的集成復(fù)雜度

安全性增強(qiáng)

  1. 通過(guò)MCP協(xié)議管理訪問(wèn)權(quán)限
  2. 提供數(shù)據(jù)使用的審計(jì)跟蹤
  3. 確保敏感數(shù)據(jù)的安全訪問(wèn)

可擴(kuò)展性提升

  1. 支持RAG系統(tǒng)的水平擴(kuò)展
  2. 便于添加新的數(shù)據(jù)源和知識(shí)庫(kù)
  3. 實(shí)現(xiàn)跨系統(tǒng)的知識(shí)共享

總結(jié)

RAG 和 MCP 在 AI 生態(tài)中扮演著不同的角色。RAG 是一種特定的檢索技術(shù),用于增強(qiáng) LLM 對(duì)非結(jié)構(gòu)化文檔的理解。而 MCP 是一種更通用的協(xié)議,用于讓 LLM 能夠與各種外部系統(tǒng)交互。

將它們結(jié)合起來(lái),可以構(gòu)建出功能更強(qiáng)大的 Agent,讓 AI 系統(tǒng)不僅能知道(通過(guò) RAG),還能行動(dòng)(通過(guò) MCP),從而解決更復(fù)雜、更現(xiàn)實(shí)的任務(wù)。

八、RAG 在知識(shí)庫(kù)中的作用

RAG 在知識(shí)庫(kù)中的作用是:將靜態(tài)、龐大的知識(shí)庫(kù),轉(zhuǎn)化為一個(gè)動(dòng)態(tài)的、能夠被大語(yǔ)言模型(LLM)高效利用的“活”知識(shí)來(lái)源。

簡(jiǎn)單來(lái)說(shuō),RAG 就像是為你的知識(shí)庫(kù)安裝了一個(gè)智能的“搜索引擎”和“翻譯器”,它能讓 LLM 輕松地從海量數(shù)據(jù)中找到答案,并以人類可理解的語(yǔ)言流暢地表達(dá)出來(lái)。

1. RAG 在知識(shí)庫(kù)中的具體作用

賦予知識(shí)庫(kù)“可搜索性”和“可理解性”

  1. 傳統(tǒng)知識(shí)庫(kù):傳統(tǒng)的知識(shí)庫(kù)(如 PDF 文件、維基百科、公司文檔)是靜態(tài)的、非結(jié)構(gòu)化的數(shù)據(jù),人類可以閱讀,但機(jī)器無(wú)法直接理解其語(yǔ)義。
  2. RAG 的作用:RAG 通過(guò)向量化技術(shù),將知識(shí)庫(kù)中的每個(gè)文檔片段都轉(zhuǎn)換成一個(gè)代表其語(yǔ)義的向量。這個(gè)向量就如同一個(gè)獨(dú)特的“指紋”,讓計(jì)算機(jī)能夠理解和搜索文本的內(nèi)在含義,而不僅僅是匹配關(guān)鍵詞。這使得知識(shí)庫(kù)中的信息變得可搜索、可索引,并且能夠被 LLM 所理解。

將知識(shí)庫(kù)“武裝”給 LLM

  1. LLM 的局限:LLM 本身沒(méi)有訪問(wèn)外部知識(shí)的能力,它的知識(shí)僅限于訓(xùn)練時(shí)的數(shù)據(jù)。這導(dǎo)致它無(wú)法回答關(guān)于最新信息或私有數(shù)據(jù)的問(wèn)題,并且可能出現(xiàn)“幻覺(jué)”(編造事實(shí))。
  2. RAG 的作用:RAG 充當(dāng)了 LLM 和知識(shí)庫(kù)之間的“橋梁”。當(dāng)用戶提出問(wèn)題時(shí),RAG 會(huì)主動(dòng)從知識(shí)庫(kù)中檢索最相關(guān)的知識(shí)片段,并將這些片段作為上下文提供給 LLM。LLM 借助這些外部信息,能夠生成準(zhǔn)確、可靠且有事實(shí)依據(jù)的答案。這解決了 LLM 自身的知識(shí)瓶頸,讓它能夠利用一個(gè)外部的、可信的知識(shí)源。

提高知識(shí)庫(kù)的利用效率和價(jià)值

  1. 傳統(tǒng)利用方式:在沒(méi)有 RAG 的情況下,要想從一個(gè)龐大的知識(shí)庫(kù)中找到答案,可能需要人工進(jìn)行大量搜索和閱讀。
  2. RAG 的作用:RAG 自動(dòng)化了這一過(guò)程。它能夠快速地從海量數(shù)據(jù)中精準(zhǔn)定位到用戶所需的信息,并直接將其提煉成一個(gè)簡(jiǎn)潔、完整的答案。這極大地提升了知識(shí)庫(kù)的利用效率,將一個(gè)原本被動(dòng)存儲(chǔ)數(shù)據(jù)的“倉(cāng)庫(kù)”,變成了能夠主動(dòng)提供智能問(wèn)答的“服務(wù)中心”。

總結(jié)

RAG 在知識(shí)庫(kù)中的作用是變革性的。它將一個(gè)沉睡的、靜態(tài)的知識(shí)寶庫(kù),轉(zhuǎn)變?yōu)橐粋€(gè)能夠與 LLM 協(xié)同工作的動(dòng)態(tài)、智能的知識(shí)助手。

通過(guò) RAG,你的知識(shí)庫(kù)不再僅僅是信息的存儲(chǔ)地,而是能夠:

  1. 實(shí)時(shí)更新,無(wú)需重新訓(xùn)練 LLM。
  2. 準(zhǔn)確回答,減少“幻覺(jué)”和錯(cuò)誤。
  3. 高效利用,快速將知識(shí)轉(zhuǎn)化為價(jià)值。

簡(jiǎn)而言之,RAG 是讓知識(shí)庫(kù)“活”起來(lái)的關(guān)鍵技術(shù),它賦予了 LLM 訪問(wèn)、理解和利用外部知識(shí)的能力。

總結(jié)

RAG 是一種強(qiáng)大的 AI 技術(shù),它通過(guò)檢索外部知識(shí)庫(kù)(如企業(yè)文檔、網(wǎng)頁(yè))并將其作為上下文注入大型語(yǔ)言模型(LLM)的提示中,從而生成更準(zhǔn)確、時(shí)效性更高、且無(wú)“幻覺(jué)”的答案。

相較于單純使用 LLM,RAG 避免了模型知識(shí)陳舊和編造事實(shí)的問(wèn)題,其答案可溯源且成本更低,特別適用于需要處理特定領(lǐng)域或私有數(shù)據(jù)的場(chǎng)景。

RAG 并非獨(dú)立存在,它在更宏大的 AI 生態(tài)中扮演著關(guān)鍵角色:

在 Agent 中,RAG 作為一個(gè)核心工具,賦予 Agent 訪問(wèn)外部知識(shí)的能力;

而在 MCP(模型上下文協(xié)議)中,RAG 則是其實(shí)現(xiàn)知識(shí)檢索功能的一種具體方式。通過(guò)這種互補(bǔ)協(xié)作,RAG 極大地?cái)U(kuò)展了 LLM 的應(yīng)用邊界,讓其從一個(gè)通用知識(shí)的“記憶者”轉(zhuǎn)變?yōu)橐粋€(gè)能夠利用特定信息解決實(shí)際問(wèn)題的“專家”。

收藏
點(diǎn)贊 24

復(fù)制本文鏈接 文章為作者獨(dú)立觀點(diǎn)不代表優(yōu)設(shè)網(wǎng)立場(chǎng),未經(jīng)允許不得轉(zhuǎn)載。