作者 : Yong Xie, Aitzaz Ahmad, Raghvender Arni, Karan Aggarwal, Qingwei Li
发布日期 : 2024年3月28日
来源 : ,
,
大语言模型(LLMs)一般是在大型公开可用的数据集上进行训练,这些数据集是不特定领域的。例如,模型是基于、、维基百科及等数据集进行训练的。这些数据集涵盖了大量话题和领域。尽管结果模型在文本生成和实体识别等通用任务上表现出色,但是有证据表明,使用领域特定数据集进行训练的模型能够进一步提升LLM的性能。例如,的训练数据中有51%是领域特定文档,包括金融新闻、文件及其他金融材料。测试表明,该模型在金融特定任务上表现优于基于非领域特定数据集训练的模型,且在Bloomberg的内部金融任务测试中,与其他模型相比提供更好的性能,提升幅度甚至达到60分(满分100)。
本文将提供一个专门面向金融领域训练LLMs的指南,涵盖以下几个关键领域:
该文结合了亚马逊金融科技的应用科学研究团队以及AWS全球金融行业专家团队的专业经验,部分内容基于论文。
领域的持续预训练需要大型、高质量的领域特定数据集。以下是领域数据集整理的主要步骤:
在开发金融LLMs时,可以使用两个重要的数据源:新闻CommonCrawl与SEC报告。SEC文件是根据美国证券交易委员会(SEC)要求,上市公司定期提交的财务报表或其他正式文档。随着时间的推移,创建了大量文档。而新闻CommonCrawl是一个由2016年发布的全球新闻网站的新闻文章数据集。
新闻CommonCrawl可以通过(AmazonS3)在commoncrawl
桶下以crawl-data/CC- NEWS/
的路径找到。你可以使用(AWS CLI)通过以下命令获取文件列表:
bash aws s3 ls --recursive s3://commoncrawl/crawl-data/CC-NEWS/
在论文中,作者使用了基于URL和关键词的方法过滤金融新闻。具体来说,维护一个重要的金融新闻媒体列表及一组与金融新闻相关的关键词。如果某篇文章来自金融新闻媒体或URL中包含任何关键词,便被识别为金融新闻。这样的简单有效的方法使得可以从不仅限于金融新闻媒体中识别金融相关的内容。
SEC文件通过SEC的EDGAR(电子数据收集、分析与检索)数据库提供在线访问。你可以直接从EDGAR抓取文件,或使用的API,以几行代码检索任意时间段和大量股票代码(即SEC分配的标识符)的数据。有关更多信息,请参考。
以下表格总结了上述两个数据源的关键细节。
| 新闻CommonCrawl | SEC文件
---|---|---
覆盖范围 | 2016-2022 | 1993-2022
大小 | 258亿词 | 51亿词
作者在将数据输入训练算法前,进行了几个额外的预处理步骤。首先,SEC文件的内容常常有噪声,比如会移除表格和图表,因此,作者会删除被认为是表格或图表标签的短句。其次,使用局部敏感哈希算法去重新文章和文件。最后,将文档连接成一个长字符串进行标记,并将标记数据分块成模型支持的最长输入长度,从而提高持续预训练的处理量。
目前大多数可用的LLMs都是通用型的,缺乏领域特定能力。领域LLMs在医学、金融或科学领域的表现显著。为使LLM获得领域特定知识,有四种方法可供选择:从头训练、持续预训练、针对领域任务的指令微调以及基于检索增强生成(RAG)。
在传统模型中,微调通常用于创建特定任务的模型,这意味着要为多个任务维持多个模型,例如实体提取、意图分类、情感分析或问答。随着LLMs的出现,使用像上下文学习或提示等技术,维护多个模型的需求已显得不再必要。这极大节省了为相关但独立任务保持模型所需的精力。
选择从头训练模型以使用领域特定数据是直观的选择。然而,创建领域LLMs的绝大多数工作集中在从头训练上,且成本十分高昂。例如,GPT-4模型的训练费用超过了。这些模型在领域数据和开放域数据的混合上进行训练。持续预训练可以帮助模型获得领域特定知识而不需要从头再来,因为它是针对已有的开放域LLM进行领域数据的预训练。
通过任务的指令微调,模型不可能获取领域知识,因为LLM获得的仅是指令微调数据集中包含的领域信息。除非使用非常大的指令微调数据集,否则其不足以获取领域知识。获得高质量的指令数据集通常非常困难,这也是使用LLMs的一个原因。此外,针对单个任务的指令微调可能会影响到其他任务的性能(如所示)。然而,指令微调比其他预训练替代方案更具成本效益。
以下图示比较了传统的特定任务微调与LLMs中的上下文学习范式。
删除)
RAG是引导LLM生成基于领域的响应的最有效方法。尽管通过提供领域的事实作为辅助信息能够引导模型生成响应,但它仍无法获得领域特定的语言风格,因为LLM仍依赖于非领域语言风格生成响应。
持续预训练在成本和获得领域特定知识及风格的强大替代方法中处于一个中间地带。它可以提供一个通用模型,然后在有限的指令数据上进行后续的指令微调。对于下游任务集较大或未知,且标注指令微调数据有限的专业领域,持续预训练是一种具有成本效益的策略。而在其他场景下,指令微调或RAG可能更为合适。
要了解更多关于微调、RAG和模型训练的信息,请参阅、及。本文将专注于高效的持续预训练。
持续预训练的方法论包括以下几个方面:
以下图示例比较了ETS-DACP(左)与ETA-DACP(右)。
删除)
我们采用两种采样方案主动选择来自整理好的金融语料的样本:硬采样和软采样。前者是通过按相应指标对金融语料进行排序,然后选择前k个样本进行,k的值根据训练预算预先确定;后者则根据每个数据点的指标值分配采样权重,然后随机抽取k个数据点以满足训练预算。
作者对产生的金融LLMs在多项金融任务上进行了评估,以探讨持续预训练的效果:
由于金融LLMs经过指令微调,作者在每个任务中以5-shot设置评估模型的鲁棒性。平均来说,FinPythia 6.9B在四个任务上比Pythia6.9B的表现提高了10%,这证明了领域特定持续预训练的有效性。对于1B模型,改善幅度不如6.9B模型显著,但表现仍提高了2%。
以下图示展示了DACP方法对两种模型在性能上的影响。
删除)
以下图显示了Pythia 6.9B与FinPythia 6.9B生成的两个定性示例。在关于一位投资经理和一个金融术语的两个与金融相关的问题中,Pythia6.9B未能理解术语或识别姓名,而FinPythia 6.9B则正确生成详细答案。这些定性示例展示了持续预训练使LLMs在此过程中获得领域知识的能力。
删除)
以下表比较了各种高效持续预训练方法。ETA-DACP-ppl是基于困惑度(新颖性)的ETA-DACP,ETA-DACP- ent是基于熵(多样性)的方案。ETS-DACP-com类似于DACP,通过三种指标进行数据选择。以下是结果的几个要点:
删除)
关于持续预
Leave a Reply