金融GPT来了:500亿参数,但用来投资还是跑不赢大盘
机器之心编辑部
专业领域的 GPT 大模型来了。
在 ChatGPT 爆火之后,各行各业都在研发自己垂直领域的 GPT。
作为一个极具价值的应用场景,金融行业也需要自己专用的大模型。
现在,面向金融行业的大语言模型 BloombergGPT 来了!这是一个 500 亿参数的语言模型,支持金融行业的各种任务,并取得了一流的结果。
论文链接:https://arxiv.org/pdf/2303.17564.pdf
试用者表示,「这个模型知道 CEO 的名字,可以生成新闻标题,可以编写 BQL 查询(访问彭博数据的查询)。这些行为在我们测试的其他模型中没有发现。」
我们来看一下论文的核心内容。
金融行业为什么需要自己的大模型?
2020 年发布的 GPT-3 展示了训练超大自回归语言模型(LLM)的强大优势。GPT-3 有 1750 亿个参数,比之前的 GPT-2 模型增加了上百倍,并在各种 LLM 任务中表现出色,包括阅读理解、开放问答等。
此外有证据表明,大型模型表现出了涌现行为:在扩大规模的过程中,它们获得了小模型中不存在的能力。涌现行为的一个明显的例子是通过少量 prompt 执行任务的能力,在这种情况下,一个模型可以从少量的例子(few-shot prompting)中学习任务。当我们扩大语言模型的规模时,这种能力的提高远远超过了随机。广义上讲,few-shot prompting 极大地扩展了模型支持的任务范围,降低了用户寻求新的语言任务自动化的门槛。
在 GPT-3 之后,模型的规模增长到了 2800 亿(Gopher)、5400 亿(PaLM)甚至 1 万亿参数(Megatron)。研究者还探索了实现高性能 LLM 的其他重要方面,如不同的训练目标、多语言模型、更有效更小的模型,以及寻找数据和参数高效的训练规模等。
这些尝试大部分集中于通用 LLM 上,在涵盖广泛的主题和领域的数据集上进行训练。其中也包括一些专门领域的数据集(如代码或生物医学文章),但它们的重点都是构建具有广泛能力的 LLM。最近,只用特定领域的数据来训练模型的方向产生了一些模型,这些模型虽然小得多,却在专门领域的任务上击败了通用的 LLM,例如科学、医学等。这些发现促使研究者进一步开发专注于特定领域的模型。
值得注意的是,金融科技(FinTech)是一个庞大且不断增长的领域,NLP 技术正在其中发挥越来越重要的作用。金融 NLP 任务包括情感分析、命名实体识别、新闻分类以及问答等。虽然这些任务的范围与通用 NLP 基准中的任务相似,但金融领域的复杂性和术语使得该领域急需一个特定的系统。通用的生成模型拥有少样本学习、文本生成、对话等能力,将这些能力移植到一个金融领域专用的 LLM 中将非常有价值。虽然目前已经有针对金融领域的掩码语言模型 Araci(2019),但我们还没有针对这个领域的任务调优或评估的 LLM。
BloombergGPT
来自彭博(Bloomberg)的研究者训练了 BloombergGPT,这是一个 500 亿参数的语言模型,支持金融行业的各种任务。
他们没有构建一个通用的 LLM,也没有构建一个专门针对特定领域数据的小型 LLM,而是采取了一种混合方法。通用模型涵盖了许多领域,能够在各种任务中发挥高水平的作用,并且在训练期间避免了专门化需求。然而,来自现有的特定领域模型的结果表明,通用模型不能取代它们。彭博需要支持大量不同的任务,通用模型也可以很好地满足,但绝大多数的应用都在金融领域,特定模型可以更好地完成这些任务。出于这个原因,他们着手建立了一个模型。该模型在金融基准上取得了一流的结果,同时也在通用的 LLM 基准上保持了有竞争力的性能。
研究者利用彭博现有的数据创建、收集和整理资源,通过构建迄今为止最大的特定领域数据集来实现这一目标。由于彭博主要是一家金融数据公司,他们的数据分析师已经花了四十多年的时间收集、制作金融语言文件。他们拥有广泛的金融数据档案,涵盖了一系列的主题,并仔细跟踪数据来源和使用权。他们将这些数据添加到公共数据集中,以创建一个拥有超过 7000 亿个 token 的大型训练语料库。使用这个训练语料库的一部分,他们训练了一个 BLOOM 风格的、500 亿参数的模型,该模型是根据 Hoffmann et al. (2022) 和 Le Scao et al. (2022) 的指导方针设计的。
他们在标准的 LLM 基准、开放的金融基准和一套最能准确反映他们预期用例的彭博内部基准上验证了该模型。结果表明,他们的混合训练方法使他们的模型在领域内的金融任务上大大超过了现有的模型,而在通用的 NLP 基准上则与之相当或更好。
模型架构
该模型基于 BLOOM,是一个只有解码器的因果语言模型 (Scao et al., 2022)。该模型包含 70 层 Transformer 解码器模块,定义如下:
其中 SA 是多头自注意力,LN 是层归一化,FFN 是具有 1 个隐藏层的前馈网络。在 FFN 内部,非线性函数是 GELU (Hendrycks and Gimpel, 2016)。ALiBi 位置编码是通过 Transformer 网络的自注意力组件的加性偏差应用的 (Le Scao et al., 2022)。输入 token embedding 与最终 softmax 之前的线性映射相关联。该模型在 token embedding 之后有一个额外的层归一化:
其中 h_0 是初始 token 嵌入,LN^em 是嵌入层归一化的新组件。请注意,第二项包括两个连续的层归一化。
模型扩展
规模。BloombergGPT 基于 Chinchilla 的 scaling law (Hoffmann et al., 2022) 进行缩放,特别是其方法 1 和方法 2。研究者是从 40GB A100 GPU 的 130 万 GPU 时的总计算预算开始的。他们采用了激活检查点来减少内存占用,由于重复的前向传递,每次迭代的成本增加了 0.33 倍 TFLOPs。考虑到这个额外的成本,研究者在 Chinchilla 方程中插入 0.75×1.3M,而不是全部。
从 (Hoffmann et al., 2022) 中,研究者使用表 3 中报告的方法 1 和表 A3 中报告的方法 2 的数据,并将回归线拟合到它们的对数刻度版本。这样就得到:
考虑到研究者的计算预算(假设只通过一次数据),约为 7000 亿个 token 的数据集对于「Chinchilla 最优」配置来说太小。FinPile 已经是最大的特定领域训练集之一,研究者不希望它占到总训练量的一半以下。
由于数据有限,研究者选择了最大的模型,同时确保可以在所有的 token 上进行训练,并且仍然留有约 30% 计算预算作为缓冲以应对不可预见的失败、重试和重启。最终,他们找到了一个 50B 的参数模型,这也是在该计算预算下的 Chinchilla 最佳规模。
下图 1 提供了一个 scaling law 的总结,以及 BloombergGPT 与其他模型的比较。
模型形状。为了确定如何将 50B 参数分配给不同的模型组件(即模型的「形状」),研究者遵循 Levine et al. (2020) 的建议,对于自注意力层的总数 L,最佳隐藏维度 D 由以下方式获得:
其中,L 要扫过一系列整数值,然后 (L, D) 组合总共会产生约 50B 个参数。该研究选择 L = 70 和 D = 7510 作为目标形状参数。该研究希望隐藏维度可以被注意力头的数量整除,商数就是注意力头的维度。此外,该研究还希望维度是 8 的倍数,以在有英伟达 Tensor Core 的芯片训练时实现更高的性能。
最终,该研究确定使用 40 个注意力头,每个注意力头的维度为 192,导致总隐藏维度 D = 7680 ,总计 50.6B 个参数。下表 4 总结了 BloombergGPT 中使用的超参数。
实验结果
研究人员评估了 BloombergGPT 在两大类任务上的表现:金融特定任务和通用任务。每种类型的任务数量和组的定义如下表所示。
研究人员根据模型大小、训练数据类型、整体性能以及最重要的访问权限,将 BloombergGPT 与三个最接近的模型进行比较。表 6 中提供了模型大小和计算的概述。
金融任务
从外部的金融任务结果来看,BloombergGPT 在五个任务中的四个任务(ConvFinQA、FiQA SA、FPB 和 Headline)中均取得了最好的表现,在 NER 中排名第二(表 8)。
表 10 展示了在四个内部特定的情感分析任务中,BloombergGPT 的表现比所有其他测试模型都要好,而且拉开了一定差距。
内部 NER 任务的结果是混合的(表 12)。更大的 BLOOM176B 赢得了大部分 NER 任务。
BIG-bench Hard
表 13 展示了在 BIG-bench Hard 每个任务的结果。总体来说,虽然 BloombergGPT 落后于大得多的 PaLM540B(10 倍参数)和 BLOOM176B(3.5 倍参数),但它是相似规模的模型中表现最好的,其性能比 GPT-NeoX 或 OPT66B 都更接近 BLOOM176B。它还在日期理解、hyperbaton(形容词排序)和跟踪打乱目标方面取得了所有模型中的最佳表现。按照这个基准,可以发现开发金融专用的 BloombergGPT 并没有以牺牲其通用能力为代价。
知识评估
在一项任务中,BloombergGPT 比 BLOOM176B、GPT-NeoX 和 OPT66B 性能都高。在其他三项中排名第二(表 14)。与上一节类似,它优于类似尺寸的模型,同时几乎与更大的模型持平。Massive Multitask Language Understanding (MMLU, Hendrycks et al., 2021) 涵盖了 57 个不同的主题,因此比上述任务的覆盖面要广得多。
表 15 中的结果遵循了在 BIG-bench hard 中看到的见解。BloombergGPT 始终优于 OPT66B,后者又优于 GPT-NeoX,而 GPT-3 表现最佳。与前面的部分相比,BloombergGPT 在这一类别中的表现也优于 BLOOM176B,尽管差距很小。它落后于 GPT-3 的报告表现,尤其是在社会科学类别中。与 GPT-3 的差距在 STEM 和 其他 领域最为接近,其中包括与财务和会计相关的问题。
阅读理解
下表 16 反映了在阅读理解任务上的排名:虽然 GPT-3 的性能最高,但 BloombergGPT 紧随其后。除 OpenBookQA 外,BloombergGPT 的性能是 BLOOM176B、GPT-NeoX、OPT66B 中最高的。令人惊讶的是,BLOOM176B 在这一类别中明显落后。
语言学任务
下表 17 展示了在语言学任务上的结果,这与知识类别任务有相似的趋势。BloombergGPT 略落后于 GPT-3,但优于其他模型。与阅读理解类别类似,BLOOM176B 落后于 BloombergGPT。
最后,需要注意的是,使用金融 GPT 进行投资,可能仍然会跑输大盘指数: