众所周知,大模型参数量大,通用能力强,综合性能好。但在金融业务场景中最初使用大模型的时候,发现用大模型的效果与传统方法差距不大,甚至有时候逊于原先传统的方法。所以最初在业务角度并不够重视,然而近期随着大模型技术的快速发展,我们也在逐步尝试将大模型在业务中落地,目前大模型在自然语言处理相关的业务里都取得了比传统模型更优的效果,下面详细介绍相关工作。
同花顺业务场景中的大模型
1. 问答
同花顺的问答业务主要是'同花顺问财',主要场景在同花顺 APP 语音助手、问财 APP 端、问财 Web 端等。业务形式是将用户输入的问句解析为 condition(比如股票标的、指标、时间),然后从同花顺的后台海量的金融数据中取数并生成回答、表格等。
问句涉及的领域一般包括常见的征信市场、股市、基金市场、债券,也会包括一些宏观业务等。目前问财的用户每日问句数量大概在 1000 万左右,累计不同问句数量约 5 亿。用户量也很大,大约 300+ 万。这个问句量和用户量在问答系统中应该算非常大的。
问财对话系统在大模型的应用上有几个难点。
首先,它偏重金融业务知识,并且对于时效性要求很高。 这里特别说明一下'时效性'的问题。之前很多典型的问答系统一般会有这类常识问题,比如'世界最高的山是什么?''中国的首都是哪里?',但在问财里碰到的用户提问往往是'今天的股价',而提到股价就涉及到'今天股价的变化情况';或者用户问'某个公司的业绩如何'等等,这里就涉及到时间维度,因为每个公司年报、半年报或季度报发布的时间点不同,如果用户在前一天问,系统回答的是年报的结果;如果用户在今天问,系统可能就要回答季报的内容了,所以时效性问题非常重要,要保证用户获得最新的信息。
第二个难点是精确性问题。 现在很多大模型的知识是通用的、持久不变的知识,但在问财系统里的知识在不同情况下会有一些变化,内含了一些金融逻辑。如果出现给用户返回的结果错误,就可能会导致很严重的问题,比如给用户返回了数据错误,就可能导致用户投资或者其他决策上的偏差,造成财产损失。
总体来说,问答是比较难做的一个业务方向。因此我们之前采取了比较保守策略,使用了一套需要大量人工的规则系统。常常有人说,科研界和工业界之间有巨大的鸿沟,科研界全是深度学习,到了工业界全是用规则来做。确实在我们的业务模型里,规则占比非常大,也是因为涉及用户财产问题,技术上会比较保守。
下面具体介绍问答系统里大模型应用的经验和取得的成果。
图 4 右侧是问财系统的框架示意图,其中'通用语义识别'之前是基于大量规则做的,投入人力非常大,标注人员有几十人,做了十年左右。这套规则系统准确率 90%,覆盖语义 2 万多,整体效果基本能满足业务需求。但它面临的问题是,1)这套系统积累了很多年才达到目前的效果,而长尾问题需要花非常长的时间来解决。2)新的知识不断地融入涌入和迭代,全靠规则来处理,会有非常大的问题。
所以从前两年开始我们采用深度学习模型来做通用语义识别。图 4 有一个通用语义识别的小例子,输入问句是:'董事长持股大于 50 万',解析时主干识别需要识别出'持有'和'大于',并且要识别出'大于'这个语义是包含'持有'的,即'(大于 (持有))',语义角色需要识别出'持股'语义主体是'董事长','大于'的'客体'是'50 万'。
目前通用语义识别方面大模型的效果已经慢慢显现了。前两年我们采用的是常规深度学习模型 TextCNN 准确率为 88%,后来和澜舟合作使用了孟子 Mengzi 轻量化预训练模型,从图 4 左下角表格看,效果有显著的提升。考虑到线上耗时问题,我们使用的是参数较少的模型来做,比如孟子 BERT-base 准确率可以达到 94.16%,Electra-small 模型提升了 4% 是因为做了数据迭代,加了更多数据,进一步提升了效果,后续孟子 BERT 模型再迭代数据也会有更多提升。
而领域语义识别主要是针对特定的金融领域的识别,涉及到 NER、linking 和一些谓词推理。 我们现在对 NER,用得比较多的是时间、机构、地址、人名和数量 5 种。比如,输入是'马云在杭州参观了同花顺 2 次',就需要将'今天'、'同花顺'、'杭州'、'马云'、'2 次'等实体识别出来;而对部分实体词,需要 linking 到数据库中的标准词上,如'同花顺'需要 linking 到上市公司'浙江核新同花顺网络信息股份有限公司',但'同花顺'可能会出现在纸牌类游戏或者其他场景,因此需要在这个金融场景下,优化 linking。
以 NER 任务为例,我们尝试用常规的深度模型 LSTM + CRF 串联的 F1 值只有 92% 左右,使用大模型之后,F1 值可以达到 96~97%,提升了 4~5%。如果使用更大规模的模型,效果还有更多提升空间,但是考虑到经济问题和服务耗时与性能问题,目前还是用的参数量较小的 BERT-base 等。
2. 对话
上面的问答系统主要是取数问题,而对话系统主要涉及多引擎的对话分发、跨引擎的多轮对话异常流程调度等对话管理技术,行业内一般做单一的任务型对话或者开放型对话,但是我们的业务场景往往要求先做意图识别和分发,再同时支持任务型和开发型的对话。
目前同花顺业务中的对话机器人分为云端版和企业版,分别满足 C 端和 B 端的客户需求。C 端主要是智能投顾的业务中的'问财助手',B 端主要是来电助理、数字人客服、智能外呼机器人等产品。
C 端的智能投顾业务通过对话技术,根据用户画像(投资目标及风险承受能力)提供投资建议。首先要拿到用户的背景知识,比如他个人的仓位盈亏,然后给出一些支撑压力位指标和投资建议。其中有一个'槽位'的概念,'槽位'是人工事前定义,我们从投资角度定义了 16 种槽位,包括投资标的、意向操作、盈亏状态等等。所以当用户问'贵州茅台基本面怎么样?',我们首先要通过槽位抽取的模型识别出'贵州茅台'是'投资标的','基本面'是'目的知识点'。


