为什么要使用”自定义运行FAI加速”模块
FAI是BigQuant研发的云加速集群调度应用,其对海量数据的处理能力和计算能力是有目共睹的. ”自定义运行FAI加速”模块只是FAI用法的冰山一角,但这冰山一角所实现的功能十分强大, 它可以对不同模块下的参数进行调整, 而且能够达到并行调整的程度. 纵向能够对模块的运行起到加速效果, 横向能够并行运行得到不同参数下结果.
我举几个简单的应用:
先搭建好你的模型和策略, 并在此基础上添加“自定义运行FAI加速模块”
让我们点开这个模块, 看看其中有那些参数
可以发现有两个参数需要你填写.
我们先来介绍一下如何开启集群,开启集群有两种方法:
图片从左到右, 首先打开集群按钮, 新建集群。进一步设置集群的各种部件(节点规格, 节点数等), 然后保存并启动.
还有一种新建集群的方法, 当这种方法无法新建集群时, 或无法使用时, 我们可以直接进入集群管理页面https://bigquant.com/fai/console/#/cluster/manage
镜像那里我们只需要设置成默认镜像即可.
现在让我们回到自定义加速模块
我们将新建的集群在模块中选中:
现在我们开始进行调参程序的编写, 以随机森林的树的数量和每个叶子节点最小样本数为例
我们需要以代码的方式表达调参逻辑, 所以我们需要点开代码模式, 看看这两个参数是如何用代码表示的, 首先我们观察到随机森林名称是m12, 所以我们只要找到m12的代码区域即可
直到了这两个参数的代码表示后, 我们可以开始编写run函数中的代码了:
run函数中只需要在方框的基础上对内容进行变换即可, 接下来我来剖析红色框框中的代码逻辑:
针对随机森林的模块, 我们要调节的有两个参数——树的数量, 叶子最小样本数.
树的数量的取值为4或9, 叶子最小样本数取值为50或200. 所以这是个网格搜索的问题, 所以将它们组合起来为
[{'m12.iterations': 4, 'm12.min_samples_per_leaf': 50},
{'m12.iterations': 4, 'm12.min_samples_per_leaf': 200},
{'m12.iterations': 9, 'm12.min_samples_per_leaf': 50},
{'m12.iterations': 9, 'm12.min_samples_per_leaf': 200}]
注意:不同都为参数一定要在同一个字典中作为键各出现一次, 不同的参数不允许单独出现在一个字典里作为键, 如
[...{'m12.iteration': 4}, {'m12.min_samples_per_leaf': 50}...]
所以说, 其实上述的嵌套循环其目的就是为了构造出上述字典列表.
之后直接运行即可.
由于这里设了两个参数, 参数取值都为2, 所以他会输出2*2=4个结果
m13.result是FAI调参加速模块的结果, 由于我们调了4组参数, 所以它会有四种结果, 每种结果下找到回测模块(m15)调用display即可查看不同参数下的回测效果.