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