萬(wàn)字詳解:RAG研究與銷(xiāo)售助手實(shí)戰(zhàn)應(yīng)用
當(dāng)AI從“生成”走向“檢索增強(qiáng)”,RAG(Retrieval-Augmented Generation)正成為連接知識(shí)庫(kù)與智能交互的關(guān)鍵橋梁。它不僅是技術(shù)研究的熱點(diǎn),更在企業(yè)應(yīng)用中展現(xiàn)出巨大潛力,尤其是在銷(xiāo)售場(chǎng)景中,正在重塑客戶溝通、內(nèi)容響應(yīng)與知識(shí)調(diào)用的方式。本文將從RAG的底層原理講起,結(jié)合真實(shí)案例,深入解析其在銷(xiāo)售助手中的實(shí)戰(zhàn)應(yīng)用路徑。
當(dāng)你問(wèn)模型一個(gè)專(zhuān)業(yè)領(lǐng)域問(wèn)題,它要么給你一個(gè)看似權(quán)威實(shí)則胡編的答案,要么給你說(shuō)“可能、我猜測(cè)這塊的技術(shù)是…“ 它自己都不確定
像這種還好,起碼你知道它可能是錯(cuò)的,就怕它非常確定的說(shuō):這個(gè)就是xx,追溯于xx,由xx所發(fā)明… 但是!都是錯(cuò)的,亂說(shuō)一通還非常篤定,這就非常容易將使用者帶跑偏。
為什么要做RAG?
幻覺(jué)的誕生
要深入理解這個(gè)問(wèn)題,我們需要澄清一個(gè)根本性的誤解:大語(yǔ)言模型并非真正”理解”它所表達(dá)的內(nèi)容,它學(xué)習(xí)的核心機(jī)制僅僅是從海量文本中提取詞匯間的統(tǒng)計(jì)關(guān)聯(lián)模式。
想象一下,當(dāng)我們看到一個(gè)句子時(shí),在GPT等大語(yǔ)言模型的”視角”中,這究竟是什么?
實(shí)際上,對(duì)它而言,這不過(guò)是一串毫無(wú)溫度的數(shù)字編碼。
模型會(huì)事先構(gòu)建一個(gè)龐大的詞匯映射表,將每個(gè)詞匯轉(zhuǎn)換為相應(yīng)的數(shù)字標(biāo)識(shí)符。每個(gè)句子在模型眼中都是一串神秘符號(hào)的數(shù)字序列。
大模型的學(xué)習(xí)過(guò)程就是通過(guò)分析這些已知的、合理的句子所對(duì)應(yīng)的數(shù)字串,從中發(fā)現(xiàn)隱藏的內(nèi)在規(guī)律。一旦掌握了這些模式,當(dāng)給定一串?dāng)?shù)字時(shí),它就能推算出接下來(lái)最有可能出現(xiàn)的數(shù)字是什么。
這聽(tīng)起來(lái)是有些不可思議,但這確實(shí)是當(dāng)今所有大語(yǔ)言模型運(yùn)行的根本原理:統(tǒng)計(jì)語(yǔ)言模型
統(tǒng)計(jì)語(yǔ)言模型的本質(zhì)是:通過(guò)分析前文詞匯的分布模式,借助深度學(xué)習(xí)的強(qiáng)大擬合能力,在見(jiàn)識(shí)過(guò)海量數(shù)據(jù)后,計(jì)算出最有可能緊隨其后的數(shù)字編碼,也就是對(duì)應(yīng)的詞匯。
它就像我們?cè)谟檬謾C(jī)時(shí)打出一個(gè)字后輸入法會(huì)推薦下一個(gè)字,通過(guò)學(xué)習(xí)天文數(shù)字般的文本數(shù)據(jù),精確計(jì)算出詞匯間的接續(xù)概率。
它不知道”心情”的真實(shí)含義是什么,但它清楚地知道”心情”這個(gè)詞后面通常會(huì)接”愉悅”、”低落”、”不好”等特定詞匯。我在這里刻意使用”數(shù)字串”這樣的表述,是為了說(shuō)明一個(gè)事實(shí):
AI從未在這個(gè)真實(shí)世界中生活過(guò),它自始至終都只是一臺(tái)根據(jù)前序數(shù)字來(lái)預(yù)測(cè)后續(xù)數(shù)字的精密機(jī)器。
這就像觀看皮影戲一樣:
舞臺(tái)后的藝人操控著各種道具,在幕布后創(chuàng)造出豐富多彩的故事世界,而觀眾看到的只是光影投射在白布上的二維輪廓。
AI就如同這樣的觀眾,它從未接觸過(guò)幕布后面的真實(shí)世界,只能通過(guò)分析這些平面影像的移動(dòng)規(guī)律來(lái)理解和模仿”劇情”的發(fā)展。它通過(guò)學(xué)習(xí)這些”影像”的規(guī)律來(lái)模擬真實(shí)世界,并產(chǎn)生看似合理的語(yǔ)言續(xù)接。
大部分情況下,這種機(jī)制運(yùn)轉(zhuǎn)良好。但當(dāng)遇到訓(xùn)練數(shù)據(jù)中罕見(jiàn)的”影像組合”,或者語(yǔ)境發(fā)生微妙變化時(shí),問(wèn)題就暴露出來(lái)了。
舉個(gè)??:如果你問(wèn)AI:
“請(qǐng)介紹一下孔子的《哈姆雷特》創(chuàng)作背景”
它很可能會(huì)一本正經(jīng)地開(kāi)始闡述這個(gè)根本不存在的作品。
我們都知道,《哈姆雷特》是莎士比亞的經(jīng)典悲劇,而孔子是春秋時(shí)期的中國(guó)思想家,兩者在時(shí)空上毫無(wú)關(guān)聯(lián)。
但由于AI在訓(xùn)練過(guò)程中頻繁接觸到關(guān)于”經(jīng)典文學(xué)作品創(chuàng)作背景”的討論模式,當(dāng)面對(duì)這樣的錯(cuò)誤組合時(shí),它依然會(huì)按照既有的語(yǔ)言模式強(qiáng)行生成內(nèi)容,編織出一個(gè)看似有理有據(jù)卻完全虛假的解釋。
當(dāng)面對(duì)未知或錯(cuò)誤的概念組合時(shí),模型依然會(huì)基于統(tǒng)計(jì)規(guī)律強(qiáng)行生成內(nèi)容
這就是AI幻覺(jué)。
模型的“幻覺(jué)”問(wèn)題確實(shí)讓人頭疼——像GPT-4、Deepseek都會(huì)出現(xiàn)這樣的問(wèn)題。為什么后來(lái)大家都覺(jué)得Deepseek不好用了,就是因?yàn)榕K數(shù)據(jù)太多了,各種幻覺(jué)問(wèn)題頻出…
模型越大,參數(shù)越多,我們?cè)诫y控制它的輸出是否準(zhǔn)確。
那如果讓模型查資料再回答,會(huì)不會(huì)就不亂說(shuō)了?就像我們讀書(shū)時(shí)考試,開(kāi)卷總比閉卷穩(wěn)妥吧?所以,RAG就是干這個(gè)的。
舉個(gè)??,RAG讓LLM在回答問(wèn)題前先去“翻書(shū)”,從外部知識(shí)庫(kù)中檢索相關(guān)信息,再結(jié)合這些信息來(lái)生成答案。這就好比給模型配備了一個(gè)隨身圖書(shū)館,遇到不懂的問(wèn)題先查資料再作答,大大降低了“幻覺(jué)”的概率,但注意僅僅是降低,而不是解決,這個(gè)很重要。
那RAG到底是怎么工作的?它背后有哪些關(guān)鍵技術(shù)?實(shí)際應(yīng)用中效果如何?又有哪些挑戰(zhàn)和未來(lái)方向呢?
RAG是什么?
檢索增強(qiáng)生成,讓AI在回答問(wèn)題之前先檢索相關(guān)知識(shí),再根據(jù)知識(shí)生成答案。
它是一種將信息檢索和LLM相結(jié)合的新范式。就是給大模型接上一個(gè)外部“大腦”——知識(shí)庫(kù),當(dāng)模型被問(wèn)到問(wèn)題時(shí),先讓它去知識(shí)庫(kù)中“查資料”,找到相關(guān)的片段,然后再基于這些資料給出回答。
任何新技術(shù)的出現(xiàn)都不是憑空的,RAG也有自己的“前身”和演進(jìn)過(guò)程。
早期探索
在RAG概念正式提出之前,開(kāi)放域問(wèn)答系統(tǒng)(ODQA)可以說(shuō)是RAG的雛形。
比如IBM Watson系統(tǒng),都是采用“檢索+閱讀”的兩階段流水線:
- 先通過(guò)搜索引擎從海量文檔中檢索出相關(guān)段落
- 再用閱讀理解模型從中抽取或生成答案
這種“先檢索、后生成”的模式已經(jīng)體現(xiàn)了RAG技術(shù)的核心邏輯。不過(guò)早期系統(tǒng)也有局限,比如檢索和生成是分開(kāi)訓(xùn)練的,彼此無(wú)法交流,檢索質(zhì)量不高時(shí)生成也會(huì)跟著錯(cuò)。這些問(wèn)題促使后來(lái)的研究者去改進(jìn)。
技術(shù)突破
2017年Transformer架構(gòu)橫空出世,可謂是NLP領(lǐng)域的革命。
Transformer的自注意力機(jī)制讓模型能夠理解上下文,生成高質(zhì)量的詞向量表示。這直接推動(dòng)了檢索技術(shù)從傳統(tǒng)的關(guān)鍵詞匹配(稀疏檢索)轉(zhuǎn)向語(yǔ)義檢索(密集檢索)。
舉個(gè)??,以前搜“汽車(chē)”只能找到帶“汽車(chē)”這個(gè)詞的文檔,而語(yǔ)義檢索能理解“汽車(chē)”和“車(chē)輛”是一回事,即使文檔里沒(méi)有“汽車(chē)”這個(gè)詞,只要意思相關(guān)也能找到。
這大大提升了檢索的相關(guān)性。當(dāng)強(qiáng)大的生成模型(如GPT)遇到了智能的檢索模型,RAG的誕生就水到渠成了。
RAG正式提出
2020年,F(xiàn)acebook AI(現(xiàn)Meta AI)的研究者Lewis等人發(fā)表了論文:
《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》
正式提出并命名了RAG框架。
這篇論文的核心貢獻(xiàn)是提出了一個(gè)統(tǒng)一的端到端訓(xùn)練方法,把預(yù)訓(xùn)練模型的參數(shù)化記憶和外部知識(shí)庫(kù)的非參數(shù)化記憶結(jié)合在一起。
舉個(gè)??,就是讓模型在訓(xùn)練時(shí)同時(shí)學(xué)習(xí)“檢索”和“生成”兩件事,而不是分開(kāi)處理。這樣檢索器和生成器可以互相配合,一起優(yōu)化。
RAG框架的提出標(biāo)志著知識(shí)密集型NLP任務(wù)的一個(gè)新范式誕生。至此RAG的架構(gòu)又有了很多不同方向的演變。比如:
- 高級(jí)RAG在傳統(tǒng)流程基礎(chǔ)上增加了查詢改寫(xiě)、結(jié)果重排序等步驟來(lái)提升效果;
- 模塊化RAG將系統(tǒng)拆分為檢索、推理、記憶、生成等獨(dú)立模塊,更靈活可擴(kuò)展。
- Agent式RAG,讓模型像代理一樣自主決定何時(shí)檢索、檢索什么,甚至多輪檢索逐步逼近答案。
- 多模態(tài)RAG也開(kāi)始出現(xiàn),讓模型不僅能檢索文本,還能檢索圖像、表格等不同類(lèi)型的數(shù)據(jù)。
我們正從一味追求“更大的模型”,轉(zhuǎn)向構(gòu)建“更聰明、更高效的混合系統(tǒng)”!
RAG標(biāo)準(zhǔn)架構(gòu)和流程
RAG系統(tǒng)的基本架構(gòu)可以分為兩大階段:離線索引階段和在線推理階段。
離線階段負(fù)責(zé)準(zhǔn)備知識(shí)庫(kù),在線階段則是用戶提問(wèn)時(shí)實(shí)時(shí)檢索并生成答案。
1. 離線索引階段:知識(shí)庫(kù)構(gòu)建
離線索引階段是在用戶提問(wèn)之前,就是在準(zhǔn)備數(shù)據(jù)庫(kù)的環(huán)節(jié)。
將海量的原始數(shù)據(jù)轉(zhuǎn)化為一個(gè)高效可搜索的知識(shí)塊索引,可以叫Chunk,也可以叫做小塊。就是將投喂的數(shù)據(jù)(結(jié)構(gòu)化&非結(jié)構(gòu)化)分割成一個(gè)一個(gè)小體量
這一階段通常包括以下幾個(gè)步驟:
- 數(shù)據(jù)收集:從各種數(shù)據(jù)源獲取原始數(shù)據(jù)。這些數(shù)據(jù)源可以是文件系統(tǒng)里的文檔、數(shù)據(jù)庫(kù)中的記錄,或者通過(guò)API抓取的網(wǎng)絡(luò)數(shù)據(jù)等等。比如在電商場(chǎng)景中,我們可能加載產(chǎn)品手冊(cè)、FAQ文檔、銷(xiāo)售話術(shù)、客戶溝通記錄等作為知識(shí)來(lái)源。
- 數(shù)據(jù)分塊:將長(zhǎng)文檔切割成較小的、語(yǔ)義相對(duì)完整的文本片段(chunk)。為什么要分塊呢?因?yàn)橐环矫妫竽P偷纳舷挛拇翱谟邢?,太長(zhǎng)的文本塞不進(jìn)去;另一方面,小塊文本主題更集中,檢索起來(lái)更精準(zhǔn)。例如一本100頁(yè)的產(chǎn)品手冊(cè),可以按章節(jié)或段落拆成若干段。不過(guò)分塊也要注意別把一句話腰斬,否則會(huì)影響后續(xù)理解。
- 向量化嵌入:使用EmbeddingModel將每個(gè)文本塊轉(zhuǎn)換成向量表示。嵌入模型就好比一個(gè)“翻譯官”,把人類(lèi)的語(yǔ)言翻譯成機(jī)器能理解的數(shù)學(xué)向量。這樣一來(lái),意思相近的文本在向量空間中會(huì)離得很近,方便后續(xù)計(jì)算相似度。業(yè)界有很多成熟的嵌入模型可以選擇,比如OpenAI的text-embedding-ada-002、Sentence-BERT模型,或者NVIDIA的多語(yǔ)言嵌入模型等。需要注意的是,索引文檔和編碼查詢必須使用同一個(gè)嵌入模型,這樣才能保證查詢和文檔在同一個(gè)語(yǔ)義空間中比較。
- 向量存儲(chǔ):將生成的文本向量及其對(duì)應(yīng)的原始文本一起存入向量數(shù)據(jù)庫(kù),并建立索引。向量數(shù)據(jù)庫(kù)是專(zhuān)門(mén)為存儲(chǔ)和快速查詢高維向量而設(shè)計(jì)的數(shù)據(jù)庫(kù),支持ANN。舉個(gè)例子:如果我們有上百萬(wàn)段文本向量,要找到和用戶問(wèn)題最相似的那幾個(gè),向量數(shù)據(jù)庫(kù)可以在毫秒級(jí)完成,而不用傻乎乎地逐一比對(duì)每一個(gè)向量。常見(jiàn)的開(kāi)源向量庫(kù)有Pinecone、Milvus、Chroma、Weaviate等。通過(guò)這一步,我們就建立好了一個(gè)知識(shí)庫(kù)索引:它就像圖書(shū)館的目錄卡,記錄了每本書(shū)的位置,只不過(guò)這里的“目錄”是向量形式的,可以按語(yǔ)義快速查找。
經(jīng)過(guò)離線階段的處理,你可以理解這批數(shù)據(jù)就變成了隨時(shí)待命的知識(shí)庫(kù)。當(dāng)用戶提問(wèn)時(shí),系統(tǒng)就能在這個(gè)知識(shí)庫(kù)里快速檢索答案。
2. 在線推理階段:檢索與生成
在線推理階段是當(dāng)用戶提交查詢時(shí),會(huì)先在知識(shí)庫(kù)中找到相關(guān)知識(shí),并生成準(zhǔn)確的回答。
這個(gè)階段也可以進(jìn)一步細(xì)分為三個(gè)關(guān)鍵步驟:
- 檢索:系統(tǒng)接收到用戶的問(wèn)題后,首先將問(wèn)題用與索引時(shí)相同的嵌入模型轉(zhuǎn)換成向量。然后利用這個(gè)查詢向量在向量數(shù)據(jù)庫(kù)中進(jìn)行相似性搜索,找出與問(wèn)題語(yǔ)義最相關(guān)的Top-{K}個(gè)文本塊。舉個(gè)例子,用戶問(wèn)這款手機(jī)有防水功能嗎?,系統(tǒng)會(huì)在知識(shí)庫(kù)中找到和“手機(jī)防水”意思最相關(guān)的幾個(gè)段落,比如產(chǎn)品規(guī)格里關(guān)于防水等級(jí)的說(shuō)明、常見(jiàn)問(wèn)題里的相關(guān)解答等。這一步相當(dāng)于讓AI去知識(shí)庫(kù)中“翻書(shū)”,把可能有用的資料找出來(lái)。
- Query增強(qiáng):將檢索到的K個(gè)文本塊作為上下文信息,與用戶的原始問(wèn)題拼接在一起,形成一個(gè)增強(qiáng)提示。把問(wèn)題和找到的資料一起喂給大模型看。例如,提示可能是這樣的:用戶問(wèn):‘這款手機(jī)有防水功能嗎?’已知信息:‘[段落1]…[段落2]…’根據(jù)以上信息,請(qǐng)回答用戶的問(wèn)題。通過(guò)這種方式,模型在回答時(shí)就能看到相關(guān)資料,而不再是“兩眼一抹黑”地憑空作答。
- 生成:將增強(qiáng)提示輸入大型語(yǔ)言模型(LLM),讓模型基于自身的語(yǔ)言能力和提供的上下文信息,生成最終的回答。模型會(huì)仔細(xì)閱讀用戶的問(wèn)題和提供的資料,然后組織語(yǔ)言給出一個(gè)人類(lèi)可讀且有事實(shí)依據(jù)的答案。比如上面的例子,模型可能回答:這款手機(jī)支持IP68級(jí)防水防塵,可在1.5米深水中浸泡30分鐘。這個(gè)答案顯然是從知識(shí)庫(kù)資料中來(lái)的,而不是模型自己瞎編的。
以上就是RAG在線推理的完整流程:檢索 → 增強(qiáng) → 生成。簡(jiǎn)單來(lái)說(shuō),就是先搜后答。
通過(guò)這個(gè)流程,用戶的問(wèn)題最終被轉(zhuǎn)化為一個(gè)有根有據(jù)的答復(fù)。
需要強(qiáng)調(diào)的是,RAG系統(tǒng)的效果取決于各個(gè)環(huán)節(jié)的緊密配合。正如有句話所說(shuō):“RAG的性能如同一條環(huán)環(huán)相扣的鏈條,其最終強(qiáng)度取決于最薄弱的一環(huán)?!蹦呐履阌昧俗钆5拇竽P?,如果檢索器找錯(cuò)了資料,模型也會(huì)給出錯(cuò)誤答案;反過(guò)來(lái),檢索器找到了正確資料,但如果分塊時(shí)把關(guān)鍵信息截?cái)嗔?,模型也無(wú)從獲取。所以,構(gòu)建一個(gè)高性能的RAG系統(tǒng),需要從數(shù)據(jù)預(yù)處理、索引構(gòu)建到模型生成每一步都精心打磨,任何一個(gè)環(huán)節(jié)掉鏈子都會(huì)影響最終結(jié)果。
了解了RAG的工作原理后,我們?cè)倏纯碦AG系統(tǒng)通常由哪些核心組件構(gòu)成,以及每個(gè)組件扮演什么角色。
3. RAG的核心組件
一個(gè)完整的RAG系統(tǒng)由多個(gè)模塊協(xié)同工作,主要包括以下幾個(gè)核心組件:
- 數(shù)據(jù)源:數(shù)據(jù)的來(lái)源。RAG可以接入多種類(lèi)型的數(shù)據(jù),既包括非結(jié)構(gòu)化數(shù)據(jù)(如PDF、Word文檔、網(wǎng)頁(yè)、純文本等),也包括結(jié)構(gòu)化數(shù)據(jù)(如數(shù)據(jù)庫(kù)表格、知識(shí)圖譜),甚至半結(jié)構(gòu)化或多模態(tài)數(shù)據(jù)(如包含圖片、表格的混合文檔,或者獨(dú)立的圖像、音頻等)。不同的數(shù)據(jù)源需要不同的處理方式,比如結(jié)構(gòu)化數(shù)據(jù)可能需要用Text-to-SQL等技術(shù)將其納入檢索,多模態(tài)數(shù)據(jù)需要用多模態(tài)模型處理??偟膩?lái)說(shuō),數(shù)據(jù)源決定了RAG系統(tǒng)“知道”哪些知識(shí)。
- 數(shù)據(jù)加載與分塊模塊:負(fù)責(zé)從數(shù)據(jù)源提取數(shù)據(jù)并進(jìn)行預(yù)處理。它首先讀取原始數(shù)據(jù)(比如解析PDF、爬取網(wǎng)頁(yè)),然后將長(zhǎng)文檔切分成合適大小的文本塊。分塊策略很重要:塊太小可能丟失上下文,塊太大又影響檢索效率和模型輸入長(zhǎng)度。理想的分塊是讓每個(gè)塊包含一個(gè)相對(duì)獨(dú)立的語(yǔ)義單元,例如一個(gè)段落、一節(jié)內(nèi)容等。此外,這個(gè)模塊還可能對(duì)文本進(jìn)行清洗(去除亂碼、噪音)和標(biāo)準(zhǔn)化處理,為后續(xù)步驟做好準(zhǔn)備。
- 嵌入模型:將文本轉(zhuǎn)換為向量。嵌入模型的選擇會(huì)直接影響檢索的準(zhǔn)確性。目前常用的嵌入模型大都是基于Transformer的預(yù)訓(xùn)練模型,能夠生成高質(zhì)量的語(yǔ)義向量表示。例如,OpenAI提供的text-embedding-ada-002模型在英文和多種其他語(yǔ)言上都表現(xiàn)很好,而像sentence-transformers這樣的開(kāi)源庫(kù)也提供了多語(yǔ)言的嵌入模型。嵌入模型的一個(gè)關(guān)鍵要求是一致性:無(wú)論是索引文檔還是編碼用戶查詢,都必須使用相同的模型,這樣向量空間才有可比性。
- 向量數(shù)據(jù)庫(kù):用于存儲(chǔ)向量索引并執(zhí)行快速檢索。向量數(shù)據(jù)庫(kù)與傳統(tǒng)數(shù)據(jù)庫(kù)不同,它的核心功能是在高維向量空間中進(jìn)行ANN。當(dāng)我們有海量向量時(shí),直接計(jì)算每個(gè)向量與查詢的距離會(huì)非常慢,而向量數(shù)據(jù)庫(kù)通過(guò)建立特殊的索引結(jié)構(gòu)(如樹(shù)結(jié)構(gòu)、圖結(jié)構(gòu)),可以在亞線性時(shí)間內(nèi)找到最相似的向量。例如,在擁有數(shù)百萬(wàn)文檔向量的系統(tǒng)中,向量數(shù)據(jù)庫(kù)可以在幾十毫秒內(nèi)返回最相關(guān)的幾個(gè)結(jié)果,從而保證RAG系統(tǒng)的實(shí)時(shí)性。目前業(yè)界有多種向量數(shù)據(jù)庫(kù)實(shí)現(xiàn),包括開(kāi)源的(如Milvus、FAISS、Elasticsearch向量搜索)和云服務(wù)(如Pinecone、Redisearch等)。選擇合適的向量庫(kù)并根據(jù)數(shù)據(jù)規(guī)模調(diào)整參數(shù),是RAG系統(tǒng)工程中的重要一環(huán)。
- 大型語(yǔ)言模型(LLM):通常我們會(huì)選擇一個(gè)強(qiáng)大的預(yù)訓(xùn)練語(yǔ)言模型作為生成器,如OpenAI的GPT-3.5/GPT-4、Anthropic的Claude,或者開(kāi)源的LLaMA系列模型等。LLM的作用是在接收到增強(qiáng)提示后,利用自身的語(yǔ)言理解和生成能力,把檢索到的信息整合成通順的回答。一個(gè)好的LLM應(yīng)該既善于理解上下文(能夠從提供的資料中提煉關(guān)鍵信息),又善于表達(dá)(生成自然流暢、符合人類(lèi)語(yǔ)言習(xí)慣的答案)。需要注意的是,LLM本身并不存儲(chǔ)額外的知識(shí),它主要依賴提示中提供的信息來(lái)作答,這正是RAG設(shè)計(jì)的初衷——讓模型做它擅長(zhǎng)的語(yǔ)言處理,而把知識(shí)部分交給外部知識(shí)庫(kù)來(lái)提供。
- 提示構(gòu)造與后處理模塊:這部分雖然在上面的流程中沒(méi)有單獨(dú)列出,但實(shí)際很重要。它負(fù)責(zé)將檢索結(jié)果和問(wèn)題組合成合適的提示格式,并在模型生成后對(duì)答案進(jìn)行必要的處理。例如,提示構(gòu)造需要考慮如何組織資料和問(wèn)題,使模型容易理解(可能需要加入一些指令,如“根據(jù)以下資料回答問(wèn)題”)。后處理可能包括對(duì)答案進(jìn)行格式美化、過(guò)濾掉不必要的內(nèi)容,或者在答案中引用資料來(lái)源以增加可信度(有些RAG系統(tǒng)會(huì)在回答末尾附上信息出處)。
以上組件各司其職,又相互配合,共同構(gòu)成了RAG系統(tǒng)。數(shù)據(jù)源和向量庫(kù)就像一個(gè)大型圖書(shū)館,嵌入模型是圖書(shū)管理員,根據(jù)語(yǔ)義給每本書(shū)貼上“坐標(biāo)標(biāo)簽”,檢索模塊則是讀者的助手,能根據(jù)讀者提問(wèn)快速找到相關(guān)的幾本書(shū),而LLM就像一位博學(xué)的解說(shuō)員,拿到書(shū)后為讀者講解其中的內(nèi)容。這一切協(xié)同運(yùn)作,才能產(chǎn)生我們最終看到的準(zhǔn)確回答。
我們通過(guò)一個(gè)實(shí)際案例,看看RAG是如何在電商售前場(chǎng)景中落地應(yīng)用的,以及它帶來(lái)了哪些價(jià)值。
RAG在電商售前場(chǎng)景的實(shí)戰(zhàn)應(yīng)用案例
我們以電商售前場(chǎng)景為例,介紹一個(gè)AI銷(xiāo)售助手的項(xiàng)目。看一下如何利用RAG技術(shù),幫助電商公司的銷(xiāo)售團(tuán)隊(duì)更好地與客戶溝通,提高銷(xiāo)售效率和成交率。
場(chǎng)景背景
某大型電商公司的銷(xiāo)售團(tuán)隊(duì)每天要面對(duì)大量客戶咨詢,內(nèi)容涉及產(chǎn)品功能、價(jià)格、物流、售后等方方面面。銷(xiāo)售人員經(jīng)常需要在公司內(nèi)部的產(chǎn)品手冊(cè)、FAQ文檔、歷史聊天記錄中查找信息來(lái)回答客戶。不僅耗時(shí),而且容易出現(xiàn)信息不一致或遺漏的情況。
新入職的銷(xiāo)售對(duì)產(chǎn)品不熟悉,回答客戶問(wèn)題時(shí)信心不足,影響客戶體驗(yàn)。公司希望引入AI助手來(lái)自動(dòng)回答客戶提問(wèn)、生成銷(xiāo)售話術(shù),從而減輕銷(xiāo)售負(fù)擔(dān)、提升客戶滿意度。
RAG方案設(shè)計(jì)
針對(duì)背景&痛點(diǎn),我們要做一個(gè)AI銷(xiāo)售助手。方案的大體思路是:將公司的產(chǎn)品知識(shí)、銷(xiāo)售話術(shù)等建立知識(shí)庫(kù),當(dāng)客戶提問(wèn)時(shí),AI助手先檢索知識(shí)庫(kù)找到相關(guān)答案片段,再結(jié)合這些片段生成自然語(yǔ)言回復(fù)。這樣,AI就能像資深銷(xiāo)售一樣,對(duì)答如流地解答客戶疑問(wèn)。
知識(shí)庫(kù)構(gòu)建
首先,團(tuán)隊(duì)整理了豐富的知識(shí)來(lái)源,包括公司內(nèi)部文檔和資料、CRM系統(tǒng)數(shù)據(jù)、銷(xiāo)售過(guò)程數(shù)據(jù)以及市場(chǎng)和外部數(shù)據(jù)等。這些數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)處理流程,包括采集、清洗、結(jié)構(gòu)化、存儲(chǔ)和更新等,最終構(gòu)建成一個(gè)全面且準(zhǔn)確的銷(xiāo)售知識(shí)庫(kù)。
在收集環(huán)節(jié),手機(jī)了公司所有產(chǎn)品的詳細(xì)資料(規(guī)格、功能、賣(mài)點(diǎn)等)、常見(jiàn)問(wèn)題解答(FAQ)、銷(xiāo)售話術(shù)模板、成功案例、合同樣本等,作為知識(shí)庫(kù)的核心內(nèi)容。
同時(shí),還接入了公司的CRM系統(tǒng),獲取客戶的基本信息、歷史溝通記錄、購(gòu)買(mǎi)記錄等數(shù)據(jù)。這樣AI助手在與客戶對(duì)話時(shí),可以了解客戶的背景(比如是否老客戶、之前問(wèn)過(guò)什么問(wèn)題),從而提供更貼心的回答。
還有就是銷(xiāo)售日常工作中的郵件往來(lái)、日程安排、聊天記錄等也被納入數(shù)據(jù)來(lái)源,因?yàn)檫@些能反映客戶需求和關(guān)注點(diǎn)。
也可以引入了一些外部數(shù)據(jù),如行業(yè)報(bào)告、競(jìng)品信息、社交媒體上關(guān)于客戶的輿情等,以便AI掌握更全面的市場(chǎng)動(dòng)態(tài)。
所有這些數(shù)據(jù)通過(guò)ETL和數(shù)據(jù)清洗流程整合到一起,構(gòu)建出一個(gè)銷(xiāo)售知識(shí)庫(kù)。
知識(shí)庫(kù)采用知識(shí)圖譜+向量數(shù)據(jù)庫(kù)的方式存儲(chǔ):既用知識(shí)圖譜把產(chǎn)品、客戶、問(wèn)題等概念及其關(guān)系表示出來(lái),方便復(fù)雜查詢推理,又用向量數(shù)據(jù)庫(kù)存儲(chǔ)文本片段的向量表示,用于語(yǔ)義檢索。
檢索機(jī)制
在檢索環(huán)節(jié),系統(tǒng)采用混合檢索策略來(lái)提高準(zhǔn)確性。
首先,對(duì)于用戶的問(wèn)題,先通過(guò)關(guān)鍵詞匹配(例如基于倒排索引的BM25算法)進(jìn)行初步篩選,快速縮小范圍。
比如客戶問(wèn)這款手機(jī)有什么顏色?,關(guān)鍵詞檢索會(huì)先找到包含“手機(jī)”“顏色”等詞的文檔段落。
然后,再在這些候選段落中,使用向量語(yǔ)義檢索(如Sentence-BERT或OpenAI Embeddings模型)計(jì)算語(yǔ)義相似度,找到意思最相關(guān)的片段。
這樣做的好處是兼顧召回率和準(zhǔn)確率:關(guān)鍵詞檢索保證了包含明確術(shù)語(yǔ)的文檔不會(huì)漏掉,向量檢索則補(bǔ)充了那些關(guān)鍵詞不同但語(yǔ)義相關(guān)的內(nèi)容。
并且可以采用Re-ranking。先由向量檢索返回Top-{K}個(gè)候選片段,然后用Rerank模型對(duì)這些片段進(jìn)行二次打分排序,會(huì)讓排序結(jié)果更準(zhǔn)確。
你可以理解為T(mén)op-{K}這一步更像是簡(jiǎn)歷初篩,Rerank是面試。
生成與響應(yīng)
有了檢索到的相關(guān)知識(shí)片段,接下來(lái)由生成模型來(lái)組裝答案。
選擇一個(gè)LLM作為生成引擎,并結(jié)合PE來(lái)引導(dǎo)模型輸出。
提示模板通常包括:
指令(告訴模型要回答客戶的問(wèn)題)
上下文知識(shí)(檢索到的資料片段)
客戶的問(wèn)題(例如:請(qǐng)根據(jù)以下產(chǎn)品說(shuō)明回答客戶的問(wèn)題。產(chǎn)品說(shuō)明:‘[資料片段]’??蛻魡?wèn)題:‘[問(wèn)題]’)
模型收到提示后,會(huì)將客戶的問(wèn)題與資料片段結(jié)合起來(lái)理解,然后生成一個(gè)自然流暢的回答。
生成過(guò)程中,可以進(jìn)行策略優(yōu)化:比如控制回答的語(yǔ)氣和風(fēng)格,使其禮貌專(zhuān)業(yè)且易于理解,避免使用生硬的機(jī)器語(yǔ)氣或過(guò)于技術(shù)化的術(shù)語(yǔ);
又如根據(jù)客戶的身份和對(duì)話歷史進(jìn)行個(gè)性化回答,如果知道客戶是老用戶,可以在回答中提及他之前購(gòu)買(mǎi)的產(chǎn)品以示關(guān)注。
模型生成回答后,系統(tǒng)還會(huì)對(duì)輸出進(jìn)行校驗(yàn)和過(guò)濾:檢查是否遺漏了資料中的關(guān)鍵信息、是否出現(xiàn)不當(dāng)言論,或者有沒(méi)有泄露公司機(jī)密。如果發(fā)現(xiàn)問(wèn)題(比如模型生成了錯(cuò)誤的數(shù)據(jù)),系統(tǒng)會(huì)讓模型根據(jù)知識(shí)庫(kù)再生成一次,或者直接從資料中提取正確數(shù)據(jù)插入回答。
訓(xùn)練了一個(gè)小型判別模型,給生成的回答打分,分?jǐn)?shù)過(guò)低的就要求模型重寫(xiě)。通過(guò)多輪校驗(yàn),確保最終回復(fù)給客戶的內(nèi)容準(zhǔn)確無(wú)誤、語(yǔ)氣恰當(dāng)、符合公司規(guī)范。
交互流程
AI銷(xiāo)售助手可以嵌入到多種渠道中與客戶交互,例如公司官網(wǎng)的在線客服聊天窗口、企業(yè)微信/釘釘?shù)菼M工具中的機(jī)器人,或者作為銷(xiāo)售的側(cè)邊欄助手。
當(dāng)客戶發(fā)送一條消息過(guò)來(lái),系統(tǒng)后臺(tái)立刻觸發(fā)上述RAG流程:
先檢索知識(shí)庫(kù)找到答案,再生成回復(fù),最后將回答呈現(xiàn)給客戶。
整個(gè)過(guò)程通常在幾秒內(nèi)完成,客戶幾乎感覺(jué)不到延遲。
如果客戶的問(wèn)題比較復(fù)雜,AI助手還能通過(guò)多輪對(duì)話逐步澄清需求。
例如客戶問(wèn)我想給父母買(mǎi)手機(jī),有什么推薦?
AI可能先詢問(wèn)您父母主要用手機(jī)做什么?預(yù)算大概多少?
待客戶回答后,再檢索符合條件的產(chǎn)品資料進(jìn)行推薦。
這種對(duì)話管理能力由系統(tǒng)的對(duì)話狀態(tài)跟蹤模塊實(shí)現(xiàn),它可以記住多輪對(duì)話的上下文,確保AI的回復(fù)連貫,且有針對(duì)性。
結(jié)語(yǔ)
回顧全文,我們從大模型的“幻覺(jué)”問(wèn)題引出了RAG,介紹了RAG的概念和由來(lái),剖析了它的系統(tǒng)架構(gòu)和工作流程,并通過(guò)電商售前的案例見(jiàn)證了RAG的實(shí)戰(zhàn)價(jià)值。
可以看到,RAG為解決AI的知識(shí)瓶頸和可靠性問(wèn)題確確實(shí)實(shí)是提供了一條切實(shí)可行的路徑。
但RAG就一定是最好的選擇么?并不是。有的場(chǎng)景可以用RAG,但是有的場(chǎng)景反而用微調(diào)會(huì)更合適。主要還是看場(chǎng)景。
我們正從一味追求更大的模型,轉(zhuǎn)向構(gòu)建更聰明的系統(tǒng)。RAG是這個(gè)轉(zhuǎn)變的縮影——它沒(méi)有試圖讓模型記住全世界的知識(shí),而是教會(huì)模型如何去利用外部的知識(shí)。
既提升了性能,又降低了成本,還增強(qiáng)了可控性和可解釋性。
面向未來(lái)的話,,隨著Agent技術(shù)、多模態(tài)技術(shù)的融入,RAG系統(tǒng)架構(gòu)其實(shí)是有很多不同類(lèi)型的。這里就不再展開(kāi)講了,可以去探索一下Agentic RAG、多模RAG以及知識(shí)圖譜的RAG。其實(shí)不能說(shuō)哪個(gè)更好,還是要和具體業(yè)務(wù)做結(jié)合。
本文由 @小普 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來(lái)自 Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
有沒(méi)有市面上做的比較好的供應(yīng)商推薦