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信息~