FinGPT: Open-Source Financial Large Language Models
Abstract
大型语言模型 (LLM) 显示出在不同领域彻底改变自然语言处理任务的潜力,引发了人们对金融的极大兴趣。访问高质量的财务数据是金融 LLM (FinLLM) 面临的第一个挑战。虽然像 BloombergGPT 这样的专有模型已经利用了其独特的数据积累,但这种特权访问需要一种开源替代方案来使互联网规模的金融数据民主化。
在本文中,我们提出了一种针对金融领域的开源大型语言模型 FinGPT。与专有模型不同,FinGPT 采用以数据为中心的方法,为研究人员和从业者提供可访问且透明的资源来开发他们的 FinLLM。我们强调自动数据管理管道和轻量级低秩适应技术在构建 FinGPT 中的重要性。此外,我们展示了几个潜在的应用程序作为用户的垫脚石,例如机器人顾问、算法交易和低代码开发。通过在开源 AI4Finance 社区内的协作努力,FinGPT 旨在刺激创新,使 FinLLM 民主化,并释放开放金融领域的新机遇。两个相关的代码存储库是 https://github.com/AI4Finance-Foundation/FinGPT 和 https://github.com/AI4Finance-Foundation/FinNLP。
1 Introduction
人工智能的不断扩展和进化为大型语言模型的扩散提供了肥沃的土壤 [Vaswani et al., 2017; Radford et al., 2018; Devlin et al., 2018; Ethayarajh, 2019; Lewis et al., 2019; Lewis et al., 2020; Brown et al., 2020; Thoppilan et al., 2022],从而影响跨不同领域的自然语言处理格局的变革。这种彻底的变化引起了人们对这些模型在金融领域的潜在应用的浓厚兴趣。然而,显而易见的是,获取高质量、相关且最新的数据是开发有效且高效的开源金融语言模型的关键因素。
在金融领域使用语言模型揭示了复杂的障碍。这些问题包括获取数据、处理不同数据格式和类型、管理数据质量不一致的困难,以及最新信息的基本要求。特别是,由于网络平台、API、PDF 文档和图像等数据媒介的不同,历史或专门的金融数据提取被证明是复杂的。
在专有领域,像 BloombergGPT [Wu et al. ,2023] 这样的模型利用其对专业数据的独家访问权来训练金融特定的语言模型。然而,其数据收集和训练协议的可访问性和透明度受到限制,加剧了对更加开放和包容的替代方案的需求。为了满足这一需求,我们正在见证开源领域互联网规模金融数据民主化的转变趋势。
在本文中,我们解决了上述与金融数据相关的挑战,并介绍了 FinGPT,这是一种用于金融大型语言模型 (FinLLM) 的端到端开源框架。 FinGPT 采用以数据为中心的方法,强调了数据采集、清理和预处理在开发开源 FinLLM 中的关键作用。通过倡导数据可访问性,FinGPT 致力于加强金融领域的研究、协作和创新,为开放金融实践铺平道路。
我们的贡献总结如下:
-
民主化: FinGPT 作为一个开源框架,旨在使金融数据和 FinLLM 民主化,发掘开放金融中尚未开发的潜力。
-
以数据为中心的方法: FinGPT 认识到数据管理的重要性,采用以数据为中心的方法,并实施严格的清洗和预处理方法来处理各种数据格式和类型,从而确保高质量的数据。
-
端到端框架: FinGPT 采用具有四层的 FinLLM 全栈框架:
-
数据源层:该层确保全面的市场覆盖,通过实时信息捕获解决金融数据的时间敏感性问题。
-
数据工程层:为实时 NLP 数据处理做好准备,该层解决了金融数据中高时间敏感性和低信噪比的固有挑战。
-
LLMs层:该层专注于一系列微调方法,减轻了金融数据的高度动态性,确保了模型的相关性和准确性。
-
应用层:展示实际应用和演示,凸显FinGPT在金融领域的潜在能力。
-
我们对 FinGPT 的愿景是成为刺激金融领域创新的催化剂。 FinGPT不仅限于提供技术贡献,还为FinLLM培育开源生态系统,促进用户的实时处理和定制化适配。通过在开源 AI4Finance 社区内培育强大的协作生态系统,FinGPT 有望重塑我们对 FinLLM 的理解和应用。
2 Related Work
2.1 LLM 和 ChatGPT
大型语言模型 (LLM) 已被公认为自然语言处理领域的技术突破,例如 GPT-3 和 GPT-4 [Brown et al. , 2020]。他们采用基于transformer的架构,在各种生成任务中展示了令人印象深刻的性能。
作为 OpenAI 开发的 GPT 家族的一个分支,ChatGPT 旨在根据输入提示生成类似人类的文本。它在各种应用程序中显示出重要的实用性,从起草电子邮件到编写代码,甚至创建书面内容。
2.2 LLMs in Finance
LLMs已应用于金融领域的各种任务[Dredze et al., 2016; Araci, 2019; Bao et al., 2021; DeLucia et al., 2022],从预测建模到从原始财务数据生成富有洞察力的叙述。鉴于该领域的大量文本数据,如新闻文章、财报电话会议记录和社交媒体帖子,最近的文献侧重于使用这些模型进行金融文本分析。
financial LLMs的第一个例子是 BloombergGPT [Wu et al. , 2023],它是在金融和一般来源的混合数据集上进行训练的。尽管其功能令人印象深刻,但访问限制仍然存在,而且高昂的训练成本激发了对低成本领域适应的需求。
我们的 FinGPT 应对这些挑战,提出了一个开源金融 LLM。它采用人类反馈强化学习 (RLHF) 来理解和适应个人偏好,为个性化财务助理铺平道路。我们的目标是将普通LLMs(如 ChatGPT)的优势与金融适应相结合,利用LLMs在金融方面的能力。
2.3 为什么开源 FinLLM?
AI4Finance Foundation 是一个非盈利的开源组织,它集成了人工智能 (AI) 和金融应用程序,包括金融大型语言模型 (FinLLMs)。凭借培育金融科技工具创新生态系统(例如 FinRL [Liu et al. ,2021] 和 FinRL-Meta [Liu et al. ,2022] )的良好记录,该基金会准备进一步加速 FinLLM 的发展。坚定的承诺和前沿的贡献为人工智能在金融领域的变革性应用铺平了道路。
-
通过民主化 FinLLMs 促进平等机会:采用开源方法促进普遍获得最先进的技术,秉承民主化 FinLLMs 的精神。
-
培养透明度和信任度:开源 FinLLMs 提供了对其基础代码库的全面概述,增强了透明度和信任度。
-
加速研究和创新:开源模型推动了人工智能领域研发的进步。它允许研究人员利用现有模型,从而促进创新和科学发现的更快发展。
-
加强教育:开源 FinLLM 作为强大的教育工具,为学生和研究人员提供了通过直接参与完全可操作的模型来探索 FinLLM 复杂性的前景。
-
促进社区发展和协作参与:开源促进了全球贡献者社区的发展。这种协作参与增强了模型的长期耐用性和有效性。
3 FinLLM 的以数据为中心的方法
对于金融大型语言模型 (FinLLM),成功的策略不仅取决于模型架构的能力,还同样依赖于训练数据。我们以数据为中心的方法优先收集、准备和处理高质量数据。
3.1 财务数据及独有特征
财务数据来源广泛,具有独特的特征。我们深入研究不同财务数据源的具体情况,例如财经新闻、公司信息、社交媒体讨论和公司公告。
财经新闻承载着有关世界经济、特定行业和个别公司的重要信息。此数据源通常具有以下特点:
-
时效性: 财经新闻报道及时、最新,往往捕捉金融界的最新动态。
-
动态性: 财经新闻中包含的信息是动态的,会随着不断变化的经济状况和市场情绪而迅速变化。
-
影响: 财经新闻对金融市场有重大影响,影响交易者的决定,并可能导致剧烈的市场波动。
公司文件和公告是公司提交给监管机构的官方文件,可以深入了解公司的财务状况和战略方向。它们的特点:
-
粒度: 这些文档提供有关公司财务状况的粒度信息,包括资产、负债、收入和盈利能力。
-
可靠性: 公司填充物包含经过监管机构审查的可靠且经过验证的数据。
-
周期性: 公司报表是定期的,通常每季度或每年提交一次,提供公司财务状况的定期快照。
-
影响力: 公司公告通常会对市场产生重大影响,影响股价和投资者情绪。
与金融相关的社交媒体讨论可以反映公众对特定股票、行业或整个市场的情绪。这些讨论往往表明:
-
可变性: 社交媒体讨论的语气、内容和质量差异很大,这使得它们成为丰富但复杂的信息来源。
-
实时情绪: 这些平台通常会捕获实时市场情绪,从而能够检测公众舆论的趋势和变化。
-
波动性: 社交媒体上表达的情绪可能会高度波动,随着新闻事件或市场走势而迅速变化。
趋势通常可以通过 Seeking Alpha、Google Trends 以及其他以金融为导向的博客和论坛等网站观察到,它们提供了有关市场动向和投资策略的重要见解。它们的特点:
-
分析师观点: 这些平台提供经验丰富的金融分析师和专家的市场预测和投资建议。
-
市场情绪: 这些平台上的讨论可以反映特定证券、行业或整体市场的集体情绪,为当前市场情绪提供有价值的见解。
-
广泛覆盖: 趋势数据涵盖不同的证券和细分市场,提供全面的市场覆盖。这些数据源中的每一个都提供了独特的见解
金融世界。通过整合这些不同的数据类型,FinGPT 等金融语言模型可以促进对金融市场的全面理解并实现有效的金融决策。
3.2 处理财务数据的挑战
我们总结了处理财务数据的三大挑战如下:
-
高时间敏感性: 财务数据的特点是时间敏感。影响市场走势的新闻或更新一旦发布,就会为投资者提供一个狭窄的机会窗口,以最大化其阿尔法(投资相对回报的衡量标准)。
-
高度动态: 金融格局不断变化,每天都有大量新闻、社交媒体帖子和其他市场相关信息涌入。频繁重新训练模型以应对这些变化是不切实际且成本过高的。
-
低信噪比 (SNR): 金融数据通常表现出低信噪比 [Liu et al. , 2022],这意味着有用的信息通常与大量不相关或嘈杂的数据相比相形见绌。从海量信息中提取有价值的见解需要复杂的技术。
解决这些挑战对于有效利用财务数据和最大限度地发挥 FinLLM 的潜力至关重要。在应对这些挑战时,我们提出了一个开源框架 FinGPT。
4 FinGPT 概述:FinLLM 的开源框架
Figure 1: FinGPT Framework.
FinGPT 代表了一个创新的开源框架,专为在金融领域应用大型语言模型 (LLM) 而设计。如图 1 所示,FinGPT 由四个基本组成部分组成:数据源、数据工程、LLMs和应用程序。这些组件中的每一个都在维护 FinGPT 在处理动态金融数据和市场条件方面的功能和适应性方面发挥着至关重要的作用。
-
数据源层(Data source layer): FinGPT 管道的起点是数据源层,它协调从各种在线资源中获取大量财务数据。该层通过整合来自新闻网站、社交媒体平台、财务报表、市场趋势等的数据来确保全面的市场覆盖。目标是捕捉市场的每一个细微差别,从而解决金融数据固有的时间敏感性。
-
数据工程层(Data engineering layer): 该层专注于NLP数据的实时处理,以解决金融数据固有的高时间敏感性和低信噪比的挑战。它结合了最先进的 NLP 技术来过滤噪音并突出显示最重要的信息。
-
LLMs层: 位于核心,它包含各种微调方法,优先考虑轻量级适配,以保持模型的更新和相关性。通过维护更新的模型,FinGPT 可以处理金融数据的高度动态特性,确保其响应与当前的金融环境同步。
-
应用层: FinGPT 的最后一个组件是应用层,旨在展示 FinGPT 的实际适用性。它为金融任务提供实践教程和演示应用程序,包括机器人咨询服务、量化交易和低代码开发。这些实际演示不仅可以为潜在用户提供指导,还强调了法学硕士在金融领域的变革潜力。
4.1 数据来源
FinGPT 管道的第一阶段涉及从各种在线来源收集广泛的金融数据。这些包括但不限于:
-
财经新闻: 路透社、CNBC、雅虎财经等网站是财经新闻和市场更新的丰富来源。这些网站提供有关市场趋势、公司收益、宏观经济指标和其他金融事件的宝贵信息。
-
社交媒体: Twitter、Facebook、Reddit、微博等平台提供了丰富的公众情绪、热门话题以及对财经新闻和事件的即时反应等信息。
-
文件: 金融监管机构(例如美国 SEC)的网站提供公司文件的访问。这些文件包括年度报告、季度收益、内幕交易报告和其他重要的公司特定信息。证券交易所(纽约证券交易所、纳斯达克、上海证券交易所等)的官方网站提供有关股票价格、交易量、公司上市、历史数据和其他相关信息的重要数据。
-
趋势: Seeking Alpha、Google Trends 等网站以及其他以金融为重点的博客和论坛提供对分析师意见、市场预测、特定证券或细分市场的走势以及投资建议的访问。
-
学术数据集: 基于研究的数据集,为复杂的财务分析提供精心策划和验证的信息。
为了利用来自这些不同来源的大量信息,FinGPT 整合了能够抓取结构化和非结构化数据的数据采集工具,包括 API、网络抓取工具和可用的直接数据库访问。此外,该系统的设计尊重这些平台的服务条款,确保数据收集符合道德和合法。
数据API: 在FinGPT框架中,API不仅用于初始数据收集,还用于实时数据更新,确保模型根据最新数据进行训练。此外,还实施了错误处理和速率限制策略,以遵守 API 使用限制并避免数据流中断。
4.2 金融NLP实时数据工程流水线
金融市场实时运作,对新闻和情绪高度敏感。证券价格可能会因新信息而迅速变化,而延迟处理该信息可能会导致错失机会或增加风险。因此,实时处理在金融 NLP 中必不可少。
实时 NLP 管道的主要挑战是有效地管理和处理持续流入的数据。管道中的第一步是建立一个系统来实时摄取数据。这些数据可以从我们的数据源 API 流式传输。以下是设计用于数据摄取的实时 NLP 管道的步骤。
-
数据清理: 实时数据可能充满噪音且不一致。因此,实时数据清理涉及删除不相关数据、处理缺失值、文本规范化(如小写)和错误更正。
-
标记化: 在实时应用程序中,标记化必须即时执行。这涉及将文本流分解为更小的单元或标记。
-
停止词删除和词干/词形还原: 对于实时处理,可以使用预定义的停止词列表从标记流中过滤掉这些常见单词。同样,可以应用词干提取和词形还原技术将单词缩减为词根形式。
-
特征提取和情感分析: 特征提取涉及将原始数据转换为机器学习模型可以理解的输入。在实时系统中,这通常需要是一个快速且高效的过程。可以使用 TF-IDF、Bag of Words 等技术或 Word2Vec 等嵌入向量。还可以对清洗后的数据进行情感分析。这是我们将一段文本分类为正面、负面或中性的地方。
-
提示工程: 创建有效的提示,可以引导语言模型的生成过程朝着理想的输出方向发展。
-
警报/决策: 输入提示后,需要传达结果或采取行动。这可能涉及根据某些条件触发警报、通知实时决策过程或将输出输入另一个系统。
-
持续学习: 在实时系统中,模型应该适应数据的变化。可以实现持续学习系统,其中定期根据新数据重新训练模型,或者使用可以使用每个新数据点更新模型的在线学习算法。
-
监控: 实时系统需要持续监控以确保它们正常运行。管道中的任何延误或问题都会产生直接影响,因此进行可靠的监控和警报非常重要。
4.3 大型语言模型(LLM)
数据准备好后,将与 LLM 一起使用以生成有见地的财务分析。 LLM层包括:
-
LLM APIs: 来自已建立的 LLM 的 API 提供基准语言能力。
-
可训练模型: FinGPT 提供可训练模型,用户可以根据自己的私人数据对这些模型进行微调,从而针对金融应用程序进行定制。
-
微调方式: 多种微调方式让FinGPT适配个性化智能投顾。
为什么微调LLMs而不是从头开始再训练?
利用预先存在的大型语言模型 (LLM) 并针对金融对其进行微调,可以提供一种高效且具有成本效益的替代方案,可以替代从头开始进行的昂贵且冗长的模型再训练。
BloombergGPT 虽然在金融特定功能方面表现出色,但也具有密集的计算要求。它使用大约 130 万个 GPU 小时进行训练,如果使用 AWS 云的 2.3 美元费率计算,则转化为每次训练约 300 万美元的惊人成本。与 BloombergGPT 等模型的高计算成本相比,FinGPT 通过专注于顶级开源 LLM 的轻量级适配,提供了一种更易于访问的解决方案。适应成本显着下降,估计每次培训不到 300 美元。
这种方法确保及时更新和适应性,这在动态金融领域至关重要。 FinGPT 是开源的,不仅提高了透明度,还允许用户自定义,迎合了个性化金融咨询服务的兴起趋势。最终,FinGPT 具有成本效益的灵活框架具有使金融语言建模民主化和促进以用户为中心的金融服务的潜力。
通过Low-rank Adaptation (LoRA) 进行微调
在 FinGPT 中,我们使用新的金融数据集微调到预训练的 LLM。众所周知,高质量的标记数据是许多成功的 LLM(包括 ChatGPT)的关键决定因素。然而,获取此类一流的标记数据通常需要耗费大量时间和资源,而且通常需要金融专业人士的专业知识。
如果我们的目标是使用 LLM 分析金融相关的文本数据并协助量化交易,那么利用市场固有的标签能力似乎是明智的。因此,我们使用每条新闻的相对股价变化百分比作为输出标签。我们根据新闻的情绪建立阈值,将这些标签分为三类——正面、负面和中性。
在相应的步骤中,在提示工程过程中,我们还提示模型从正、负和中性输出中选择一个。该策略确保了预训练信息的最佳利用。通过部署 LLM 的低秩适应 (LoRA) [Hu et al. , 2021; Dettmers et al. ,2023],我们设法将可训练参数的数量从 61.7 亿减少到仅仅 367 万。
通过股票价格强化学习 (RLSP) 进行微调
同样,我们可以用 ChatGPT 使用的股票价格强化学习 (RLSP) 代替人类反馈强化学习。这种替代背后的原因是股票价格提供了一个可量化的客观指标,反映了市场对新闻和事件的反应情绪。这使其成为用于训练我们的模型的强大的实时反馈机制。
强化学习 (RL) 允许模型通过与环境的交互和接收反馈来学习。在 RLSP 的情况下,环境是股票市场,反馈以股价变化的形式出现。这种方法允许 FinGPT 改进其对金融文本的理解和解释,提高其预测市场对各种金融事件的反应的能力。
通过将新闻情绪与相关股票的后续表现联系起来,RLSP 提供了微调 FinGPT 的有效方法。本质上,RLSP 允许模型推断市场对不同新闻事件的反应,并相应地调整其理解和预测。
因此,将 RLSP 集成到 FinGPT 的微调过程中,为提高模型对金融市场的理解和预测准确性提供了有力的工具。通过使用实际股价走势作为反馈,我们直接利用市场的智慧使我们的模型更加有效。
4.4 应用
FinGPT 可能会在金融服务领域得到广泛应用,帮助专业人士和个人做出明智的财务决策。潜在的应用包括:
-
机器人顾问: 提供个性化的财务建议,减少定期面对面咨询的需要。
-
量化交易: 产生交易信号以做出明智的交易决策。
-
投资组合优化: 利用众多经济指标和投资者概况来构建最佳投资组合。
-
金融情绪分析: 评估不同金融平台的情绪,以提供有洞察力的投资指导。
-
风险管理: 通过分析各种风险因素,制定有效的风险策略。
-
金融欺诈检测: 识别潜在的欺诈交易模式以增强财务安全。
-
信用评分: 根据财务数据预测信用度以帮助做出贷款决策。
-
资不抵债预测: 根据财务和市场数据预测公司可能资不抵债或破产。
-
并购 (M&A) 预测: 通过分析财务数据和公司概况预测潜在的并购活动,帮助投资者预测市场动向。
-
ESG(环境、社会、治理)评分: 通过分析公开报告和新闻文章来评估公司的 ESG 评分。
-
低代码开发: 通过用户友好的界面促进软件创建,减少对传统编程的依赖。
-
金融教育: 担任人工智能导师,简化复杂的金融概念,提高金融知识。
通过连接这些不同但又相互关联的组件,FinGPT 提供了一个全面且易于访问的解决方案,用于在金融领域利用 AI,促进金融行业的研究、创新和实际应用。
5 结论
总之,大型语言模型 (LLM) 与金融领域的变革性整合带来了独特的复杂性和巨大的机遇。应对金融数据中的高时间敏感性、动态金融格局和低信噪比等挑战需要有效的解决方案。 FinGPT 通过利用现有的 LLM 并对它们进行微调以适应特定的金融应用程序,以创新的方式做出响应。与 BloombergGPT 等模型相比,这种方法显着降低了适应成本和计算要求,为金融语言建模提供了更易于访问、灵活且更具成本效益的解决方案。因此,它可以实现一致的更新,以确保模型的准确性和相关性,这是动态和时间敏感的金融世界的一个关键方面。
6 未来工作
FinLLMs,或金融大型语言模型,提出了未来的愿景,个性化的机器人顾问或助手触手可及。它旨在使获得高质量财务建议的途径民主化,利用先进的语言建模技术来理解大量财务数据并将其转化为可操作的见解。以下蓝图概述了 FinLLM 的未来方向。
-
个性化: FinLLM 战略的核心是个性化微调的概念。使用 LoRA 和 QLoRA 等技术,FinLLM 使用户能够根据自己的特定需求定制模型,从而创建个人机器人顾问或助手。这符合金融服务定制化的更广泛趋势,因为消费者越来越需要符合其独特风险状况和财务目标的个性化建议。
-
开源和低成本适应: FinLLM 倡导开源价值观,以低成本(通常在 100 至 300 美元之间)为用户提供使大型语言模型 (LLM) 适应自己需求所需的工具。这不仅使先进金融建模技术的获取变得民主化,而且还培育了一个充满活力的开发人员和研究人员社区,共同突破了金融人工智能领域的可能界限。
-
获取高质量的财务数据: FinLLM 不仅提供建模技术,还提供获取高质量财务数据的机会。这确保了用户拥有有效训练模型所需的数据,同时还简化了数据管理过程。通过提供带有演示的数据管理管道,进一步增强了这种访问权限,使用户能够充分利用其财务数据的潜力。
免责声明:我们在麻省理工学院教育许可证下出于学术目的共享代码。本文中的任何内容都不是财务建议,也不是交易真钱的建议。请使用常识,并在交易或投资之前始终先咨询专业人士。