云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港带宽_华中数控阿里云_返现

小七 141 0

使用MLflow、Apache Spark MLlib和Hyperopt调整超参数

超参数整定是一种常用的基于超参数或模型训练过程中未学习到的配置来优化机器学习模型的技术。调整这些配置可以显著提高模型性能。然而,超参数调整在计算上是昂贵的、缓慢的,甚至对专家来说也是不直观的。Databricks运行时5.4和5.4ml(Azure | AWS)引入了新特性,有助于扩展和简化超参数调整。这些特性支持Python中ML的调优,重点是通过apachespark实现可伸缩性,并通过MLflow实现自动跟踪。MLflow:跟踪调整工作流超参数调整创建了复杂的工作流程,包括测试许多超参数设置、生成大量模型以及在ML管道上迭代。为了简化优化工作流的跟踪和再现性,我们使用MLflow,一个开源平台来帮助管理完整的机器学习生命周期。在MLflow文档和最近举行的2019年Spark+AI峰会上了解有关MLflow的更多信息。我们的集成鼓励一些组织运行和跟踪超参数调整的最佳实践。在较高的层次上,我们按如下方式组织运行,与调优本身所使用的结构相匹配:调谐MLflow运行MLflow测井超参数整定算法父级运行元数据,例如交叉验证器的numFolds使用超参数设置拟合和评估模型#1儿童跑步1超参数#1,评估指标#1使用超参数设置拟合和评估模型#2儿童跑步2超参数#2,评估指标#2………要了解更多信息,请查看2019年Spark+AI峰会上关于"使用MLflow进行超参数调整的最佳实践"的演讲。托管MLflow现在通常在Databricks上可用,当MLflow库安装在集群上时,我们接下来讨论的两个集成默认使用Managed MLflow。Apache Spark MLlib+MLflow集成apachespark MLlib用户经常使用MLlib的内置工具CrossValidator和TrainValidationSplit来优化超参数。它们使用网格搜索来尝试用户指定的一组超参数值;有关更多信息,请参阅Spark文档。Databricks运行时5.3和5.3ml及以上版本支持Python中MLlib调优的自动MLflow跟踪。有了这个特性,PySpark CrossValidator和TrainValidationSplit将自动记录到MLflow,在层次结构中组织运行并记录超参数和评估度量交叉验证程序.fit()将记录一个父运行。在这个运行中,CrossValidator将为每个超参数设置记录一个子运行,并且每个子运行将包括超参数设置和评估度量。在mlflowui中比较这些运行有助于可视化调整每个超参数的效果。在Databricks运行时5.3和5.3ml中,默认情况下不启用自动跟踪。要打开自动跟踪,请设置Spark配置spark.databricks.mlflow.trackMLlib.enabled.已启用变成"真"。在5.4版本中,默认情况下启用了自动跟踪。查看文档(AWS | Azure)开始吧!分布式Hyperopt+MLflow集成Hyperopt是一个流行的开源超参数调优库,具有强大的社区支持(截止2019年5月,在Github上下载了600000+个PyPI,有3300多个星)。数据科学家使用Hyperopt是因为它简单有效。Hyperopt提供了两种调整算法:随机搜索和Parzen估计量的贝叶斯方法树,与网格搜索等暴力方法相比,它提供了更高的计算效率。但是,以前分发Hyperopt不是开箱即用的,需要手动设置。在Databricks Runtime 5.4ml中,我们介绍了apachespark支持的Hyperopt实现。使用新的试用类SparkTrials,您可以轻松地分发Hyperopt运行,而不必对当前的hyperoptapi进行任何更改。在应用超选择.fmin()函数(请参阅下面的示例代码)。此外,所有调优实验,连同它们的超参数和评估指标,都会自动记录到MLflow的Databricks中。利用此功能,我们旨在提高超参数调整工作流的效率、可伸缩性和简单性。查看文档(Azure | AWS)开始吧!#新的SparkTrials类,用于分发调优spark_试验=SparkTrials(平行度=24)fmin公司(fn=训练,#训练和评估模型的方法空间=搜索空间,定义超参数空间阿尔戈=tpe.建议搜索算法:Parzen估计树max_evals=8,要尝试的超参数设置数show_progressbar=False,试验=火花试验)结果可以用平行坐标图等工具可视化。在下面的图中,我们可以看到损失最好(最低)的深度学习模型是使用中到大批量、小到中的学习速率和各种动量设置进行训练的。请注意,这个图是通过plotly手工绘制的,但是MLflow在不久的将来将为平行坐标图提供本地支持。在Databricks,我们拥抱开源社区和api。我们正在与Hyperopt社区合作,将这个Spark-powered实现贡献给开源Hyperopt。敬请期待。开始吧!要了解有关常规超参数调整的详细信息,请执行以下操作:请不要错过我们即将举行的在线研讨会,在6月20日(星期四)上,为深入研究和现场演示自动调整、缩放和跟踪数据块。看看这些来自Spark+AI峰会的演讲:Joseph Bradley的"使用MLflow进行超参数调谐的最佳实践"Maneesh Bhide的"基于MLflow的深度学习高级超参数优化"要了解有关MLflow的更多信息,请查看以下资源:MLflow网站MLflow文件Spark+AI峰会2019年MLflow会谈,包括MLflow主题演讲要开始使用这些特定功能,请查看以下文档页及其嵌入的示例笔记本。在新的Databricks Runtime 5.4ml版本中试用它们。对于MLlib用例,请查看MLlib+自动MLflow跟踪文档(AWS | Azure)。对于单机pythonml用例(例如scikit learn、单机TensorFlow),请查看分布式Hyperopt+自动MLflow跟踪文档(Azure | AWS)。对于非MLlib分布式ML用例(例如HorovodRunner),请看MLflow关于向Hyperopt和其他工具添加跟踪的示例。免费试用Databricks。今天就开始吧