写点什么

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

2019 年 5 月 29 日

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 年 5 月 29 日 08:006633
用户头像

发布了 138 篇内容, 共 56.4 次阅读, 收获喜欢 350 次。

关注

评论

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

Java入门到精通!阿里P8闭关之作:Java高手修炼笔记也太香了!

Java王路飞

Java 大数据 程序员 架构 面试

一个极简的冲突管理工具

石云升

28天写作 职场经验 管理经验 4月日更 冲突管理

重读《重构2》- 改变函数声明

顿晓

重构 4月日更

TcaplusDB直播回顾 | 数据库架构和实战分析

TcaplusDB

数据库 nosql 后端 TcaplusDB

怎么拥有个人磁力

leoay

IP 个人磁力 KOL 思想 吸引力法则

聊聊十种常见的软件架构模式

架构精进之路

4月日更

阿里内部热捧“Spring全线笔记”,不止是全家桶,太完整了

Java架构追梦

Java spring 源码 架构 微服务

学会这15点,让你分分钟拿下Redis数据库

民工哥

linux运维 redis cluster 后端技术

Java该怎么学?阿里大佬呕心沥血之作,Java全线成长宝典,从P5到P8一应俱全

Java架构师迁哥

金融科技数据链的DNA

博睿数据

金融科技 博睿数据 数据链DNA

你管这破玩意叫哨兵?

云流

Java 数据库 redis 程序员 架构

不愧是阿里内部“Spring Cloud Alibaba学习笔记”这细节讲解,神了!

Java架构追梦

Java 阿里巴巴 架构 微服务 SpringCloud

函数计算助力语雀构建稳定且安全的业务架构

阿里巴巴中间件

文档 企业架构和云服务 业务架构

2年进入苏宁,第5年入职阿里,专科学历的他是如何做到?

Java架构师迁哥

【科创人】贝锐创始人陈宇晔:花生壳诞生自一次挫折,15年坚守有温度不作恶

科创人

FIL挖矿成本如何查询?FIL挖矿需要质押多少?

投资矿机v:IPFS1234

FIL挖矿成本如何查询

区块链技术重新定义 物联网的物与物之间的交易

CECBC区块链专委会

发展空间

Coinbase上市,对加密市场将带来哪些影响?

CECBC区块链专委会

货币

Arction高性能图表控件LightningChart中Datagrid的Pasar datos deview闪电图问题解答

Geek_bacee5

图表控件 LightningChart

FIL矿机多少钱一台?FIL矿机1T一天可以挖多少币?

投资矿机v:IPFS1234

FIL矿机多少钱一台 FIL矿机一天可以挖多少币

云存储中不可不知的五个安全问题及应对措施

浪潮云

云计算

云原生技术及可观测实践

Obsuite

Arction高性能图表控件LightningChart图例和注释工具提示问题解答

Geek_bacee5

Arction 图表控件LightningChart

函数计算助力高德地图平稳支撑亿级流量高峰

阿里巴巴中间件

曾国藩:人生惟有常是第一美德

leoay

曾国藩 坚持 有常 天赋 成事心法

隐私安全的城池营垒,能成为手机品牌高端化的赛点吗?

脑极体

中国数字人民币试点有序扩大至“10+1” 拜登政府正加强研究数字人民币计划

CECBC区块链专委会

数字货币

不想搞Java了,4年经验去面试10分钟结束,现在Java面试为何这么难

云流

Java 编程 程序员 面试 计算机

浅谈 MySQL 集群高可用架构

民工哥

MySQL MySQL 高可用 集群 linux运维

汽车之家基于 Flink 的数据传输平台的设计与实践

Apache Flink

flink

1分钟搞定 Nginx 版本的平滑升级与回滚

民工哥

nginx linux运维 后端技术

编译系统设计赛(华为毕昇杯)技术报告会|5月1日

编译系统设计赛(华为毕昇杯)技术报告会|5月1日

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