最佳实践:Hyperparameter Hyperopt调优

最佳实践

  • 贝叶斯方法可以更有效比网格搜索和随机搜索。因此,Hyperopt Parzen树估计(TPE)算法,您可以探索更多的hyperparameters和更大的范围。使用领域知识限制搜索域可以调优和优化产生更好的结果。

  • 当你使用hp.choice (),Hyperopt返回选择的索引列表。因此参数登录MLflow也是该指数。使用hyperopt.space_eval ()获取参数值。

  • 模型训练周期长,开始尝试小数据集和许多hyperparameters。使用MLflow识别表现最好的模型和确定哪些hyperparameters可以固定。通过这种方式,您可以减少参数空间准备大规模调整。

  • 利用条件维度和hyperparameters Hyperopt支持。例如,当你评估多个口味的梯度下降法,而不是限制hyperparameter空间共同hyperparameters,可以有条件hyperparameters-the Hyperopt包括那些只适合口味的一个子集。关于使用条件参数的更多信息,请参阅定义一个搜索空间

  • 当使用SparkTrials,适当配置并行处理器仅仅与GPU-enabled集群。在砖,CPU和GPU集群使用不同数量的人均节点执行人线程。CPU使用多个集群每个节点执行人线程。GPU集群使用每个节点只有一个执行人线程来避免冲突在多个火花任务试图使用相同的GPU。虽然这是通常最优库编写的GPU,这意味着GPU集群的最大并行度下降,所以要注意有多少GPU每个试验可以用在选择GPU实例类型。看到GPU-enabled集群获取详细信息。

  • 不要使用SparkTrials在自动定量集群。Hyperopt选择执行开始时的并行性价值。如果集群后自动定量,Hyperopt将无法利用新集群的大小。

故障排除

  • 南的挂失(不是一个数字)通常意味着目标函数传递给fmin ()返回NaN。这并不影响其他运行,您可以安全地忽略。为了防止这个结果,试着调整hyperparameter空间或修改目标函数。

  • 因为Hyperopt使用随机搜索算法,每次运行的损失通常不单调减少。然而,这些方法经常找到最好的hyperparameters比其他方法要快多了。

  • Hyperopt和火花产生开销,可以主宰审判期限短试验(低几十秒)。你观察的加速可能很小甚至为零。

示例笔记本:不同大小的数据集的最佳实践

SparkTrials运行试验引发工人节点。这个笔记本提供指导如何移动数据集不同数量级的工人在使用节点SparkTrials

处理数据集不同数量级的笔记本

在新标签页打开笔记本