写点什么

InfoQ 专访 :Pranav Rastogi 谈.NET 的开源机器学习框架 ML.NET

  • 2019-05-29
  • 本文字数:2445 字

    阅读完需:约 8 分钟

InfoQ专访 :Pranav Rastogi谈.NET的开源机器学习框架ML.NET

本月初,微软发布了ML.NET 1.0 版本,它是一个面向.NET 生态系统的开源机器学习(ML)框架。


ML.NET 最初是作为微软研究院的一项提议进行开发的,它允许使用 C#或 F#开发自定义的 ML 模型。这些模型可用于情感分析、欺诈及垃圾邮件侦测、产品或电影推荐、图像分类等场景


微软的客户已经在使用 1.0 之前版本的 ML.NET 了。然而,新版本的框架提供了 Visual Studio 模型构建器和称为自动机器学习(AutoML)的工具。AutoML 是为 ML 初学者而设计的特性,它能根据输入的数据自动决策数据场景(例如:分类和回归)以及 ML 模型需使用的 ML 算法。作为此功能的补充,模型构建器提供了一个 UI 工具(仅限 Windows),用于在 Visual Studio 环境中构建 ML 模型。目前,这两个工具可在Visual Studio预览版本上获取。


InfoQ 采访了 ML.NET 项目管理团队的成员Pranav Rastogi


InfoQ: 为什么最新版的 ML.NET 对.NET 机器学习社区如此重要?


Pranav Rastogi: 最新版的 ML.NET 为开发人员使用 ML 提供了便利。作为一名 .NET 开发人员,我们可以使用 ML.NET 的 API 来构建不同的场景,比如情感分析、产品推荐、客户细分等等。但是,开发人员面临的主要挑战是 ML 入门艰难。他们需要了解使用哪个 ML 训练器,以及如何定制和优化它。AutoML 作为我们发布的最新版的一部分,简化了构建自定义 ML 模型的方式。


我们还引入了其他的工具,方便开发人员入门 ML 。此次发布版本提供了基于命令行界面(CLI)的操作支持,因此,开发人员可以使用命令行构建 ML 模型。


此外,对于 Visual Studio 用户,我们也提供了基于图形用户界面(GUI)的操作支持,方便用户将 ML 模型直接添加到他们的项目中。该操作工具名为模型构建器(Model Builder),它允许开发人员直连他们的文件并构建自定义模型。我们可以右键单击项目,选中“添加机器学习”,然后选择一个场景。数据源可以选用文件或 SQL Server 数据库,AutoML 将依据我们选择的场景为我们选择最佳的模型。在此过程中,它会尝试不同的模型和设置,最终返回给我们前五种模型概述,以及推荐的最佳模型。

完成模型选择之后,最后一步是为我们的解决方案开发代码。开发人员通常考虑使用一些工具来生成代码,却不信任它们,因为它们有魔术代码。但是,使用模型构建器,在过程结束时,开发人员将得到用于训练模型的确切代码。如果需要,还能自定义对应的代码。我们可以先在本地运行它,然后放到云上进行长时间的模型训练。我们也能轻松地将其和 DevOps 工具集成。我们可以对模型进行操作,并为任何处于休眠状态的应用程序构建自定义机器学习模型,因此,可以为 Web 应用程序、移动应用程序或桌面应用程序构建模型。


InfoQ: ML.NET 和其他 ML 框架如 TensorFlow 相比如何呢?


Rastogi: ML.NET 的主要价值在于,它是利用现有 ML 库和框架的生态系统。ML.NET 与流行框架(如TensorFlow、.NET 版ONNX)深度集成。在图像分类、对象检测等场景中,我们可以轻松地获取这些框架构建的模型,也可以在.NET 应用程序中使用诸如初始模型、共振模型等模型。


InfoQ: 和其他微软产品,如认知服务、Azure 机器学习工具相比,ML.NET 的定位是怎样的呢?


Rastogi: 这取决于我们现有技术栈是什么样的:如果你是一位数据科学家,那么你可能会使用基于记事本的环境,并且使用你选择的框架。Azure 机器学习提供了该项 ML 服务,方便开发人员或数据科学家在记事本上运行,然后在云上进行有效的训练。如果你是 ML 的初学者,认知服务(Cognitive Services)采用开箱即用的方案,提供了一个易用的 API。而 ML.NET 是一个为.NET 开发人员构建自定义 ML 模型的框架。


InfoQ: 您可以分享下您的团队在开发 ML.NET 时遇到的一些最具挑战性的任务吗?


Rastogi: 在该项目中,我们面临的最大挑战是如何让开发者更便捷地使用 ML。鉴于 ML 是新生的,而且许多用户对它的概念不熟悉,我们花费了大量的时间来确认 API 的名称,使其符合.NET 开发人员命名习惯,从而帮助它在生态系统中建立信任。我们做了大量的客户调研后,发现如果我们对开发人员说“你能为我建立一个二进制分类算法吗?”,他们通常不知道是什么含义。但是,如果我们从场景优先的角度出发,要求开发人员构建情绪分析,来分析客户评论,他们通常可以做到这一点,因为在 ML 中,这是一个已知的问题,可以通过将数据分为两类(A 和 B)来解决。因此,我们花了很多时间确保框架是容易理解的。默认设置是开箱即用,用户无需自定义它。

我们还花了大量时间确保我们的框架可以处理大型数据集(TB 级别),以确保整个管道可以像生产环境的应用程序一样部署。这极大地提高了开发人员的工作效率。


InfoQ: AutoML 最初是微软研究院(Microsoft Research)的一个项目,您是如何将它与 ML.NET 集成,并作为一个产品发布的呢?


Rastogi: 这是微软研究院与微软不同产品团队之间一次卓有成效的合作,是他们共同塑造了 AutoML。AutoML 是我们技术的关键部分,为开发人员提供了构建自定义 ML 模型的便捷体验。开发人员无需关心要使用哪个学习器、混合参数设置应该是什么、应该设置多少学习器、需要训练多长时间、以及特征化过程应该是什么。因此,微软的很多团队一起致力于这个研究项目,并把它推向市场。


InfoQ: 在未来.NET 开发社区可以期待哪些新特性?


Rastogi: 现在我们正在研究的是在 Visual Studio 中引入 ML.NEL 预览版功能的支持。目前在预览版中,有深度学习的一些功能和对 TensorFlow 的支持。我们将会把它们集成,同时也将改进模型构建器层,支持基于时间序列的推荐。想要随时了解最新的路线图,可以查阅我们的GitHub仓库


ML.NET 支持 Windows、Linux 和 macOS 平台。由于模型构建器以 Visual Studio 扩展方式提供,故在 Windows 上使用 ML.NET 需要安装 Visual Studio 2017 15.6 版或更高版本。在 macOS 和 Linux 系统上,ML.NET 模型使用 CLI 构建,故不需要上述依赖条件。您可以在这里获取更多关于 ML.NET 的信息。


查看英文原文ML.NET, an Open Source Machine Learning Framework for the .NET Ecosystem: Pranav Rastogi Q&A


2019-05-29 08:007171
用户头像

发布了 327 篇内容, 共 224.9 次阅读, 收获喜欢 617 次。

关注

评论

发布
暂无评论
发现更多内容

【架构实战营】第 4 模块作业

swordman

架构实战营

Java Elasticsearch 使用

Java elasticsearch

【Flutter 专题】123 图解简易 GroupList 二级分组列表

阿策小和尚

5月日更 Flutter 小菜 0 基础学习 Flutter Android 小菜鸟

SAP CDS view注解解析 - @Environment.systemField

汪子熙

SAP abap

模块四作业 - 考试试卷存储方案

张大彪

学生考试系统存储设计

王硕

架构训练营

架构实战营作业4

大肚皮狒狒

架构实战营 - 模块4- 作业

笑春风

Flink的Time与Window

五分钟学大数据

大数据 5月日更

Flume知识点总结

大数据技术指南

flume 5月日更

模块4 学习总结

TH

架构实战营

架构训练营模块四作业

Geek_e0c25c

架构训练营

利用Chrome的Heap Snapshot功能分析一个时间段内的内存占用率

汪子熙

JavaScript chrome

使用DOM Breakpoints找到修改属性的Javascript代码

汪子熙

JavaScript html chrome

架构实战营 模块四:课后作业

👈

架构实战营

python-运算函数-sum

Geek_6370d5

Kafka-详细笔记

ninetyhe

分布式 高并发系统设计 消息系统 Kafk

第四次作业 设计千万级学生管理系统的考试试卷存储方案

函数方程(弘宇)

美团二面:Redis与MySQL双写一致性如何保证?

捡田螺的小男孩

数据库 面试 一致性 缓存;

Scrum Team不等于Development Team——《Scrum指南》重读有感(2)

Bruce Talk

Scrum 敏捷 随笔 Agile

模块 4 - 千万级学生管理系统的考试试卷存储方案

小遵

架构师实战营:模块四 千万级学生管理系统的考试试卷存储方案

ifc177

#架构实战营

架构实战营 模块四:学习总结

👈

架构实战营

千万级学生管理系统的考试试卷存储方案

颜培攀

架构实战营

HBase常见问题

数据社

大数据 HBase 5月日更

千万级考试管理系统的考试试卷存储方案

白发青年

架构实战营

让秋招飞,Java岗高频面试题盘点,站着就把offer给拿了

北游学Java

Java 面试 秋招

数据科学指南#基础篇 Matplotlib 入门

Lev

Python 数据科学 matplotlib data-science

模块4作业 千万级学生管理系统考试试卷存储方案

TH

架构实战营

架构实战营模块四作业

薛定谔的指南针

架构实战营

实战|教你用Python玩转Mysql

Python研究者

Python MySQL MySQL 运维

InfoQ专访 :Pranav Rastogi谈.NET的开源机器学习框架ML.NET_语言 & 开发_Arthur Casals_InfoQ精选文章