DISC-FinLLM:復(fù)旦大學(xué)團(tuán)隊(duì)發(fā)布中文智慧金融系統(tǒng),采用多專家微調(diào)框架
金融領(lǐng)域?yàn)樽匀徽Z言處理(NLP)模型帶來了獨(dú)特的挑戰(zhàn)和機(jī)遇。當(dāng)前,金融文本和數(shù)據(jù)的信息量和復(fù)雜性呈現(xiàn)爆炸式增長(zhǎng),一個(gè)強(qiáng)大、可靠的智慧金融系統(tǒng)可以滿足多種不同用戶群體的金融需要,例如輔助金融從業(yè)者完成行業(yè)分析、時(shí)事解讀、金融計(jì)算、統(tǒng)計(jì)分析工作,為金融科技開發(fā)者完成情感分析、信息抽取任務(wù),幫助學(xué)生解答金融問題等,從而有效地提高金融領(lǐng)域工作和學(xué)習(xí)的效率。
金融領(lǐng)域本身具有高度的專業(yè)性,語言模型一方面要處理復(fù)雜的金融語言,另一方面要保證知識(shí)儲(chǔ)備的實(shí)時(shí)性和對(duì)金融文本內(nèi)數(shù)據(jù)計(jì)算的準(zhǔn)確性,故而過往的模型通常無法在該領(lǐng)域提供令人滿意的服務(wù)。金融領(lǐng)域迫切需要準(zhǔn)確、高效的人工智能解決方案來有效處理金融行業(yè)的各種任務(wù)。而最新出現(xiàn)的大語言模型(LLM)在語言交互及各類 NLP 任務(wù)展現(xiàn)出的出色能力,為智慧金融系統(tǒng)的進(jìn)一步發(fā)展和普及提供了新的思路。
復(fù)旦大學(xué)數(shù)據(jù)智能與社會(huì)計(jì)算實(shí)驗(yàn)室(FudanDISC)發(fā)布金融領(lǐng)域的大語言模型 ——DISC-FinLLM。該模型是由面向不同金融場(chǎng)景的 4 個(gè)模組:金融咨詢、金融文本分析、金融計(jì)算、金融知識(shí)檢索問答構(gòu)成的多專家智慧金融系統(tǒng)。這些模組在金融 NLP 任務(wù)、人類試題、資料分析和時(shí)事分析等四個(gè)評(píng)測(cè)中展現(xiàn)出明顯優(yōu)勢(shì),證明了 DISC-FinLLM 能為廣泛的金融領(lǐng)域提供強(qiáng)有力的支持。課題組開源了模型參數(shù),并且提供了翔實(shí)的技術(shù)報(bào)告和數(shù)據(jù)構(gòu)建樣例。
- 主頁地址:https://fin.fudan-disc.com
- Github 地址:https://github.com/FudanDISC/DISC-FinLLM
- 技術(shù)報(bào)告:http://arxiv.org/abs/2310.15205
1. 樣例展示
圖1 金融咨詢示例
用戶可以通過金融咨詢模組詢問金融專業(yè)知識(shí),提高學(xué)習(xí)效率,或是與模型展開金融主題的多輪對(duì)話,拓寬金融視野。
圖2 金融文本分析示例
金融文本分析模組可以幫助金融科技領(lǐng)域中的開發(fā)者們高效完成各類 NLP 任務(wù),如抽取金融文本中的投資關(guān)系、金融實(shí)體等信息,以及分析金融新聞、行業(yè)評(píng)論中的情緒傾向等。
圖3 金融計(jì)算示例
金融計(jì)算模組可以幫助用戶完成各類金融領(lǐng)域中的計(jì)算任務(wù),如增長(zhǎng)率、利率、平均值、BS 公式等,提高金融領(lǐng)域的數(shù)據(jù)分析效率。
圖4 金融檢索知識(shí)問答示例
在金融知識(shí)檢索問答模組中,模型將根據(jù)用戶問題檢索最新的新聞、研報(bào)、政策文件,緊跟時(shí)事熱點(diǎn)和政策變動(dòng),給出符合國(guó)內(nèi)外的形勢(shì)發(fā)展變化的行業(yè)分析、時(shí)事分析、政策解讀。
2. DISC-FinLLM 介紹
DISC-FinLLM 是基于我們構(gòu)建的高質(zhì)量金融數(shù)據(jù)集 DISC-Fin-SFT 在通用領(lǐng)域中文大模型 Baichuan-13B-Chat 上進(jìn)行 LoRA 指令微調(diào)得到的金融大模型。值得注意的是,我們的訓(xùn)練數(shù)據(jù)和方法也可以被適配到任何基座大模型之上。
DISC-FinLLM 包含四個(gè) LoRA 模組,它們分別用于實(shí)現(xiàn)不同的功能:
金融咨詢:
該模組可以在中國(guó)金融語境下,與用戶展開關(guān)于金融話題的多輪對(duì)話,或是為用戶解釋金融專業(yè)的相關(guān)知識(shí),是由數(shù)據(jù)集中的金融咨詢指令部分訓(xùn)練而來。
金融文本分析:
該模組可以幫助用戶在金融文本上完成信息抽取、情感分析、文本分類、文本生成等 NLP 任務(wù),是由數(shù)據(jù)集中的金融任務(wù)指令部分訓(xùn)練而來。
金融計(jì)算:
該模組可以幫助用戶完成與數(shù)學(xué)計(jì)算相關(guān)的任務(wù),除了利率、增長(zhǎng)率等基本計(jì)算,它還支持統(tǒng)計(jì)分析和包括 Black-Scholes 期權(quán)定價(jià)模型、EDF 預(yù)期違約概率模型在內(nèi)的金融模型計(jì)算。這一模組是由數(shù)據(jù)集中的金融計(jì)算指令部分訓(xùn)練而來。
金融知識(shí)檢索問答:
該模組可以檢索與用戶問題相關(guān)的金融新聞、研報(bào)和相關(guān)政策文件,結(jié)合這些檢索文檔,為用戶提供投資建議、時(shí)事分析、政策解讀。它是由數(shù)據(jù)集中的檢索增強(qiáng)指令部分訓(xùn)練而來。
模型的整體功能框架如圖 5 所示。
圖5 模型在各種金融場(chǎng)景下服務(wù)于不同的用戶群體
3. 方法:數(shù)據(jù)集 DISC-Fin-SFT 的構(gòu)造
圖6 DISC-Fin-SFT數(shù)據(jù)集的構(gòu)造過程
DISC-Fin-SFT 數(shù)據(jù)集總共包含約 25 萬條數(shù)據(jù),分為四個(gè)子數(shù)據(jù)集,它們分別是金融咨詢指令、金融任務(wù)指令、金融計(jì)算指令、檢索增強(qiáng)指令。圖 6 展示了數(shù)據(jù)集的整體構(gòu)造過程,每個(gè)子數(shù)據(jù)集各有不同的構(gòu)造方法和提示詞(prompt)。表 1 展示了每個(gè)部分的構(gòu)造的數(shù)據(jù)量和數(shù)據(jù)長(zhǎng)度信息,其中輸入和輸出長(zhǎng)度指的是輸入和輸出的文本經(jīng)過分詞后的平均詞數(shù)。
表1 DISC-Fin-SFT數(shù)據(jù)統(tǒng)計(jì)
3.1 金融咨詢指令
金融咨詢指令數(shù)據(jù)來源于三部分:
FiQA
這是一個(gè)英文的金融問答數(shù)據(jù)集,其中答案部分的質(zhì)量參差不齊。因此我們將 FiQA 中的所有問題翻譯成中文后,使用 ChatGPT 重新生成問題的答案,來提高這一數(shù)據(jù)集的質(zhì)量,提示詞如圖 7 所示,上下文可根據(jù)需要選填。
圖7 用于構(gòu)造金融問答指令的零樣本提示模板
金融名詞解釋
我們?cè)诰W(wǎng)上收集了 200 多個(gè)金融領(lǐng)域的專業(yè)術(shù)語(如:杠桿收購(gòu)),然后使用圖 8 中的提示詞,令 ChatGPT 為這些專業(yè)詞匯生成相應(yīng)的問答對(duì),用以訓(xùn)練模型對(duì)金融用語的理解。
圖8 用于構(gòu)造金融名詞問答的小樣本提示模板
經(jīng)管之家論壇上的公開發(fā)帖
我們采用自聊天提示(Self-chat Prompting)方法,按照?qǐng)D 9 中的提示詞,引導(dǎo) ChatGPT 圍繞帖子主題生成多輪的問答。
圖9 用于構(gòu)造多輪對(duì)話指令的零樣本提示模板
在以上過程中,我們精心設(shè)計(jì)的提示詞使得 ChatGPT 可以生成符合中國(guó)國(guó)情、立場(chǎng)、態(tài)度和語言風(fēng)格的問答,這確保 DISC-FinLLM 能夠提供符合中國(guó)金融語境的咨詢服務(wù)。
3.2 金融任務(wù)指令
金融任務(wù)指令數(shù)據(jù)分為兩個(gè)部分:
金融 NLP 數(shù)據(jù)集
該部分是通過手動(dòng)提示(Manually Prompting)方法,從已有的金融 NLP 數(shù)據(jù)集改編而來的,圖 10 就是一個(gè)改編的例子。我們搜集了十余個(gè)開源的 NLP 中文數(shù)據(jù)集,任務(wù)上可以分為情緒分析、信息抽取、文本生成、文本分類和翻譯等幾類。具體的 NLP 數(shù)據(jù)集信息參看表 2。
圖10 用于構(gòu)造NLP任務(wù)指令的零樣本和小樣本提示模板
表2 金融NLP數(shù)據(jù)集統(tǒng)計(jì)
金融無標(biāo)簽文本數(shù)據(jù)集
這是一個(gè)金融文本的閱讀理解數(shù)據(jù)集。首先,我們從東方財(cái)富網(wǎng)收集了共 87k 個(gè)文章,包括金融新聞和研報(bào)摘要。然后,基于這些無標(biāo)簽文本中的段落,我們通過圖 11 的提示詞生成(段落、問題、答案)三元組。最后,將三元組套入不同的指令模板,得到 “輸入 - 輸出” 指令對(duì)。
圖11 根據(jù)無標(biāo)簽金融文本構(gòu)造任務(wù)指令的提示模板
3.3 金融計(jì)算指令
在金融計(jì)算中,表達(dá)式計(jì)算器、方程求解器、概率表、計(jì)數(shù)器四種工具可以幫助模型完成大多數(shù)的計(jì)算任務(wù)。四種工具的定義如表 3 所示,它們各有不同的調(diào)用命令、輸入和輸出。例如,計(jì)算器的命令是 [Calculator (expression)→result]。在這一部分,構(gòu)建金融計(jì)算指令的目的就是訓(xùn)練模型在合適的時(shí)候調(diào)用這些工具解決數(shù)學(xué)問題。
表3 計(jì)算工具的定義
我們首先構(gòu)建了一個(gè)種子任務(wù)庫,其中的種子任務(wù)由三部分組成:根據(jù)金融考試人工改寫的計(jì)算題、帶有研報(bào)上下文的數(shù)據(jù)計(jì)算題、BELLE 數(shù)據(jù)集中校園數(shù)學(xué)部分的通用數(shù)學(xué)題。特別地,根據(jù) Toolformer 的方法,這些問題的答案中插入著上述四個(gè)工具的調(diào)用命令,它們代表著調(diào)用工具的方法和時(shí)機(jī)。隨后,為了增加數(shù)據(jù)的數(shù)量和多樣性,我們通過小樣本思維鏈提示(Few-shot Chain-of-Thought Prompting)方法,讓 ChatGPT 在圖 12 中提示詞的引導(dǎo)下,根據(jù)種子任務(wù)生成超過 5 萬個(gè)新問答對(duì),其中的答案也帶有插件命令。
圖12 用于構(gòu)造金融計(jì)算指令的提示模板
3.4 檢索增強(qiáng)指令
圖13 檢索增強(qiáng)指令的構(gòu)造過程
如圖 13 所示,檢索增強(qiáng)指令的構(gòu)造分為三步。第一步,我們根據(jù)新聞和研報(bào)等金融文本構(gòu)造金融分析問題。第二步,我們?cè)谥R(shí)庫中檢索與問題有關(guān)的若干文檔,并隨機(jī)加入一些無關(guān)文檔,以訓(xùn)練模型對(duì)有效信息的甄別能力,這些參考文檔源于我們構(gòu)建金融知識(shí)庫,包含 18k 研報(bào)和 69k 金融新聞。第三步,我們將問題和參考資料結(jié)合在一起,生成問題的答案。在這個(gè)過程中,問題和答案是由 ChatGPT 通過檢索鏈提示(Chain-of-Retrieval Prompting)方法生成的。
最終我們構(gòu)建了一個(gè)包含 20k 條檢索增強(qiáng)指令的數(shù)據(jù)集,其中的指令涵蓋了金融領(lǐng)域中主要的分析形式,包括行業(yè)分析、政策分析、投資建議、公司戰(zhàn)略規(guī)劃等。
4. 實(shí)驗(yàn)
4.1 多專家訓(xùn)練框架
針對(duì)金融領(lǐng)域的不同功能,我們采用了多專家微調(diào)的訓(xùn)練策略。我們?cè)谔囟ǖ淖訑?shù)據(jù)集上訓(xùn)練模型的各個(gè)模組,使它們彼此互不干擾,獨(dú)立完成不同任務(wù)。為此,我們使用 DDP 技術(shù)的 Low-rank adaption(LoRA)方法高效地進(jìn)行參數(shù)微調(diào)。
圖14 DISC-FinLLM的多專家微調(diào)框架
具體來說,我們以 Baichuan-13B 為基座模型,通過數(shù)據(jù)集的四個(gè)部分,分別訓(xùn)練 4 個(gè) LoRA 專家模組,如圖 14 所示。部署時(shí),用戶只需更換在當(dāng)前基座上的 LoRA 參數(shù)就可以切換功能。因此用戶能夠根據(jù)使用需求激活 / 停用模型的不同模組,而無需重新加載整個(gè)模型。4 個(gè) LoRA 專家模組分別如下:
- 金融顧問:該模型用于多輪對(duì)話。由于我們的金融咨詢指令數(shù)據(jù)十分豐富,該模型可以在中國(guó)的金融語境下做出高質(zhì)量的回答,為用戶解答金融領(lǐng)域的專業(yè)問題,提供優(yōu)質(zhì)的咨詢服務(wù)。
- 文件分析師:該模型主要用于處理金融自然語言處理領(lǐng)域內(nèi)的各種任務(wù),包括但不限于金融文本中的信息抽取、情緒分析等。
- 財(cái)務(wù)會(huì)計(jì)師:DISC-FinLLM 支持四種工具,即表達(dá)式計(jì)算器、方程求解器、計(jì)數(shù)器和概率表。這些工具支持我們的模型完成金融領(lǐng)域的大多數(shù)的計(jì)算任務(wù),如金融數(shù)學(xué)建模、統(tǒng)計(jì)分析等。當(dāng)模型需要使用工具時(shí),它可以生成工具調(diào)用命令,然后中斷解碼,并將工具調(diào)用結(jié)果添加到生成的文本中。這樣,DISC-FinLLM 就可以借助工具提供的準(zhǔn)確計(jì)算結(jié)果,回答金融中的計(jì)算問題。
- 時(shí)事分析師:我們?cè)诘谒膫€(gè) LoRA 中引入檢索插件。DISC-FinLLM 主要參考了三類金融文本:新聞、報(bào)告和政策。當(dāng)用戶問及時(shí)事、行業(yè)趨勢(shì)或金融政策等常見金融話題時(shí),我們的模型可以檢索相關(guān)文件,并像金融專家一樣展開分析并提供建議。
4.2 評(píng)測(cè)
我們建立了一個(gè)全面的評(píng)估框架,從各個(gè)角度嚴(yán)格評(píng)估我們的模型。該評(píng)估框架包括四個(gè)不同的組成部分,即:金融 NLP 任務(wù)、人類試題、資料分析和時(shí)事分析。這一評(píng)估框架全面地證明了我們模型能力和訓(xùn)練數(shù)據(jù)的有效性。
4.2.1 金融 NLP 任務(wù)評(píng)測(cè)
我們使用 FinCUGE 評(píng)估基準(zhǔn)測(cè)試模型處理金融 NLP 任務(wù)的能力。我們?cè)u(píng)估了其中的六項(xiàng)任務(wù),包括情感分析、關(guān)系抽取、文本摘要、文本分類、事件抽取和其他任務(wù),它們分別對(duì)應(yīng)著 FinFE、FinQA、FinCQA、FinNA、FinRE 和 FinESE 六個(gè)數(shù)據(jù)集。我們通過提示模板將這個(gè)數(shù)據(jù)集改造為小樣本(few-shot)形式,然后使用常用的準(zhǔn)確度(Accuracy)、F1 和 Rouge 指標(biāo)評(píng)價(jià)模型的表現(xiàn),來衡量模型在金融領(lǐng)域中理解文本和生成相關(guān)回答的能力。
表4 BBT-FIN基準(zhǔn)上的實(shí)驗(yàn)結(jié)果
表 4 中展示的是,使用我們的金融任務(wù)指令數(shù)據(jù)微調(diào)不同基線模型前后的評(píng)測(cè)結(jié)果。從 Baichuan-13B-Chat、ChatGLM1 和 ChatGLM2 模型上不難看出,微調(diào)后模型的平均成績(jī)比未經(jīng)訓(xùn)練的基座模型高 2~9 分不等,表現(xiàn)顯然更加出色。特別地,我們的數(shù)據(jù)集沒有涵蓋評(píng)估集中包含的某些 NLP 任務(wù),這更說明我們構(gòu)建的數(shù)據(jù)可以有效增強(qiáng)模型金融領(lǐng)域任務(wù)中的表現(xiàn),即使是面對(duì)沒有訓(xùn)練過的任務(wù)的時(shí)候。
4.2.2 人類試題評(píng)測(cè)
我們使用了 FIN-Eval 基準(zhǔn)評(píng)估模型在回答真人生成問題上的能力,這個(gè)基準(zhǔn)涵蓋了金融、經(jīng)濟(jì)、會(huì)計(jì)、證書等學(xué)科的高質(zhì)量多項(xiàng)選擇題。我們以準(zhǔn)確度為指標(biāo),來衡量模型的表現(xiàn)。
表5 FIN-Eval基準(zhǔn)上的實(shí)驗(yàn)結(jié)果
我們對(duì)四個(gè) LoRA 微調(diào)模型,和使用 DISC-Fin-SFT 全體數(shù)據(jù)微調(diào)的模型都進(jìn)行了測(cè)試,比較模型包括 ChatGPT、GPT-4、Baichuan、ChatGLM2、FinGPT-v3 等。表 5 展示了各個(gè)模型在人類試題評(píng)測(cè)中的結(jié)果。相比之下,我們模型的平均結(jié)果僅次于 ChatGPT 和 GPT-4。與未經(jīng)訓(xùn)練的 Baichuan-13B-Chat 模型相比較看,DISC-Fin-SFT 中的每一類指令,都有助于提高模型在人類試題評(píng)測(cè)上能力。從 FinGPT 的測(cè)評(píng)結(jié)果看,我們也比其他的金融大模型表現(xiàn)要好。從消融實(shí)驗(yàn)看,在 Baichuan-13B-Chat 模型上使用全部數(shù)據(jù)集微調(diào)后,獲得的評(píng)測(cè)結(jié)果顯著下降,這體現(xiàn)了對(duì)每個(gè)任務(wù)使用特定數(shù)據(jù)的 LoRA 微調(diào)的必要性。
4.2.3 資料分析評(píng)測(cè)
我們手動(dòng)構(gòu)造了一個(gè)由 100 個(gè)財(cái)經(jīng)計(jì)算題組成的數(shù)據(jù)集,用于評(píng)估模型在計(jì)算任務(wù)中的能力。這些測(cè)評(píng)問題改編自中國(guó)行政職業(yè)能力測(cè)驗(yàn)中的材料分析計(jì)算題,包括計(jì)算同比增長(zhǎng)率和產(chǎn)值比例等。我們根據(jù)模型給出計(jì)算公式和計(jì)算結(jié)果的正確率來評(píng)估模型的表現(xiàn)。
表6 計(jì)算插件的評(píng)估結(jié)果
表 6 展示了我們模型在計(jì)算任務(wù)方面取得的顯著改進(jìn)。與基線模型相比,我們的模型中添加了計(jì)算插件,顯著提高了性能,評(píng)測(cè)結(jié)果超過 ChatGPT 0.09 分,突出了我們的方法在解決金融計(jì)算問題上的有效性。
4.2.4 時(shí)事分析評(píng)測(cè)
此方法基于 GPT-3.5 模型作出評(píng)估。我們構(gòu)建了一個(gè)金融問題數(shù)據(jù)集,其中的問題需要模型使用最新信息來獲得準(zhǔn)確答案。然后我們?cè)诠雀璧人阉饕嬷惺謩?dòng)搜索與每個(gè)問題相關(guān)的多個(gè)參考文段。該數(shù)據(jù)集旨在評(píng)估出模型在回答金融問題時(shí)檢索信息的相關(guān)性和準(zhǔn)確性,我們用四個(gè)指標(biāo)評(píng)價(jià)模型的表現(xiàn):
1. 準(zhǔn)確性:提供的建議或分析是準(zhǔn)確的,沒有事實(shí)錯(cuò)誤(假設(shè)參考文本是正確的),結(jié)論不是隨意給出的。
2. 實(shí)用性:模型可以結(jié)合參考文本,對(duì)金融領(lǐng)域的問題提供清楚、實(shí)用的分析。
3. 語言質(zhì)量:模型可以正確理解問題,并在金融領(lǐng)域產(chǎn)生簡(jiǎn)潔、專業(yè)的答案。
4. 思考性:模型根據(jù)參考文獻(xiàn),由自己的思考分析得出結(jié)論,而不是簡(jiǎn)單地抄襲原文。
表7 檢索插件的評(píng)估結(jié)果
表 7 表明我們模型的評(píng)測(cè)結(jié)果在所有指標(biāo)上都明顯更高,證明了檢索增強(qiáng)指令數(shù)據(jù)訓(xùn)練為模型帶來了明顯的優(yōu)勢(shì)。
5. 總結(jié)
我們基于多專家微調(diào)框架構(gòu)建了一個(gè)強(qiáng)大的中文智慧金融系統(tǒng) ——DISC-FinLLM。我們根據(jù)四種特定任務(wù)的指令數(shù)據(jù)微調(diào)我們的模型,分別訓(xùn)練了四個(gè)面向不同金融場(chǎng)景的專家模組:金融咨詢、金融文本分析、金融計(jì)算、金融知識(shí)檢索問答,以提高其在金融 NLP 任務(wù)、人類試題、計(jì)算任務(wù)和檢索任務(wù)中的性能。同時(shí),我們的評(píng)估結(jié)果證明了我們模型在金融領(lǐng)域的可靠性。DISC-FinLLM 為大語言模型在金融咨詢、投資分析和風(fēng)險(xiǎn)評(píng)估上的應(yīng)用開辟了可能性,將為更為廣泛的用戶群體帶來高效、可靠的金融服務(wù)支持。