近期,微软亚洲研究院正式发布了AI量化投资开源平台“微矿Qlib”。这是微软亚洲研究院成立“创新汇”三年以来,在与金融行业的成员企业合作研究的基础之上,打造的AI+金融跨界创新的阶段性重要成果,通过创建一个通用的技术平台,帮助实现量化投资流程的AI闭环。
Qlib涵盖了量化投资的全过程,为用户的AI算法提供了高性能的底层基础架构,从框架设计上让用户可以更容易地应用AI算法来辅助解决量化投资的各个关键问题(例如Alpha预测,风险预测,市场动态性建模)。
对于金融从业者来说,Qlib平台大大降低了使用AI算法的门槛,其内部集成了十几个AI算法在金融场景下的使用样例以供参考,并且为整个金融行业提供了一个适应AI算法的高性能基础设施和数据、模型管理平台。而对于AI从业者来说,Qlib则提供了一个完备的投资研究框架,以及基于领域知识设计的多个跨市场的数据集和业内领先的基准。
与传统量化投资工具不同,Qlib覆盖了量化投资的全过程,而且从底层构造开始就专为AI而生,从数据处理到计算力支撑,再到模型的训练与验证,都为基于AI的量化投资提供了全方位的框架支持。用户可以通过Qlib平台提供的多个工具模块,更加轻松地管理和使用自己的算法,特别是其AI算法。Qlib的三大特点:
从Qlib的功能模块图我们便可一窥全貌。
Qlib平台功能模块
最底层的是基础架构层(Infrastructure)。Qlib的数据服务模块(DataServer)提供了高性能的数据存储设计,让AI算法可以更快地处理更多金融数据。训练模块(Trainer)则为AI算法提供了灵活的接口来定义训练模型的过程,让Auto-ML等算法成为可能,也为分布式训练提供了接口。而模型管理模块(ModelManager)可以让用户更好地管理繁多的AI模型,更快地迭代其AI算法。
中间层是量化投资流程(Workflow)。信息抽取模块(InformationExtractor)负责从异构数据中提取有效的信息,因为用AI进行投资分析数据是关键,尽管金融行业有一定的数据基础,但AI模型可以直接使用的高质量数据仍然十分有限,所以这就需要更多精细化处理和信息抽取。之后,预测模型(ForecastModel)会输入抽取的信息,输出可供金融专家参考的未来收益、风险等等预测,然而预测模型需要依靠底层海量数据才能训练出精准、有效的预测模型。而投资组合生成模块(PortfolioGenerator)则能根据预测得到Alpha信号和风险信号辅助生成投资策略组合。订单执行模块(OrderExecutor)是投资的最后一步——交易执行,帮助用户判断何时下单也是一门艺术。
在量化投资中,几乎不可能有一个模型在全时段都一直保持卓越的表现,所以对市场动态性建模,以及在不同时期适时地调整模型、策略、执行也是一个非常重要的课题。Qlib中元控制器模块(MetaController)的设计正是要支持这类问题的研究,实时提供精准的参考信息和方案,辅助用户进行操作。
最上层是交互层(Interface)。其中,分析模块(Analyzer)会根据下层的预测信号、仓位、执行结果做出详细的分析并呈现给用户。
事实上,传统量化投资开源平台的诞生大多早于AI和机器学习的兴起,更偏重于量化投资的回测、分析或执行方面的功能,不少平台只包含其中的某些部分。而Qlib所提供的数据处理、模型训练、投资组合生成等部分都是其特有的能力。Qlib完整的投资流程框架不仅让分析人员可以拥有更加整体的视角,而且工具齐全,需要什么都可以信手拈来。
由于AI技术是最近几年才开始进入投资研究领域的,传统的量化投资几乎没有采用AI技术,只需应对传统算法,所以基于AI的量化投资平台自然需要提供更强大的底层架构和接口支持。因此,Qlib提供了一个高性能的基础平台,从算力支撑到数据存取,都能够满足金融AI对于性能的高级别要求。
在数据层面,Qlib提供了基于领域知识设计的多个跨市场的数据集。其数据服务模块中内含了为金融数据专门设计的表达式计算引擎,对金融数据和运算进行了存储和计算优化。相比传统IT平台,Qlib的计算性能要快数十倍,可以让用户的AI模型更轻松地驾驭更多的数据。在数据的使用方面,AI模型与传统模式也有很大不同,传统量化投资的信息抽取依赖于金融行业研究员根据经验和领域知识实现的因子,但AI算法则有能力自动从数据中抽取信息。对此,Qlib的数据管理框架未来会满足AI模型所特有的使用方式。
值得一提的是,模型管理也是Qlib特有的部分。由于管理过程中会涉及模型众多、参数复杂、数据海量、管理追踪难/复现难等问题,Qlib提供了专门的模型管理器模块(ModelManager)帮助用户更加系统化地管理自己的AI模型。只有管理有序,才能在需要的时候找到最适合的模型,提高预测分析的效率和准确率。
投资研究是一个复杂的过程,其中的每个环节实际上都可以独立出来作为一个单独的研究课题。所以,Qlib在框架构建之初就考虑到了研究过程的灵活性,不能将流程固化,框架中的各个模块分则各具特点,合则浑然一体,这样研究人员就可以根据自己的工作流将不同的模块组合,灵活配置架构。
人们常说,术业有专攻,隔行如隔山,但在Qlib,行业区隔不再是难题,因为无论是金融从业者还是AI从业人员都可以从中找到自己的所需。
此外,Qlib也正在逐步成为学术界科研人员的有力工具。Qlib提供了大量的公开数据集、业界基准和相对统一的评价指标,有助于研究人员在测试新算法时省去不必要的、与核心工作无关的工作而专心于研究任务,同时也能够帮助研究人员定义合理的学术研究问题。