RAG一周出Demo,半年上不了線,怎么破?

0 評(píng)論 2634 瀏覽 7 收藏 16 分鐘
🔗 产品经理的职业发展路径主要有四个方向:专业线、管理线、项目线和自主创业。管理线是指转向管理岗位,带一个团队..

許多從業(yè)者發(fā)現(xiàn),盡管RAG能在短時(shí)間內(nèi)快速搭建出Demo,但在實(shí)際生產(chǎn)環(huán)境中落地卻困難重重。本文從AI大模型領(lǐng)域創(chuàng)業(yè)者的視角出發(fā),深入剖析了RAG在產(chǎn)業(yè)落地中的核心問(wèn)題——問(wèn)題分級(jí),并詳細(xì)探討四類(lèi)問(wèn)題的挑戰(zhàn)與解決方案,供大家參考。

很多熟悉RAG的產(chǎn)品經(jīng)理和工程師會(huì)吐槽,“做RAG一周就可以出Demo,但真正做到能上生產(chǎn)環(huán)境的水平,半年時(shí)間都不夠!”。

這是現(xiàn)階段RAG在產(chǎn)業(yè)落地的現(xiàn)實(shí)問(wèn)題。RAG框架非常簡(jiǎn)單易懂,也有很多優(yōu)化RAG全流程的方式和手段,風(fēng)叔在此前的文章中也做過(guò)詳細(xì)介紹,《Rag系統(tǒng)的發(fā)展歷程,從樸素、高級(jí)到模塊化》。

但無(wú)論是企業(yè)內(nèi)部使用,還是面向C端用戶(hù),大家最直接的感受是,RAG只能檢索和回答相對(duì)淺顯直觀的問(wèn)題。

企業(yè)知識(shí)庫(kù)領(lǐng)域的獨(dú)角獸Hebbia也曾經(jīng)做過(guò)實(shí)驗(yàn),RAG實(shí)際上只能解決企業(yè)內(nèi)部16%的問(wèn)題,這到底是什么原因呢?

答案是問(wèn)題分級(jí)。

任何用戶(hù)檢索問(wèn)題都可以分成四類(lèi),顯性事實(shí)查詢(xún)、隱性事實(shí)查詢(xún)、可解釋性推理查詢(xún)和隱性推理查詢(xún),這四類(lèi)問(wèn)題的復(fù)雜度和解題難度依次提升。

下圖列出了每類(lèi)問(wèn)題面對(duì)的挑戰(zhàn)和解決方法??梢钥闯觯挥酗@性事實(shí)查詢(xún)和部分隱性事實(shí)查詢(xún),可以通過(guò)RAG、Iterative Rag或GraphRag來(lái)解決。而可解釋性推理查詢(xún)和隱性推理查詢(xún)問(wèn)題,RAG就沒(méi)有用武之地了,需要依靠其他更復(fù)雜和針對(duì)性的解決方案。

在實(shí)際企業(yè)應(yīng)用場(chǎng)景中,絕大多數(shù)對(duì)業(yè)務(wù)部門(mén)有價(jià)值的問(wèn)題都處于Level 3和Level 4,因此導(dǎo)致了“RAG一周出Demo,半年上不了線”的窘境。

接下來(lái),風(fēng)叔將詳細(xì)闡述這四類(lèi)問(wèn)題的特點(diǎn)和解決方案。看到最后,相信你一定會(huì)有收獲!

一、顯性事實(shí)查詢(xún)

顯性事實(shí)是指外部數(shù)據(jù)中直接存在的事實(shí)信息或數(shù)據(jù),不需要進(jìn)行額外的推理。比如“2016年奧運(yùn)會(huì)在哪里舉辦的?”、“某傳感器的品牌和工作溫度是多少?”、“門(mén)店A上個(gè)月的營(yíng)業(yè)額是多少?”。

顯性事實(shí)查詢(xún)是最簡(jiǎn)單的查詢(xún)形式,直接從提供的數(shù)據(jù)中檢索到明確的事實(shí)信息,不需要復(fù)雜的推理和思考,因此非常適合使用RAG。

當(dāng)然,要準(zhǔn)確、高效地檢索和生成相關(guān)內(nèi)容,還需要對(duì)RAG系統(tǒng)進(jìn)行優(yōu)化??梢酝ㄟ^(guò)風(fēng)叔之前介紹的方法,這里再做個(gè)簡(jiǎn)單的回顧。

索引構(gòu)建

  • 塊優(yōu)化:通過(guò)滑動(dòng)窗口、增加元數(shù)據(jù)、從小到大等方式,更加合理地對(duì)內(nèi)容塊的大小、結(jié)構(gòu)和相關(guān)性進(jìn)行分塊。
  • 多級(jí)索引:指創(chuàng)建兩個(gè)索引,一個(gè)由文檔摘要組成,另一個(gè)由文檔塊組成,并分兩步搜索,首先通過(guò)摘要過(guò)濾掉相關(guān)文檔,然后只在這個(gè)相關(guān)組內(nèi)進(jìn)行搜索。
  • 知識(shí)圖譜:提取實(shí)體以及實(shí)體之間的關(guān)系,構(gòu)建一種全局性的信息優(yōu)勢(shì),從而提升RAG的精確度。

預(yù)檢索

  • 多查詢(xún):借助提示工程通過(guò)大型語(yǔ)言模型來(lái)擴(kuò)展查詢(xún),將原始Query擴(kuò)展成多個(gè)相似的Query,然后并行執(zhí)行。
  • 子查詢(xún):通過(guò)分解和規(guī)劃復(fù)雜問(wèn)題,將原始Query分解成為多個(gè)子問(wèn)題,最后再進(jìn)行匯總合并。
  • 查詢(xún)轉(zhuǎn)換:將用戶(hù)的原始查詢(xún)轉(zhuǎn)換成一種新的查詢(xún)內(nèi)容后,再進(jìn)行檢索生成。
  • 查詢(xún)構(gòu)建:將自然語(yǔ)言的Query,轉(zhuǎn)化為某種特定機(jī)器或軟件能理解的語(yǔ)言,比如text2SQL、text2Cypher。

檢索

  • 稀疏檢索器:用統(tǒng)計(jì)方法將查詢(xún)和文檔轉(zhuǎn)化為稀疏向量。其優(yōu)勢(shì)在于處理大型數(shù)據(jù)集時(shí)效率高,只關(guān)注非零元素。
  • 密集檢索器:使用預(yù)訓(xùn)練的語(yǔ)言模型(PLMs)為查詢(xún)和文檔提供密集表示,盡管計(jì)算和存儲(chǔ)成本較高,卻能提供更復(fù)雜的語(yǔ)義表示
  • 檢索器微調(diào):基于有標(biāo)記的領(lǐng)域數(shù)據(jù)微調(diào)檢索模型,通常借助對(duì)比學(xué)習(xí)來(lái)實(shí)現(xiàn)

檢索后

  • 重排序:對(duì)于檢索到的內(nèi)容塊,使用專(zhuān)門(mén)的排序模型,重新計(jì)算上下文的相關(guān)性得分。
  • 壓縮:對(duì)于檢索到的內(nèi)容塊,不要直接輸入大模型,而是先刪除無(wú)關(guān)內(nèi)容并突出重要上下文,從而減少整體提示長(zhǎng)度,降低冗余信息對(duì)大模型的干擾。

二、隱性事實(shí)查詢(xún)

隱性事實(shí)并不會(huì)直接在原始數(shù)據(jù)中顯現(xiàn),需要少量的推理和邏輯判斷。而且推導(dǎo)隱性事實(shí)的信息可能分散在多個(gè)段落或數(shù)據(jù)表中,因此需要跨文檔檢索或跨表查詢(xún)。

比如,“查詢(xún)過(guò)去一個(gè)月?tīng)I(yíng)收增長(zhǎng)率最高的門(mén)店”,就是一個(gè)典型的隱性事實(shí)查詢(xún)。需要先獲取所有門(mén)店這個(gè)月和上個(gè)月的營(yíng)收,然后計(jì)算每個(gè)門(mén)店的營(yíng)收增長(zhǎng)率,最后排序得出結(jié)果。

隱性事實(shí)查詢(xún)的主要挑戰(zhàn)是,不同問(wèn)題依賴(lài)的數(shù)據(jù)源和推理邏輯都各不相同,如何保障大模型在推理過(guò)程中的泛化性。

隱性事實(shí)查詢(xún)的主要解題思路包括以下方法:

多跳檢索和推理

Iterative Rag:在檢索前先生成檢索計(jì)劃,然后在檢索過(guò)程中不斷根據(jù)檢索結(jié)果進(jìn)行優(yōu)化。比如利用ReAct框架,沿著Thought – Action – Observation的分析思路,逐步逼近正確答案。

Self-Rag:構(gòu)建四個(gè)關(guān)鍵的評(píng)分器,即檢索需求評(píng)分器、檢索相關(guān)性評(píng)分器、生成相關(guān)性評(píng)分器和回答質(zhì)量評(píng)分器,從而讓大模型自主決定何時(shí)開(kāi)始檢索、何時(shí)借助外部搜索工具、何時(shí)輸出最終答案。

利用圖和樹(shù)結(jié)構(gòu)

Raptor:RAPTOR 根據(jù)向量遞歸地對(duì)文本塊進(jìn)行聚類(lèi),并生成這些聚類(lèi)的文本摘要,從而自下而上構(gòu)建一棵樹(shù)。聚集在一起的節(jié)點(diǎn)是兄弟節(jié)點(diǎn);父節(jié)點(diǎn)包含該集群的文本摘要。這種結(jié)構(gòu)使 RAPTOR 能夠?qū)⒋聿煌?jí)別文本的上下文塊加載到 LLM 的上下文中,以便能夠有效且高效地回答不同層面的問(wèn)題。

GraphRag:一種將知識(shí)圖譜與Rag相結(jié)合的技術(shù)范式。傳統(tǒng)Rag是對(duì)向量數(shù)據(jù)庫(kù)進(jìn)行檢索,而GraphRag則對(duì)存儲(chǔ)在圖數(shù)據(jù)庫(kù)中的知識(shí)圖譜進(jìn)行檢索,獲得關(guān)聯(lián)知識(shí)并實(shí)現(xiàn)增強(qiáng)生成。

將自然語(yǔ)言轉(zhuǎn)換成SQL查詢(xún)

text2SQL:主要用于數(shù)據(jù)庫(kù)查詢(xún),尤其是多表查詢(xún)場(chǎng)景,可參考《一文讀懂ChatBI的實(shí)現(xiàn)難點(diǎn)與解決方案,問(wèn)答準(zhǔn)確率超過(guò)99%》

三、可解釋性推理

可解釋性推理,是指無(wú)法從顯性事實(shí)和隱性事實(shí)中獲取,需要綜合多方數(shù)據(jù)進(jìn)行較為復(fù)雜的推理、歸納和總結(jié)的問(wèn)題,并且推理過(guò)程具備業(yè)務(wù)可解釋性。

ChatBI中的歸因分析,就是典型的可解釋性推理,比如”過(guò)去一個(gè)月,華南區(qū)域營(yíng)收下滑5%的原因是什么?“。這個(gè)問(wèn)題無(wú)法直接獲取,但可以通過(guò)一定方式進(jìn)行推理,如下所示:

總營(yíng)收 = 新客 * 轉(zhuǎn)化率 * 客單價(jià) + 老客 * 復(fù)購(gòu)率 * 客單價(jià)

經(jīng)過(guò)分析,新客數(shù)量、轉(zhuǎn)化率和客單價(jià)并未發(fā)生明顯變化,而老客復(fù)購(gòu)率下滑約10%,因此可以推斷出可能是”服務(wù)質(zhì)量、競(jìng)品競(jìng)爭(zhēng)“等原因,引起了老客復(fù)購(gòu)率的下滑,從而導(dǎo)致了總營(yíng)收的下降。

可解釋性推理問(wèn)題主要有兩個(gè)挑戰(zhàn),多樣化的提示詞和有限的可解釋性。

  • 多樣化的提示詞:不同的查詢(xún)問(wèn)題,需要特定的業(yè)務(wù)知識(shí)和決策依據(jù)。比如推理營(yíng)收下滑的原因可以用上述的業(yè)務(wù)規(guī)則,但如果是推理毛利率下滑的原因,就需要另一種業(yè)務(wù)規(guī)則。這種多樣化的規(guī)則沉淀,既需要行業(yè)專(zhuān)家進(jìn)行梳理和沉淀,也需要將其轉(zhuǎn)換為合適的提示詞,讓大模型理解背后的邏輯。
  • 有限的可解釋性:提示詞對(duì)于大模型的影響是不透明的,我們很難評(píng)估提示詞對(duì)模型的影響,因此會(huì)妨礙我們構(gòu)建一致的可解釋性

面對(duì)這樣的挑戰(zhàn),風(fēng)叔主要有以下建議:

提示詞工程優(yōu)化

優(yōu)化提示詞:需要有效地將業(yè)務(wù)推理邏輯,整合到大語(yǔ)言模型中,比較考驗(yàn)提示詞設(shè)計(jì)人員的行業(yè)know-how。

提示詞微調(diào):手動(dòng)設(shè)計(jì)提示詞會(huì)很耗時(shí),可以通過(guò)提示詞微調(diào)技術(shù)解決這個(gè)問(wèn)題。比如通過(guò)強(qiáng)化學(xué)習(xí),將大模型生成正確回答的概率作為獎(jiǎng)勵(lì),指導(dǎo)模型在不同數(shù)據(jù)集上發(fā)現(xiàn)最佳提示詞配置。

構(gòu)建決策樹(shù)

決策樹(shù):將決策流程轉(zhuǎn)換為狀態(tài)機(jī)、決策樹(shù)或偽代碼,讓大模型執(zhí)行。比如在設(shè)備運(yùn)維領(lǐng)域,構(gòu)建故障樹(shù)就是一種非常有效的故障檢測(cè)方案。

利用智能體工作流

Agentic Workflow:通過(guò)workflow構(gòu)建大模型思考和行動(dòng)的具體步驟,從而約束大模型的思考方向。這種方法的優(yōu)點(diǎn)是能夠提供相對(duì)穩(wěn)定的輸出,但缺點(diǎn)是靈活性不足,同樣需要針對(duì)每類(lèi)問(wèn)題設(shè)計(jì)工作流。

四、隱性推理查詢(xún)

隱性推理查詢(xún),是指難以通過(guò)事先約定的業(yè)務(wù)規(guī)則或決策邏輯進(jìn)行判斷,而必須從外部數(shù)據(jù)中進(jìn)行觀察和分析,最終推理出結(jié)論。

比如IT智能運(yùn)維,并不存在先驗(yàn)的完整文檔,詳細(xì)記錄每種問(wèn)題的處理方法和規(guī)則,只有運(yùn)維團(tuán)隊(duì)過(guò)去處理的各種故障事件和解決方案。大模型需要從這些數(shù)據(jù)中挖掘出針對(duì)不同故障的最佳處理方案,這就是隱性推理查詢(xún)。

同樣,在產(chǎn)線智能運(yùn)維、智能量化交易等場(chǎng)景中,都涉及大量的隱性推理查詢(xún)問(wèn)題。

隱性推理問(wèn)題的主要挑戰(zhàn)是邏輯提煉困難、數(shù)據(jù)分散和不足,是最為復(fù)雜和困難的問(wèn)題。

  • 邏輯提煉困難:在海量數(shù)據(jù)中挖掘隱性邏輯,需要開(kāi)發(fā)復(fù)雜且有效的算法,能夠解析和識(shí)別隱藏在數(shù)據(jù)背后的邏輯。因此,僅依靠表面的語(yǔ)義相似性是遠(yuǎn)遠(yuǎn)不夠的,需要構(gòu)建專(zhuān)門(mén)的小模型來(lái)應(yīng)對(duì)。
  • 數(shù)據(jù)分散和不足:隱性邏輯往往隱藏在非常分散的知識(shí)中,因此要求模型具備強(qiáng)大的數(shù)據(jù)挖掘和綜合推理能力。同時(shí),當(dāng)外部數(shù)據(jù)有限或者數(shù)據(jù)質(zhì)量不滿(mǎn)足要求時(shí),也很難從中挖掘出有價(jià)值的信息。

對(duì)于隱性推理問(wèn)題所面臨的挑戰(zhàn),有以下解題思路:

  • 機(jī)器學(xué)習(xí):通過(guò)傳統(tǒng)的機(jī)器學(xué)習(xí)方法,從歷史數(shù)據(jù)和案例中總結(jié)出潛在的規(guī)則。
  • 上下文學(xué)習(xí):在提示中涵蓋相關(guān)的示例,給模型進(jìn)行參考。但是這種方法的缺陷在于,如何讓大模型掌握其訓(xùn)練領(lǐng)域之外的推理能力。
  • 模型微調(diào):通過(guò)大量業(yè)務(wù)數(shù)據(jù)和案例數(shù)據(jù),對(duì)模型進(jìn)行微調(diào),將領(lǐng)域知識(shí)進(jìn)行內(nèi)化。但是這種方法的資源耗費(fèi)比較大,中小企業(yè)謹(jǐn)慎使用。
  • 強(qiáng)化學(xué)習(xí):通過(guò)獎(jiǎng)勵(lì)機(jī)制,鼓勵(lì)模型產(chǎn)生最符合業(yè)務(wù)實(shí)際的推理邏輯和答案。

五、總結(jié)

在本篇文章中,針對(duì)Rag上手容易上線難的問(wèn)題,風(fēng)叔介紹了用戶(hù)檢索的四類(lèi)問(wèn)題,以及每類(lèi)問(wèn)題對(duì)應(yīng)的解題思路。

對(duì)于顯性事實(shí)查詢(xún)和隱性事實(shí)查詢(xún)類(lèi)問(wèn)題,可以通過(guò)多種Rag優(yōu)化方案來(lái)解決。但是,面對(duì)可解釋性推理和隱性推理問(wèn)題時(shí),只使用RAG就會(huì)力不從心了,需要引入提示詞工程、決策樹(shù)、Agentic Workflow、機(jī)器學(xué)習(xí)、模型微調(diào)和強(qiáng)化學(xué)習(xí)等多種方法。

其中每個(gè)方法要詳細(xì)展開(kāi)闡述的話(huà),都可以單獨(dú)寫(xiě)一個(gè)系列。因此,本文只是先拋出這些解題方向,不做展開(kāi)。后續(xù)有時(shí)間,風(fēng)叔再結(jié)合實(shí)際案例做詳細(xì)介紹。

本文由人人都是產(chǎn)品經(jīng)理作者【風(fēng)叔】,微信公眾號(hào):【風(fēng)叔云】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自 Unsplash,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!