技术·论 | LLM时代的金融知识图谱实践

2023-04-24

1682567131219085.jpeg



导读 本文将介绍吾道科技在大语言模型(LLM)时代下关于金融知识图谱的实践。分享分为四个部分,第一部分总体介绍 ChatGPT 的出现给 AI 业内带来的技术方面的冲击,以及在商业方面获得的一些启示;第二部分介绍大语言模型(LLM)自然语言处理新范式,包括 ChatGPT 发展历程、与传统 BERT/T5 的区别、训练过程及其优秀的语言理解能力;第三部分介绍大语言模型在金融垂直领域落地的一些探索,大语言模型在金融这类垂直领域产生真正有价值的应用,需要做“最后的一公里”或者说“最后的 1%” 的中间层的适配;第四部分介绍 LLM 辅助金融知识图谱构建的具体案例,GPT 优秀的 Zero-shot、Few-shot 信息抽取能力,以及如何配合传统的 BERT 预训练模型做金融垂直领域应用的落地。

全文目录如下

1. ChatGPT 的冲击和启示
2. LLM:自然语言处理新范式
3. LLM 在金融垂直领域的落地
4. LLM 辅助金融知识图谱构建的具体案例
分享嘉宾|王俊博士 吾道科技(iWUDAO)联合创始人&首席科学家



01

ChatGPT 的冲击和启示

最近有很多关于大语言模型的重大新闻事件,首先是 GPT-4 的发布,紧接着就是百度“文心一言”的发布,之后是微软 365 Copilot 的发布。当前正是 NLP 乃至整个 AI 领域大变革的前夜。

大语言模型在技术上其实并不是一个全新的概念,GPT-3 在 2020 年 5 月就已经发布了,当时普遍认为部署这样一个非常庞大的模型需要消耗大量计算资源,距离实际生产环境的落地还比较远。从实际应用角度来看,还是要继续聚焦在 BERT 为代表的这类常规的预训练模型。

2022 年 11 月 30 号 ChatGPT 发布,人们对这个大语言模型能力的认知发生了重大转变。以前在业内,如果听到高谈阔论要实现 AGI(通用人工智能),大家基本都认定为不靠谱。当年 Elon Musk 大谈 AI 对人类威胁的时候,业内绝大部分人都是不以为然的。自从 ChatGPT 发布后,开始觉得未来实现 AGI 虽然还不是那么确定,但是貌似确实有了具有更高的可能性。

另外在商业上也产生了一些冲击和启示。我之前也见过有人用 GPT-3 实现各种看起来很有趣的 Demo,但是总体感觉还只是一些 Demo 或者玩具而已,直到去年在 NeurIPS 和 jasper.ai 一次简短交流之后,才很惊讶认识到其实基于 OpenAI 的 GPT API 早就有成功的落地商业应用了,开始重新审视 LLM 的商业潜力,让我对 LLM 的技术发展脉络和在金融领域的落地应用有了新的探索和思考。

02

LLM:自然语言处理新范式

从技术角度来讲,大语言模型无疑是一个 NLP 领域革命性的新范式。


640.png


先简单回顾一下,当前所有主流的大大小小的语言模型的基本架构都是 Transformer,其实 BERT 就是 Transformer 的 Encoder 部分,而 GPT 就是 Transformer 的 Decoder 部分。

640-2.png


现在的 ChatGPT 和 GPT-4 这样的大规模语言模型已经万众瞩目,但在之前实际应用落地的时候,GPT 系列受到的关注是相对比较少的,真正主流模式还是常规的 Pre-Trained+Finetune(预训练+微调)模式。
一般做常规语言理解的任务常采用 BERT 这类模型, 而生成式任务多采用 T5、BART 这类 Encoder-Decoder 的架构。

640-3.png


之所以 GPT-1 和 GPT-2 发布后遭受冷遇,是因为它们在自然语言理解方面的性能并不如 BERT 为代表一系列模型,后来 GPT-3 虽然表现出了很神奇的 In-Context Learning 能力,但在实际落地应用方面的关注也远远不如 BERT 或 T5 这种“预训练+微调”模型。

ChatGPT 引发了一轮新的对大语言模型的关注。目前新的大语言模型绝大部分都是使用 GPT 所采用的 Autoregressive 模型,它其实就是一个文字接龙或者自动补充,已基本上一统江湖,包括 Google 的 PaLM、LaMDA,还有开源的 Facebook(Meta)的 OPT 以及 BigScience 的 BLOOM 等。

如果不是 OpenAI 在开局不利时也能一直坚信信念,不忘 Autoregressive 的初心,可能现在就没有 ChatGPT 以及 GPT-4 的成功。这一点对我们的研究工作也有所启示。

640-4.png


为什么 ChatGPT 这类大语言模型的性能这么好?

其中一个重要的原因是 Instruction Tuning,通过人工标注大量的成对的自然语言形式的指令和回答来进行有监督的学习,可以大大提高对人意图的理解和需求的对齐,同时也可以大大提高模型应对全新任务的泛化能力。需要注意的是 ChatGPT 的 Instruction Tuning 标注往往需要高学历的领域专家,所以成本是非常高昂的。对于 LLM 来说,除了大算力之外,高质量的数据也非常重要,这也是为什么往往只有大公司才能负担从头开始训练大模型的原因之一。

640-5.png


OpenAI 和之前其他的大语言模型最大的差别在于 RLHF,也就是基于人工反馈的强化学习。它不需要专家,可以尽量降低人工标注指令的成本,进一步提高性能。

640-6.png


ChatGPT 代表的 LLM 的特点可以总结为如下几点:

(1)以 ChatGPT 代表的这类大语言模型,其语言理解能力非常强,用过 ChatGPT 的人都知道它对用户意图的识别几乎是没有错误的,它也能输出非常出色的自然流畅长文本。

(2随着模型增大会突然出现 Emergent Abilities(涌现能力),比如 In-Context Learning,不需要调参数,只需要输入 prompt,就可以实现非常惊人的零样本或者小样本的能力。还有思维链,表现出一定程度的推理能力,这可能会对将来的知识图谱应用产生一些影响。

03
LLM 在金融垂直领域的落地

这一部分将讨论大语言模型在金融垂直领域如何落地。

640-7.png


首先要考虑的一个问题是,大语言模型如何在垂直领域产生真正有价值的应用。

最近业内有两位非常有影响力的人士不约而同提出了类似的观点,一位是斯坦福研究自然语言处理的 Christopher Potts 教授,另外一位是 OpenAI CEO Sam Altman,他们认为现在大语言模型应用落地的重点在于“最后的一公里”或者说“最后的 1%” 来实现中间层的适配。这也给我们指明了在垂直领域应该努力的方向。

640-8.png


为什么要做“最后的一公里”或者说“最后的 1%” 的中间层的适配呢?

因为大语言模型不是一个知识库,不能用来作为可靠的查询工具,至少在现阶段根本无法直接取代专业的知识图谱。当然在未来可能有很多常规知识图谱完成的工作是会被大语言模型所取代。

虽然 ChatGPT 的文字理解和生成的能力是非常强大,它本质上只是一个文字接龙自动补全的工具,核心原理非常简单(但其内部的预测下一个 token 概率计算的函数还是非常复杂的)。

对于金融领域,它现在还没法做到即插即用,因为其后台并没有一个能够覆盖真实世界的可靠数据库或者知识库。之所以有时候能答对一些问题,是因为网上一些出现频度很高的内容,可能会以某种方式保存在它的 1750 亿个参数中。但是有限的参数再多也不可能记录世界上所有的知识和事实,所以即使 ChatGPT 能够完全理解你问的问题,大部分时候也无法给你正确答案,一般会随机生成一些虚假的答案,被称为“幻觉”(Hallucinations)。换而言之就是跟一个语言能力很好但是知识储备非常有限的门外汉交谈,他能够理解你说的意思,但是他头脑中根本就没有相关的知识,所以要回答不熟悉的问题就只能随机胡编乱造。
这里列举两个例子:

让 GPT-3.5 和 GPT-4 介绍一下吾道科技,结果发现所有回答内容都是随机编造的。

640-9.png


另外一个是关于 CPI 的例子,给人的感觉是 ChatGPT 非常厉害, 问啥都能回答,还能自动整理成列表显示,但其实其中的数字也是有错的。

640-10.png


斯坦福 Christopher Potts 教授提到“最后一公里”的适配,也重点提到了 Retrieval-Augmented LLM,这是大语言模型落地“最后一公里”的最关键一步,要通过一个检索来提供一个适当的上下文来支持回答,给大语言模型提供具有支持和约束的先验知识,能够防止大语言模型随机胡说八道。类似如果一个人缺乏某个领域的知识,也必须要查询外部的知识才能正确回答问题。

640-11.png



640-12.png

640-13.png


这方面的工作 Google 在 LaMda,Open AI 在 WebGPT 早就进行过尝试。最近引起大家关注的微软发布的 new Bing 和 365 Copilot,这两者的核心都是利用了检索增强的语言模型,一个是使用 Web 检索来生成支持的上下文,另一个是通过微软的个人和企业资料库 Microsoft Graph 的检索。

在金融垂直领域的落地也是一样的,需要把金融领域的专业知识拿来对语言模型做增强,提供恰当有效的上下文。

要做好“最后的一公里”或者说“最后的 1%” 的中间层适配,需要:

(1)有好的上下文。要收集金融领域的高质量的文档和数据、构建专业的金融数据库和知识库;

(2根据一些领域知识来对垂直模型做微调,后面还会具体讨论;

(3用户反馈和数据飞轮也是非常重要的。

从构建知识图谱的角度看,最重要的是利用大语言模型强大的语言理解能力,来帮我们识别用户的意图以及对各种专业文档内容做解析和信息抽取。当然大语言模型还有其他一些非常强的能力,比如可以辅助撰写不同类型和风格文档、代码生成能力,以及利用外部工具来辅助和加强 LLM 以实现各类 RPA 任务的集成能力。由于篇幅有限,在此就不做展开了。

04
LLM 辅助金融知识图谱构建的具体案例

最后来介绍一些我们尝试做过的具体案例。

前文中提到,GPT 最强大的能力是语言理解和分析能力,不只是对用户提出的意图和问题的理解,还包括 GPT 对给定上下文内容的深度理解能力,进而可以实现非常惊人的信息抽取能力,例如这里对行政处罚文档的 Zero-shot 信息抽取能力。

640-14.png


从某种程度上对之前很多小样本 NLP 研究工作来说是降维打击。

第二个例子是简历信息的抽取,先要求将简历内容转化为表格,如下图。

640-15.png


接着是让 GPT 对简历进行 Zero-shot 信息抽取并输出为 JSON 格式,如下图示例。

640-16.png


上面的第一个例子甚至都不用指定需要输出的 schema 和字段,就能自动归纳出 schema 和对应的字段名字。当然也可以类似上面的第二个例子来指定 schema 和期望输出的字段,方便机器后续自动统一处理。

另外一个 Few-shot 例子也是一样。

640-17.png


这是一个 One-shot 的创投事件抽取的例子。只看了一个示例就可以从新的输入中抽取出 JSON 格式的结果。

这里有个问题,既然以 GPT 为代表的大语言模型这么强大,是否意味着像 BERT 这类模型在将来就越来越没有意义呢?

在构建金融知识图谱的应用场景之下,我们利用 OpenAI 提供的 API 进行了各类实际的信息抽取任务的评测,这里给出了其中的创投事件抽取任务作为示例说明,大家可以看下图 Few-shot GPT 和微调 BERT 的对比:

640-18.png


评测的结果是 GPT 的小样本学习的能力确实非常强,codex-Davinci 只看了四个例子(4-shot),抽取结果的 F1 就超过 80%。但是和微调的 BERT 的 95% 以上的 F1 对比,还是存在一些差距。实验显示目前 OpenAI 只有最贵的 davinci 模型提供的 API 的信息抽取性能比较好,而其他 OpenAI 的更便宜的小模型的信息抽取能力都不太好。在金融领域一些对正确率和可靠性要求很高的复杂场景下,微调的 BERT 还是性能相对更好,短期暂时不会被取代,当然 LLM 还在不断发展,长期来看可能有不同的结论和情况。

刚发现学术界最近也有一些类似的研究结果,2023 年 2 月发表的一篇论文也显示,对于信息抽取类的任务,ChatGPT 和之前微调的模型相比还有一定差距,基本上和我们的实验结果一致。

640-19.png


接着介绍使用 LLM 的几个具体示例。首先是一个利用 LLM 辅助构建人物知识图谱的例子。

GPT 的 Few-shot 的结果和微调的 BERT 模型还是有一些差距,同时如果希望信息抽取性能比较好就需要使用 OpenAI 提供价格高的 davinci 系列的 API。对于百万量级的简历数据的信息抽取,大约在万美元这个级别,成本也不低。那我们如何使用 GPT 来帮我们的落地呢?我们还是可以利用它出色的小样本学习能力,帮助我们快速和高效产生标注的数据和做数据的增强。然后训练传统的 BERT 预训练模型用于实际的模型部署和落地。

下图就是使用这种方式,从历年上市公司所有的金融公告里面抽出了百万数量级的简历信息,构建的人物知识图谱。这种方式的好处是利用 GPT 小样本学习的能力,能够快速构建需要的系统。

640-20.png


另外一个实际场景就是利用 LLM 协助进行数据查询。因为 LLM 本身并不能提供可靠的信息查询,所以需要利用外部的工具来获取可靠的数据。但我们是可以利用 LLM 强大的语言理解能力来协助生成外部数据的查询代码,实现将用户输入的自然语言问题自动转换为特定数据库(关系数据库,或图数据库,或全文检索系统)所使用查询语言或者 API。最近也有研究者使用 GPT-3 的 API 对 text2SQL 进行了 Zero-shot 的评测,在 Spider 数据集上执行正确率就可达到 67%。

640-21.png


我们也做了一些实验,GPT-3.5 和 GPT-4 性能比 GPT-3 更好,在 Prompt 中加入一些示例样本(Few-shot),已经基本能够满足我们给机构客户一些常用问答的需求。

640-22.png


关于 Text2API 举个例子,先进行意图识别将用户输入的问题映射到特定的 API 接口,再利用 LLM 的 Few-shot 能力, 产生出 JSON 格式的 API 参数,将参数通过 POST 请求发给对应的 API 就可以得到查询结果,最后将内容绘制成图表。

关于 Text2SQL 也举个例子,如下图。

640-23.png


先找出和当前用户的问题相关的表格,这时不一定用 LLM,用一个 BERT 这种轻量的模型就可以了;下一步使用 LLM 的 Few-shot 能力输出对应的 SQL 语句,就可以查询结果了。

640-24.png


最后总结一下如何利用 LLM 合理进行模型落地。我们需要考虑实际应用场景和模型训练部署整个生命周期的综合成本,LLM 实际部署还要考虑调用 LLM 的 API 的延迟和成本的问题,还有可能访问限制的问题。利用 ChatGPT 等大型语言模型(LLM)出色的小样本学习能力,可以大大提高在某些训练数据获取相对困难的应用场景中的效率。还有一些情况下,因为数据安全的要求,需要进行本地化部署。也可以利用 LLM 高效地产生一批质量良好的金融专业领域的标注数据,然后用它来微调 BERT/T5 等常规的预训练模型进行部署。

以上就是本次分享的内容,谢谢大家。