arXiv | https://arxiv.org/abs/2306.06031
GitHub | https://github.com/AI4Finance-Foundation/FinGPT & https://github.com/AI4Finance-Foundation/FinNLP
摘要:
大语言模型(LLMs)在多个领域展示出革新自然语言处理任务的潜力,这在金融领域引发了极大的兴趣。获取高质量的金融数据是金融大型语言模型面临的第一个挑战。在本文中,我们提出了一种专为金融领域设计的开源大语言模型 FinGPT。与 BloombergGPT 等专有模型不同,FinGPT 采取以数据为中心的方法,为研究人员和从业者提供易于访问和透明的数据资源,以开发自己的 FinLLMs。我们强调了自动数据整理管道和轻量级低秩适应技术在构建 FinGPT 中的重要性。此外,我们展示了多种潜在应用作为用户入门的基石,例如机器人理财顾问、算法交易和低代码开发。
一、引言
人工智能的持续扩展和演变为大语言模型的增长提供了肥沃的土壤,从而在不同领域自然语言处理的景观中引发了变革性的转变。这一广泛的变化激发了人们对这些模型在金融领域的潜在应用的兴趣。获取高质量、相关且及时的数据是开发高效且有效的开源金融语言模型的关键因素。在金融领域利用语言模型揭示了诸多复杂挑战。这些挑战包括数据获取的难度、处理多种数据格式和类型、管理数据质量的不一致性,以及对及时信息的必要性。尤其是,由于数据介质的多样性,如网络平台、API、PDF文档和图像,历史或专门化的金融数据提取变得尤为复杂。
在专有领域,BloombergGPT 等模型充分利用了其对专门数据的独家访问权来训练金融特定的语言模型。然而,这些数据集合和训练协议的限制性访问和透明度不足加剧了对更开放和包容替代方案的需求。本文提出了 FinGPT,一个用于金融大型语言模型的端到端开源框架。FinGPT 采用数据为中心的方法,强调了在开发开源 FinLLMs 过程中数据获取、清洗和预处理的关键作用。
二、数据导向的方法在金融大语言模型中的应用
对于金融大型语言模型(FinLLMs),成功的策略不仅依赖于模型架构的能力,同样也依赖于训练数据。我们以数据为中心的方法注重收集、准备和处理高质量的数据。
2.1 金融数据的独特特征
金融数据来源于多种渠道,每种渠道具有独特的特征。我们探讨不同金融数据来源的具体情况,例如金融新闻、公司公开文件、社交媒体讨论和公司公告。
金融新闻提供了关于世界经济、特定行业和个别公司的关键信息。
- **及时性:**金融新闻报道及时且最新,通常能捕捉到金融世界中的最新发展。
- **动态性:**金融新闻包含的信息具有动态性,能够迅速响应不断变化的经济条件和市场情绪。
- **影响力:**金融新闻对金融市场有重大影响,能够影响交易者的决策,并可能导致市场出现剧烈波动。
公司公开文件和公告是企业向监管机构提交的正式文件,提供了关于公司财务状况和战略方向的洞见。
-
**细节性:**这些文件提供了关于公司财务状况的详细信息,包括资产、负债、收入和盈利能力。
-
**可靠性:**公司公开文件包含经过监管机构审核和验证的可靠数据。
-
**周期性:**公司公开文件通常是按季度或年度提交的,提供定期的财务状况快照。
-
**影响力:**公司公告往往对市场产生重大影响,影响股票价格和投资者情绪。
与金融相关的社交媒体讨论可以反映公众对特定股票、行业或整体市场的看法。这些讨论通常表现出:
-
**多样性:**社交媒体讨论在语气、内容和质量方面差异很大,使其成为丰富但复杂的资料来源。
-
**实时情绪:**这些平台经常捕捉到实时市场情绪,有助于检测公众意见的趋势和变化。
-
**波动性:**社交媒体上表达的情绪可能非常波动,会迅速响应新闻事件或市场变动。
趋势,通过网站如 Seeking Alpha、Google Trends 以及其他金融导向的博客和论坛观察到,提供了对市场动向和投资策略的关键洞察。
-
**分析师观点:**这些平台提供了市场预测和投资建议,来自经验丰富的金融分析师和专家。
-
**市场情绪:**这些平台上的讨论可以反映对特定证券、行业或整体市场的集体情绪,提供有关当前市场情绪的宝贵见解。
-
**广泛覆盖:**趋势数据涵盖了多样化的证券和市场细分,提供了全面的市场覆盖。
2.2 处理金融数据的挑战
处理金融数据的三大挑战:
- **高时间敏感性:**金融数据具有时间敏感性特征。一旦市场动向新闻或更新发布,就会为投资者提供一个短暂的机会窗口,以最大化其阿尔法值(衡量投资相对回报的指标)。
- **高动态性:**金融环境不断演变,每天都有大量新闻、社交媒体帖子和其他市场相关信息的涌入。频繁重新训练模型以应对这些变化既不实际,也成本高昂。
- **低信噪比(SNR):**金融数据通常表现出低信噪比特征,这意味着有用的信号通常被大量无关或噪声数据所淹没。从这些信息海洋中提取有价值见解需要使用复杂的技术。
三、FinGPT 概述:一个用于金融大语言模型的研究与开发的开源框架
FinGPT 是一种创新的开源框架,专门设计用于在金融领域应用大型语言模型(LLMs)。FinGPT 包含四个基本组件:数据源、数据工程、LLM 和应用。这些组件在维护 FinGPT 的功能和适应性以应对动态金融数据和市场条件方面发挥着至关重要的作用。
- **数据源层:**FinGPT 管道的起点是数据源层,该层负责协调从广泛在线来源获取大量金融数据。该层通过整合新闻网站、社交媒体平台、财务报表、市场趋势等数据,确保全面覆盖市场。其目标是捕捉市场的每一个细微变化,从而解决金融数据固有的时间敏感性问题。
- **数据工程层:**该层专注于实时处理 NLP 数据,以应对金融数据固有的高时间敏感性和低信噪比挑战。它结合了最先进的 NLP 技术来过滤噪声并突出显示最显著的信息。
- **LLM 层:**核心层,涵盖了各种微调方法,优先考虑轻量级适应,以保持模型的更新和相关性。通过维护一个更新的模型,FinGPT 能够应对金融数据的高动态性,确保其响应与当前金融环境保持同步。
- **应用层:**最终组成部分,旨在展示 FinGPT 的实际应用价值。该层提供了针对金融任务的手动教程和演示应用,包括机器人顾问服务、量化交易和低代码开发。这些实际演示不仅为潜在用户提供指导,还突显了大语言模型在金融领域的变革潜力。

3.1 数据源层
FinGPT 管道的第一阶段涉及从广泛在线来源收集大量金融数据。这些来源包括但不限于:
- **金融新闻:**如路透社、CNBC、雅虎财经等网站是丰富的金融新闻和市场更新来源。这些网站提供了有关市场趋势、公司业绩、宏观经济指标和其他金融事件的宝贵信息。
- **社交媒体:**如Twitter、Facebook、Reddit、微博等平台提供了大量关于公众情绪、热门话题和对金融新闻和事件的即时反应的信息。
- **披露文件:**如美国证券交易委员会(SEC)等金融监管机构的官方网站提供了公司披露文件的访问权限。这些文件包括年度报告、季度业绩、内部交易报告以及其他重要的公司特定信息。股票交易所官方网站(如纽约证券交易所、纳斯达克、上海证券交易所等)提供了关键的股票价格、交易量、公司上市、历史数据和其他相关信息。
- **趋势:**如Seeking Alpha、谷歌趋势等金融相关的博客和论坛提供了分析师观点、市场预测、特定证券或市场板块的动向以及投资建议的访问权限。
- **学术数据集:**基于研究的数据集,提供了用于复杂金融分析的精炼和验证信息。
为了充分利用这些多样化的数据来源,FinGPT 结合了能够抓取结构化和非结构化数据的数据获取工具,包括API、网页抓取工具和在可用时直接数据库访问。此外,该系统设计时还考虑了这些平台的服务条款,确保数据收集的伦理性和合法性。
3.2 数据工程层
实时处理在金融自然语言处理中是必不可少的,实时 NLP 管道的主要挑战在于高效地管理和处理不断流入的数据。
- **数据清洗:**实时数据可能杂乱无章且不一致。因此,实时数据清洗涉及去除无关数据、处理缺失值、文本规范化(如转换为小写)以及错误修正。
- **分词:**在实时应用中,分词必须实时进行。这涉及将文本流分解为更小的单元或标记。
- **停用词移除和词干提取/词形还原:**在实时处理中,可以使用预定义的停用词列表来过滤掉这些常见的词。同样,可以应用词干提取和词形还原技术将词还原为基本形式。
- **特征提取和情感分析:**特征提取涉及将原始数据转换为机器学习模型可以理解的输入。在实时系统中,这通常需要一个快速且高效的过程。可以使用诸如 TF-IDF、词袋模型或 Word2Vec 等嵌入向量技术。还可以在清洗后的数据上执行情感分析。这是将一段文本分类为正面、负面或中性的过程。
- **提示工程:**创建有效的提示以引导语言模型的生成过程朝着期望的输出方向发展。
- **告警/决策制定:**一旦输入了提示,就需要传达或采取行动。这可能涉及根据某些条件触发告警、通知实时决策过程,或将输出传递给另一个系统。
- **持续学习:**在实时系统中,模型应适应数据的变化。可以实现持续学习系统,其中模型定期重新训练以适应新数据,或者使用在线学习算法,在每次接收到新数据点时更新模型。
- **监控:**实时系统需要持续监控,以确保它们正常运行。管道中的任何延迟或问题都可能立即产生影响,因此需要有 robust 的监控和告警机制。
3.3 LLM 层
一旦数据经过适当准备,便使用大规模语言模型(LLM)生成具有洞察力的金融分析。LLM 层包括:
- **LLM API:**来自现有 LLM 的 API 提供基本的语言能力。
- **可训练模型:**FinGPT 提供可训练模型,用户可以针对其私有数据进行微调,以适应金融应用。
- **微调方法:**各种微调方法使 FinGPT 可以适应个性化的机器人投顾。
**微调 LLM 而不是从头开始重新训练:**利用现有的大规模语言模型并针对金融领域进行微调,提供了一种比从头开始昂贵且耗时的重新训练更为高效和经济的选择。
- 尽管 BloombergGPT 在特定金融能力方面表现出色,但其计算需求非常密集。它在训练过程中大约使用了 130 万 GPU 小时,按照 AWS 云服务每小时 2.3 美元的价格计算,训练成本高达约 300 万美元。
- FinGPT 通过专注于顶级开源 LLM 的轻量级适应,提供了一个更为可访问的解决方案。适应成本显著降低,估计每次训练成本不到 300 美元。这种方法确保了及时更新和适应能力。作为开源项目,FinGPT 不仅促进了透明度,还允许用户自定义,迎合了个性化金融服务日益增长的趋势。
**使用低秩适应(LoRA)方法进行微调:**在 FinGPT 中,我们利用一种新的金融数据集对预训练的大规模语言模型(LLM)进行微调。
- 获取高质量的标注数据往往需要大量时间和资源,并且通常需要金融专业人士的专门知识。
- 本文利用市场的固有标注能力,使用每条新闻的相对股价变化百分比作为输出标签。基于新闻的情感,我们设定阈值将这些标签分为三类:正面、负面和中性。 在提示工程过程中提示模型从正面、负面和中性输出中选择一个,这种策略确保了对预训练信息的最佳利用。通过应用大规模语言模型的低秩适应(LoRA)方法,将可训练参数的数量从 61.7 亿减少到仅 367 万。
通过强化学习调整股票价格(RLSP)进行微调:将强化学习调整股票价格(RLSP)替代 ChatGPT 所使用的强化学习调整人类反馈。
- 替代的原因在于股票价格提供了一个可量化的、客观的指标,反映了市场情绪对新闻和事件的反应。因此,它成为一种稳健的、实时的反馈机制,用于训练我们的模型。
- 强化学习允许模型通过与环境的互动并接收反馈来学习。在 RLSP 的情况下,环境是股票市场,反馈则以股票价格变化的形式出现。这种方法使FinGPT能够进一步细化其对金融文本的理解和解释,从而提高其预测各种金融事件市场反应的能力。通过将新闻情绪与相关股票的后续表现关联起来,RLSP 提供了一种有效的方法来微调 FinGPT。
3.4 应用层
FinGPT 可能在金融服务领域找到广泛的应用,帮助专业人士和个体做出知情的金融决策。潜在的应用包括:
- **投资顾问机器人:**提供个性化的金融建议,减少定期面对面咨询的需求。
- **定量交易:**生成交易信号,支持知情的交易决策。
- **投资组合优化:**利用大量经济指标和投资者概况,构建最优投资组合。
- **金融情绪分析:**评估不同金融平台上的情绪,提供有价值的投资指导。
- **风险管理:**通过分析各种风险因素,制定有效的风险管理策略。
- **金融欺诈检测:**识别潜在的欺诈交易模式,增强金融安全。
- **信贷评分:**从财务数据中预测信用资质,辅助贷款决策。
- **破产预测:**基于财务和市场数据预测公司可能的破产或破产。
- **兼并收购预测:**通过分析财务数据和公司概况预测潜在的兼并收购活动,帮助投资者预判市场动向。
- **ESG 评分:**通过分析公开报告和新闻文章评估公司的 ESG 评分。
- **低代码开发:**通过用户友好的界面促进软件创建,减少对传统编程的依赖。
- **金融教育:**作为AI导师简化复杂的金融概念,提高金融素养。
的兼并收购活动,帮助投资者预判市场动向。
- **ESG 评分:**通过分析公开报告和新闻文章评估公司的 ESG 评分。
- **低代码开发:**通过用户友好的界面促进软件创建,减少对传统编程的依赖。
- **金融教育:**作为AI导师简化复杂的金融概念,提高金融素养。