投资型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库