要说技术在什么领域发展最快,那肯定就是有钱的领域,金融科技Fintech一直都是前沿科技的代表。
今天我们来分享一个GitHub上的开源项目,它利用大型语言模型(LLMs)来支持金融应用,股票预测、 财务分析、研报撰写以后都可以由AI来搞定了,它就是:FinRobot。
FinRobot是什么
FinRobot是一个超越 FinGPT 范畴的 AI Agent 平台,它由AI4Finance基金会开发,是专为金融应用精心打造的综合解决方案。它集成了多种 AI 技术,超越了单纯的语言模型。这种广阔的视野凸显了平台的多功能性和适应性,满足了金融行业的多方面需求。
FinRobot是一个强大的平台,通过使用大型语言模型(LLMs)作为其核心技术,为解决复杂的金融问题提供了智能代理的支持。其架构包括金融AI代理层、金融LLMs算法层、LLMOps和DataOps层,以及多源LLM基础模型层,可以提供多元化的金融分析和操作,例如市场预测、文件分析和交易策略。FinRobot还配备了智能调度器,可以优化模型的融合和选择。
FinRobot 系统架构
FinRobot 的整体结构是由四个有趣的层组成的,每个层都在解决金融 AI 处理和应用的一些特定的问题哦:
- 金融 AI 代理层:这一层现在包括金融思维链 (CoT) 提示,可以帮助我们增强复杂的分析和决策能力。例如,市场预测代理、文档分析代理和交易策略代理,它们利用 CoT 将金融挑战分解为逻辑步骤,将自己的高级算法和专业知识与金融市场不断变化的动态相结合,从而获得精确和实用的见解。
- 金融 LLM 算法层:这一层配置并使用了针对特定领域和全球市场分析的专门调整模型,非常专业。
- LLMOps 和 DataOps 层:在 LLMOps 层,我们实施了多源集成策略,利用一系列最先进的模型,为特定的财务任务选择最合适的 LLM,这样我们就可以得到最好的结果了。
- 多 LLM 模型层:这个基础层支持各种通用和专门 LLM 的即插即用功能,非常方便!。
金融AI代理层工作流程
- 感知:该模块捕获并解释来自市场信息、新闻和经济指标的多模式金融数据,使用复杂的技术构建数据以进行彻底的分析。
- 大脑:作为核心处理单元,该模块使用 LLM 感知来自感知模块的数据,并利用财务思路链 (CoT) 流程生成结构化指令。
- 行动:该模块执行来自大脑模块的指令,应用工具将分析见解转化为可操作的结果。行动包括交易、投资组合调整、生成报告或发送警报,从而积极影响金融环境。
金融LLM算法层(Financial LLMs Algorithms Layer)
这一层包含了针对金融行业特定需求设计的先进AI算法,以增强平台在一系列金融应用中的性能:
- 金融大型语言模型(FinGPT) :这是一个专为金融领域设计的大型语言模型,通过监督式微调,利用金融领域的指令响应数据对开源大型语言模型进行优化。
- 金融强化学习(FinRL) :这个模型使用集成深度强化学习算法来优化交易策略,同时分析历史和实时市场数据。
- 金融机器学习(FinML) :这个模型利用多种机器学习技术来提高金融预测分析的能力。
- 金融多模态LLM:这个模型处理并综合来自多种模态(如文本、图表和表格)的信息,以提供全面深入的金融文档理解。
智能调度器
智能调度器对于确保模型多样性以及优化每个任务最合适的 LLM 的集成和选择至关重要。
- 主管代理:该组件协调任务分配过程,确保根据代理的绩效指标和特定任务的适用性将任务分配给代理。
- 代理注册:管理注册并跟踪系统内代理的可用性,促进高效的任务分配流程。
- 代理适配器:根据特定任务定制代理功能,增强其性能和在整个系统中的集成。
- 任务管理器:管理和存储针对各种财务任务定制的不同通用和微调的基于 LLM 的代理,并定期更新以确保相关性和有效性。
数据操作层(DataOps Layer)
数据操作层管理金融分析所需的广泛和多样化的数据集,确保输入AI处理管道的所有数据都是高质量和代表当前市场状况的:
- 检索增强生成(RAG) :结合了上下文检索机制和LLMs的优势,优化语言生成任务。
安装FinRobot
项目的文件结构如下,主文件夹finrobot有三个子文件夹agent、data_source、 functional。
1.(推荐)创建一个新的虚拟环境
conda create --name finrobot python=3.10
conda activate finrobot
- 使用终端下载 FinRobot repo 或手动下载
git clone <https://github.com/AI4Finance-Foundation/FinRobot.git>
cd FinRobot
- 从源代码或 pypi 安装 finrobot 及其依赖项
从 pypi 获取我们的最新版本
pip install -U finrobot
4.修改OAI_CONFIG_LIST_sample文件
1) rename OAI_CONFIG_LIST_sample to OAI_CONFIG_LIST
2) remove the four lines of comment within the OAI_CONFIG_LIST file
3) add your own openai api-key <your OpenAI API key here>
5.修改config_api_keys_sample文件
1) rename config_api_keys_sample to config_api_keys
2) remove the comment within the config_api_keys file
3) add your own finnhub-api "YOUR_FINNHUB_API_KEY"
4) add your own financialmodelingprep and sec-api keys "YOUR_FMP_API_KEY" and "YOUR_SEC_API_KEY" (for financial report generation)
- 开始浏览以下教程或演示:
# find these notebooks in tutorials
1) agent_annual_report.ipynb
2) agent_fingpt_forecaster.ipynb
3) agent_trade_strategist.ipynb
4) lmm_agent_mplfinance.ipynb
5) lmm_agent_opt_smacross.ipynb
示例:撰写金融分析报告
以公司的 10-k 表格、财务数据和市场数据作为输入,输出股票研究报告
数据输入
import os
import autogen
from textwrap import dedent
from finrobot.utils import register_keys_from_json
from finrobot.agents.workflow import SingleAssistantShadow
配置
llm_config = {
"config_list": autogen.config_list_from_json(
"../OAI_CONFIG_LIST",
filter_dict={
"model": ["gpt-4-0125-preview"],
},
),
"timeout": 120,
"temperature": 0.5,
}
register_keys_from_json("../config_api_keys")
# Intermediate strategy modules will be saved in this directory
work_dir = "../report"
os.makedirs(work_dir, exist_ok=True)
assistant = SingleAssistantShadow(
"Expert_Investor",
llm_config,
max_consecutive_auto_reply=None,
human_input_mode="TERMINATE",
)
运行
company = "Microsoft"
fyear = "2023"
message = dedent(
f"""
With the tools you've been provided, write an annual report based on {company}'s {fyear} 10-k report, format it into a pdf.
Pay attention to the followings:
- Explicitly explain your working plan before you kick off.
- Use tools one by one for clarity, especially when asking for instructions.
- All your file operations should be done in "{work_dir}".
- Display any image in the chat once generated.
- All the paragraphs should combine between 400 and 450 words, don't generate the pdf until this is explicitly fulfilled.
"""
)
assistant.chat(message, use_cache=True, max_turns=50,
summary_method="last_msg")
结果
在生成这个金融分析报告的过程中,涉及到的任务包括以下:
- 初步数据收集:获取10-K报告、市场数据和财务比率
- 财务报告分析:评估资产负债表、损益表和现金流量表
- 概述公司和业绩:提供公司介绍、突出业务成就和进行分部分析
- 评估风险:评估目标的金融风险
- 财务表现可视化:展示市盈率和每股收益
- 整合发现成段落:将所有部分整合成一个流畅的摘要
- 输出报告:自动输出PDF格式的报告
- 保证质量:检查内容的字数和拼写错误
另外项目还给出了相关的论文信息,在论文中有对每一层技术内容做更详细的深入介绍,非常建议将项目和论文配合学习,可以更好的理解项目的思路。
总结
FinRobot 项目整体融合了目前LLM和agent的能力,将之利用到了最有商业前景的金融领域,这确实是一个很有想象力的尝试。从目前来看可以解决一些实际的问题,如果根据具体使用者的场景进行深挖,是完全可以利用AI的能力,在金融场景中产生出不错的价值。
项目信息
- 项目名称: FinRobot
- GitHub 链接:[github.com/AI4Finance-…]
- Star 数:1K
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓