大模型落地實踐:同花順大模型技術(shù)應(yīng)用及優(yōu)化

作者介紹:諶明,浙江核新同花順網(wǎng)絡(luò)信息股份有限公司首席技術(shù)官,浙江省金融信息工程技術(shù)中心副主任,之江實驗室金融大數(shù)據(jù)智能計算實驗平臺專家;曾主持多個國家重點項目,總投入資金數(shù)億元;發(fā)表 SCI/EI 高水平學(xué)術(shù)論文 20 余篇,申請或授權(quán)發(fā)明專利 31 項;榮獲中國 IT 年度人物杰出 CTO 和杰出工程師等獎項。
本文根據(jù)?諶明?老師在「瀾舟NLP分享會」上的演講整理。文內(nèi)從業(yè)務(wù)角度介紹了大模型技術(shù)在同花順業(yè)務(wù)上的應(yīng)用以及未來探索的方向。

眾所周知,大模型參數(shù)量大,通用能力強,綜合性能好。但在同花順業(yè)務(wù)場景中最初使用大模型的時候,發(fā)現(xiàn)用大模型的效果與傳統(tǒng)方法差距不大,甚至有時候遜于原先傳統(tǒng)的方法。所以最初在業(yè)務(wù)角度并不夠重視,然而近期隨著大模型技術(shù)的快速發(fā)展,我們也在逐步嘗試將大模型在業(yè)務(wù)中落地,目前大模型在自然語言處理相關(guān)的業(yè)務(wù)里都取得了比傳統(tǒng)模型更優(yōu)的效果,下面詳細(xì)介紹相關(guān)工作。

同花順業(yè)務(wù)場景中的大模型
?
1. 問答

同花順的問答業(yè)務(wù)主要是“同花順問財”,主要場景在同花順APP語音助手、問財APP端、問財Web端等。業(yè)務(wù)形式是將用戶輸入的問句解析為 condition (比如股票標(biāo)的、指標(biāo)、時間),然后從同花順的后臺海量的金融數(shù)據(jù)中取數(shù)并生成回答、表格等(如圖 2 右側(cè)所示)。
問句涉及的領(lǐng)域一般領(lǐng)域包括常見的征信市場、股市、基金市場、債券,也會包括一些宏觀業(yè)務(wù)等。目前問財?shù)挠脩裘咳諉柧鋽?shù)量大概在 1000 萬左右,累計不同問句數(shù)量約 5 億。用戶量也很大,大約 300+萬。這個問句量和用戶量在問答系統(tǒng)中應(yīng)該算非常大的。

問財對話系統(tǒng)在大模型的應(yīng)用上有幾個難點。
首先,它偏重金融業(yè)務(wù)知識,并且對于時效性要求很高。?這里特別說明一下“時效性”的問題。之前很多典型的問答系統(tǒng)一般會有這類常識問題,比如“世界最高的山是什么?”“中國的首都是哪里?”,但在問財里碰到的用戶提問往往是“今天的股價”,而提到股價就涉及到“今天股價的變化情況”;或者用戶問“某個公司的業(yè)績?nèi)绾巍钡鹊龋@里就涉及到時間維度,因為每個公司年報、半年報或季度報發(fā)布的時間點不同,如果用戶在前一天問,系統(tǒng)回答的是年報的結(jié)果;如果用戶在今天問,系統(tǒng)可能就要回答季報的內(nèi)容了,所以時效性問題非常重要,要保證用戶獲得最新的信息。
第二個難點是精確性問題。現(xiàn)在很多大模型的知識是通用的、持久不變的知識,但在問財系統(tǒng)里的知識在不同情況下會有一些變化,內(nèi)含了一些金融邏輯。?如果出現(xiàn)給用戶返回的結(jié)果錯誤,就可能會導(dǎo)致很嚴(yán)重的問題,比如給用戶返回了數(shù)據(jù)錯誤,就可能導(dǎo)致用戶投資或者其他決策上的偏差,造成財產(chǎn)損失。
總體來說,問答是比較難做的一個業(yè)務(wù)方向。因此我們之前采取了比較保守策略,使用了一套需要大量人工的規(guī)則系統(tǒng)。常常有人說,科研界和工業(yè)界之間有巨大的鴻溝,科研界全是深度學(xué)習(xí),到了工業(yè)界全是用規(guī)則來做。確實在我們的業(yè)務(wù)模型里,規(guī)則占比非常大,也是因為涉及用戶財產(chǎn)問題,技術(shù)上會比較保守。
下面具體介紹問答系統(tǒng)里大模型應(yīng)用的經(jīng)驗和取得的成果。

圖 4 右側(cè)是問財系統(tǒng)的框架示意圖,其中“通用語義識別”之前是基于大量規(guī)則做的,投入人力非常大,標(biāo)注人員有幾十人,做了十年左右。這套規(guī)則系統(tǒng)準(zhǔn)確率 90%,覆蓋語義 2 萬多,整體效果基本能滿足業(yè)務(wù)需求。但它面臨的問題是,1)這套系統(tǒng)積累了很多年才達到目前的效果,而長尾問題需要花非常長的時間來解決。2)新的知識不斷地融入涌入和迭代,全靠規(guī)則來處理,會有非常大的問題。
所以從前兩年開始我們采用深度學(xué)習(xí)模型來做通用語義識別。圖 4 有一個通用語義識別的小例子,輸入問句是:“董事長持股大于 50 萬”,解析時主干識別需要識別出“持有”和“大于”,并且要識別出“大于”這個語義是包含“持有”的,即“(大于(持有))”,語義角色需要識別出“持股”語義主體是“董事長”,“大于”的“客體”是“50 萬”。
目前通用語義識別方面大模型的效果已經(jīng)慢慢顯現(xiàn)了。前****兩年我們采用的是常規(guī)深度學(xué)習(xí)模型 TextCNN 準(zhǔn)確率為 88%,后來和瀾舟合作使用了孟子Mengzi 輕量化預(yù)訓(xùn)練模型,從圖 4 左下角表格看,效果有顯著的提升。?考慮到線上耗時問題,我們使用的是參數(shù)較少的模型來做,比如孟子BERT-base準(zhǔn)確率可以達到 94.16%,Electra-small 模型提升了 4% 是因為做了數(shù)據(jù)迭代,加了更多數(shù)據(jù),進一步提升了效果,后續(xù)孟子BERT模型再迭代數(shù)據(jù)也會有更多提升。
而領(lǐng)域語義識別主要是針對特定的金融領(lǐng)域的識別,涉及到 NER、linking 和一些謂詞推理。?我們現(xiàn)在對NER,用得比較多的是時間、機構(gòu)、地址、人名和數(shù)量 5 種。比如,輸入是“馬云在杭州參觀了同花順 2 次”,就需要將“今天”、“同花順”、“杭州”、“馬云”、“2 次”等實體識別出來;而對部分實體詞,需要linking到數(shù)據(jù)庫中的標(biāo)準(zhǔn)詞上,如“同花順”需要 linking 到上市公司“浙江核新同花順網(wǎng)絡(luò)信息股份有限公司”,但“同花順”可能會出現(xiàn)在紙牌類游戲或者其他場景,因此需要在這個金融場景下,優(yōu)化 linking。

以 NER 任務(wù)為例,我們嘗試用常規(guī)的深度模型 LSTM + CRF 串聯(lián)的 F1 值只有 92% 左右,使用大模型之后,F(xiàn)1 值可以達到 96~97%,提升了4~5% 。如果使用更大規(guī)模的模型,效果還有更多提升空間,但是考慮到經(jīng)濟問題和服務(wù)耗時與性能問題,目前還是用的參數(shù)量較小的 BERT-base 等。
2. 對話

上面的問答系統(tǒng)主要是取數(shù)問題,而對話系統(tǒng)主要涉及多引擎的對話分發(fā)、跨引擎的多輪對話異常流程調(diào)度等對話管理技術(shù),行業(yè)內(nèi)一般做單一的任務(wù)型對話或者開放型對話,但是我們的業(yè)務(wù)場景往往要求先做意圖識別和分發(fā),再同時支持任務(wù)型和開發(fā)型的對話。
目前同花順業(yè)務(wù)中的對話機器人分為云端版和企業(yè)版,分別滿足 C 端和 B 端的客戶需求。C 端主要是智能投顧的業(yè)務(wù)中的“問財助手”,B 端主要是來電助理、數(shù)字人客服、智能外呼機器人等產(chǎn)品。
C 端的智能投顧業(yè)務(wù)通過對話技術(shù),根據(jù)用戶畫像(投資目標(biāo)及風(fēng)險承受能力)提供投資建議。首先要拿到用戶的背景知識,比如他個人的倉位盈虧,然后給出一些支撐壓力位指標(biāo)和投資建議。其中有一個“槽位”的概念, “槽位”是人工事前定義,我們從投資角度定義了 16 種槽位,包括投資標(biāo)的、意向操作、盈虧狀態(tài)等等。所以當(dāng)用戶問“貴州茅臺基本面怎么樣?”,我們首先要通過槽位抽取的模型識別出“貴州茅臺”是“投資標(biāo)的”,“基本面”是“目的知識點”。目前我們用了四層中文 BERT 模型,槽位可用度大概是 87% 左右。
B 端智能營銷機器人是通過主動外呼的方式,向潛在客戶進行產(chǎn)品營銷,產(chǎn)品涉及房地產(chǎn)、運營商、銀行理財產(chǎn)品的營銷,需要識別用戶回復(fù)的意圖、并利用領(lǐng)域知識進行合理回復(fù)。這里需要使用意圖識別、追問識別、答案排序等模型。以用戶意圖識別為例,需要引入領(lǐng)域知識,在用戶接通電話以后,我們會根據(jù)用戶的意圖做 “肯定/拒絕/在忙/暫時不需要”等14 種任務(wù)分類,使用 3 層 RoBERTa 模型 ACC 準(zhǔn)確率為 91%,使用 24 層 RoBERTa 可以提升兩個點左右。
B 端智能客服機器人業(yè)務(wù),我們對接了中國移動的西安電信、陜西移動等運營商的客服機器人,同樣是接聽用戶來電,先做用戶的意圖和語義識別,但在客服業(yè)務(wù)中用戶的語義會比較固定,我們梳理之后有幾百種,所以我們會先做語義相似句子匹配,再選擇匹配度高的句子進行回復(fù)。我們對比了 2 層 BERT、2 層 RoBERTa、12 層 RoBERTa,F(xiàn)1 值分別是 84.01%、84.66%、87.68%,從成本角度看,2 層 RoBERTa 更實用。
3. 信息抽取
信息抽取應(yīng)用場景主要是知識圖譜構(gòu)建和金融數(shù)據(jù)庫構(gòu)建兩個方面。
我們業(yè)務(wù)中幾乎所有數(shù)據(jù)組織形式都是以圖譜為基礎(chǔ),金融知識圖譜在風(fēng)控、投研、投顧、銀行理賠等等場景都非常重要,業(yè)務(wù)往往需要通過圖譜梳理一些關(guān)系,比如用戶詢問公司與法人關(guān)系以判斷一些關(guān)聯(lián)風(fēng)險,然后做推理決策。所以金融知識圖譜對我們來說是非常大的課題,目前我們已經(jīng)做了宏觀經(jīng)濟圖譜、A股大盤圖譜、A 股個股事件圖譜等。
圖譜的數(shù)據(jù)來源依賴信息抽取,抽取的數(shù)據(jù)源包括研報、新聞資訊等,從研報和新聞資訊中自動抽取因果關(guān)系的三元組(因-影響-果)?,如圖 7 所示。

這些因果關(guān)系的三元組抽取、事件論元抽取,都是通過大模型做的。早前使用的是 Char Embedding + LSTM,F(xiàn)1 不到 70%,使用我們自己研發(fā)的 BERT 模型之后 F1 達到了 77%,使用瀾舟的孟子Mengzi-Fin-base 模型之后 F1 提升到了 78.5%。
在知識圖譜之上,我們需要進一步優(yōu)化的方向是金融數(shù)據(jù)庫的構(gòu)建。同花順 iFind 金融數(shù)據(jù)庫是業(yè)內(nèi)最大的金融數(shù)據(jù)庫之一,很多金融機構(gòu)基于 iFind 數(shù)據(jù)庫做投研、投顧。

圖 8 右側(cè)是一個具體的例子,一般來說上市公司的訴訟對金融投資有重要的風(fēng)險提示作用。我們需要從訴訟公告中抽取執(zhí)行情況、違規(guī)案例說明、對公司影響等信息。綠色的部分是違規(guī)案例說明,還需要進一步從違規(guī)案例說明里抽取訴訟詳情,包括原告、被告、訴訟請求、違約金等信息。
對此我們嘗試了不同的模型(圖 8 表格),常規(guī)深度模型 word2vec F1 值為 83.15%,我們還嘗試了 MacBERT、瀾舟的孟子****Mengzi等模型,在優(yōu)化增強(比如數(shù)據(jù)增強和 loss 優(yōu)化)的條件下,瀾舟孟子Mengzi 的 F1 值可以達到 96.67%。
4. 輿情監(jiān)控

我們有一個輿情系統(tǒng)叫“同花順企洞察”,ToC 版本叫“快查”,用戶范圍比較廣,公司、個人、監(jiān)管機構(gòu)等都會用來做參考,如政府會用于招商引資和精準(zhǔn)營銷。
輿情系統(tǒng)的一個重要的環(huán)節(jié)是“機構(gòu)名稱的識別”,抽象出來是“長文本NER任務(wù)”(如上圖所示),機構(gòu)名稱抽取的難點是除了標(biāo)準(zhǔn)名稱還有很多簡稱、別名或者其他叫法,一開始我們用 LSTM+ CRF 的效果不佳,F(xiàn)1 不到 70%,之后結(jié)合知識圖譜+大模型,目前 F1 可以達到 86.4%,符合上線要求。
輿情監(jiān)控業(yè)務(wù)中還有新聞資訊風(fēng)險識別場景,新聞資訊正面還是負(fù)面可能會影響股價,如何第一時間告訴投資人新聞的正面/負(fù)面是比較大的課題。

業(yè)內(nèi)一般做法是人工識別、打標(biāo)簽,這樣的效率比較低,而新聞資訊的時效性比較高,我們的做法是機器先打標(biāo)簽,然后人工識別校驗一次。這里的較難的關(guān)鍵點是除了正負(fù)面標(biāo)簽之外,還需要對負(fù)面信息進一步分析,提示風(fēng)險在哪里。
比如圖 10 的例子,判斷為負(fù)面后,我們需要做風(fēng)險歸類,“法人變更”到底是管理風(fēng)險還是政策風(fēng)險導(dǎo)致的法人變更,這就需要進一步判斷。之前我們用常規(guī)模型來做的時候準(zhǔn)確率最多到 59%,目前使用大模型,考慮到本文較長且性能要求較高,因此使用參數(shù)較少的 tinyBERT, 準(zhǔn)確率是 69.45%,后續(xù)還需要做更多優(yōu)化工作。
大模型的優(yōu)化
大量研究表明通過調(diào)整預(yù)訓(xùn)練任務(wù)、使用更多訓(xùn)練數(shù)據(jù)、使用領(lǐng)域語料等方式,可以對原始的大規(guī)模預(yù)訓(xùn)練模型做進一步優(yōu)化,達到更好的效果。比如通過增加訓(xùn)練語料、延長訓(xùn)練時間、移除“next sentence”任務(wù)、動態(tài) mask 等優(yōu)化方法,可以獲得比 BERT 效果更好的模型;在 BERT 基礎(chǔ)上,通過使用領(lǐng)域數(shù)據(jù)(DAPT)或任務(wù)數(shù)據(jù)(TAPT)進行第二階段預(yù)訓(xùn)練,可以使模型在下游任務(wù)上表現(xiàn)得比 BERT更好。
1. Continue-Train
為了進一步提升大模型在實際業(yè)務(wù)中的效果,同花順與瀾舟科技合作,引入孟子Mengzi 模型中的技術(shù)?,針對大模型進行 Continue-Train 訓(xùn)練,讓模型更適用于金融相關(guān)的 NLP 任務(wù)?,主要有以下幾點優(yōu)化:
詞級別的MLM:使用中文分詞器預(yù)分詞,以詞為單位進行 MLM,可以使模型更好的學(xué)習(xí)到整個詞的語義表示,以及它跟上下文其他詞之間的關(guān)聯(lián),進而增強模型的語義表征能力。這樣能夠使得預(yù)訓(xùn)練模型學(xué)習(xí)到更復(fù)雜的語法特征和知識;
改進預(yù)訓(xùn)練任務(wù):通過增加 POS 序列標(biāo)注任務(wù),使得模型能夠?qū)W會深層次的語言學(xué)信息;通過加入SOP(Sentence Order Prediction)任務(wù),使得模型更好的學(xué)習(xí)句子之間的句對信息;
更高效地利用硬件:我們整體用戶量非常大,對話業(yè)務(wù)的日活達到百萬級,資訊和研報抽取也是百萬級別的,因此我們對于性能非常關(guān)注。目前通過增加 Gradient Accumulation 降低了通訊成本;同時引入 LAMB Optimizer,避免多機多卡環(huán)境下大 batch size 導(dǎo)致的收斂變差的問題。

從圖 11 能看出,Continue-Train 方面實際優(yōu)化效果錯很不錯,比如長文本閱讀理解有 3% 左右的提升。在這方面,我們也希望后續(xù)和瀾舟科技及學(xué)術(shù)界一起探?索。
2. 模型輕量化
我們大部分的服務(wù)其實本質(zhì)是一個免費的流量型服務(wù),為其他的業(yè)務(wù)導(dǎo)流,所以對資源的使用要求做到輕量化,提高性能、減少耗時。大模型的參數(shù)增加會帶來效果的提升,但是在實際應(yīng)用的經(jīng)濟角度考慮,寧可損失一些效果,盡量減少對資源的占用,所以我們投入了很大的精力做“模型輕量化”工作。

圖 12 中有兩個實際業(yè)務(wù)的例子,我們對模型預(yù)測耗時有非常嚴(yán)格的要求,因為響應(yīng)時間太慢會導(dǎo)致用戶體驗變差,一般來說會要求不能超過 100ms,有部分模型甚至要求耗時在 20ms~50ms。所以我們用了知識蒸餾、剪枝、量化等常見的輕量化技術(shù)。比如“用戶問句相似問生成”這個任務(wù),我們用到了知識蒸餾技術(shù),將 10 層以上的大模型蒸餾成 3 層的小模型,性能上會有很大的提升,同時保證準(zhǔn)確率不會有大幅下降的情況,GPT2-chinese-12 層單樣本 CPU 生成耗時約為 1s,蒸餾為 3 層之后,耗時降為 100ms。
我們在模型輕量化上還有一個探索方向是利用 past key values 加速推理。

如上圖所示,對采用 DECODE 進行生成推斷的模型,在預(yù)測下一個詞時,需要執(zhí)行 masked 注意力機制:每個 token 需要和其左側(cè)的所有 token 計算 attention,因此,對于長度為 n 的序列,需要做 n(n-1)/2 次向量的生成和計算。

如圖 14 所示,由于下一個 token 向量的計算與其左側(cè) token 的計算路徑一致,因此可以保存左側(cè) token 的計算結(jié)果并傳入當(dāng)前 token 的計算,這樣每個 token只 需完成一次向量的計算,共計 n 次向量的生成和計算,從而節(jié)省大量時間,而且這個加速方法不會帶來其他影響,不會使指標(biāo)下降。
這個技術(shù)目前主要應(yīng)用在對話問句改寫相關(guān)業(yè)務(wù),包括用戶的澄清問句改寫。舉個例子,用戶問“最低點的股票是什么”,這里面可能有很多種意思,比如“股價創(chuàng)新低的股票”、“股價即將漲的股票”,我們需要對此做一個預(yù)測。在使用加速推理技術(shù)后,單樣本 CPU生成耗時從 600ms 減少到了 100ms 左右。
總結(jié)
大模型技術(shù)在同花順業(yè)務(wù)中的應(yīng)用基本都有比較好的通用性,并且?guī)砹吮容^好的性能提升,我們也希望在醫(yī)療、法律、教育等領(lǐng)域的子公司業(yè)務(wù)中推廣,同時和瀾舟科技以及學(xué)術(shù)界的老師們合作,把大模型用得更好,謝謝大家。
— END —