乐趣区

关于microsoft:MLNET-更新

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

退出移动版