BloombergGPT:金融领域大型语言模型

BloombergGPT: A Large Language Model for Finance

Mar 2023

Shijie Wu, Ozan Irsoy, Steven Lu, Vadim Dabravolski, Mark Dredze, Sebastian Gehrmann, Prabhanjan Kambadur, David Rosenberg, Gideon Mann

[Bloomberg,Johns Hopkins University]

https://arxiv.org/abs/2303.17564

摘要:NLP在金融技术领域的应用广泛而复杂,其应用范围从情绪分析、命名实体识别到问答。大型语言模型(LLM)已被证明对各种任务都是有效的;然而,文献中没有专门针对金融领域的LLM的报道。在这项工作中,我们介绍了BloombergGPT,这是一个500亿参数(50B)的语言模型,基于广泛的财务数据进行训练。我们基于Bloomberg的广泛数据源构建了3630亿个token数据集(363B),这可能是迄今为止最大的特定领域数据集,并增加了3450亿个来自通用数据集的token。我们在标准LLM基准、开放式财务基准和一套最准确反映我们预期用途的内部基准上验证BloombergGPT。我们的混合数据集训练使模型在财务任务上显著优于现有模型,而不会牺牲通用LLM基准的性能。此外,我们还解释了我们的建模选择、训练过程和评估方法。作为下一步,我们计划发布训练日志(Chronicles),详细介绍我们在训练BloombergGPT方面的经验。

1    引言

GPT-3在2020年的发布(Brown et al.,2020)证明了训练非常大的自回归语言模型(LLM)的强大优势。GPT-3有1750亿个参数,比以前的GPT-2模型增加了一百倍,并且在现在流行的一系列LLM任务中表现出色,包括阅读理解、开放式问答和代码生成。这种性能已经在其他几个模型中复制(Chowdhery等人,2022;Scao等人,2022年;Zhang等人,2022a,分别是PalM,Bloom,OPT)。此外,有证据表明,大型模型表现出涌现行为;涌现使它们能够获得较小模型中没有的能力(Wei等人,2022a)。涌现行为的一个显著例子是通过少样本提示执行任务的能力,在这种情况下,模型可以从几个例子中学习任务。随着增加语言模型的大小,这种能力的提高远远超过了随机性。从广义上讲,少样本提示极大地扩展了模型支持的任务范围,并降低了用户寻求新语言任务自动化的门槛。

在GPT-3之后,模型的规模增加到2800亿(Gopher,Rae等人,2021)、5400亿(PaLM,Chowdhery等人,2022年)和1万亿参数(Megatron,Korthikanti等人,2022.)。工作还探讨了实现高性能LLM的其他重要方面,如不同的训练目标(Tay et al.,2022b)、多语言模型(Scao et al.,2022)、更高效和更小的模型(Black et al.,2021,GPT-NeoX-20B),以及寻找数据和参数有效的训练规模(Hoffmann et al.,2020)。

这些工作几乎完全集中在通用LLM上,在涵盖广泛主题和领域的数据集上进行训练。虽然这些数据集包括一些专门领域的数据集(例如,代码(Chen等人,2021a)或生物医学文章Gao等人(2021)),但重点是构建具有广泛能力的LLM。最近,仅使用特定领域数据训练模型的工作已经产生了一些模型,这些模型虽然小得多,但在这些领域内的任务上击败了通用LLM,例如科学Taylor等人(2022,Galactica,https://arxiv.org/abs/2211.09085)和医学Bolton等人(2023,BioMedLM, https://github.com/stanford-crfm/BioMedLM);Luo等人(2022,BioGPT);Lehman等人(2023)。这些发现推动了专注于特定领域的模型的进一步发展。

金融科技(FinTech)是一个庞大且不断发展的领域,NLP技术发挥着越来越重要的作用。Xing等人(2018);Fisher等人(2016);Dredze等人(2016)。Shah等人(2022)的金融NLP任务包括情绪分析Araci(2019)、命名实体识别Salinas Alvarado等人(2015)、新闻分类Sinha和Khandait(2020)以及问答Chen等人(2021b,2022)。虽然任务范围与一般NLP基准中的任务范围相似,但金融领域的复杂性和术语使得特定领域的系统是必要的。出于所有这些原因,生成LLM在一般情况下是有吸引力的——少样本学习、文本生成、会话系统等——将LLM专注于金融领域将是有价值的。虽然有针对金融领域调整的掩码语言模型Araci(2019),但尚未针对该领域的任务调整或评估LLM。

1.1    BloombergGPT

我们训练BloombergGPT,这是一个500亿参数的语言模型,支持金融行业的各种任务。我们不是构建通用LLM,也不是专门针对特定领域数据的小LLM,而是采用混合方法。通用模型涵盖了许多领域,能够在各种各样的任务中高水平地执行,并且在训练期间不需要专业化。然而,现有领域特定模型的结果表明,通用模型无法取代它们。在Bloomberg,我们支持一组非常庞大和多样化的任务,由通用模型很好地服务,但我们的绝大多数应用程序都在金融领域,由特定模型更好地服务。因此,我们着手建立一个模型,在财务基准上实现同类最佳结果,同时在通用LLM基准上保持有竞争力的性能。

我们利用Bloomberg现有的数据创建、收集和管理资源,构建了迄今为止最大的特定领域数据集,从而实现了这一目标。由于Bloomberg主要是一家金融数据公司,我们的数据分析师在40年的时间里收集和整理了金融语言文件。我们拥有广泛的财务数据档案,涵盖了一系列主题,并仔细跟踪数据来源和使用权。我们的这些数据加公共数据集,创建一个包含7000多亿个token的大型训练语料库。使用该训练语料库的一部分,我们训练了一个BLOOM-style的500亿参数模型,该模型是根据Hoffmann等人(2022)和Le Scao等人(2022)的指导方针设计的。我们在标准LLM基准、开放式财务基准和一套彭博内部基准上验证了该模型,这些基准最准确地反映了我们的预期用例。我们的结果表明,我们的混合训练方法导致了一个在域内财务任务上大大优于现有模型的模型,同时在一般NLP基准上达到或更好。

1.2    更广泛的贡献

除了构建财务数据LLM之外,我们的目标是为更广泛的研究社区做出贡献。具体而言,本文记录的经验提供了证据,进一步发展了社区对文献中几个悬而未决问题的理解。

特定于领域的LLM。    少数现有的特定领域LLM专门针对特定领域的数据源进行训练(Luo et al.,2022;Bolton et al.,2023;Taylor et al.,2021),或将非常大的通用模型应用于特定领域的任务(Singhal et al.,2020;Lewkowycz et al.,2018)。到目前为止,我们的替代方法——在特定领域和一般数据源上训练LLM——尚未得到研究。生成的模型在特定于领域的任务上做得很好,但在通用基准测试上也保持了强大的性能。

训练数据。    几乎所有的语言模型都在很大程度上依赖于网络抓取的数据,例如C4(Raffel等人,2020)和The Pile(Gao等人,2021)(其中包括OpenWebText2)。在使用Touvron等人(2023)、Rae等人(2020)、Scao等人(2022)、Jernite等人(2022年)之前,这些数据以不同的方式清理或细分,但数据重复问题Carlini等人(2020年)和有毒语言问题Welbl等人(2021)仍然存在。我们的训练数据对于LLM训练来说是不寻常的,因为它包括大量来自可靠来源的精心策划和准备的数据。

评价。    LLM评估仍然是一个具有挑战性和不断发展的问题,Gehrmann等人(2022);Goyal等人(2022),新的基准试图标准化跨模型的评估(Liang等人,2022;Srivastava等人,2022)。然而,对于特定于领域的任务,评估和实际用例之间仍然不匹配。评估建立在可用的数据集上,而不一定是基于模型在实践中的使用方式。我们提供了在一些公共财政NLP基准(Shah et al.,2022;Chen et al.,2021b)上的结果,以及Bloomberg内部任务的选择,这些任务更符合我们的预期用例,并直接评估我们的模型执行感兴趣任务的能力。

模型大小。    早期的LLM在2000-4000亿个token的语料库上进行了一次训练(a single training pass)(Brown等人,2020),Hoffmann等人(2022)认为模型训练不足,而专注于用更多数据训练更小的模型,这是Touvron等人最近采用的策略。(2023)。我们选择了一个受Hoffmann等人(2022)启发的模型大小,并在我们7000多亿个token的语料库中的5690亿个token上训练了一个500亿个参数模型,以产生一个与更大模型竞争的模型。

Tokenizer。    在组装训练数据后,Tokenizer的关键步骤将文本转换为适合语言模型的格式。这一步骤的重要性常常被Mielke等人忽视(2021),许多较老的LLM使用相同的标记器和词汇,这意味着我们几乎没有证据支持其他标记器。我们采取了一种不同的方法,使用Unigram模型,而不是基于贪婪合并的子词标记器,因为它保存了概率,允许在推理时进行更智能的Tokenizer(Kudo,2018)。(and many older LLMs use the same tokenizer and vocabulary, meaning that we have little evidence to support other tokenizers. We take a different approach and use a Unigram model instead of greedy merge-based sub-word tokenizers since it saves probabilities allowing for smarter tokenization at inference time)

建模挑战。    GPT-3和随后的模型是大型团队的工作,需要大量的计算。再现这些结果的初步工作,如OPT Zhang等人(2022a),与原始模型的性能不匹配。随着每个后续模型的发布,社区的理解、经验和软件工具都在增加。在开发BloombergGPT时,我们受益于作为BLOOM工作(Scao等人(2022))的一部分开发的现有代码,表明中等规模的团队可以在特定领域的数据上生成有竞争力的模型。我们详细描述了我们训练BloombergGPT的经验,以支持未来的训练工作,并解决上述每个主题。

2    数据集

为了训练BloombergGPT,我们构建了“FinPile”,这是一个由一系列英文财务文件组成的综合数据集,包括新闻、文件、新闻稿、网络抓取的财务文件和从彭博档案中提取的社交媒体。这些文件是在过去二十年中通过我们的业务流程获得的。我们使用广泛用于训练LLM的公共数据来增强FinPile。结果是一个训练语料库,大约一半是特定领域的文本,一半是通用文本。有关完整训练集的细分,请参见表1。根据Lee等人(2022a)的说法,为了提高数据质量,我们对每个数据集(The Pile、C4、Wikipedia、FinPile)进行了去重处理;作为副作用,表1中报告的统计数据可能与其他论文中报告的数据不同。

表1:用于训练BloombergGPT的完整训练集的分解。所提供的统计数据是每个文档的平均字符数(“C/D”)、每个token的平均字符数(“C/T”)以及overall tokens的百分比(“T%”)。每列的单位在标题中表示。

2.1    金融数据集(363B tokens– 54.2%of training)

在过去的四十年里,彭博终端提供了一套全面的结构化和非结构化金融数据和分析。在履行这一使命的过程中,Bloomberg分析师策划了一套内部创建或从外部来源获取的财务文件。我们利用这些精心策划和维护的大量文件来创建FinPile,其中包括公司文件、金融新闻和其他与金融市场相关的数据。

FinPile中包含的一些文件,如公司文件,可供公众使用,尽管收集这些文件并对其进行预处理以进行LLM训练是一项不平凡的任务。其他文件,如彭博新闻社的(一个子集),必须购买。其余文件,private and available, among other sources,可通过彭博终端获取。最后,我们清理这些数据,去掉markup、特殊格式和模板。

请注意,FinPile中的每份文件都有时间戳,日期范围为2007-03-01至2022-07-31;在这个时间范围,文档的质量和数量都在增加。虽然我们在这项工作中没有使用日期信息,但我们计划在未来使用它,例如评估模型对不同时间段的了解。虽然我们无法发布FinPile,但我们在大型、精心策划和干净的特定领域数据集上的经验训练可能会为社区提供关于构建金融LLM的优势和挑战的有用见解,尤其是构建特定领域模型。我们在表2中提供了FinPile的细分和分析,并对以下数据类型进行了简要描述。

表2:FinPile中文档中包含的tokens数(以百万计),按年份(行)和类型(列)组织。单位为millions of tokens

2.1.1    Web(298B tokens–42.01%of training)

Bloomberg通过识别包含财务相关信息的网站来收集网络内容。虽然这一类别占FinPile的大部分,但其分类是粗略的,内容主要根据web domain的位置进行分类。在这些特定于位置的来源中,例如“美国”(占总数的15.95%)、“亚太地区”(占总额的4.72%)和“英国”(占总总数的1.98%),文档类型千差万别,正如网络抓取所预期的那样。虽然网络资源在现有的公共LLM训练数据集中很常见,但Bloomberg的网络抓取侧重于具有财务相关信息的高质量网站,而不是通用的网络抓取。

2.1.2    News(38B tokens-5.31%of training)

新闻类包括所有新闻来源,不包括Bloomberg记者撰写的新闻文章。总的来说,FinPile有数百个英文新闻来源,包括“Bloomberg Transcripts”(占总数的0.41%),这是彭博电视新闻的文字记录。通常,该数据集中的内容来自与金融界相关的信誉良好的新闻来源,以保持真实性并减少偏见。

2.1.3    备案 Filings(14B tokens–2.04% of training)

公司备案是由(上市)公司编制并向公众提供的财务报表。在美国等一些国家,上市公司被要求定期编制和提交财务报表;例如10-K年度报告和10-Q季度报告。在我们的数据集中,大多数文件来自美国证券交易委员会的在线数据库EDGAR(占总数的1.90%)。提交的文件通常是长PDF文档,其中包含财务信息密集的表格和图表,这些信息在Bloomberg中进行处理和规范化。备案与通常用于训练LLM的文件类型有很大不同,但包含对财务决策至关重要的信息。

2.1.4    Press(9B tokens–1.21% of training)

新闻类(Press)包含通常由财务相关公司发布的新闻稿。新闻稿与文件一起代表了一家公司的大部分公开传播。然而,与备案不同的是,新闻稿在内容和风格上与新闻报道相似。

2.1.5    Bloomberg(5B tokens–0.70% of training)

这一类别包括Bloomberg撰写的新闻和其他文件,如意见和分析。最大的来源是“Bloomberg News”(占总数的0.44%)和“Bloomberg First Word”(占总数的0.13%),这是Bloomberg撰写的实时新闻通讯。虽然彭博新闻社涵盖了广泛的主题,但通常侧重于与金融界相关的内容。此数据集包含不同长度的文档。

2.2    公共数据集(345B tokens–48.73% of training)

我们在训练语料库中使用了三个广为人知且可用的公共数据集。

2.2.1    The Pile(184B tokens–25.9% of training)

Pile(Gao等人,2021)是GPT-Neo(Black等人,2021)、GPTJ(Wang和Komatsuzaki,2021)和GPT-NeoX(20B)(Black等,2022)中使用的数据集。由于以下原因,我们将The Pile纳入训练数据。首先,它已被用于成功地训练LLM。其次,它经过了重要的数据清理和预处理。第三,它包括多个领域,我们相信这种多样的数据将有助于推广到新的领域,甚至可能支持金融数据的训练。例如,FreeLaw和GitHub等领域对Bloomberg分别从事法律文件和软件开发的团队很有用。The Pile的创作者有意选择包含重复内容,重复因素与内容的感知质量成正比。然而,当我们对每个数据集进行重复数据消除时,the Pile的大小显著减小。此外,请注意,我们的tokenizer(§2.3)是在The Pile上训练的。(with the duplication factor being proportional to the perceived quality of the content)

2.2.2    C4(138B tokens–19.48% of training)

Colossal Clean Crawled Corpus(C4)是一个用于训练LLM的常见数据集,并被引入以支持训练T5(Raffel等人,2020)。尽管它与Pile-CC重叠,但C4的清洁和处理方式不同;因此,我们认为,除了The Pile之外,还包括C4,可以增加更多价值(相比文档重复)。我们发现C4由于层层清理而包含高质量的自然语言文档,尽管其他人已经注意到跨web域的分布是不寻常的,其中很大一部分数据来自专利Dodge等人(2021)。

2.2.3    维基百科(24B tokens-3.35% of training)

The Pile和C4都包含了过时的维基百科副本,因此包含最新的维基百科页面可能有利于模型的真实性。因此,我们收录了2022年7月1日起的英语维基百科。该数据集的Tokenizer效率很低(每个标记3.06个字符),表明markup量高于平均水平,这表明进一步的清理可能有利于未来的模型训练。

2.3    Tokenization

基于Kudo和Richardson(2018)以及Bostrom和Durrett(2020)的有希望的结果,我们选择了Unigram标记器(Kudo,2018),而不是基于贪婪合并的子词标记器(greedy merge-based sub-word tokenizer),如字节对编码(Byte Pair Encoding,BPE)(Sennrich et al.,2016)或Wordpiece(Schuster和Nakajima,2012;Wu et al.,2015)。继GPT-2 Radford等人(2019)之后,我们将数据视为字节(bytes)序列,而不是Unicode字符,并将256个字节中的每一个作为tokens。在预标记(pretokenization)步骤中,通过贪婪地匹配以下正则表达式,将输入字节序列分解为chunks:[A-Za-z]+ | [0-9] | [^A-Za-z0-9]+。这遵循GPT-2防止多个字符类出现在单个token中。然而,我们在字母块中包含空格,这允许学习多单词标记,从而增加信息密度并减少上下文长度。pretokenization遵循了PaLM Chowdhery等人的方法(2022)将每个数字放在自己的区块中,希望这将导致更好地处理数字。我们在The Pile Gao等人(2021)的基础上训练我们的tokenizer,因为它从不同的领域中提取,包括代码和学术论文,其比例适合我们的用例(in proportions that suit our use case)。

并行Tokenizer训练。    Unigram Tokenizer的实现效率太低,无法同时处理整个Pile数据集,因此我们使用了划分和合并的方法。我们将Pile中的22个域中的每一个划分为256个大小大致相等的块(chunks)。然后,我们在22×256(总共=5632)个块中的每一个块上训练一个词汇大小为65536(2^16)的Unigram标记器。我们分层地合并各个标记器,首先合并来自每个域的256个标记器,然后合并22个生成的标记器来获得最终的标记器。

Unigram Tokenizer相当于token上的概率分布(即Unigram语言模型),我们通过对相应token的概率进行加权平均来合并Tokenizer,其中权重由用于训练Tokenizer的数据的相对大小(以字节为单位)确定。结果是一个拥有700万个tokens的tokenizer。为了将词汇表的大小减少到2^17个token,我们丢弃概率最小的token并renormalize。为了确保我们不需要an out-of-vocabulary token,我们还添加了36个(256个可能的)字节作为token,这些字节没有出现在the Pile中,以及一个<|endoftext|>token。

在选择词汇量(vocabulary size)时有各种各样的考虑因素。LLM的大量词汇表的一个优点是可以在上下文窗口中容纳更多的信息。另一方面,更大的词汇表也会带来开销:更大比例的模型参数被用来token嵌入。

我们根据25000至550000个词汇的实验选择了2^17个token的词汇大小。对于每个词汇大小,我们对C4数据集进行Tokenizer,并计算数据集的总大小(以字节为单位),其中每个标记使用log2(词汇大小)位表示。我们的启发是选择导致C4的最小编码表示的词汇表大小。这给了我们125000的词汇大小,然后我们将其四舍五入到最接近的2次方(2^17,或131072个token)。我们的tokenizer很大,相对于大约50000个tokens的标准词汇大小。有关tokenization效率的分析,请参见表3。

表3:使用BLOOM、NeoX、OPT(GPT2)和BloombergGPT tokenizers 的每个训练数据集中的令牌数量。所有token数均以十亿(B)为单位。请注意,此计数使用了旧版本的FinPile,因此token数将与以前的表不匹配。

3    模型

3.1    架构

我们的模型是一个基于BLOOM的仅解码器因果语言模型(Scao et al.,2022)。我们对体系结构进行了概述,详细信息见附录A。

该模型包含70层Transformer解码器块,定义如下:

\overline{h}_\ell = h_{\ell-1} + {\mathop{\mathrm{SA}}\nolimits}({\mathop{\mathrm{LN}}\nolimits}( h_{\ell-1} ))

h_\ell = \overline{h}_\ell + {\mathop{\mathrm{FFN}}\nolimits}({\mathop{\mathrm{LN}}\nolimits}( \overline{h}_\ell ))

其中SA是多头自注意,LN是层归一化,FFN是具有1个隐藏层的前馈网络。在FFN内部,非线性函数是GELU(Hendrycks和Gimpel,2016)。ALiBi位置编码是通过在Transformer网络的自注意分量处的加性偏置来应用的(Le Scao等人,2022)。在最终softmax之前,输入token嵌入被绑定到线性映射。继Le Scao等人(2022)之后,并首次在Dettmers等人中使用(2022),该模型在token嵌入后有一个额外的层规范化,形式上是:

\overline{h}_1 = {\mathop{\mathrm{LN}}\nolimits}^{em}(h_0) + {\mathop{\mathrm{SA}}\nolimits}({\mathop{\mathrm{LN}}\nolimits}( {\mathop{\mathrm{LN}}\nolimits}^{em} ( h_0 ) ))

其中h_0是初始token嵌入,{\mathop{\mathrm{LN}}\nolimits}^{em}是嵌入层归一化的新分量。请注意,第二项包括两个连续的层归一化。

3.2    模型缩放

大小    我们模型的大小是基于Chinchilla比例定律(Hoffmann et al.,2022),特别是他们的方法1和方法2。我们从40GB A100 GPU上130万GPU小时的总计算预算开始。由于我们采用激活检查点来减少内存占用,由于重复的前向传递,每次迭代会额外花费0.33x TFLOP。为了说明这一额外成本,我们在Chinchilla方程中插入了0.75×1.3M,而不是全量。

对于Hoffmann等人(2022)中的方法1,我们使用表3报告的数据,对于方法2,我们使用Table A3,并将回归线fit到其对数比例版本。这给了我们:

\text{Approach 1}

Parameters = \exp_{10}( \log_{10}(FLOPs) \cdot 0.498 - 1.004 ) = 52.993\text{B}

Tokens     = \exp_{10}( \log_{10}(FLOPs) \cdot 0.502 + 0.229 ) = 1111.112\text{B}

\text{Approach 2}

Parameters = \exp_{10}( \log_{10}(FLOPs) \cdot 0.490 - 0.839 ) = 49.753\text{B}

Tokens     = \exp_{10}( \log_{10}(FLOPs) \cdot 0.510 + 0.062 ) = 1175.766\text{B}

这些计算表明,考虑到我们的计算预算(假设只有一次通过数据),我们的约700B tokens数据集对于“Chinchilla最优”配置来说太小了。(注释1)虽然我们可以增加通用训练数据的数量,但我们可支配的特定领域训练数据的量有限。FinPile已经是最大的特定领域训练集之一,我们不希望它只占我们总训练的一半以下。

(注释1:Chinchilla导出的缩放定律是特定于tokenizer的。由于支持多词表达式和更大的词汇表大小,我们的标记器可以更紧凑地对同一文档进行编码。这些缩放定律在不同tokenizers之间的迁移效果如何,以及假设固定计算,词汇表大小如何影响token和参数的权衡,这仍然是一个悬而未决的问题。我们把这次探索留给未来的工作)

由于我们的数据有限,我们尽可能选择最大的模型,同时确保我们可以在所有token上进行训练,并且仍然保留约30%的总计算预算作为意外故障、重试和重新启动的缓冲区。这使我们得出了一个50B的参数模型,这也是我们计算预算的Chinchilla最优大小。图1提供了缩放定律的摘要,以及BloombergGPT与其他模型的比较。

图1: Kaplan等人(2020)和Chinchilla缩放定律,以及先前大语言模型和BloombergGPT参数和数据大小。我们采用了Hoffmann(2022)等人的风格。

形状    为了确定如何将50B参数分配给不同的模型组件(即,模型的“形状”),我们遵循Levine(2020)等人的观点。他提出,假如自注意层的总数为L,最佳隐藏维度D通过以下方式获得:

D = \exp(5.039) \exp(0.0555 \cdot L)

我们在一系列整数值上扫描L,并选择产生50B参数的(L, D)组合。这导致选择L=70和D=7510作为我们的目标形状参数。然而,我们也希望遵循这样的传统,即隐藏维度可以被注意力头部的数量整除,商给出注意力头部的维度。此外,我们希望维度为8的倍数,以在Tensor Core操作NVIDIA(2023)中实现更高的性能。我们确定了40个头部,每个头部的维度为192,得到了D=7680的总隐藏维度和50.6B的参数。表4提供了BloombergGPT中使用的超参数摘要。

表4:BloombergGPT的超参数及其值的汇总。

3.3    训练配置

训练    BloombergGPT是一个PyTorch模型,使用标准的从左到右因果语言建模目标进行训练。继Brown等人(2020)之后,我们希望所有训练序列的长度完全相同,在我们的情况下为2048个token,以最大限度地提高GPU利用率。为了实现这一点,我们将所有的经过 tokenized的训练文档拼接起来,用<|endoftext|>作为文档分隔符。然后,我们将这个token序列分解为长度为2048token的块(chunks)。请注意,使用这种方法,每个训练序列可能包含来自不同域的多个文档。还要注意的是,因为我们使用的是ALiBi位置编码,推理时,BloombergGPT可以应用于超过2048的序列。为了提高优化效率,将训练序列分组为批次(are grouped together into batches),如下面更详细描述的那样。

优化。    我们使用AdamW优化器(Loshchilov和Hutter,2019)。我们将β1设置为0.9,将β2设置为0.95,并将权重衰减设置为0.1。继Brown等人(2020)之后,我们将最大学习率设置为6e-5,并使用具有线性预热的余弦衰减学习率调度器,在前1800 steps中升高学习率。根据Hoffmann等人(2022),最终学习率是最大学习率的0.1倍,即6e-6。我们还采用了批量大小预热(batchsize warmup,Brown et al.,2020):在前7200个步骤中,我们使用1024(210万个token)的批量大小,然后在剩余的训练中切换到2048(420万个token的批量大小)。

在最初的运行中,我们将所有层的dropout设置为0.0,尽管我们稍后会添加dropout,如§4所述。模型参数随机初始化为正态分布,均值为零,标准差\sqrt{1/(3D)} = 0.006588(Smith等人,2022)。继Megatron-LM(Shoeybi et al.,2019)之后,我们将MLP中第二层和注意力输出层的标准差用1/ \sqrt{2L}重新缩放。我们使用query key layer scaling技术(Shoeybi et al.,2019),该技术旨在提高FP16混合精度训练的数值稳定性,但也可能有助于BF16。

训练不稳定。    LLM优化需要在极其复杂的非凸损失表面上运行凸优化算法。先前的工作报告了在训练LLM时的各种不稳定性。例如,Chowdhery等人(2022)发现,尽管启用了梯度修剪,但在训练PaLM时,损失增加了大约20倍。他们在峰值开始前大约100步从检查点重新开始训练,然后跳过200-500个数据批次,从而缓解了这些问题。他们假设尖峰是由于特定数据批次与特定模型参数状态的组合而发生的。类似地,在OPT训练过程中,Zhang等人(2022a)注意到梯度和激活范数中的尖峰,或训练困惑中的divergences。在这些行为之后,他们降低了学习率,这稳定了这些范数,并允许训练继续进行。有趣的是,Scao等人(2022)只报告了一次损失峰值,模型从中自行恢复。

硬件堆栈。    我们使用AWS提供的AmazonSageMaker服务来训练和评估BloombergGPT。我们在训练时使用最新版本,并在总共64个p4d.24xlarge实例上进行训练。每个p4d.24xlarge实例都有8个NVIDIA 40GB A100 GPU,具有NVIDIA NVSwitch节点内连接(600 GB/s)和NVIDIA GPUDirect,使用AWS弹性结构适配器(EFA)节点间连接(400 GB/s)。这总共产生512个40GB A100 GPU。为了快速访问数据,我们使用Amazon FSX For Lustre,它支持每个TiB存储单元高达1000 MB/s的读写吞吐量。

3.4    大规模优化

为了训练BloombergGPT,它的内存占用比云实例上可用GPU内存更大,我们依赖于ZeRO优化的第3阶段(Rajbhandari et al.,2020)。我们使用AWS的专有SageMaker模型并行(SMP)库,该库支持在多个GPU设备和实例之间自动分发大型模型(Karakus等人,2021)。在试验了各种技术后,我们平均达到102个TFLOP,每个训练步骤需要32.5秒。我们发现以下设置是我们训练中表现最好的。

ZeRO优化(第3阶段)。    ZeRO在一组GPU中分割训练状态(模型参数、梯度和优化器状态)。我们将一个模型分为128个GPU,在训练过程中我们有4个模型副本。

MiCS。Zhang等人(2022b)降低了云训练集群的训练通信开销和内存需求。MiCS包括分层通信、2-hop梯度更新、规模感知的模型划分等功能。

激活检查点。    Chen等人(2016)通过消除激活,以牺牲反向传播过程中的额外计算为代价,最大限度地减少了训练内存消耗。当一个层启用了激活检查点时,只有层的输入和输出在前向传递后保留在内存中,而任何中间张量都会从内存中丢弃。在反向通过期间,可以重新计算这些中间张量。我们将激活检查点应用于每个Transformer层。

混合精度训练。    为了减少内存需求,在BF16中进行正向和反向传递,同时以全精度(FP32)存储和更新参数。ALiBi矩阵是以全精度计算的,并存储在BF16中。我们还使用FP32来计算注意力块中的fused softmax,并将其结果存储在BF16中。最后,在FP32中计算损失函数中的softmax计算。

Fused Kernels。    优化的另一种可能性是将几个操作的组合组合成单个GPU操作。这既可以通过避免在计算图中存储中间结果来减少峰值内存使用,也有助于提高速度。类似于Megatron-LM Shoeybi等人(2019),我们在自注意模块的SMP中使用了一个masked-causal-softmax fused kernel。在实践中,我们观察到4-5个TFLOP的速度改进,并在给定其余配置的情况下避免内存不足错误。

4    训练运行

训练BloombergGPT的过程涉及基于模型训练进度的决策。我们分享了这一过程的一些亮点。图2显示了训练集和验证集的学习曲线。实线显示(平滑过的)训练损失,虚线显示保留验证集的损失。线条颜色的变化表示优化超参数配置的变化,如计划的那样,或者响应于不断增加或停滞的验证损失。此图显示了成功的模型训练运行所采取的路径。为了呈现清晰的图表,该图没有显示具有不同模型配置的其他尝试、overwritten的部分运行、或最终模型中未使用的其他训练策略。

图2:BloombergGPT的(平滑过的)训练和验证损失。内绘图是外绘图中虚线矩形内区域的放大版本(共享x轴)。颜色表示不同的超参数配置。实线和虚线表示训练与验证的损失。

我们在当前批次中每五步测量一次训练损失(measured training loss every five steps on the current batch)。原始值变化很大,绘制时会产生较大的抖动。该图通过显示运行平均y_t = \frac{\sum_{i=0}^t x_i \cdot (1-\alpha)^{(t-i)}}{\sum_{i=0}^t (1-\alpha)^{(t-i)}}来平滑训练损失,其中α=0.001。验证损失不需要平滑,因为每300步在整个验证集上测量一次。

我们总共训练了139200步(~53天),并在通过我们的训练数据完成一个epoch的~80%后结束了模型训练(709B个可用token中的569B个token)。我们提前结束了训练,因为我们预留的开发集上(our held-out development set)的损失不再改善,尽管更长时间的训练也可能会带来进一步的改善。

在运行的开始时,我们用warm-up batch size,大小为1024,运行7200步,之后我们切换到2048的常规批量大小(颜色从黑色变为蓝色)。在步骤7200,批量大小的变化表现为验证损失中的可见曲率变化。剩余的大部分训练都表现稳定,训练和验证损失减少。在第115500步之后的后期阶段,当我们观察到验证损失持平或增加时,需要进行干预。然后,我们依次应用以下纠正性修改:

•    步骤115500(蓝色到橙色):将学习率降低到三分之二

•    步骤129900(橙色到绿色):将学习率减半,并加上dropout(概率为0.1)

•    步骤137100(绿色到红色):再次将学习率减半

基于验证损失方面缺乏可观察到的进展,我们在步骤146000结束了运行。基于验证损失和下游评估,我们在步骤139200选择检查点作为最终模型。

5    评估

我们评估了BloombergGPT在两大类任务上的性能:金融领域任务和通用领域任务。金融任务有助于我们检验我们的假设,即对高质量金融特定数据进行训练将在金融任务中产生更好的结果。通用任务调查我们模型的性能是否与之前公布的结果直接可比。对于财务任务,我们收集了公开可用的财务数据集,其中包括一系列NLP任务。然后,为了直接测试BloombergGPT在感兴趣的Bloomberg任务上的能力,我们还包括了从Bloomberg内部高质量评估集中提取的任务,用于情绪分析和命名实体识别。对于通用任务,我们从多个现有的基准和小组结果中得出以下类别:BIG bench Hard、知识评估、阅读理解和语言任务。每种类型的任务数量和组的定义如表5所示。

表5:评估基准。我们在一组高覆盖率的标准基准上评估BloombergGPT,这些基准评估下游性能,取自HELM、SuperGLUE、MMLU和GPT-3套件。由于它们有显著的重叠和/或相互包含,我们将它们重组为此处所示的类别。我们只对每个数据集的一个设置进行评估。我们进一步评估了BloombergGPT的一系列内部和公共金融任务。

我们将BloombergGPT与§7中描述的三个最接近的模型(根据模型大小、训练数据类型、总体性能,以及最重要的可访问性)进行了比较。表6提供了模型规模和计算量的概述。

表6:评估模型队列。OPT和BLOOM都有多种规格可供选择,我们会报告我们评估过的规格。我们注意到,模型之间的计算量只有部分可比性:例如,BLOOM的训练数据只有1/3的英语,OPT重复了一些训练数据。我们随时报告GPT-3结果,但由于缺乏可用性,我们没有自己运行。

1. GPT NeoX(Black et al.,2022):根据Liang et al.(2022),该模型是50B参数下性能最好的可用模型。

2. OPT-66B(Zhang et al.,2022a):我们选择与OPT66B进行比较,因为我们的模型大小和结构大致匹配,尽管我们的模型较小。

3. BLOOM-176B(Scao et al.,2022):虽然这个模型比BloombergGPT大得多,但我们使用相同的模型架构和软件堆栈。我们注意到BLOOM176B是多语言的,所以虽然它要大得多,但它也基于来自更多语言的数据进行训练。

这三个模型都使用了一些与我们在训练语料库中使用的通用数据集相同的数据集。只要外部可用,我们也报告原始GPT-3(Brown等人,2020)的结果。(注释2:另一个规模相当的相关通用模型(LLaMA,Touvron et al.,2023)在本手稿的准备过程中发布,但第三方评估结果无法获得,我们也没有收到模型权重的访问权限。)

我们更喜欢自己运行模型,以确保相同的评估设置,并且我们将其他地方报告的、没有由我们运行的任何结果放在一个单独的组中。为了公平地比较模型,我们避免对提示和其他技术进行任何调整,这些调整可能会导致某些(但不是所有)模型的结果得到改善。因此,每个任务都是通过“标准”提示进行测试的(如表7所示),即在没有对基础模型进行任何参数更改的情况下,没有任务描述,也没有思维链提示(Wei et al.,2022b)。呈现给模型的few-shot示例的数量取决于任务,我们在相应的章节中包括了这些细节。对于每组结果,我们进一步给出了一个类似于Liang等人(2022)的获胜率,它代表了在我们自己进行评估的所有模型对之间对单个任务进行的side-by-side比较中“获胜”的分数。

表7:我们在金融领域评估的不同任务的模板

5.1 Few-shot方法

对于给定了一组候选者的任务,我们执行基于可能性的分类,遵循Brown等人(2020)。我们考虑三种分类方法:常规、校准和归一化。正式地

•    Regular:\arg{\max}_\alpha p(\alpha|\mathbf{s})

•    Calibration:\arg{\max} _{\alpha} p(\alpha|\mathbf{s}) / p(\alpha|\text{“Answer:”})

•    Normalization:\arg{\max}_\alpha p(\alpha|\mathbf{s}) / \textrm{len}(\alpha)

其中,α是候选者,\mathbf{s}是上下文,len测量sub-word tokens的数量。我们报告了每个模型和任务的最佳方法的性能。对于其他任务,我们通过贪婪解码执行生成。

我们尽可能使用官方的划分并报告测试集的性能。如果测试标签不公开,我们会报告开发集的性能。如果数据集的官方划分不存在,我们通过选择20%的示例作为测试,其余作为训练来创建训练和测试划分。所有少样本上下文示例都是从训练集中采样的。为了减少少样本评估的方差,我们为每个测试样本采样不同的shots,除非另有说明。为了一致性,对于每个测试示例,所有模型都有相同的表面形式(identical surface form)作为我们评估的输入。

5.2    Heldout损失

我们首先测试BloombergGPT对分部内财务数据的语言分布建模的效果(how well BloombergGPT models the language distribution of the indistribution finance data)。我们在heldout数据集上评估不同模型的每字节比特数(bits per byte),该数据集包含的示例来自FinPile的所有的节(如§2所述)(that contains examples from all sections of FinPile)。

为了限制数据泄露并更好地模拟LLM的真实世界使用,我们选择了一个strictly further in the future than the training set的临时heldout数据集,并在训练集和heldout集之间执行重复数据消除。在评估过程中,对于长度超过2048个token的文档,我们使用半窗口大小作为上下文的滑动窗口方法。这意味着超过第一个2048的任何token在预测期间具有至少1024个token作为上下文。我们在FinPile中按文件类型报告损失明细。

图3显示BloombergGPT始终优于其他模型。虽然这是意料之中的,主要用作健全性检查,但它也为其他模型的泛化能力提供了宝贵的见解。例如,与BloombergGPT的差距在Filings类别中最为显著,这可能是因为这些文档虽然是公开的,但通常是PDF格式的,因此不包括在任何现有的数据集中。

图3:FinPile中每种数据类型的heldout测试集上的每字节比特数(Bits per byte,越低越好)。这些文档被heldout,并和训练集去重,这样BloombergGPT就完全看不到所有这些文档。无论如何,我们观察到模型之间存在很大差距。对于像Filings这样的专业领域文档,改进幅度最大。

5.3    金融任务

金融学中最常考虑的NLP任务在更广泛的NLP文献中也很常见;但是,这些任务在对财务数据执行时具有不同的特点和挑战。以情绪分析为例,“公司将裁员10000人”等标题描绘了一般意义上的负面情绪,但有时可以被视为对公司的财务情绪是积极的,因为这可能会导致股价或投资者信心的上升。我们结合使用公共和内部基准来评估BloombergGPT、BLOOM176B、GPT-NeoX和OPT66B的性能。所考虑的所有任务类型及其相应的提示模板如表7所示。

表7:在金融领域评估的不同任务的模板。

5.3.1    外部金融任务

我们的公共金融基准包括来自FLUE基准(Shah et al.,2022)和ConvFinQA数据集(Chen et al.,2021)的四项任务。由于LLM在大多数财务任务中的表现尚未得到广泛报道,因此没有标准的测试框架。因此,我们将其调整为few-shot设置(见第5.1节)。我们设计实验的指导原则是选择shots数量,使所有模型的平均性能最佳。虽然这些任务可以使用非LLM数量的自定义模型,但由于评估设置的差异,我们在此不报告这些模型。因此,我们的报告仅限于LLM的比较。我们对以下任务进行评估(更多细节见附录B):

•    FPB(Malo et al.,2014):金融短语库数据集包括对金融新闻句子的情感分类任务。任何可能对投资者有利/有害的消息都被认为是正面/负面的,否则是中性的。我们创建了自己的划分,并在5-shot设置中报告F1 score weighted by support。

•    FiQA SA(Maia et al.,2018):第二项情绪分析任务是预测英语财经新闻和microblog头条中的特定方面情绪,这些新闻和microblog标题是作为2018年金融问答和意见挖掘挑战的一部分发布的。原始数据集在连续尺度上进行注释的(annotated on a continuous scale),我们将数据离散化为具有负类、中性类和正类的分类设置。与FPB一样,我们创建了自己的划分,包括microblog和news,并使用5-shot设置,报告加权F1。

•    Headline(Sinha和Khandait,2020):这是一项二分类任务,用于判断黄金商品领域(gold commodity domain)的新闻标题是否包括某些信息。这个人工注释的数据集由关于“黄金”的英文新闻标题组成。每一篇新闻文章都有以下标签的子集:“价格与否”、“价格上涨”、“物价下跌”、“稳定价格”、“过去价格”、“未来价格”、“past general”、“future general”和“资产比较asset comparison”。我们使用官方文档将每个标签表述为一个问题,使用5-shot,并报告所有类别的平均加权F1得分。

•    NER(Salinas Alvarado et al.,2015):这是一项命名实体识别任务,针对从向美国证券交易委员会提交的金融协议中收集的用于信用风险评估的金融数据。注释实体类型遵循标准CoNLL格式(Tjong Kim Sang和De Meulder,2003),并用PER、LOC、ORG和MISC进行注释。由于在few-shot设置中学习预测空输出是nontrivial的,我们放弃了不包含任何实体的句子。由于定义不明确,我们进一步删除了MISC标签。所有模型都需要更多的shots才能表现出色,因此我们选择了20-shot并报告实体级别(entity-level)的F1分数。

•    ConvFinQA(Chen et al.,2022):给定标准普尔500指数盈利报告的输入,其中包括文本和至少一个财务数据表,任务是回答需要对输入进行数字推理的对话问题。这项任务需要数字推理、对结构化数据和财务概念的理解,并且模型需要将后续问题与对话转折(dialog turns)联系起来。

对于ConvFinQA,我们使用了一个完整的黄金对话,它的上下文被用作模型的输入。当对话的每一个“turn”结束时,“turn”以及该turn的答案都会被附加为未来转折的上下文。我们在公共开发集上报告了精确的匹配精度。

BloombergGPT在五项任务中的四项(ConvFinQA、FiQA SA、FPB和Headline)的所有模型中表现最好,在NER中排名第二(表8)。因此,BloombergGPT在我们测试的所有模型中的胜率也是最高的。对于ConvFinQA来说,与同等大小模型的差距尤其明显,这是一项具有挑战性的工作,因为需要使用对话输入来对表格进行推理并生成答案。

表8:金融领域任务的结果。

5.3.2    内部任务:情绪分析

对于Bloomberg的内部任务,我们考虑特定方面的情绪分析,这在金融文献中很普遍。我们使用的所有数据集都是英文的。

我们的标注过程包括一个发现阶段(discovery phase),在此阶段,我们建立标注和采样程序,了解每个示例通常需要多少标注人员(annotators),并确定标注人员所需的训练水平(Tseng et al.,2020)。根据任务的复杂性,我们的标注人员是Bloomberg的一个专门的财务专家团队、顾问员工,或两者结合。在每种情况下,联系都是通过额外标注人员的裁决来解决的(ties are resolved by adjudication from additional annotators),不明确的例子也被排除在外。本节中的所有数据集都由2个标注人员进行了标注,第三个标注人员打破了任何联系( breaking any ties)。

与外部数据集类似,我们使用5-shot评估来测量内部数据集的LLM性能。由于数据集很大,我们最多随机抽取1k个测试示例。我们报告按每个标签的支持度加权F1。请注意,与外部数据集类似,我们的内部数据集中使用的数据的未标记版本很可能出现在FinPile中,因此BloombergGPT在训练期间可以看到。然而,由于一些FinPile也可以在网络上获得,我们比较的其他LLM可能也已经在该数据的未标记版本上进行了训练。表9提供了数据集统计数据。

表9:Bloomberg内部情绪分析任务概述。输入token数和标签分布数是在测试集上计算的。

•    股市新闻情绪(Equity News Sentiment):这项任务是预测新闻报道中对公司表达的特定方面的情绪。该数据集由Bloomberg的英文新闻报道、高级新闻报道和网络内容组成。“正面”、“负面”或“中性”的注释表明,新闻报道可能会增加、减少或不会改变投资者对公司的长期信心。

•    股市社交媒体情绪:这项任务类似于“股市新闻情绪”,但我们使用的不是新闻,而是与财务相关的英语社交媒体内容。

•    股市成绩单情绪:这项任务也类似于“股市新闻情绪”,但我们使用的不是新闻,而是公司新闻发布会的成绩单。通过使用语音识别,有时还通过人工编辑,可以获得转录本。长转录物被分块处理,我们数据集中的每个块通常包含70到80个token。

•    ES新闻情绪:虽然这项任务是预测新闻报道中对公司(方面)表达的特定方面的情绪,但目标不是表明对投资者信心的影响。如果新闻报道包含反映公司环境和社会政策的好、坏或中性新闻的内容,则这些报道被注释为“正面”、“负面”或“中性”。

•    国家新闻情绪:这项任务与其他情绪任务的不同之处在于,其目标是预测新闻报道中对一个国家表达的情绪。该数据集由Bloomberg的英文新闻报道、高级新闻报道和网络内容组成。如果新闻报道暗示了该国经济的增长、萎缩或现状,则这些报道被注释为“积极”、“消极”或“中性”。

表10显示,在四个内部方面特定的情绪任务中,BloombergGPT的表现比所有其他测试模型都要好,差距很大。这些模型唯一表现相似的任务是社交媒体情绪任务,而BloombergGPT在其他三个模型中的表现至少优于其他模型25分,最高超过60分。

表10:内部特定方面情绪分析数据集的结果。BloombergGPT在情绪分析任务上远远优于所有其他模型

5.3.3    探索性任务:NER

尽管NER是一项公认的NLP任务,使用BERT (Wu和Dredze,2019)、Luoma和Pyysalo(2020)以及T5等人( Liu,2022)风格的模型取得了最先进的结果,NER在很大程度上是生成LLM尚未探索的任务。HELM( Liang,2022)等人中没有NER,BIG bench (Srivastava等人,2022年)中有一项(波兰语)任务,我们研究的LLM论文中没有一篇报告NER性能。因此,鉴于NER任务在金融领域的重要性,我们将其视为一项探索性任务,并报告初步NER结果。

对于生成性LLM来说,NER可能是一项艰巨的任务,这有几个原因。NER是一项信息提取任务,更适合于编码器-解码器或仅编码器架构。LLM的生成性并没有给NER带来优势。我们发现,与其他任务相比,NER需要大量的prompt工程和更多的shots才能获得合理的结果。特定于财务的NER有一些微妙之处,这使得zero-shot或 few-shot学习变得特别困难。

例如,考虑一下(捏造的)标题"Bloomberg: Mr. Musk adds new features to Twitter and comments on China"。根据我们的注释指南和下游任务需求:(a)报道新闻机构“Bloomberg”是否可以被标记,这取决于我们是否只想要显著实体,(b)"Mr. Musk"或仅仅是"Musk"是要被标记的PER,(c)“"Twitter"”可以被标记为ORG或PRD(产品),因为features are added to the Twitter product and not the organization,和(d)“China”可以标记为ORG或LOC,尽管正确的标记可能是ORG。如果没有在提示中添加广泛的注释指南,LLM就不知道预期的标记行为(intended tagging behavior)。

基于初步测试,我们确定了以下设置,以在所有模型的内部NER任务中获得最佳性能。首先,我们将要预测的实体类型限制为ORG、PER和LOC。总的来说,我们过滤掉的实体不到1%。我们还删除了所有不包含实体的文档(即所有“O”)。这两种修改都是为了增加few-shot提示中所见例子的有用性。我们预计,在NER的提示工程方面的进一步工作可以产生更好的结果。

我们考虑了来自不同领域的七个Bloomberg内部NER数据集。

•    BN NER:这是一项命名实体识别任务,针对2017年至2020年间Bloomberg英文长篇新闻内容(“BN wire”)中出现的实体。

•    BFW NER:与“BN NER”类似,但我们在2018年至2020年间使用了“Bloomberg First Word”中的short-form stories,而不是使用long-form BN wire。

•    FilingsNER:这项任务的目标是识别公司提交的强制性财务披露中出现的实体。该数据集包含2016年至2019年间采样的文件。

•    Headlines NER:本任务的目标是识别Bloomberg英文新闻内容头条中出现的实体。该数据集包含2016年至2020年间的头条新闻样本。

•    Premium NER:本任务的目标是识别Bloomberg获取的第三方英语新闻内容子集中出现的实体。数据集包含2019年至2021之间采样的stories。

•    Transcripts NER:本任务的目标是识别公司新闻发布会成绩单中出现的实体。该数据集包含2019年的转录本。

•    社交媒体NER:这项任务的目标是识别英语社交媒体内容中出现的与财务相关的实体。该数据集包含2009年至2020年间采样的社交媒体内容。

由于我们的数据集是substantive,我们从每个过滤的内部数据集中随机抽取4000个训练和500个测试示例。我们使用20-shot提示,并使用F1进行评估。内部NER任务的结果喜忧参半(表12)。更大的BLOOM176B赢得了大部分NER任务。相当体量模型中(Of the like-sized models,编者注,应该包含BLOOM176B),BloombergGPT拿到1次第1名(Headlines),4次第2名(BN、Premium、Transcripts、Social media),1次第3名(BFW),1次垫底(Filings)。

表12:内部NER和NED数据集的结果。在NER方面,虽然更大的BLOOM176B模型的表现优于所有其他模型,但所有模型的结果都相对接近,BloombergGPT的表现优于其他两个模型。在NER+NED上,BloombergGPT的表现大大优于所有其他模型。

探索性任务:NER+NED    命名实体歧义消除(Named entity disambiguation,NED)将实体提及链接到知识库或其他结构化信息源中的已知实体(links entity mentions to known entities in knowledge bases or other structured information sources.)。在金融界,我们试图将公司的文本提及(text mentions of companies)与其股票代码联系起来,股票代码是一种缩写,可以唯一识别特定股票市场上特定股票的公开交易股票。

我们通过评估NER+NED联合任务来直接测试LLM完成这项任务的能力:识别文件中提到的公司的股票行情。这需要模型首先识别公司提及(company mentions),然后生成相应的股票行情。例如,给定“AAPL宣布他们将在未来的产品中停止使用英特尔芯片”。正确的NER输出将是“AAPL,英特尔”,而正确的NER+NED输出将是”AAPL,INTC“。

该任务的优点之一是,它对提取精确文本跨度的变化具有鲁棒性(robust to variations in extracting the exact text span)。虽然NER评估需要精确匹配,但可以在不首先识别跨度的情况下成功生成tickers(tickers may be successfully produced without first identifying spans)。此外,它还评估了模型对公司的知识、公司的各种表面形式以及公司到股票行情的映射。

我们通过在每个领域的Bloomberg内部NER注释文档上为财务数据中的公司运行最先进的实体链接系统,为该任务创建具有链接报价器的评估数据。我们删除没有链接股票代码的文档。在我们的NER评估之后,我们从每个过滤的内部数据集中随机抽取4000个训练和500个测试示例。我们使用20-shot提示,并使用F1进行评估。

表12显示,BloombergGPT在很大程度上优于所有其他模型,但在社交媒体数据上,它排名第二,仅次于BLOOM176B。在我们的社交媒体数据中,公司经常被其股票代码引用,从而取消了模型链接提及的要求,并将任务恢复为NER。这些结果进一步强调了BloombergGPT在财务任务方面的优势。

5.4    BIG-bench Hard

现在我们来评估标准通用NLP任务上的BloombergGPT。虽然我们模型的重点是财务任务,但我们纳入通用训练数据不仅有助于改进财务任务,还可以使我们的模型在更标准的NLP数据集上表现良好。我们从BIG bench Hard(Suzgun et al.,2022)开始,这是BIG bench中最具挑战性的任务的子集(Srivastava et al.,2021)。它只包括构建时的最佳可用模型无法通过标准提示技术实现高于平均人工评分者的性能的任务。

每个任务的结果如表13所示。总的来说,虽然BloombergGPT落后于更大的PaLM540B(10倍参数)和BLOOM176B(3.5倍参数),但它是同类型号中性能最好的。事实上,它的性能更接近BLOOM176B,而不是GPT NeoX或OPT66B。它进一步实现了所有模型在日期理解、hyperbaton(形容词排序)和跟踪混乱对象方面的最佳性能。总之,根据这个基准,我们发现开发特定于财务的BloombergGPT并没有以牺牲其通用能力为代价。

表13:使用标准的3-shot提示的BIG-bench hard结果。根据Suzgun等人(2022)的惯例,我们用上标λ表示算法任务,并给出NLP和算法类的平均值。PaLM540B(Chowdhery et al.,2022)的基线数字取自BBH的原始论文

5.5    知识评估

接下来,我们通过让模型在不提供额外上下文或资源的情况下回答问题的场景(闭卷问答)来评估知识,我们将其定义为回忆模型训练期间看到的信息的能力。这包括多项选择题,我们报告准确性。我们遵循Brown等人(2020)的模板。场景列表如下:

•    ARC(Clark et al.,2018):从3至9年级的科学考试中收集的多选题,包括简单的、有挑战性的划分。

•    常识QA(Talmor等人,2019):多选QA数据集,需要不同类型的常识知识。

•    MMLU(Hendrycks等人,2021):手动收集57个学科的多项选择知识问题。

•    PhysicalQA(PiQA,Bisk等人,2020):关于物理世界如何运作的问题。

BloombergGPT在一项任务中的性能在BLOOM176B、GPT-NeoX和OPT66B中最高,在其他三项任务中排名第二(表14)。与上一节类似,它的性能优于类似尺寸的模型,同时几乎与更大的模型不相上下。大规模多任务语言理解(MMLU,Hendrycks等人,2021)涵盖57个不同的学科,因此比上述任务的覆盖面更广。表15中的汇总结果描绘了一幅更加一致的画面,并遵循了BIG bench hard中看到的见解。BloombergGPT始终优于OPT66B,而OPT66B又优于GPT-NeoX,而GPT-3表现最好。不同于前几节,BloombergGPT在这一类别中的表现优于BLOOM176B,尽管差距很小。它落后于GPT-3的报告表现,尤其是在社会科学领域。在STEM和“其他”领域(包括财务和会计相关问题),与GPT-3的差距最为接近。

表14:知识任务1-shot结果。GPT-3的基线数据取自Brown等人(2020)。所有模型中,BloombergGPT在我们自己运行的模型中获胜率(win rate)最高,平均表现第二。
表15:MMLU(Hendrycks等人,2021)基准的结果(5-shot)。GPT-3的基线数据取自Hendrycks等人(2021)。虽然BloombergGPT在其中三个类别上落后于BLOOM176B,但它的平均值是我们自己评估的所有模型中最高的。在社会科学领域与GPT-3的差距最大,而在其他领域的表现则很接近。

5.6    阅读理解

我们将阅读理解基准定义为模型可以根据输入文本中包含的信息生成正确答案的任务。我们的分组包括开卷QA任务,而Brown等人(2020)将其分为不同的类别。我们遵循Brown等人的模板。(2020),并报告准确性。我们包括以下任务:

•    BoolQ(Clark et al.,2019):对维基百科上的一段文章提出是/否问题。

•    OpenBookQA(Mihaylov et al.,2018):多选初级科学问题,给定一本科学事实书,应用于新情况。

•    RACE(Lai et al.,2017):中学和高中英语考试的多选数据集。

•    多句阅读理解(MultiRC,Khashabi et al.,2018):短文和多句问题。

•    阅读理解与常识推理(ReCoRD,Zhang et al.,2018):自动生成关于CNN和《每日邮报》新闻文章的问题。

表16反映了与上述评估类似的排名:虽然GPT-3的性能最高,但BloombergGPT紧随其后。除OpenBookQA外,BloombergGPT的性能在BLOOM176B、GPT-NeoX和OPT66B中最高。令人惊讶的是,BLOOM176B在这一类别中明显落后。

表16:阅读理解成绩(1-shot)。GPT-3的基线数据取自Brown等人(2020)。BloombergGPT远远超过了我们自己评估的模型,略微落后于GPT-3。

5.7    语言任务

我们将那些与用户应用程序没有直接联系的场景定义为语言任务。其中包括评估消除歧义、语法或暗示的任务(disambiguation, grammar, or entailment)。这些任务旨在直接评估模型理解语言的能力。我们遵循Brown等人的模板。(2020),并报告准确性。任务列表如下:

•    识别文本含义(RTE,Dagan等人,2007;Haim等人,2006年;Giampicolo等人,2007年;Bentivogli等人,2009年):给定两个文本片段,确定是否包含一个文本的含义。(Given two text fragments, identify whether the meaning of one text is entailed.)

•    对抗性NLI(ANLI,Nie et al.,2020):对抗性构建的隐含检测。(Adversarially constructed entailment detection.)

•    CommitmentBank(CB,De Marneffe et al.,2019):自然发生的话语,其最后一句包含嵌入谓词的从句。(Naturally occurring discourses whose final sentence contains a clause-embedding predicate.)

•    合理备选方案的选择(COPA,Gordon et al.,2011):前提和两个备选方案,其中的任务是选择与前提更有因果关系的备选方案。(Premise and two alternatives, where the task is to select the alternative that more plausibly has a causal relation with the premise.)

•    上下文中的单词(WIC Pilehvar和Camacho Collados,2019):确定一个单词在两个句子中是否使用相同的含义。(Determine if a word is being used with the same meaning in two sentences.)

•    Winograd(Levsque et al.,2011):当代词语义明确时,确定它指的是哪个词。

•    Winograde(Sakaguchi等人,2019):对抗性挖掘的具有挑战性的Winograd实例。

•    HellaSWAG(Zellers等人,2019):为一个故事或一组指令选择最佳结尾。

•    StoryCloze(Mostafazadeh et al.,2016):为五句长的故事选择正确的结束句。

语言任务的结果(表17)与知识类别的趋势相似。BloombergGPT略微落后于GPT-3,表现优于其他型号。与阅读理解类别类似,BLOOM176B落后于BloombergGPT。

表17:语言场景的结果(1-shot)。GPT-3的基线数据取自Brown等人(2020)。 获胜率和平均值仅根据准确度数字(accuracy numbers)计算。BloombergGPT在我们评估的模型中始终得分最高,胜率达到85%

5.8    概述

在许多基准中的数十项任务中,出现了一幅清晰的画面。在我们比较的具有数百亿个参数的模型中,BloombergGPT表现最好。此外,在某些情况下,它具有竞争力或超过了更大模型(数千亿个参数)的性能。虽然我们对BloombergGPT的目标是成为财务任务的最佳模型,并且我们包含了通用训练数据来支持特定领域的训练,但该模型在通用数据上仍然具有超过类似大小模型的能力,在某些情况下与更大的模型相匹配或优于更大的数据。

6    定性例子

我们现在分享我们模型中的定性例子,这些例子突出了我们领域专业化的好处。

彭博查询语言的生成。    BloombergGPT的一个用例是使与财务数据的交互更加自然。现有的检索数据的方法是通过彭博查询语言(Bloomberg Query Language,BQL)。BQL可用于与不同类别的证券进行交互,每种证券都有自己的字段、函数和参数。BQL是一个非常强大但复杂的工具。如图4所示,BloombergGPT可以通过将自然语言查询转换为有效的BQL来提高BQL的可访问性。

图4:使用BloombergGPT生成有效的彭博查询语言。在few-shot设置中只使用几个例子,该模型可以利用其关于股票行情和金融术语的知识,在给定自然语言请求的情况下,组成有效的查询来检索数据。在每种情况下,模型都会给出3个示例(未显示),后面跟着“Input”和“Output:”的提示。

新闻标题的建议    其他得到很好支持的用例在新闻空间中。由于它是针对许多新闻文章进行训练的,因此可以用于许多新闻应用程序,并帮助记者进行日常工作。例如,在撰写时事通讯时,记者可能必须为每个新的部分写下简短的标题。虽然帮助完成这项任务的专用模型可能过于昂贵,无法维护,但BloombergGPT的开箱即用表现良好(图5)。

图5:使用BloombergGPT在3-shot设置中生成短标题建议。彭博新闻社每天发送许多需要这些头条新闻的时事通讯。BloombergGPT可以通过从文本中建议初始标题来帮助编辑过程。

财务问答。    由于金融领域的训练数据,我们能够查询BloombergGPT以获取与金融世界相关的知识。例如,它在识别公司首席执行官方面表现良好。图6显示了几个示例,包括其他模型的输出。虽然BloombergGPT正确地识别了首席执行官,但GPT-NeoX没有,FLAN-T5-XXL完全失败了,始终忽略了公司,而是预测了Cirrus Logic的首席执行官。虽然BloombergGPT不能完美地解决这项任务,并且会出错,但我们无法找到任何其他模型解决了这项任务而BloombergGPT没有解决的例子。

图6:测试BloombergGPT、GPT-NeoX和FLAN-T5-XXL召回公司CEO姓名的能力。每个模型都在10-shot设置中运行。 我们最多抽取三个答案,如果答案不正确,我们会显示所有答案。 *Michael Corbat在2021前担任花旗集团(Citigroup)CEO。这强调了模型时效性的重要性。

7    相关工作

语言模型。    语言建模在NLP社区有悠久的历史。训练概率语言模型对单词序列进行评分的想法可能由Jelinek(1976)首次提出。N-gram模型流行了几十年(Brown等人,1992),并在多达2万亿个token的语料库进行训练(Brants等人,2007)。由于机器学习、数据可用性和计算方面的创新,过去十年中,训练语言模型的研究加速了。自回归语言建模的早期工作(例如,Mikolov等人,2010;Sutskever等人,2011)用递归神经网络,但都是在小数据集上训练的小模型。Transformer架构的引入(Vaswani et al.,2017)促进了这些模型在数据、计算和参数数量方面的缩放。

开发可以更好近似大型语料库中语言分布的模型的过程,导致发现这些模型产生的表示是许多下游任务的有用起点。Radford等人(2018)以及Howard和Ruder(2018)证明了这一点,他们表明,具有自回归语言建模目标的生成预训练在迁移学习中取得了很强的性能。Radford等人(2019)进一步表明,缩放模型大小和训练数据会导致自回归语言模型在不同的下游任务中表现良好,而无需任何额外的监督微调。

Brown等人(2020)表明,模型的进一步扩展导致了新模型能力的出现和模型稳健性的提高。自Brown等人发布GPT-3以来,许多其他研究人员建立了大型语言模型来研究数据量、数据质量、网络架构、参数缩放、数据缩放、Tokenizer,和开源战略(Raffel等人,2020年;Zhang等人,2022a;Black等人,2022年;Rae等人,2021;Hoffmann等人,2022.Chowdhery等人,2022,Lieber等人,2021;Zeng等人,2022:Tafjord和Clark,2021;Smith等人,2022.Scao等人,2020;Sanh等人,2022;Roller等人,2021;Glaese等人,2022.Wang等,2021;Peng等人,2022等)。

特定于领域的大型语言模型。    掩码(仅编码器)语言模型的领域特定训练的价值已经得到了很好的证实。通常接受的方法是在特定领域的数据上从头开始训练BERT模型(Devlin et al.,2019),或者在新的特定领域数据上继续预训练现有模型(Gururangan et al.,2020)。根据这些策略,BioBERT(Lee et al.,2020)将BERT应用于生物医学领域,SciBERT接受科学出版物训练(Beltagy et al.,2019)。这些论文的结果表明,领域内训练使模型在各种生物医学文本挖掘任务中的表现优于以前最先进的模型。这种范式的进一步例子是临床领域的ClinicalBERT(Huang et al.,2019),科学生物医学论文的BioMedRoBERTa(Gururangan et al.,2020),以及Twitter数据的BERTweet和Bernice(Nguyen et al.,2017;DeLucia et al.,2022)。

由于超过10B参数的仅自回归解码器语言模型的训练比在1B参数下训练掩蔽的LM成本高得多,因此领域特定自回归模型的例子少得多。然而,现有的方法遵循相同的两种策略。Adapting现有模型,medPaLM(Singhal等人,2022)将PaLM应用于生物医学领域,Minerva(Lewkowycz et al.,2022)应用于数学推理任务。

最近,出现了几个针对特定领域数据的从头开始训练的仅解码器模型的例子。一个流行的领域是蛋白质序列,因为它们可以用类语言序列表示,但不被自然语言模型覆盖(例如,Lin等人,2022;Xiao等人,2021;Nijkamp等人,2022.)。然而,即使是在自然语言领域中的模型也有好处。Galactica专门在大量科学数据集上进行训练,并包括处理科学符号的特殊处理(Taylor et al.,2022)。尽管Galactica在科学任务上表现出色,但令人惊讶的是,它在更标准的NLP任务上也表现出色。BioGPT(Luo等人,2022)和BioMedLM(Bolton等人,2023)都是在生物医学数据上训练的较小的GPT类型的模型。Lehman等人(2023)比较了专门针对领域特定数据训练的编码器/解码器模型与根据通用训练adapted的编码器/解码器模型。研究大型生成性语言对话模型的研究人员就使用特定领域训练数据的益处得出了类似的结论(Zhang等人,2020年;Roller等人,2021;Thoppilan等人,2022年)。

这些发现突出了域内预训练的优势,尤其是在有足够数据可用的情况下,就像我们的情况一样。受Galactica通用功能的启发,我们用公共数据增强了我们的私有数据,目的是研究模型是否可以在不牺牲通用域性能的情况下获得域内功能。

训练数据。    原始文本数据的大型语料库对于LLM的训练至关重要。因此,现在有几个语料库可供使用,涵盖了广泛的来源。

Colossal Clean Crawled Corpus(C4,Raffel et al.,2020)借鉴了Common Crawl来创建经过处理的训练语料库。The Pile是一个精心策划的语料库,包含广泛的数据源Gao等人(2021)。这些数据集建立在或包括网络爬虫(OpenWebText2)上,并添加了来自高质量来源(Pubmed,Arxiv)的一系列数据。各种努力旨在通过删除不需要的或有害的文本来清理数据集,尤其是网络数据(Touvron等人,2023;Rae等人,2020)。BLOOM Scao等人(2022)仔细选择了数据源,并包括了各种过滤机制Jernite等人。(2022)。

虽然网络数据是获取大量不同数据的有效策略,但强大的清理工作仍会导致数据伪影,重复Carlini等人(2020年)、各种有毒语言Welbl等人(2021),并可能导致少数民族声音的无意边缘化(Xu等人,2021)。Dodge等人(2021)研究了C4,以更好地理解元数据以及包含和排除的数据。他们的发现表明,C4包含机器生成的文本,由于滤除器而有偏见,并且可能包含从NLP任务的评估数据集中提取的示例。Zeng(2022)等人也做出了类似的努力,记录了他们为训练汉语大语言模型而进行的预处理。

Lee等人(2022a)研究了重复数据消除对几个数据集的模型性能的影响,发现重复数据消除减少了存储的训练数据的排放,允许更好地估计泛化误差,并在不影响性能的情况下提高了训练时间和成本。这些见解突显了构建高质量训练语料库的重要性和挑战。如§2所述,Bloomberg的核心业务策划并提供对数据集的访问,我们使用这些数据集构建高质量的数据集FinPile来训练BloombergGPT,从而获得一流的金融领域的性能。

评估    语言模型所处理的任务已经大大增加,并且需要与传统的特定任务系统截然不同的评估过程。LLM评估有两种范式:第一种是在许多不同场景中自动评估(Liang et al.,2022;Srivastava et al.,2021),第二种是通过将其集成到用户工作流程中来执行外部和任务特定的评估(例如,Lee et al.,2022b;Goyal et al.,2020)。

虽然第二种策略对于评估产品中模型的部署是必要的,但很难像第一种策略那样的大规模来运行这些人工评估,因此在引入新模型时遵循第一种策略是标准的。在我们的案例中,我们结合了来自多个具有不同目标的现有基准的多个通用评估。Srivastava等人(2022)旨在通过向整个研究社区征集任务来实现最大覆盖率,而HELM(Liang et al.,2022)建议在通过特定数据集表示的各种“场景”中进行评估。早期的语言模型论文开发了自己的评估模式(Brown et al.,2020)。虽然这些基准可以在模型之间进行并排比较,但要确保所有实验参数(提示、解码策略、少镜头示例等)都是相同的,这是一项挑战。因此,我们在评估中区分了报告的数字和已验证的数字(§5)。

除了通用评估之外,我们还需要有针对性的领域评估。之前的领域特定模型,如 Galactica(Taylor et al.,2022),选择了一组模型可能表现良好的任务。在他们的情况下,这些是各种科学任务。然而,金融NLP领域没有标准的基准。虽然最近关于FLUE的工作(Shah et al.,2022)旨在提供这样一个基准,但它对相关任务的覆盖范围有限,没有针对few-shot学习的建议评估策略,并且一些注释的质量较低。为了提供外部可比较的结果,我们为FLUE开发了一个few-shot策略,但也决定用公司内部基准来补充公开可用的评估任务。

模型大小。    就计算成本和组装数据和训练模型的人力而言,大型语言模型训练仍然是昂贵的。为了资源的最佳利用,确定训练数据的最佳数量以及模型的形状和大小变得很重要。

Kaplan等人(2020)首次研究了语言模型性能对体系结构、参数大小、计算能力和数据集大小的依赖性。他们报告说,模型参数的数量、数据集大小和计算量根据幂律平滑地提高了自回归语言建模目标的性能。Hernandez等人(2021)对不同分布的数据传输进行的类似调查发现,这也遵循幂律。除了研究损失的影响外,Rae等人(2021)还通过训练各种模型尺寸,分析了规模对不良特性(如偏见和毒性)的影响。

比较模型架构,Levine等人(2020)研究了使用自注意的模型的缩放,并推导了深度到宽度分配的指导方针。Tay等人(2021)报告称,模型形状(深宽比)影响下游任务的性能,即使它对预训练目标的影响最小。Tay等人(2022a)进一步研究了缩放对不同模型架构的影响,并表明在缩放时架构选择是相关的,而vanilla Transformer架构的缩放效果最好。

对这项工作特别重要的是Hoffmann等人(2022)的研究,他研究了在给定固定计算预算的情况下,模型大小和训练token数量对模型性能的影响。他们认为,现有大型语言模型训练不足,模型大小和训练token数应该被同等地缩放。他们通过Chinchilla模型证明了这一假设, Chinchilla模型比大多数最大的LLM小得多,但性能更高。这些发现为小型模型的“Chinchilla最优”训练打开了大门,这些模型可以性能强大,并且推理可以比大型模型更高效。这些发现使我们考虑了一个使用标准架构的近乎Chinchilla最优模型。

Tokenization。    Tokenizer和词汇选择在模型性能中起着关键作用,因为它们可以帮助模型学习有意义的表示,并推广到看不见的单词。字节对编码(BPE)(Sennrich et al.,2016)通过反复合并训练集中最频繁的序列对,直到达到预定的词汇大小,来学习贪婪的自下而上的词汇。Radford等人(2018)通过将基本词汇限制为所有可能的字节,而不是所有Unicode字符,对BPE进行了调整。 Wordpiece Tokenizer(Schuster和Nakajima,2012)还通过反复合并序列对来学习贪婪的自下而上的词汇,从而最大限度地提高训练数据的可能性,这与Sennrich等人的方法略有偏差。(2016)。

与BPE和Wordpiece相比,Unigram标记器(Kudo,2018)通过首先初始化大型词汇表并重复丢弃那些增加损失最小的词汇表项(例如,训练数据的对数可能性)来学习自上而下的词汇表。通过构造,Unigram模型可以以几种不同的方式标记输入文本。也就是说,Unigram模型保存了概率,允许在推理时进行更智能的Tokenizer。

最后,Sentence Piece(Kudo和Richardson,2018)对上述方案进行了调整,以处理非空间分隔的语言。Beltagy等人(2019)构建了一个特定于科学文本的词汇,并观察到他们的特定领域训练词汇与在一般领域文本上训练的非特定领域BERT词汇只有42%的重叠。同样,Lewis等人(2020)表明,专门的生物医学词汇可以持续提高序列标记任务的性能。Lieber等人(2021)构建了一个更大的词汇表,以确保token效率,作者声称这导致了训练时间的减少和更好的语义表示。这些发现证明了选择最能反映训练领域的Tokenizer器和附带词汇的重要性。出于这些原因,我们决定训练自己的unigram标记器,而不是依赖现有的公共标记器。

位置嵌入。    基于Transformer的模型依赖于位置嵌入来编码文本中单词的position和location信息。对序列位置的编码以及这种选择对模型性能的影响已经得到了广泛的研究。其中包括正弦嵌入(Vaswani等人,2017年)、旋转位置嵌入(Su等人,2021)、添加相对位置偏差(Raffel等人,2020年)和添加注意头线性偏差(Press等人,2022年)。Press等人(2022)中策略的一个副作用是,可以在较短序列上训练,而不会在较长序列上损失性能。这有两个好处:首先,模型可以学习推广(外推)到更长的序列,其次,模型可以在更短的序列上训练,从而减少训练时间。

8    道德、限制和影响

随着大型语言模型的迅速发展和采用,人们对这些模型的伦理、用途和局限性进行了严格的讨论。为了更完整地处理这些主题,我们将读者引向Bommasani等人(2021);Bender等人(2021);Birhane等人(2022);Weidinger等人(2021、2022年)。我们讨论与BloombergGPT的发展直接相关的问题。

8.1    道德使用

金融是技术敏感领域,确保准确、真实的信息对我们的产品、客户和公司在市场上的声誉至关重要。另一方面,客户也渴望采用最先进技术来支持他们的工作流程。为了向金融界提供自然语言应用程序,我们制定了严格的风险和测试评估流程。这一过程包括仔细的注释指南Tseng等人(2020),由中央风险和合规组织以及产品领导者(如新闻编辑室)在多个层面进行发布前审查(如适用),以及发布后监测。此外,我们根据所有适用法规进行NLP和AI系统的研究、开发和部署。

同样,作为一家公司,我们在毒性和偏见方面对生产的任何内容都格外小心,无论是来自人类还是机器的内容。由于我们模型中毒性和偏见的测量取决于其应用领域,因此量化有害语言产生的可能性仍然是一个悬而未决的问题。我们特别感兴趣的是研究FinPile,它更干净,包含的公开偏见或有毒语言的例子更少(例如,新闻稿),是否降低了模型生成不适当内容的倾向。随着我们开发基于该技术的产品,我们将应用现有的测试程序以及风险和合规控制,以确保安全使用。

8.2    开放性

社区中正在进行的一场辩论涉及LLM应该如何发布(如果有的话)。虽然社区无法对未公开的模型进行全面评估,但发布模型可能会导致邪恶的目的。尤其是对于像BloombergGPT这样的模型,它是根据大量的新闻稿、新闻文章和文件进行训练的,一个版本通过模仿而被滥用的风险很高。

我们已经看到了许多不同的策略来减轻与LLM发布相关的风险。一种策略是自由公开地共享经过训练的模型Scao等人(2022),并依赖于一个许可证来决定如何使用该模型。另一个要求个人申请访问经过训练的模型参数Zhang等人(2022a);Touvron等人(2023)。一种更具限制性的方法是提供API对模型的访问权限,但无法访问基础模型参数或模型训练数据的详细信息(Brown等人,2020)。最后,一些人没有提供对Chowdhery等人模型的访问。(2022);Hoffmann等人(2022)。每个决策都反映了多种因素的组合,包括模型使用、潜在危害和商业决策。

Bloomberg的核心业务主张之一是提供对几十年来收集的数据的访问。众所周知,LLM容易受到数据泄露攻击,并且在给定模型权重的情况下,可以提取文本的重要片段。Carlini等人(2020,2022)。此外,即使有选择地接触研究人员,也不能保证模型不会泄露。如果没有强有力的隐私保障,我们必须担心,提供对模型权重的访问需要提供对FinPile的访问。出于这个原因,我们谨慎行事,并遵循其他LLM开发人员的做法,不发布我们的模型。

尽管如此,我们在训练和评估BloombergGPT方面的见解和经验有助于加深对这些模型的理解。特别是,我们的经验可能对那些构建自己的领域特定模型的人有用。在开发BloombergGPT的过程中,我们发现OPT chronicles、BLOOM团队的经验,以及GPT-3、PaLM、Chinchilla、Galactica和Gopher等非开放模型的工作,都是我们工作的关键推动者。

9    结论

我们介绍了BloombergGPT,这是一种用于金融NLP的一流LLM。

我们的模型为正在进行的关于训练领域特定模型的有效方法的对话做出了贡献。我们混合领域特定数据和通用数据的训练策略产生了一个平衡两个领域性能的模型。此外,我们的工作提供了另一个关于选择Chinchilla optimal-sized模型的数据点。最后,我们希望我们的模型训练日志将为那些训练自己的LLM的人提供指导。

我们有几个有趣的方向要追求。首先,任务微调使LLM得到了显著改进,我们计划考虑在金融领域存在哪些独特的模型对齐机会(Wei等人,2021;Ouyang等人,2022年)。其次,通过在FinPile中对数据进行训练,我们选择了可能表现出毒性较小和偏见较小的语言的数据。这对最终模型的影响尚不清楚,我们计划对其进行测试。第三,我们试图了解我们的Tokenizer策略如何改变最终的模型。这些是我们希望与BloombergGPT一起追求的一些新的研究方向。

我们在通用LLM基准方面取得了强劲的业绩,在财务任务方面优于可比模型。我们把这归因于(影响从大到小):1. 精心策划的内部数据集;2. 我们在tokenizer中的独特选择,以及3. 最新的体系结构。我们将继续与BloombergGPT一起开发金融应用程序,以进一步探索这些建模选择的好处。

致谢

感谢帮助我们的人,包括Emmanuel Scoullos(NVIDIA)和Can Karakus(亚马逊网络服务)。

附录

附录B外部财务任务的详细信息

FPB(Malo等人,2014):

金融短语库数据集包括一项情感分类任务,内容涉及约5000句英语句子,这些句子取自OMX赫尔辛基上市公司的金融新闻。积极、消极、中性的情绪注释是从投资者的角度来判断的:任何可能对投资者有利/有害的消息都被认为是积极/消极和中性的。每一句话都由5到8名具有足够金融知识的注释者进行注释,而原始句子则由金融记者撰写。例如,有关收入减少的新闻会被贴上负面标签,而公司增长则会被贴成正面标签。虽然该数据集有不同的配置,每个配置表示注释器之间的一致性百分比(≥50%,≥66%,≥75%,100%),但我们选择使用≥50%的配置。由于没有正式的列车测试划分,我们创建了自己的随机划分。我们的训练部分包含3876个句子,其中1086个是阳性句子,488个是阴性句子,2302个是中性句子,我们的测试集包含970个句子,包括277个是阳性、116个是阴性和577个中性句子。我们选择5次射门,并报告按支持度加权的F1得分。

FiQA SA(Maia等人,2018):

第二项情绪分析任务是预测英语财经新闻和微博头条中的特定方面情绪,这些新闻和微博标题是作为2018年金融问答和意见挖掘挑战的一部分发布的。在最初的任务中,情绪是以[-1,+1]的连续尺度进行注释的;关于注释任务的细节并不容易获得。为了使该回归数据集适用于少镜头LLM设置,我们将其转换为分类任务:阴性(−1≤x<−0.1)、中性(−0.1≤x<+0.1)和阳性(+0.1≤x≤+1),其中x是原始情绪得分。我们选择这种离散化是基于对数据集的手动检查。与FPB一样,我们将微博和新闻结合起来,创建自己的随机划分。离散化后,我们的训练集包含938个句子,其中576个是正句子,287个是负句子,75个是中性句子,我们的测试集包含235个句子,141个是正语句,76个是负语句,18个是中性语句。我们选择5个镜头并报告加权F1。

头条新闻(Sinha和Khandait,2020):

这是一个二元分类任务,用于判断黄金商品领域的新闻标题是否包含某些信息。这个人工注释的数据集由2000年至2019年的11412个英文新闻标题组成,这些标题是从路透社、《印度教徒报》、《经济时报》、Bloomberg等提供商以及Kitco和MetalsDaily等聚合网站上刮来的关于“黄金”的。每一篇新闻文章都有以下标签的子集:“价格与否”、“价格上涨”、“物价下跌”、“稳定价格”、“过去价格”、《未来价格》、“过去一般”、“未来一般”和“资产比较”。数据集是使用注释器一致性创建的,每个类别的Cohen Kappa≥0.85,表明是一个高质量的数据集。与FPB一样,我们创建自己的随机划分。我们的训练集包含9129个句子,分别有7780个、3785个、3392个、414个、7482个、299个、1285个、67个、1696个例子,分别是“价格与否”、“价格上涨”、“股价下跌”、“物价稳定”、“过去的价格”、“未来的价格”,“过去的一般”、“将来的一般”和“资产比较”类别。类似地,测试集包含2283个句子,其中1955、962、838、109、1873、82、313、15、454个是同一类的例子。我们使用每个标签的官方文档将每个标签表述为一个问题,如表18所示。我们使用了5次射门,并报告了所有类别的F1平均加权得分。

净入学率(Salinas Alvarado等人,2015):

这是一项针对为信用风险评估而收集的财务数据的命名实体识别任务。该数据集由8份向美国证券交易委员会提交的约55000字的金融协议文件组成。注释实体类型遵循标准CoNLL格式(Tjong Kim Sang和De Meulder,2003),并用PER、LOC、ORG和MISC进行注释。我们使用Fin-5作为训练数据,用于对Fin-3分割进行上下文采样和测试。由于MISC无法单独定义,但“名称不属于其他类别”(Tjong Kim Sang和De Meulder,2003),我们删除了所有MISC类型的实体。此外,由于在少数镜头设置中学习预测空输出是不重要的,我们放弃了不包含任何实体的句子。经过预处理,我们的训练集包含504个具有168 PER、745 LOC和241 ORG的句子,而我们的测试集包含98个具有39 PER、216 LOC和56 ORG的语句。我们发现所有模型都需要更多的镜头才能表现良好。因此,我们选择了20个镜头,并报告实体级别的F1分数。

ConvFinQA(Chen等人,2022):

给定一个包含文本和至少一个包含财务数据的表的输入,任务是回答需要对输入进行数字推理的对话问题。源数据是标准普尔500指数成分股公司的盈利报告,包括3892次对话,包括14115个问题。这项任务需要数字推理、对结构化数据和财务概念的理解,并且模型需要将后续问题与对话转折联系起来。为了解决这项任务,我们使用“1次射击”,将整个黄金对话及其上下文输入到模型中。此外,当对话的每个“转弯”结束时,“转弯”和该转弯的“黄金”答案都会作为未来转弯的上下文附加。表在上下文中被线性化(正如作者所建议的那样)为Markdown表,我们用“-”替换空条目。报告的分数是由模型产生的直接答案的精确匹配精度。由于测试集标签不是公开可用的,因此我们会报告开发集的结果。我们的训练集包含11104个对话和45888个问题,我们的测试集包含1490个对话和5932个问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容