投资型llm
RAG系统已经趋向成熟,几乎任何一个玩llm的人都知道,向量数据库,文档分割,向量文段召回,上下文学习。作者在偶然发现了这篇有趣的论文,这个LLM 打败华尔街的论文,也是基于这个系统。但是不一样的是,他们的玩法更加垂直领域,而且多次使用了LLM的 ”总结“ 功能,融合RAG系统里面去,本文的就是通过这篇论文,探索LLM-RAG的未来发展趋势。
在投资领域,该论文认为LLM表现比人类更好,更稳定,没有偏见,而且很多大机构比如高盛,和摩根大通已经开始利用LLM加强业务,但是应该如何做的呢?
如果设想一下一个llm驱动的投资AI,会变成什么样?
- 1 集成LLM作为底座到量化投资领域
- 2 可对输出的投资策略进行解释
- 3 对B端公司,团队可用,对C端个人散户也可用
- 4 比人类更加稳健,且具有更好的回报率
- 5 独立且不依附任何集团,不为任何金融集团背书,绝对的客观公正
基础架构
基本架构图如下
总共使用了4个独立的信息来源,底座也是基于api的RAG系统,分别是
(下文提及的RAG系统,指的是通过api获取数据,然后作为上下文输入给模型,进行信息总结,总结后入库,定期更新)
- 新闻数据总结RAG系统
- 基本总结RAG系统(基本分析指的是,上市公司公开的财报信息等)
- 宏观经济总结RAG系统 (宏观经济分析是,类似黑石,高盛,这样的权威的集团给出的经济报告)
- 动态股价RAG系统
最后把所有的子系统的输出,汇聚到一个”数据库“ bucket里面,然后对数据进行提取,再输入给强大如GPT4,进行step by step的总结,把系统行为收敛到三个行为,并且给出解释
- 持有股票
- 卖出股票
- 买入股票
新闻数据总结RAG系统
该论文认为,要模拟一个投资团队对新闻的处理行为。
他们把新闻分为三种:
- 对市场有短期影响的新闻 (比如某终端公司的发布会新闻)
- 对市场有长期影响的新闻 (比如美联储和央银的一些措施新闻)
- 对市场毫无影响的新闻
如下图:
该模块会通过api调用获取各种经济新闻,然后对返回的Json做数据预处理。这里预处理的目的在于把新闻的主要信息填充到预设好的 one-shot prompt 里给llm进行上下文推理,让llm对这些日更新闻做总结,进而存储到向量数据库里。
这里比较难以理解的是PN,PN其实代表的是月度新闻,用来捕捉公司的现状和内在。
月度新闻会把日新闻集成到一起,但是如何丢弃无关新闻,老旧新闻,以及集成后好处有哪些,论文没说。
如何集成? 当月的PN是来自PN-1,也就是上个月的PN,同时还有30天内的每日新闻。
PN(this month) = PN (last month) + Daily News(30 days)
而且这里PN可以设置为,一个月,双周,视情况而定。
举了一个苹果公司的例子,每天都有非常多信息流涌入:比如iphone15的发部,M3芯片,但是销售速度下降,这些信息会汇总为到一起, 与上个月的月度信息汇总一起,按照上述公式进行迭代。
基本信息总结RAG系统
和上文一样的,通过api获取财报之类的信息,处理数据:比如把数据里的各种0替换为百万和亿,提取关键信息等。
prompt是有严格的格式的,比如盈利性,负债,回报率等财报性质相关的数据。
预处理阶段把财报信息填充入prompt。并且和前两个季度对比。llm会敏锐的发现财务的变化,还是和上文一样,这个信息迭代是通过总结上一个,或者上两个信息体,进行递进。(有点像斐波那契数列)
这个summarize promopt故意设置为比较没有偏见的,尤其是要客观,论文强调了一点,prompt的设计要避免给出直接的投资决策。
新闻和基本信息的总结如下图:
动态股价总结RAG系统
这个系统依旧会通过api获取实时的股价数据,而这里关键在于这里的prompt,这里prompt要填写目标公司的股价信息外,还有加入5个同类公司的股价进去,作为输入给大模型。
但是如何根据目标公司找到5个同类公司,这里论文给的是,根据公司的描述信息进行向量召回,算法如下:(本质上就是一个RAG)
最后把这些股价各个维度信息输入到预设好的prompt,给gpt4后进行总结。这种方式,somehow也是常见投资者进行同类分析的方式。
当然还有更高级的对冲分析,这些比较复杂,所以论文应该是简单省略。
宏观经济分析总结
宏观经济的分析,这类分析,比如疫情,和战争对市场是会很大的影响。
这类数据来源于,类似摩根大通,和高盛,ubs,黑石,世界银行之类的机构的投资报告,采取双周制度更新的机制。
简单的说,还是总结,就是把这些报告信息进行预处理,填入prmopt, 使用gpt4进行总结,最后存库,双周更新一次。
决策阶段
这是最后一个阶段,决定某在一个“赌场” :)比如 A股,美股,日股里的一只股票是继续持有,还是加仓,还是卖掉。
此时已经有了四大信息了 N,F,P,M,(上文已经赘述)
就差一个函数来决定 F(N,F,P,M)来进行决策,gpt4 此时会扮演这个投资专家角色(promopt),并且还要step by step推理,给出
{卖出,买入,持有} 的返回值。
并且要对做出的决定给与解释。
prmopt 格式如下:
总结:
后续论文还给出了股票排行榜之类的做法,但是基础架构就是介绍完了,还有实验数据论文声称自己得到一个很好回报率,细节不赘述。
底层技术实现
底层实现是用了
- langchain 框架
- gpt4 的 api
- vectorbt pro 一个量化交易的python库