前一篇文章,讲述了BloombergGPT的数据、模型与训练细节。具体可见:
这一篇总结下其余章节。
文章较长,可先查看要点后再查看感兴趣的章节。
要点
- 对BloombergGPT的评估包含了两部分:金融领域评估与通用领域评估
- 评估对比的其他大语言模型有GPT-NeoX、OPT、BLOOM、GPT-3
- 在金融领域任务上,BloombergGPT综合表现最好;在通用任务上,BloombergGPT的综合得分同样优于相同参数量级的其他模型,并且在某些任务上的得分要高于参数量更大的模型
- BloombergGPT模型在金融领域取得好效果的同时,并没有以牺牲模型通用能力为代价
- 对模型定性评估的结果表明,BloombergGPT可以提高工作效率
- 出于安全性的考虑,BloogbergGPT模型不会被公开,但是模型训练和评估的相关经验和思考会被分享出来
- 作者认为,对模型效果提升促进最大的三个因素(按影响从高到低排序)分别为精心清洗的数据集、合理的tokenizer、流行的模型结构
评估
文章中对BloombergGPT的评估分成了两部分:金融领域任务与通用任务。这样做的目的也比较直观,就是验证在特定领域预训练后的模型能够在特定领域表现好,同时在通用领域的表现也不会差太多这一观点。
整体评测任务分布如下:
评测任务分类
同时,文章对比了BloombergGPT、GPT-NeoX、OPT、BLOOM、GPT-3在不同任务上的表现。注意,这里因为GPT-3模型无法获取,故仅在部分通用任务上进行了评测。
各个模型使用到的token数量、参数数量、计算量如下:
模型使用的token数量、参数、计算量对比
作者对每一个模型均独立进行了评测,并且在每一个任务中使用相同的标准prompt、相同的样例、不使用任务描述和任何CoT prompt,以保证评测结果的公平性。
对于有多个答案的任务,文章中采用了基于似然的分类方法(likelihood-based classification) 进行评估;对于其他任务,文章采用贪心解码(greedy decoding) 的方式进行评估。
holdout loss
作者首先在FinPile数据集预留的部分样本上对各个模型进行了bits per byte的评估。
bits per byte指标是评估语言模型的一种常见指标,类似于perplexity,取值越小,模型越好。具体计算方法可见How to compute bits per character (BPC)?
各个模型在各个类型的数据上的bits per byte值如下:
bits per byte对比图
可以看出,BloombergGPT在金融语料上的bits per byte均好于其他模型,并且在财报(Filings)这个类别上表现尤其突出。这个结果也符合预期。否则可能就没有后面任务对比的必要了。
金融领域任务
金融领域任务共有6种类型,3种判别式任务、3中生成式任务。具体任务的格式如下:
金融领域任务模板
文章又将金融领域任务分成了外部任务和Bloomberg内部任务。在每个任务上,作者除了评估模型在任务上的表现,还评估了同一任务下不同模型生成结果之间两两比较的胜率(WR)。
外部任务
外部任务主要如下:
- ConvFinQA,标普500收益报告问答推理
- FiQA SA,金融新闻和微博客标题基于方面的情感三分类(正负中)
- FPB,金融新闻句子级别情感三分类(正负中)
- Headline,新闻标题在预定义标签下的二分类
- NER,信用风险评估数据的命名实体识别
BloombergGPT在上述5个任务中的4个都取得了最好效果,在另外一个取得了第二名;并且在模型两两结果对比的胜率最高,同时在ConvFinQA这个任务上遥遥领先。
具体得分如下:
金融领域外部任务得分对比
Bloomberg内部任务之情感分析
这个任务中的情感分析均为基于方面的情感三分类(aspect-specific sentiment),数据集的内容通过任务名称就可以略知一二。
BloombergGPT在上述4个数据集上的表现均大幅领先于其他模型。
具体结果如下:
内部情感分析任务
探索性任务:NER
注意,这里的NER只涉及到ORG、PER、LOC这三类实体。
同时探索性任务NER+NED是指识别出实体后再将实体链接到上市公司的股票简称。比如“AAPL announced that they will stop using Intel chips in future products.” 这句话NER的结果是“AAPL, Intel” ,NER+NED的结果是 “AAPL, INTC” 。
这两类任务涉及到的数据集包括了7个数据集,分别为BN(Bloomberg BN wire上内容)、BFW(Bloomberg First Word上的内容)、Filings(财报内容)、Headlines(Bloomberg news内容)、Premium(Bloogberg收录 的第三方新闻内容)、Transcripts(公司新闻发布会的文字记录)、Social Media。
最终,NER任务下,BloombergGPT仅在Headlines这一个数据集上得分最高;但在NER+NED任务下,BloombergGPT在除了Social Media任务的其他任务上均得分第一。
具体结果如下:
NER类任务表现
通用任务
文章在通用任务上做了相当多的对比,这里仅对任务类型和结果做简要描述,详细内容见文章中的5.4~5.7节。
作者在BIG-bench Hard(BIG-bench的一个子集,仅包含目前模型表现无法超过人类的任务)、常识测试(不提供任何背景知识,仅可以训练时使用的数据)、阅读理解、语言学(消歧、语法识别、蕴含判别等)等任务上进行了测试。
在BIG-bench Hard任务上,BloombergGPT得分低于参数量更大的PaLM和BLOOM,但是与参数规模类似的GPT-NeoX或OPT66B相比,BloombergGPT的性能更接近BLOOM,这说明开发金融专用的大语言模型并没有明显牺牲其通用能力。
在常识测试任务中,BloombergGPT在1个任务上取得了第一名,在其余3个任务上取得了第二名(这里未考虑GPT-3) 。
在阅读理解任务上,GPT-3在所有任务上排名第一,BloombergGPT在5/6个任务上排名第二,且得分远高于BLOOM模型。
在语言学任务上,GPT-3在综合排名第一,BloombergGPT综合排名第二,且综合得分高于BLOOM模型。
评测总结
在金融领域任务上,BloombergGPT综合表现最好;
在通用任务上,BloombergGPT的综合得分优于相同参数量级的其他模型,并且在某些任务上的得分要高于参数量更大的模型。
这都说明,开发金融专用的大语言模型在金融领域取得好效果的同时,并没有以牺牲模型通用能力为代价。
这一结论也可以给我们一个启示,在其他特定领域,我们也可以开发专用的大语言模型。
定性评估
作者在文章的第6章还展示了对BloombergGPT定性评估的例子,以展示模型在专业领域带来的促进作用。
这些列子包括:
- BQL(Bloomberg查询语言)生成,即使用自然语言完成Bloomberg数据库查询,类似NL2SQL
- 新闻标题提示,辅助记者生成新闻短标题
- 金融问答
BQL样例
新闻标题生成样例
金融问答样例
相关工作
这一章从7个方面讲述了大语言模型训练涉及到的各个方面,这里仅以下图作为总结。
大模型相关工作
详细内容可以查看《7. Related Work》的内容。
道德伦理、限制与研究意义
这一章没有太多值得写的,主要就是强调了目前大语言模型可能会生成有害的、有偏见的内容,并且可能存在prompt注入导致信息泄露的风险,Bloomberg在使用大语言模型前后都会做好风控,保证生成内容的准确性。
同时,BloogbergGPT模型不会被公开,但是模型训练和评估的相关经验和思考会被分享出来。
总结与展望
文章提出了BloombergGPT——一个金融领域顶级的LLM,并且在训练特定领域大语言模型做出了如下贡献:
- 使用领域数据和通用数据的训练方式可以让模型在这两个方面得到平衡的结果
- 模型参数量参考了Chinchilla scaling laws
- 公布了相关训练细节
下一步,作者们会在以下方向继续研究:
- 金融领域的fine-tuning
- 使用更无害和更无偏见的语言
- 研究tokenization方法对模型结果的影响
最后,作者把模型取得目前效果归结于以下三个因素(按影响从高到低排序):
- 精心清洗的内部数据集
- tokenizer的选择
- 流行的模型结构