APP下载

微软更换ML.NETAPI释出0.6版,预测效能提升超过百倍

消息来源:baojiabao.com 作者: 发布时间:2024-03-29

报价宝综合消息微软更换ML.NETAPI释出0.6版,预测效能提升超过百倍

由微软研究院开发的机器学习框架ML.NET,持续释出每月更新,这次最重要的更新是弃用LearningPipeline API,使用全新的学习API,支援的机器学习框架也越来越丰富,除了上一个版本的TensorFlow,现在也支援ONNX模型。而在整体效能上,这个版本的模型预测速度提升了超过100倍。

在9月的ML.NET 0.5更新中,微软开始支援TensorFlow模型,并且预告将会使用新的API,弃用LearningPipeline API,而这也成为ML.NET 0.6中最重要的更新,加入了用于建构和使用机器学习模型的API,在ML.NET 0.1中开始提供的LearningPipeline API,虽然很容易上手,但是因为存在诸多限制,为了让整个框架可以继续往下发展,微软只好把这部分砍掉重练,现在LearningPipeline API移到Microsoft.ML.Legacy命名空间。

新的API目的是要支援更广泛的使用情境,并且遵循来自相关热门框架如Apache Spark和Scikit-Learn等的机器学习原则和命名规则。现在ML.NET机器学习模型流程分为明确的三个阶段,非别是准备资料、建置和训练,最后则是执行阶段。准备资料又分成两个步骤,载入资料和萃取特征,而建置和训练阶段又包含了训练模型和评估模型步骤。

在机器学习生态系互通性上,ML.NET 0.6多支援了ONNX格式的模型。ONNX是一种开放而且具互通操作性的模型格式,可以使用Scikit-learn、TensorFlow和Xgboost等框架训练模型后,输出为ONNX模型于其他的框架中使用。在ML.NET 0.3中支援输出ONNX-ML格式功能,因此开发者可以将ML.NET获得的结果,输出到其他框架中使用,而在这个新的ML.NET 0.6版本中,ML.NET可以接受来自其框架的ONNX模型进行预测。

微软在ML.NET 0.6中加入了全新的转换器以及Runtime来使用ONNX模型,目前市面上有不少框架可以训练出各式类型的ONNX模型,用于图像分类、情感识别和物件侦测等任务。ML.NET中的ONNX转换器会向ONNX模型输入资料并进行预测,而ML.NET Runtime目前仅支援x64 CPU,操作系统也只仅支援Windows,未来会增加对Linux和macOS的支援。

ML.NET 0.6不只是在功能上的更新,微软也为模型预测时进行了两项效能主要改进。第一项改进是将原本的LearningPipeline API改为新的Estimators API,第二项改进则为最佳化新API中PredictionFunction的效能。这些改进为ML.NET预测速度带来大幅度提升,在Iris资料预测上,提升了3,272倍,乳腺癌资料预测加速达6,541倍,情绪预测也有198倍的加速。

而微软用于Office、Xbox和Azure等服务背后的机器学习引擎Infer.NET,最近也在.NET基金会下开源,并且扩充ML.NET用于进行统计建模和线上学习,并可在Microsoft.ML.Probabilistic命名空间中使用。

2018-10-11 11:34:00

相关文章