上次國產(chǎn)AI模型測評(píng)后(詳見《六大國產(chǎn)大模型,誰是最強(qiáng)“金融分析師”?》),大模型糟糕的聯(lián)網(wǎng)信息搜索能力令人耿耿于懷。
看起來很簡單的信息獲取和四則運(yùn)算,AI一本正經(jīng)給出的答案全是胡編亂造。
“聯(lián)網(wǎng)搜索”功能一開,人工智能秒變“人工智障”。
要想讓AI提供可靠的信息與結(jié)論,就得老老實(shí)實(shí)地把財(cái)報(bào)喂給它。
但是,財(cái)務(wù)分析,不可能每次只看一篇財(cái)報(bào)。
很明顯,AI的“飯量”是有限的,上下文窗口的存在意味著不可能將一摞財(cái)報(bào)全都丟給AI。
何況,即便是能上傳多篇財(cái)報(bào),也會(huì)導(dǎo)致分析處理過程的“消化”時(shí)間大大延長。
“智能窘境”當(dāng)前,我們開始探索新的路徑——試圖通過為大模型外掛“RAG知識(shí)庫”的方式,打開新世界。
一番測試下來,你猜怎么著?
01 致命的幻覺
首先需要明確的一點(diǎn)是,AI自帶的知識(shí)儲(chǔ)備是有時(shí)限的。對(duì)于某一時(shí)間點(diǎn)以后的數(shù)據(jù),AI是完全不知情的。
有些誠實(shí)的模型會(huì)告訴我們:“對(duì)不起,我暫時(shí)無法獲取到某年某月某日以后的數(shù)據(jù)?!?/p>
圖:Hunyuan-T1獲取2025年第1季度財(cái)務(wù)指標(biāo)
而有些“機(jī)制”的模型則會(huì)用各種方法試圖給我們創(chuàng)造答案,畢竟,編造數(shù)據(jù)和假設(shè)數(shù)據(jù)對(duì)于AI完全是小菜一碟。這就是我們常說的AI的“幻覺”。
然后,AI聯(lián)網(wǎng)搜索的信息來源可謂是五花八門。畢竟,互聯(lián)網(wǎng)上假消息遠(yuǎn)比真消息多。
點(diǎn)開模型的深度思考和網(wǎng)頁搜索界面就可以看到,參與評(píng)測的模型能夠找到比較靠譜的信息來源,通常是各大網(wǎng)站的財(cái)經(jīng)作者發(fā)布的文章,比如東方財(cái)富網(wǎng)、雪球、網(wǎng)易、新浪和騰訊等。
但是,也有一些模型的信息來源看著就很不靠譜,比如股吧評(píng)論。
總之,沒有任何一個(gè)模型能夠獲取最權(quán)威的財(cái)報(bào)原文,這就是聯(lián)網(wǎng)搜索的最大弊端之一。
最后,上下文窗口的長度是每個(gè)AI大模型產(chǎn)品在發(fā)布時(shí)都會(huì)強(qiáng)調(diào)的重點(diǎn),它代表著AI的短期記憶能力。
作為上次評(píng)測材料的美團(tuán)季度財(cái)報(bào),僅一篇就長達(dá)30頁,模型能夠不出錯(cuò)實(shí)屬不易。
若上傳多篇財(cái)報(bào),AI的“腦容量”瞬間告急,好比最后一天才想起寫假期作業(yè)的學(xué)生,結(jié)果可想而知,大概只能靠胡編亂造了。
02 可能的破局之法
解決信息質(zhì)量差和記憶力不足的方法其實(shí)不難。
上大學(xué)的時(shí)候,每次一門新課的開頭,老師都會(huì)告知學(xué)生這門課的考試形式。每次“開卷考試”四個(gè)字一出,教室里總有一大群人長出一口氣。
在開卷考試的情況下,如果書上有標(biāo)準(zhǔn)答案,學(xué)生自然不會(huì)去網(wǎng)上找些不靠譜的答案,更不必去死記硬背課本,而AI也可以使用這個(gè)辦法來應(yīng)對(duì)“考試”,即——
RAG:Retrieval-Augmented Generation,檢索增強(qiáng)生成。
簡單的來說,就是讓AI先從知識(shí)庫中檢索相關(guān)內(nèi)容,再基于內(nèi)容生成答案。
因此,首先需要把所有的財(cái)報(bào)PDF上傳到同一個(gè)地方,也就是我們的“知識(shí)庫”。當(dāng)然,這個(gè)知識(shí)庫中并不局限于PDF文件,相關(guān)的Excel統(tǒng)計(jì)表格、Word文檔也可以一并放入,成為AI存放了大量教科書的專屬圖書館。
如此,AI在回答時(shí)就必須先來這個(gè)“圖書館”尋找答案。接下來,我們分步來看看RAG的具體工作流程。
數(shù)據(jù)準(zhǔn)備階段(離線):
Step.1文本切分
在這一步,我們需要解決財(cái)報(bào)篇幅過長的問題。前面說過,美團(tuán)的一篇財(cái)報(bào)就足足有30頁,通讀全文對(duì)于AI來說實(shí)在是強(qiáng)人所難。
因此,需要“快刀斬亂麻”,把財(cái)報(bào)的全篇內(nèi)容分解成意義明確的小型段落。
Step.2文本向量化
事實(shí)上,AI并不能直接閱讀人類語言,因?yàn)橛?jì)算機(jī)能夠看懂的只有數(shù)字。
這時(shí)候,就需要借助一個(gè)“嵌入模型”(Embedding Model)來把文本轉(zhuǎn)化成我們熟悉的另一個(gè)概念——向量。
圖:
EmbeddingModelLeaderboard -https://huggingface.co/spaces/mteb/leaderboard
眾所周知,向量就是一串?dāng)?shù)字,AI就是用它來獲取文本中的語義信息。
一大堆向量聚在一起,就構(gòu)成了向量空間。而意思接近的文本,在向量空間中的距離會(huì)更近。
Step.3向量存儲(chǔ)
文本切割為小型段落后,將會(huì)和對(duì)應(yīng)的向量一起被存儲(chǔ)于向量數(shù)據(jù)庫。
目的也很簡單,在經(jīng)過特殊優(yōu)化后,向量數(shù)據(jù)庫中就可以進(jìn)行大規(guī)模的向量相似度檢索。
應(yīng)用階段(在線):
Step.4查詢向量化
假設(shè)用戶提出了問題:“流動(dòng)比率是什么?”
上面已經(jīng)說過,AI無法直接閱讀文字,因此用戶提出的指令也需要轉(zhuǎn)化成向量。
需要注意的是,對(duì)知識(shí)庫使用的嵌入模型與對(duì)用戶指令使用的嵌入模型必須是同一個(gè)。
只有這樣,才能保證兩者處于同一個(gè)向量空間中。也只有在同一個(gè)向量空間中,才能比較和查詢文本向量的相似度。
Step.5向量檢索
在獲得用戶指令對(duì)應(yīng)的向量后,就可以去向量數(shù)據(jù)庫中檢索與之“距離最近”的文本段落對(duì)應(yīng)的向量,也就是計(jì)算向量之間的相似度。
相似度的計(jì)算方法是使用某個(gè)函數(shù),對(duì)用戶指令對(duì)應(yīng)的向量與向量數(shù)據(jù)庫中的向量進(jìn)行運(yùn)算,將得出的結(jié)果按順序排列,提取前N個(gè)結(jié)果。
而函數(shù)的形式是多樣化的,如常用的余弦相似度等方法。
根據(jù)提取到的結(jié)果,對(duì)應(yīng)的文本段落可能是:
“流動(dòng)比率是流動(dòng)資產(chǎn)對(duì)流動(dòng)負(fù)債的比率。”
“流動(dòng)比率可以衡量企業(yè)流動(dòng)資產(chǎn)在短期債務(wù)到期以前可變?yōu)楝F(xiàn)金用于償還負(fù)債的能力。”
“流動(dòng)比率越高,說明企業(yè)資產(chǎn)的變現(xiàn)能力越強(qiáng),短期償債能力亦越強(qiáng)?!?/p>
Step.6構(gòu)建增強(qiáng)提示詞
在檢索到相關(guān)知識(shí)(相似度最高的一些向量對(duì)應(yīng)的文本段落)后,還要再加上用戶的指令,打包成一個(gè)新的提示詞(Prompt),發(fā)送給大語言模型,例如:
請(qǐng)根據(jù)以下提供的上下文信息,來回答用戶的問題。如果上下文中沒有相關(guān)信息,請(qǐng)直接說你不知道。
[上下文信息]:
-流動(dòng)比率是流動(dòng)資產(chǎn)對(duì)流動(dòng)負(fù)債的比率。
-流動(dòng)比率可以衡量企業(yè)流動(dòng)資產(chǎn)在短期債務(wù)到期以前可變?yōu)楝F(xiàn)金用于償還負(fù)債的能力。
-流動(dòng)比率越高,說明企業(yè)資產(chǎn)的變現(xiàn)能力越強(qiáng),短期償債能力亦越強(qiáng)。
[用戶問題]:
流動(dòng)比率是什么?
Step.7生成答案
大模型收到增強(qiáng)的提示詞,相當(dāng)于學(xué)生在開卷考試中在書里找到了答案,可以根據(jù)自己的語言組織能力正式開始作答。
圖:RAG工作流程示意圖
03
實(shí)戰(zhàn):使用騰訊元器搭建AI財(cái)報(bào)分析助手
理論看起來很完美,實(shí)踐效果如何?使用騰訊元器上手試一試。
騰訊元器——混元大模型團(tuán)隊(duì)推出的智能體開放平臺(tái),可通過插件、知識(shí)庫和工作流等方式構(gòu)建低代碼式的智能體。
第一步,創(chuàng)建知識(shí)庫。
在實(shí)際測試中,我們選定6家公司:美團(tuán)、京東、百度、騰訊、谷歌、阿里。
為每家公司單獨(dú)創(chuàng)建一個(gè)知識(shí)庫,選擇文本類型,并上傳自2023年第一季度至2025年第一季度的財(cái)報(bào)。
第二步,創(chuàng)建工作流。
事實(shí)上,要使用騰訊元器的智能體,工作流并非必要。
但是,由于工作流是一套預(yù)設(shè)好的、固定的流程,使用工作流構(gòu)建智能體可以更直觀地展現(xiàn)工作流程,杜絕聯(lián)網(wǎng)搜索的可能性。
工作流的設(shè)計(jì)采用“路由分發(fā)”模式:先用一個(gè)大語言模型節(jié)點(diǎn)來識(shí)別用戶指令中提及的公司實(shí)體和分析任務(wù),然后根據(jù)識(shí)別結(jié)果動(dòng)態(tài)地調(diào)用相應(yīng)的知識(shí)庫進(jìn)行查詢,最后再由一個(gè)匯總節(jié)點(diǎn)整合所有檢索到的信息,生成一個(gè)全面、精準(zhǔn)的回答。
圖:工作流結(jié)構(gòu)圖
首先,工作流的開始節(jié)點(diǎn)用于接收用戶輸入的指令,將之命名為query。
此后,以阿里為例,使用一個(gè)LLM節(jié)點(diǎn)和條件分支節(jié)點(diǎn)來判斷用戶的指令中是否包含阿里及其別稱。
圖:”Ck_Alibaba”節(jié)點(diǎn)的系統(tǒng)提示詞
若包含,則需要調(diào)用阿里的財(cái)報(bào)知識(shí)庫進(jìn)行查詢。
先使用LLM節(jié)點(diǎn)進(jìn)行查詢改寫,該節(jié)點(diǎn)共設(shè)置兩項(xiàng)任務(wù):
若用戶指令中包含多家公司,則該節(jié)點(diǎn)只會(huì)輸出與阿里相關(guān)的查詢?nèi)蝿?wù)。
若用戶指令中采取阿里的別稱,統(tǒng)一轉(zhuǎn)化為“阿里”進(jìn)行查詢。
圖:”查詢改寫_Alibaba”節(jié)點(diǎn)的系統(tǒng)提示詞
查詢改寫節(jié)點(diǎn)輸出的就是直接明了的查詢?nèi)蝿?wù),直接連接知識(shí)庫檢索節(jié)點(diǎn)即可。
若不包含,表明此時(shí)無需調(diào)用阿里的財(cái)報(bào)知識(shí)庫。
由于工作流不允許條件分支節(jié)點(diǎn)的else分支置空,需要連接一個(gè)空輸出LLM節(jié)點(diǎn)。
圖:”Em_Alibaba”節(jié)點(diǎn)的系統(tǒng)提示詞
最后,將各公司對(duì)應(yīng)的知識(shí)庫檢索節(jié)點(diǎn)和空輸出LLM節(jié)點(diǎn)統(tǒng)一與一個(gè)LLM節(jié)點(diǎn)連接,用于匯總?cè)啃畔?,與輸出節(jié)點(diǎn)連接即可。
第三步,創(chuàng)建智能體。
在智能體配置頁面,需要通過“切換創(chuàng)建方式”,改為使用工作流模式,并配置上文中創(chuàng)建的工作流。
智能體每次回復(fù)時(shí),一定會(huì)運(yùn)行該工作流。
圖:工作流模式的財(cái)報(bào)分析助手智能體
04 實(shí)驗(yàn)結(jié)論:理想還難以照進(jìn)現(xiàn)實(shí)
經(jīng)過測試,我們很遺憾地發(fā)現(xiàn),無論是騰訊元器、海外的Coze還是開源的Dify,當(dāng)前階段的低代碼式RAG應(yīng)用在處理復(fù)雜的財(cái)報(bào)分析任務(wù)時(shí),效果均不盡如人意,與理論上的完美表現(xiàn)存在差距。
以在騰訊元器上構(gòu)建的智能體為例:
對(duì)于查詢一家公司的一項(xiàng)財(cái)務(wù)指標(biāo)時(shí),智能體大概率能夠給出準(zhǔn)確的答案;
但是,有時(shí)也會(huì)產(chǎn)生一些錯(cuò)誤,例如詢問季度數(shù)據(jù)卻回答財(cái)年數(shù)據(jù):
圖:查詢阿里2025Q1的成本
圖:查詢多家公司的一項(xiàng)財(cái)務(wù)指標(biāo)
其中,智能體對(duì)于谷歌、美團(tuán)和京東的回答均正確,但對(duì)于阿里卻沒有找到數(shù)據(jù)。
此外,京東的數(shù)據(jù)明顯來自于文本段落的敘述,而非表格中的確切數(shù)字。
唯一令人欣慰的是,由于知識(shí)庫和工作流的存在,智能體不會(huì)像一些大模型一樣假設(shè)和編造數(shù)據(jù),信誓旦旦地給出錯(cuò)誤答案了。
我們推測,RAG智能體的表現(xiàn)不佳可能有如下原因:
(1)檢索失敗
——“開卷考試時(shí),課本被撕碎了,而查字典時(shí)近義詞又太多。”
一方面,在文檔解析與分塊這一環(huán)節(jié),RAG存在先天不足。
最簡單也最常見的情況是上下文的割裂現(xiàn)象。
假設(shè)用戶的指令要求查詢某一季度的財(cái)務(wù)指標(biāo),而財(cái)報(bào)中有一個(gè)文本段落專門描述了這一指標(biāo)的具體情況。
財(cái)報(bào)的首頁可能已經(jīng)注明這是哪個(gè)季度的財(cái)報(bào),但當(dāng)我們拋開上下文只專注于這一段落時(shí),若沒有提示,則很難判斷所處時(shí)期。
文本切分階段,就很容易產(chǎn)生這種“無頭無尾”的知識(shí)塊,而系統(tǒng)自然也難以將用戶的指令和這些知識(shí)塊進(jìn)行匹配。
另一種情況是元數(shù)據(jù)的丟失。
最理想的情況下,我們希望每個(gè)知識(shí)塊都帶有“元數(shù)據(jù)”,例如“XX公司-202X年第X季度財(cái)報(bào)-XX頁”。
但是,平臺(tái)在解析時(shí),若遇到大量的長篇財(cái)報(bào),幾乎不可能對(duì)每個(gè)知識(shí)塊實(shí)現(xiàn)精確的標(biāo)簽標(biāo)注,而是只能知道某個(gè)知識(shí)塊來自于哪篇財(cái)報(bào)。
因此,即使是開卷考試,“書本”里也有“答案”,但“學(xué)生”也總會(huì)遇到不會(huì)做的“題”。
另一方面,向量檢索存在語義模糊性。
前面講解RAG工作原理時(shí)提到過,向量檢索依靠的是“語義相似度”,而非“關(guān)鍵詞精確匹配”。
以“2023年第四季度營收”和“2023年全年?duì)I收”為例,在我們看來,這兩個(gè)指令的含義完全不同,人類甚至?xí)驗(yàn)樽⒁獾骄涫较嗤匾暺浜x不同。
但在向量空間中,這兩個(gè)指令對(duì)應(yīng)的向量可能距離很近,如果“第三季度”和“全年”兩個(gè)詞的權(quán)重判斷不夠高,檢索時(shí)就很容易發(fā)生段落之間的混淆。
(2)多模態(tài)理解失敗與檢索內(nèi)容優(yōu)先級(jí)
——“學(xué)生重文輕理,寧讀文字,不看圖表。”
財(cái)務(wù)分析中,最常見的數(shù)據(jù)展示形式就是報(bào)表。
但對(duì)于計(jì)算機(jī)來說,一張存儲(chǔ)了分散數(shù)據(jù)的表格和一段連續(xù)的文本存在天壤之別。
這是兩種完全不同的數(shù)據(jù)結(jié)構(gòu),而后者遠(yuǎn)比前者易于處理,畢竟大部分RAG流程都是以文本為基礎(chǔ)而設(shè)計(jì)的。
因此,在將文檔上傳至知識(shí)庫,系統(tǒng)開始解析PDF時(shí),我們會(huì)看到解析結(jié)果可能并非一張表格,而是一段冗長且雜亂的文本。
圖:美團(tuán)財(cái)報(bào)解析結(jié)果
如圖所示,解析后的文本完全丟失了表格所具有的行列結(jié)構(gòu),語義完全混亂,不可能將項(xiàng)目與數(shù)據(jù)一一對(duì)應(yīng),這部分文本很有可能就變成了一個(gè)無用的知識(shí)塊。
也因此,與上面這段“亂碼”比起來,RAG系統(tǒng)更善于處理由完整的文本段落構(gòu)成的知識(shí)塊,這些知識(shí)塊在檢索過程中也自然而然地獲得了更高的優(yōu)先級(jí)。
從大語言模型和RAG的工作原理來看,其本質(zhì)就是文本的概率生成。
而部分大語言模型和簡單的RAG流程并不具備確認(rèn)事實(shí)和數(shù)據(jù)精度檢驗(yàn)的功能。
因此,在查詢京東2024Q4的EBITDA時(shí),智能體優(yōu)先選擇了文本段落中的“125億元”,而非表格中的“12,529百萬人民幣”。
或許在智能體看來,這兩個(gè)答案之間并不存在誰比誰更精確、更權(quán)威的關(guān)系,只是因?yàn)槲谋径温渲械拇鸢父菀灼ヅ洹?/p>
(3)生成環(huán)節(jié)失控
——“帶的參考書太多,看花了眼,抄錯(cuò)了行,好在還有點(diǎn)知識(shí)儲(chǔ)備?”
由于工作流中的大語言模型節(jié)點(diǎn)使用的仍然是國內(nèi)幾個(gè)知名廠商推出的AI模型,而這些模型已經(jīng)經(jīng)過了預(yù)訓(xùn)練過程,因此,模型本身已經(jīng)存在記憶,受到無關(guān)信息的干擾。
同時(shí),模型內(nèi)部的注意力機(jī)制導(dǎo)致其對(duì)不同詞匯的權(quán)重存在一定差異,忽略或錯(cuò)誤理解用戶指令中的某些細(xì)節(jié)也就不足為奇了。
05 總結(jié)與展望
實(shí)測結(jié)果表明,除了我們自身的能力因素之外,目前低代碼式RAG平臺(tái)的功能還存在一定欠缺。
這些平臺(tái)最大的優(yōu)勢在于便利,允許用戶規(guī)避編寫代碼環(huán)節(jié)來使用AI產(chǎn)品,大大降低了使用門檻。
但平臺(tái)也隱藏了大量技術(shù)細(xì)節(jié),用戶無法根據(jù)自身需求進(jìn)行精細(xì)化調(diào)整。
例如,騰訊元器中僅僅提供了十個(gè)類型的節(jié)點(diǎn),在財(cái)務(wù)分析的應(yīng)用中尚有欠缺,提取數(shù)據(jù)雖然杜絕了編造數(shù)據(jù)的情況,但也存在遺漏現(xiàn)象。
更不要提計(jì)算和分析等功能,因?yàn)槟且呀?jīng)超出了經(jīng)典RAG的范疇,將之歸類于“Agentic RAG”或“Tool-Augmented RAG”更加合適。
RAG存在三個(gè)核心局限:
一是難以執(zhí)行精確的計(jì)算,即便給出準(zhǔn)確的數(shù)據(jù),也可能回答錯(cuò)誤的答案;
二是缺乏深度推理和分析的能力,類似于早期的Chatbot模型,簡單的文本拼接無法構(gòu)成觀點(diǎn);
三是難以應(yīng)對(duì)復(fù)雜任務(wù),當(dāng)流程大規(guī)模延長并出現(xiàn)迭代和循環(huán)時(shí),還是需要代碼來進(jìn)行處理;而隨著用戶的需求逐漸細(xì)化,則需要使用各種形式的插件,但這都已經(jīng)與“低代碼”和快捷便利等初衷背道而馳。
因此,想要實(shí)現(xiàn)更加智能化的財(cái)務(wù)分析助手,僅僅使用RAG是不夠的。
對(duì)于開發(fā)者來說,仍然需要掌握一定的編程能力,利用代碼節(jié)點(diǎn)和插件節(jié)點(diǎn)提升工作流和智能體的業(yè)務(wù)覆蓋范圍。
理解RAG的局限,善用RAG的優(yōu)勢,從RAG逐步走向Agentic RAG,才能在AI時(shí)代成為“馴獸師”,而非被動(dòng)的使用者。
本文系基于公開資料撰寫,僅作為信息交流之用,不構(gòu)成任何投資建議。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.