微信扫码
与创始人交个朋友
我要投稿
之所以有以上这些问题是因为对行业大模型的功能定位比较模糊,它究竟想解决什么问题?带着这些疑问,我读了《BloombergGPT: A Large Language Model for Finance》这篇论文,并试着找到以上这些问题的答案。
根据BloombergGPT的论文,BloombergGPT主要还是面向金融领域的NLP相关的任务,包括:
粗看这些任务也没啥特别,这些任务都是经典的NLP领域面对的场景。但是,由于金融领域的特殊性,包括:
因此,Bloomberg选择自己训练一个垂类模型。接下来介绍BloombergGPT的概况。
从总体的训练语料分布来看,基本上金融领域语料和通用语料各占一半。
金融领域语料的组成包括:
通用语料组成包括:
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数就少。反之亦然。
BloomberGPT的模型架构是基于BLOOM,一共有70层transformer decoder块。hidden dimension是7680。模型参数量为50.6B。看到这些值我们是否想过以下这些问题:
上面两个问题其实涉及到超参数的选择问题,那么超参数的选择都是通过拍脑袋拍出来的吗?从BloombergGPT这篇论文来看还是有一定的方法论可遵循。
对于模型参数量的选择是基于Chinchilla scaling laws。参见下图:
具体来说是根据给定的算力— FLOPs,来选择较优的模型参数量以及训练所需的token数量。上图中横轴代表了FLOPs。估算FLOPs需要知道硬件的型号,如A100,预计能获得的GPU hours,另外,大模型的结构也会影响FLOPs,比如,为了降低GPU的显存消耗,可通过某些技术,如checkpoint activation,来实现,但代价是重复计算,也就会消耗更多的FLOPs。
对于第二个问题, 也就是如何将50B的参数分配到某个神经网络结构中?该论文给出了以下经验公式:
其中L指self-attention层的数量;D指hidden dimension。论文中还指出了几条经验:
根据以上最佳实践,最终确定,L=70,attention head数量=40,每个head有192维,total hidden dimension D = 7680。
在其它方面,训练的时候context window的长度是2048个token。使用ALiBi positional encoding。硬件方面,租用了AWS的服务,一共有512块40G的A100GPU。
上图显示了最终发布的模型的训练过程。实线是经过平滑处理的training loss,虚线是validation set上的loss。不同的颜色代表了对超参的调整。整个训练跑了146000个step,大概用了53天,基本上跑了0.8个epoch,也就是没有跑完所有的语料,early stop的原因是loss没有再往下降。
整个训练过程其实并非一跑到底,在颜色发生变化的点处进行了超参的调整,比如调整learning rate,或是增加dropout。可以看到,最后阶段的loss其实是在上升的,最后选择的模型用的是第139200个step处的checkpoint。
BloombergGPT作为金融邻域的垂类模型对比通用模型是否有更好的表现,还需要通过一系列的评测来进行综合评估。BloombergGPT经过以下这些类别的测试:
这些测试总体上分为两大类:金融领域的任务及通用领域的任务。金融领域的任务包括了Public Financial Tasks及Bloomberg Financial Tasks。根据论文的描述,金融领域的任务主要包括判别性任务和生成式任务两种类型。判别性任务中主要就是情感分析,而生成式任务中主要是NER。通用领域任务主要包括:a) 知识评估—对训练阶段出现的内容的召回能力;b) 阅读理解;c) 语言任务—比如,消除歧义,语法及对隐含的语意及逻辑方面的理解。
因为评测的目标是希望看到BloombergGPT在以上这些项目中是否优于其他大模型。因此,需要有参照物—其他通用LLM。如下图所示:
第一列代表了training的数据量,第二列是模型的参数规模,第三列是相对训练成本。这些都是通用LLM,大部分对照组LLM的参数量都大于 BloombergGPT。
根据评测的结果看,在金融领域的各项任务中,BloombergGPT有明显的优势,甚至对比更大的模型都有优势。在通用领域的任务中也获得比较好的表现,尤其是在与参数量相当的LLM进行对比时,基本都是胜出。
BloombergGPT代表了一类垂类大模型 — 从头开始训练,专业语料加通用语料来训练一个既懂专业又能处理通用场景任务的LLM。但是,从头开始训练垂类LLM目前依旧是一个耗资巨大且难度很高的事情,从上面的介绍就能看出来。
另外一类领域大模型是基于一个通用大模型通过微调后生成。从成本和实现难度来看这种方式是一个不错的选择。
现在,回答文章标题的问题:我们真的需要领域大模型吗?从BloombergGPT这篇论文得出的结论,领域大模型确实具有诸多的优势。具体来说,有以下几点:
那么,在专业领域应用LLM,例如法律、金融等行业是否就必须借助于领域大模型呢?对于这个问题不能一概而论,毕竟微调一个大模型,甚至从头还是训练一个大模型都是一件有相当难度的事情,该用什么方式落地垂类LLM应用将是另外一个话题。但就领域大模型所具备的优势来说,确实可以在相当多的场景中发挥作用。比如,对于私有化部署的场景来说,一般都会选择规模较小的模型,由于能力相对弱,光靠prompt或RAG等方式很难达到预期的效果,这种情况下通过微调,将领域知识,业务处理逻辑等注入到LLM中,以获取良好的应用效果。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-07-06
比Kimi还好用?AI写作神器「橙篇」来势汹汹 欲夺长文创作之未来
2024-07-06
暴走WAIC:跟AI+教育有关的,都在这儿↑
2024-07-02
【研究成果】ArchGPT:利用大语言模型支持传统建筑遗产的更新与保护
2024-06-28
所有男生女生,AI 卖货主播来咯!
2024-06-28
AI+医疗专题报告:院内场景丰富,AI 全面赋能医疗健康领域
2024-06-20
AI 背后 B 端设计师的机会
2024-06-20
30 款让教师工作更轻松的 AI 工具
2024-06-13
知识图谱(KG)和大模型(LLMs)双轮驱动的企业级AI平台构建之道暨行业调研
2024-05-03
2023-07-06
2023-06-30
2023-06-29
2023-07-03
2024-04-28
2023-07-01
2024-05-25
2023-07-10
2023-06-29