“FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models”
金融行业与AI社区之间存在数据和专业知识的障碍,影响AI在金融任务中的应用。FinRobot是一个开源AI代理平台,利用多源LLM进行多样化金融任务,提升透明度和可扩展性。
论文地址:https://arxiv.org/pdf/2405.14767
Github地址:https://github.com/AI4Finance-Foundation/FinRobot
摘要
金融行业与AI社区之间存在数据和专业知识的障碍,影响AI在金融任务中的应用。本文旨在开发金融专用的LLM工具链,推动AI在金融决策中的普及。FinRobot是一个基于LLM的开源AI代理平台,支持多种金融专用AI代理,包含四个主要层次:
-
金融AI代理层:通过逻辑序列分解复杂金融问题。
-
金融LLM算法层:为特定任务动态配置模型应用策略。
-
LLMOps和DataOps层:通过训练/微调技术和相关数据生成准确模型。
-
多源LLM基础模型层:整合多种LLM,直接访问。
FinRobot为专业分析师和普通用户提供先进金融分析的AI工具。
简介
财务分析分为基本分析(公司估值)和技术分析(市场趋势预测),并依赖于数据。随着数字革命,数据量和复杂性增加,金融专业人士越来越依赖算法和人工智能(AI)进行数据处理。AI通过自动化任务(如情感分析和市场预测)改变了财务分析的方式,传统AI模型已发展为更复杂的LLM(大语言模型)。AI代理利用LLM进行复杂功能(如规划和记忆管理),减少人类干预。
FinRobot是一个开源AI代理平台,利用多源LLM进行多样化金融任务,提升透明度和可扩展性。
-
综合金融AI代理框架,支持多种金融任务。
-
多源LLM集成,通过智能调度机制选择最合适的LLM,适应全球市场的复杂性。
FinRobot目前已开源,促进金融AI社区的合作与创新。
相关工作
金融AI代理
AI驱动的金融系统如FinAgent和FinMem利用实时市场数据优化交易策略。过于关注回测和个股收益,忽视了流程导向的重要性。有效的交易代理应提升操作流程,自动化策略执行和下单,减少人工干预。从绩效转向流程导向可促进金融技术的可持续性和适应性。
开源AI代理框架
开源AI代理框架的发展促进了先进AI技术的普及。主要平台包括AutoGPT、AutoGen、MetaGPT、HuggingGPT、ChatDev、Dify和Voyager,支持全球开发者的协作与创新。随着对复杂金融工具的需求增加,专门针对金融任务的开源框架即将出现。
AI4Finance基金会与开源文化
AI4Finance Foundation推动金融科技的开源文化,致力于标准化实践和开发开源资源。旨在为研究人员和行业专业人士提供协作环境,促进行业知识与创新的结合。通过应用AI技术于金融服务,加速技术进步,确保发展透明、可及且有益于金融行业。
FinRobot:一个金融领域的开源平台
FinRobot的整体框架分为四个不同的部分,每个部分都旨在解决金融人工智能处理和应用的特定方面:
-
金融AI代理:引入金融链式思维(CoT)提示,提升复杂分析和决策能力,市场预测、文档分析和交易策略代理利用CoT分解金融问题,提供精准可行的见解。
-
金融LLMs算法:配置专门调优的模型,使用FinGPT和多源LLMs(如Llama和ChatGLM),优化区域特性,结合多模态模型和传统机器学习方法,确保市场预测和文档分析的高精度。
-
LLMOps和DataOps:LLMOps层动态选择和微调LLMs以提升任务效果,DataOps层管理实时数据处理,增强市场响应能力,确保及时准确的金融洞察。
-
多源LLM基础模型:支持多种通用和专业LLMs的即插即用功能,确保模型更新和优化,与金融技术和数据标准保持一致。
金融AI代理
FinRobot中的金融AI代理,由特定领域的AI代理组成,通过高级数据感知、认知处理和动态动作执行来增强财务分析:
-
感知模块:捕捉和解读多模态金融数据,使用先进技术结构化数据以便分析。
-
大脑模块:核心处理单元,利用LLM和金融推理生成结构化指令。
-
行动模块:执行大脑模块的指令,进行交易、调整投资组合、生成报告或发送警报,积极影响金融环境。
多智能工作流
多代理工作流系统通过多个角色协作处理复杂金融数据,提升分析准确性和深度:
-
Director:项目战略领导,负责任务优先级、资源分配和团队协调。
-
Assistant:负责数据管理、初步分析和团队沟通,支持其他分析师的工作。
-
LLM Analyst:利用大语言模型分析金融文本,提取见解、进行情感分析和市场趋势预测。
-
Financial Analysts:在LLM Analyst指导下,进行定量数据分析,评估投资机会和风险策略。
各角色协作实现全面的金融分析,确保深入探索和解读数据,支持战略决策。
基于LLM进行工具调用
-
API交互:通过Text2Params方法,将自然语言查询转化为API请求,提取关键参数以生成函数调用或API请求,适用于金融数据的获取和操作。
-
代码编译:Text2Code技术用于动态生成和编译代码,支持根据用户查询和市场条件开发自定义算法。
-
高级AI算法:该层包含专为金融领域设计的先进AI算法,增强平台在多种金融应用中的能力。
金融LLM
金融大语言模型(FinGPT)
FinGPT是专为金融领域设计的语言模型,提升自然语言理解能力。能够分析复杂的金融文档,如年报和实时新闻,提取关键信息,支持决策。通过监督微调,使用金融领域的“指令-响应”数据训练。优化目标是最大化生成预期响应的概率,使用负对数似然函数进行训练。
金融强化学习(FinRL)
FinRL利用集成深度强化学习算法优化交易策略,分析历史和实时市场数据,以最大化财务回报并最小化风险,适用于股票投资组合配置。股票投资组合配置被建模为马尔可夫决策过程(MDP),代理在状态s_t下选择动作a_t,依据策略π_θ(s_t)。动作导致新状态s_t+1和奖励r(s_t, a_t, s_t+1),目标是优化策略。
金融机器学习(FinML)
FinML利用多种机器学习技术提升金融预测分析,包括回归和神经网络。
这些算法用于预测市场趋势、消费者行为、信用风险等关键金融指标,支持决策。
关键指标为对数收益率(log-return),计算公式为:
其中,S为股票价格,nT为监测公司数量,f为预测期限。对数收益率是评估投资表现和制定金融策略的重要工具。
金融多模态LLMs
财务文档包含文本、图表和表格等多种数据类型,提供丰富的分析视角。开发了金融多模态LLM,能够处理和综合多种数据类型,提升财务文档的理解深度。数学表示为:
其中x_t、x_g、x_h分别为文本、图形和表格输入。函数T、G、H将输入转换为统一的嵌入空间,LLM L合成这些嵌入以生成可靠的输出,增强财务分析的准确性和可靠性。
LLMOps
LLMOps层具备高模块化和可插拔性,支持快速集成和动态更换LLM。该层实现无缝模型集成,并包含严格评估和选择适合特定金融任务的5个模型的机制。这些功能对维持运营效率和适应多样化金融场景至关重要。
智能调度程序
智能调度器是确保模型多样性的重要工具。它优化了不同大型语言模型(LLM)的集成与选择,以适应各类任务。
智能调度器架构
智能调度器优化任务分配,包含以下组件:
-
指挥代理:负责任务分配,基于代理绩效和适应性分配任务。
-
代理注册:管理代理注册和可用性,促进高效任务分配。
-
代理适配器:调整代理功能以适应特定任务,提升性能和系统整合。
-
任务管理器:管理和存储针对各种金融任务的LLM代理,定期更新以确保相关性和有效性。
智能调度程序初始化过程
-
数据集创建:填充行业特定数据。
-
提示库填充:为各个代理填充自定义提示。
-
任务评分填充:调用适配器评估响应,存储评分于任务评分数据库。
智能调度程序行动过程
-
任务启动:用户发起任务。
-
导演代理角色:评估任务输入,按表现和相关性排名代理。
-
代理选择与任务分配:将任务分配给排名最高的代理。
-
工作流进展与自我评估:任务完成后,代理进行自我评估,结果存储于未来反思存储。
-
工作流完成与评估:工作流结束时,代理评估结果并提供反馈以促进持续改进。
评分标准
-
数据收集:收集不同LLM在多项评估任务中的性能数据。
-
归一化:将每个评估任务的结果归一化到0到1之间。
-
权重分配:根据行业标准或专家意见为不同评估维度分配权重。
-
计算综合得分:将归一化得分乘以权重并求和得出任务得分。
-
结果分析:分析得分以排名和评估LLM,提供性能比较和选择建议。
该结构提升了金融AI代理的操作效率,支持动态管理多样化金融任务,增强了实时金融环境中复杂多代理场景的管理能力。
DataOps
DataOps层管理多样化的金融数据,确保数据质量和市场代表性。高质量数据是AI模型准确性的基础,支持金融决策。采用先进的数据处理技术,优化数据可访问性和质量。
检索增强生成
RAG技术结合了上下文检索机制和大型语言模型(LLM),优化语言生成任务。LLMOps和DataOps层是FinRobot的核心,确保其在金融AI服务中的技术创新和可靠性。
多源LLM基础模型层
多源LLM基础模型层为FinRobot提供先进能力,适应全球金融市场动态需求。
-
插拔式功能:无缝集成和更新通用及专业LLM,保持平台适应性。
-
模型多样性与评估:涵盖7亿至720亿参数的LLM,依据性能指标选择最佳模型。
-
全球市场兼容性:支持多语言模型集成,增强对多样金融数据的分析能力。
金融思维链(CoT)提示
简介
链式思维提示技术通过结构化提示促进AI模型逐步推理,类似人类问题解决策略。该方法显著提升复杂推理任务(如数学和常识推理)的表现。鼓励模型阐述中间推理步骤,最终得出答案。提高准确性,增强决策过程的可解释性和透明度。
金融CoT的概念
金融CoT提示结合了CoT技术与高级认知处理,提升AI驱动的金融分析决策能力。该方法通过逻辑顺序引导AI模型,帮助金融专业人士解决复杂问题。将复杂金融场景分解为可管理的部分,逐一分析并综合得出结论或建议。模仿人类推理,适用于估值、投资策略制定、市场趋势分析和风险评估等深度分析任务。
金融CoT的实现
金融分析。FinRobot利用LLM进行财务报表分析,比较行业竞争者和历史表现,识别异常财务比率,提供深刻的商业洞察。
业务特定分析。通过检索增强生成(RAG),FinRobot从网络获取公司产品和服务数据,分析产品线、成本结构和供应链动态。
市场分析。FinRobot结合财务比率、市场数据和情绪分析,模拟市场参与者决策,评估公司股价走势和估值,提供投资时机和金融工具的战略指导。
估值分析。FinRobot整合多种数据源,评估股价和估值,提供针对不同风险阈值的投资评估和策略建议。
金融CoT提示的好处
现有数据提供商(如Bloomberg、FactSet等)使用的模板化数据提取方法,忽视了关键的运营指标和定性信息。手动分析耗时且重复,现有自动化工具在提取非结构化数据时效果有限。CoT Prompting的FinRobot通过模拟人类认知过程,提供更深入的财务分析,超越传统的数字计算。
该方法利用大型语言模型(LLMs)分析金融专业人士的分析方法,关注公司基本面、行业特定指标和定性信息。优势包括:不依赖固定模板、内嵌错误检查、简化人力劳动、从复杂数据中提取信息、提供清晰的来源解释、适应性强并可通过监督和指令调优不断改进。
市场模拟:超越分析师的模仿
市场模拟可以通过模仿人类分析过程,构建一个包含多种市场参与者的环境,反映市场动态。模拟环境中的代理人基于数据驱动的提示进行决策,模拟人类分析师的认知步骤。利用大型语言模型(LLMs)编码决策框架,使代理人理解市场的定量和定性方面。
模拟框架包括:定义市场参与者角色与行为、实施多种数据输入与决策模型、在不同时间范围和条件下模拟市场互动、利用强化学习优化代理人策略。该概念为金融市场分析和策略优化的未来研究提供了有前景的方向。
演示应用程序和实践教程
应用一:市场预测员
Market Forecaster是一套AI代理,旨在综合市场新闻和金融数据。提供公司最新成就和潜在问题的全面洞察。预测股票价格走势。作为初级机器人顾问,代表AI驱动金融顾问的重大进步。
数据
Market Forecaster利用多种数据源进行全球市场预测,关注美国和中国股市。收集的信息包括公司新闻、基本财务数据和股票价格。主要数据来源为Finnhub和EastMoney。
模型
该AI代理基于微调的FinGPT-Forecasters,使用Llama-2-7b-chat-hf与LoRA。数据来源于最新一年的美国道琼斯30和中国上证50,确保对主要股票的精准预测。展示了在不同股票符号上的强大泛化能力。采用金融多任务指令调优范式,以增强基础模型与市场预测功能的对齐。
提示
市场预测器采用多任务指令调优框架,使用复杂的提示格式。收集多方面的公司信息,包括公司概况、近期股价、最新新闻和基本财务数据。通过提示工程将信息格式化为指令提示。
预测结果
Nvidia和Kweichow Moutai的样本分析展示了市场预测工具的综合能力。市场预测工具提供了基于多种信息源的有价值见解。该工具还给出了股票未来走势的建议,体现了其提供可操作指导的能力。
应用二:文件分析与生成
文档分析与生成应用利用AI代理和大型语言模型(LLMs)进行金融文档管理和报告创建。
文档分析
9个AI代理分析年报、SEC文件和财报电话会议记录,提取关键信息。能识别关键财务指标,突出趋势和差异,提供可操作的洞察。AI代理能够理解复杂的金融术语,将非结构化数据转化为结构化信息。
报告生成
FinRobot利用LLM生成全面的财务报告,涵盖绩效评估、市场比较和前瞻性财务预测。报告保持专业语气和格式,质量与顶级金融分析师相当。附录中包含的股权研究报告展示了平台的应用和有效性。
总结
FinRobot通过整合多源大型语言模型(LLMs)在开源平台上,提升金融分析的可及性、效率和透明度。该平台采用多层架构,支持实时数据处理和多样化模型集成,简化全球市场的复杂性。FinRobot促进金融AI社区的合作,加速创新,提升战略决策能力。
未来计划扩展应用,包括投资组合配置和全面风险评估,增强在金融领域的实用性。还将拓展平台在全球市场的覆盖,提升适应不同经济环境的能力,推动AI驱动的金融分析创新与可及性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。