ML.NET是一款面向.NET开发人员的开源,跨平台机器学习框架,能够将自定义机器学习集成到.NET利用中。咱们很开心地向您介绍咱们在过来几个月中所做的工作。
AutoML更新
自动化机器学习(AutoML)通过更容易地为您适宜的场景和数据集找到最佳算法,从而使该过程自动化。AutoML是反对模型生成器和ML.NET CLI训练教训的后端。去年,咱们发表在咱们的模型生成器和基于神经网络智能 (NNI) 的 ML.NET CLI 工具以及 Microsoft Research 的疾速轻量级 AutoML (FLAML) 技术中对 AutoML 施行进行了更新。与之前的解决方案相比,这些更新提供了一些益处和改良,包含:
- 摸索的模型数量减少。
- 进步了超时错误率。
- 改良的性能指标(例如,准确性和r平方)。
直到最近,您还只能在咱们的工具中利用这些AutoML改良。
咱们很兴奋地发表,咱们曾经将AutoML的NNI / FLAML实现集成到ML.NET框架中,这样你就能够从代码优先的体验中应用它们。
要开始应用AutoML API,请应用ML.NET daily feed装置Microsoft.ML和Microsoft.ML.Auto NuGet包的微软最新的预公布版本。
试验的API
试验是训练或试验的汇合。每次试验都会产生对于本身的信息,例如:
- 评估指标:用于评估模型的预测能力的指标。
流水线:用于训练模型的算法和超参数。
试验API为AutoML提供了一组默认值,使您更容易将其增加到训练管道中。// 配置AutoML管道var experimentPipeline = dataPrepPipeline .Append(mlContext.Auto().Regression(labelColumnName: "fare_amount"));// 配置试验var experiment = mlContext.Auto().CreateExperiment() .SetPipeline(experimentPipeline) .SetTrainingTimeInSeconds(50) .SetDataset(trainTestSplit.TrainSet, validateTestSplit.TrainSet) .SetEvaluateMetric(RegressionMetric.RSquared, "fare_amount", "Score");// 运行试验var result = await experiment.Run();
在这个代码片段中,dataprepipeline是一系列转换,用于将数据转换为适宜训练的格局。训练回归模型的AutoML组件被附加到该管道上。同样的概念也实用于其余受反对的场景,比方分类。
当您应用已定义的训练管道创立试验时,您能够自定义的设置包含训练工夫、训练和验证集以及优化的评估指标。
定义了管道和试验之后,调用Run办法开始训练。
▌搜寻空间和可革除预计器
如果须要对超参数搜寻空间有更多的管制,能够定义搜寻空间,并应用可革除的预计器将其增加到训练管道中。
// 配置搜寻空间var searchSpace = new SearchSpace<LgbmOption>();// 初始化预计器管道var sweepingEstimatorPipeline = dataPrepPipeline .Append(mlContext.Auto().CreateSweepableEstimator((context, param) => { var option = new LightGbmRegressionTrainer.Options() { NumberOfLeaves = param.NumberOfLeaves, NumberOfIterations = param.NumberOfTrees, MinimumExampleCountPerLeaf = param.MinimumExampleCountPerLeaf, LearningRate = param.LearningRate, LabelColumnName = "fare_amount", FeatureColumnName = "Features", HandleMissingValue = true }; return context.Regression.Trainers.LightGbm(option); }, searchSpace));
搜寻空间定义了用于搜寻的超参数范畴。
可清理评估器使您可能像应用其余评估器一样应用ML.NET管道中的搜寻空间。
要创立和运行试验,您须要应用CreateExperiment和run办法的雷同过程。
模型生成器和ML.NET CLI更新
咱们曾经对模型生成器和ML.NET CLI做了几个更新。其中我想强调的两个是:
- 工夫序列预测场景的模型生成器
- .NET CLI的新版本
▌工夫序列预测场景(预览)
工夫序列预测是在与工夫相干的观测中确定模式,并对将来几个期间作出预测的过程。事实世界的用例有:
- 预测产品需要
- 能源生产预测
在ML.NET中,抉择工夫序列预测的训练师并不太难,因为你只有一个抉择,ForecastBySsa。艰难的局部在于找到参数,如剖析的工夫窗口和预测将来的间隔。找到正确的参数是一个试验过程,这是AutoML的一项杰出工作。对咱们的AutoML实现的更新使通过超参数进行智能搜寻成为可能,从而简化了训练工夫序列预测模型的过程。
作为这些致力的后果,咱们很快乐地与大家分享,您当初能够在模型生成器中训练工夫序列预测模型。
下载或更新到模型生成器的最新版本,开始训练您的工夫序列预测模型。
▌ML.NET CLI的新版本
ML.NET CLI是咱们的跨平台.NET全局工具,它利用AutoML在运行Windows、MacOS和Linux的x64和ARM64设施上训练机器学习模型。几个月前,咱们公布了ML.NET CLI的新版本,它带来了:
- .NET 6 反对
- 反对 ARM64 架构
- 新场景
图像分类(针对 x64 架构)
倡议
预测
装置 ML.NET CLI 并从命令行开始训练模型。
Notebooks的键盘快捷键
Interactive Notebooks广泛应用于数据迷信和机器学习。它们对于数据摸索和筹备、试验、模型解释和教育都很有用。
去年10月,咱们公布了基于.NET Interactive的Visual Studio Notebook Editor扩大。在过来的几个月里,咱们始终在改良性能和稳定性。
在咱们的最新版本中,咱们通过启用键盘快捷键让您无需来到键盘就能更轻松地工作。如果你以前应用过notebooks,你应该对其中的许多快捷方式很相熟。
执行/运行单元格,并将焦点向下挪动
表中的键是大写的,但大写不是必须的。
装置最新版本的Notebook编辑器,并开始在Visual Studio中创立Notebook。
ML.NET的下一个指标是什么?
咱们正踊跃朝着路线图中所概述的畛域致力。
▌深度学习
几个月前,咱们分享了深度学习的打算。该打算的很大一部分围绕着改善ONNX的生产体验,并通过TorchSharp(一个提供对驱动PyTorch的库的拜访的.NET库)实现新的场景。咱们在实现这一打算方面获得的一些停顿包含:
为ONNX推断启用全局GPU标记。在此更新之前,当你想应用GPU对ONNX模型进行推断时,ApplyOnnxModel转换中的FallbackToCpu和GpuDeviceId标记没有被保留为管道的一部分。因而,每次都必须装置管道。咱们曾经使这些标记可作为MLContext的一部分拜访,因而您能够将它们保留为模型的一部分。
TorchSharp 面向 .NET 规范。TorchSharp最后的指标是.NET 5。作为咱们将TorchSharp集成到ML.NET的工作的一部分,咱们更新为TorchSharp面向.NET规范。
在接下来的几周里,咱们很快乐与大家分享咱们在TorchSharp与ML.NET集成方面获得的停顿。
.NET DataFrame
清晰且具备代表性的数据有助于进步模型的性能。因而,了解、清理和筹备训练数据的过程是机器学习工作流中的关键步骤。几年前,咱们在.NET中引入了DataFrame类型,作为Microsoft.Data.Analysis NuGet包的预览。DataFrame仍处于预览阶段。咱们了解应用工具来执行数据清理和解决工作是如许重要,并且曾经开始组织和优先思考反馈,因而咱们解决了现有的稳定性和开发人员教训痛点。这些反馈被组织成GitHub问题的一部分。
咱们创立这个跟踪问题是为了跟踪和组织反馈。如果您有任何想要与咱们分享的反馈,请在形容中为个别问题投票或在跟踪问题中间接评论。
- https://pkgs.dev.azure.com/dn...
MLOps
机器学习操作(MLOps)就像机器学习生命周期的DevOps。这包含模型部署和治理以及数据跟踪,这有助于机器学习模型的产品化。咱们始终在评估用ML.NET改善这种体验的办法。
最近咱们发表了一篇博客文章,领导你实现设置Azure机器学习数据集、应用ML.NET CLI训练ML.NET模型以及应用Azure Devops配置再训练管道的过程。要理解更多细节,请参阅《在Azure ML中训练ML.NET模型》一文。
入门和资源
在微软文档中具体理解 ML.NET、模型生成器和 ML.NET CLI。
如果您遇到任何问题,性能申请或反馈,请在GitHub上的ML.NET回购或ML.NET工具(Model Builder & ML.NET CLI)回购中提交问题。
长按辨认二维码
关注微软中国MSDN
点击理解更多ML.NET信息~