AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我们真的需要领域(行业)大模型吗?从BloombergGPT说起
发布日期:2024-04-18 08:17:43 浏览次数: 2055 来源:AI少数派报告


一. 问题

  • 既然通用大模型那么强,为什么还需要行业(垂类)大模型?
  • 行业大模型在能力方面与通用大模型相比究竟有哪些区别?
  • 在什么场景下我需要使用行业大模型?
  • 行业大模型是用微调技术还是必须得从头开始训?

之所以有以上这些问题是因为对行业大模型的功能定位比较模糊,它究竟想解决什么问题?带着这些疑问,我读了《BloombergGPT: A Large Language Model for Finance》这篇论文,并试着找到以上这些问题的答案。

根据BloombergGPT的论文,BloombergGPT主要还是面向金融领域的NLP相关的任务,包括:

  • 情感分析
  • 命名实体识别
  • 新闻分类
  • 问答

粗看这些任务也没啥特别,这些任务都是经典的NLP领域面对的场景。但是,由于金融领域的特殊性,包括:

  • 专业术语,金融行业是一个非常宽泛的领域,光光交易市场就有很多种,比如股票市场、债券市场、期货市场、期权市场,还有很多复杂的业务,比如并购。每个细分领域里面都会有一大堆的专业术语。对于通用LLM来说,通常对金融领域覆盖不足。因此,往往无法识别金融领域的术语。
  • 复杂性,由于金融行业的业务众多且复杂,这就使得通用LLM难以准确理解金融领域的内容,导致在金融领域的生成式任务难以满足客户的要求。

因此,Bloomberg选择自己训练一个垂类模型。接下来介绍BloombergGPT的概况。

二. BloombergGPT概况

2.1 数据集

从总体的训练语料分布来看,基本上金融领域语料和通用语料各占一半。

金融领域语料的组成包括:

  1. 网络内容。这些内容都同金融领域相关。占比42.01%
  2. 财经新闻。占比5.31%
  3. 公司财报。占比2.04%
  4. 公司公告。这部分内容同财经新闻比较类似。占比1.21%
  5. Bloomberg自有语料。这块内容是由Bloomberg自己编撰的内容,包括新闻、观点及分析等。占比0.7%。与想象中的不同,这块语料的占比很小。至于这块语料对整个模型的能力究竟产生了多大的影响目前不得而知。

通用语料组成包括:

  1. the Pile。这个语料经常被用来训练LLM,跨多个领域,这种多样性有助于LLM适应不同的场景。占比25.9%
  2. C4。T5模型也使用了这个语料。占比19.48%
  3. Wikipedia。the Pile和C4都包括了Wikipedia的内容,只是比较老。这里用的是从 2022-7-1以后的内容。占比3.35%

Tokenization

使用的是Unigram tokenizer。该tokenizer使用the Pile语料训练出来。在训练tokenizer的过程中,如何选择vocabulary的size是一个比较难的决定。这里有一个一般性的原则:vocabulary越大,那么context window能囊括越多的信息,反之,vocabulary越小,则相同context window中囊括的信息就越少。举一个极端的例子,vocabulary就只是26个英语字母,那么在这种情况下,在给定的context window中,能表达出来的语意就会很有限。vocabulary size越大,说明有更多的有明确含义的单词被加入其中。但是,另一方面,比较大的vocabulary也会产生相应的代价,对于LLM来说,将会有更多的参数被用于token embedding。

BloombergGPT选择的vocabulary的大小为 ,也就是131072个token。为什么选这个数字?逻辑是这样的,以C4语料作为样本来对不同的vocabulary的大小进行测试,每个token用个bit来表达。那么将C4 tokenize后就能计算出total bit的大小。选择最小的那个对应的vocabulary size。这其实是一个优化的过程,如果vocabulary大,那么单个token占用的bit就高,但是相应的,内容经转换后总的token数就少。反之亦然。

2.2 模型

BloomberGPT的模型架构是基于BLOOM,一共有70层transformer decoder块。hidden dimension是7680。模型参数量为50.6B。看到这些值我们是否想过以下这些问题:

  1. 为什么是50B的参数量?是否该用更小一点的模型呢?
  2. 为什么是这样的神经网络架构?70层是怎么来的?7680是怎么来的?

上面两个问题其实涉及到超参数的选择问题,那么超参数的选择都是通过拍脑袋拍出来的吗?从BloombergGPT这篇论文来看还是有一定的方法论可遵循。

对于模型参数量的选择是基于Chinchilla scaling laws。参见下图:

具体来说是根据给定的算力— FLOPs,来选择较优的模型参数量以及训练所需的token数量。上图中横轴代表了FLOPs。估算FLOPs需要知道硬件的型号,如A100,预计能获得的GPU hours,另外,大模型的结构也会影响FLOPs,比如,为了降低GPU的显存消耗,可通过某些技术,如checkpoint activation,来实现,但代价是重复计算,也就会消耗更多的FLOPs。

对于第二个问题, 也就是如何将50B的参数分配到某个神经网络结构中?该论文给出了以下经验公式:

其中L指self-attention层的数量;D指hidden dimension。论文中还指出了几条经验:

  1. total hidden dimension的数量能被attention head的数量整除
  2. 每层的hidden dimension取8的倍数。这是为了在Nvidia上获取更高效的tensor运算。

根据以上最佳实践,最终确定,L=70,attention head数量=40,每个head有192维,total hidden dimension D = 7680。

在其它方面,训练的时候context window的长度是2048个token。使用ALiBi positional encoding。硬件方面,租用了AWS的服务,一共有512块40G的A100GPU。

2.3 训练过程

上图显示了最终发布的模型的训练过程。实线是经过平滑处理的training loss,虚线是validation set上的loss。不同的颜色代表了对超参的调整。整个训练跑了146000个step,大概用了53天,基本上跑了0.8个epoch,也就是没有跑完所有的语料,early stop的原因是loss没有再往下降。

整个训练过程其实并非一跑到底,在颜色发生变化的点处进行了超参的调整,比如调整learning rate,或是增加dropout。可以看到,最后阶段的loss其实是在上升的,最后选择的模型用的是第139200个step处的checkpoint。

2.4 评估

BloombergGPT作为金融邻域的垂类模型对比通用模型是否有更好的表现,还需要通过一系列的评测来进行综合评估。BloombergGPT经过以下这些类别的测试:

这些测试总体上分为两大类:金融领域的任务及通用领域的任务。金融领域的任务包括了Public Financial Tasks及Bloomberg Financial Tasks。根据论文的描述,金融领域的任务主要包括判别性任务和生成式任务两种类型。判别性任务中主要就是情感分析,而生成式任务中主要是NER。通用领域任务主要包括:a) 知识评估—对训练阶段出现的内容的召回能力;b) 阅读理解;c) 语言任务—比如,消除歧义,语法及对隐含的语意及逻辑方面的理解。

因为评测的目标是希望看到BloombergGPT在以上这些项目中是否优于其他大模型。因此,需要有参照物—其他通用LLM。如下图所示:

第一列代表了training的数据量,第二列是模型的参数规模,第三列是相对训练成本。这些都是通用LLM,大部分对照组LLM的参数量都大于 BloombergGPT。

根据评测的结果看,在金融领域的各项任务中,BloombergGPT有明显的优势,甚至对比更大的模型都有优势。在通用领域的任务中也获得比较好的表现,尤其是在与参数量相当的LLM进行对比时,基本都是胜出。

三. 总结

BloombergGPT代表了一类垂类大模型 — 从头开始训练,专业语料加通用语料来训练一个既懂专业又能处理通用场景任务的LLM。但是,从头开始训练垂类LLM目前依旧是一个耗资巨大且难度很高的事情,从上面的介绍就能看出来。

另外一类领域大模型是基于一个通用大模型通过微调后生成。从成本和实现难度来看这种方式是一个不错的选择。

现在,回答文章标题的问题:我们真的需要领域大模型吗?从BloombergGPT这篇论文得出的结论,领域大模型确实具有诸多的优势。具体来说,有以下几点:

  1. 词汇的独特性。这点很容理解。对用通用LLM来说,很多专业词汇可能在训练阶段都没出现过,那么,在后续推理阶段显然是无法理解这些词汇,造成乱说话现象。
  2. 在不同上下文中形成的细微差别。比如positive这个词,在通常的语境显中示出乐观积极的含义,但是,在医学领域,positive就不对了,比如你羊没羊?!
  3. 对概念理解的深度。通用大模型对特定的领域知识仅仅停留在“知道”,而领域大模型则能更全面且有深度地理解这些知识。
  4. 数据的稀缺性。这点也比较容易理解,很多专业材料都是不公开的,因此通用LLM在训练阶段根本就接触不到这些内容。如果让通用LLM来理解并回复这些专业内容显然就会不靠谱。
  5. 专业的推理能力。这个推理能力是指基于特定领域的原则或规则框架来得出结论或做出判断。这种高级认知过程通常依赖于在特定领域的深度知识以及上下文的理解。

那么,在专业领域应用LLM,例如法律、金融等行业是否就必须借助于领域大模型呢?对于这个问题不能一概而论,毕竟微调一个大模型,甚至从头还是训练一个大模型都是一件有相当难度的事情,该用什么方式落地垂类LLM应用将是另外一个话题。但就领域大模型所具备的优势来说,确实可以在相当多的场景中发挥作用。比如,对于私有化部署的场景来说,一般都会选择规模较小的模型,由于能力相对弱,光靠prompt或RAG等方式很难达到预期的效果,这种情况下通过微调,将领域知识,业务处理逻辑等注入到LLM中,以获取良好的应用效果。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询