在线运行金融大模型 deepmoney-34b-full

模型简介

本模型是基于 https://huggingface.co/01-ai/Yi-34B-200K 训练,分为 pt(全参数训练)和 sft(lora 微调) 两个阶段。

1. 我想干什么?

当下大多数所谓的金融模型大多在公开知识上进行训练,但在实际的金融领域,这些公开知识对当前的市场可解释性往往严重不足。如果您感兴趣,可以了解一下凯恩斯、弗里德曼乃至当下行为金融学的各类主张。而且每时每刻,市场都在变化,大量的新闻,海量的数据都是实时的,为什么不用大模型制作一套 pipeline 呢? 在我的计划中,该模型是这套流程的基座模型,在我的计划中,信息搜集者、标的判断者、定性分析者定性分析者、定量分析者、数据提取者等模型都是该流程的一部分。但模型本身掌握大量的定性和定量方法毫无疑问是重要的。这就是这个模型诞生的理由。

2. 关于数据:

pt: 很多公开知识的有效性都有些问题——但这并不意味着它们是错误的。在研报中很多研究方法背后的理论支撑也依赖这些知识。所以在我的训练中,我挑选了一些大学教材和一些专业书籍。数量不是很多但质量还不错。另外,我挑选了在 2019-2023 年 12 月的大量研究报告数据——这些报告的发布者多种多样,有传统的 broker,也有研究机构。他们中的大多数是付费的,而且只对机构提供。

如果你看过研报,尤其是高质量的那些,你会发现研报都是主观判断+定量分析,而定量分析中的数据支撑对于整个逻辑链条至关重要。为了提取这些数据, 我制作了一套从研报上下文总结作为 prompt 一部分的流程。

最后,我把这些数据做了一个混合。并没有放入通识数据, 因为它就是为了 greed 而生的。而且行业研报中的知识足够全。

sft: 首先,将一份研究报告按照章节分成几个部分,作为上下文,让 goliath-120b(这里可以继续多测评,实测 claude3 的效果更好一些)针对研究报告的内容提出问题。 然后使用 Nous-Capybara-34B 回答问题和相应的研究报告片段。 之所以将提问者和回答者分开,是为了防止模型 “自问自答”,不按照研究报告回答而是夹带自己的输出。 这样就可以提取出研究报告中的知识和方法。 另外,我使用 gpt4 从研究报告中提取了标的资产(如果有的话)并将其放置在指令中。 在我设想的使用中,我想给出指令中的目标以及爬虫实时爬取的新闻源,结合一个自动提问的代理,让模型能够对时事新闻进行推理。

3:关于训练:

本模型采用 llama-factory 训练框架进行训练。具体使用方法可以参考:hiyouga/LLaMA-Factory: Unify Efficient Fine-tuning of 100+ LLMs (github.com)

本模型经过 pt 和 sft 两个阶段。

4:模型评估:

让我们采样一些最近发生的事件,模拟真实世界中事件驱动的证券分析流程,针对 deepmoney 和 gpt4 进行对比测试。因为事件对市场产生的影响比较隐形,如果没有严谨的回测流程,很难评估效果。而且我们的产出需要使用很多定量方法进行分析。所以我把结果贴在这里,大家可以对生产的结果进行感性的评价。 我有一套全球新闻爬取系统,每时每刻都有很多新闻,我的流程中针对这些新闻进行了去重和主客观判断,这些可以通过传统的 bert 来解决。然后对于 deepmoney,这里使用三个步骤来对传入的新闻进行处理: 1, 以上新闻可能对哪些行业板块或者投资标的造成影响? 2, 请你设计一套定量方法研究以上新闻对____业产生的影响。并据此说明具体需要使用哪些数据。 3, 请根据以下数据,_____设计一套具体的定量方法定量分析以上新闻对____业产生的影响。

其中,第一个问题是主观判断,提取新闻影响的标的。这更多的依赖模型的主观分析能力。然后从第一个回答中提取行业名称(这对于熟悉大模型的人来说,设计一套自动化流程易如反掌),填入第二个问题中,目的是获取定量分析的数据。之所以先问定量方法再数据,是 COT 的魔法。最后一个问题的回答才是我们真正需要的,这个问题上下文中给了足够多的信息,需要它回复一个确切且具体的定量方法。结合代码编写的模型和函数调用的模型,如果你有一个数据字典完善的宏微观数据库的话,这是完全可以实现的。以上是 deepmoney 和 gpt4 的这三步回答,该新闻是 20240115 北京时间早晨 9:35 刚刚发生的新闻。