AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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:007258
用户头像

发布了 422 篇内容, 共 291.9 次阅读, 收获喜欢 664 次。

关注

评论

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

fil挖矿的规则是什么?fil挖矿收益如何?

区块链 分布式存储 IPFS fil收益 fil挖矿

上游思维:如何定义成功?

石云升

读书笔记 8月日更 上游思维

分享 6 个JavaScript学习资源

devpoint

JavaScript GitHub 8月日更

GrowingIO Design 组件库搭建之单元测试

GrowingIO技术专栏

单元测试 Jest Storybook

从 0 到 1 ,不能忽略的「道」

非著名程序员

产品 产品经理 认知提升 8月日更

OceanBase 常见参数和变量究竟有什么本质区别?

OceanBase 数据库

数据库 oceanbase OceanBase 开源 OceanBase 社区版

硬核技术,带你走进3D点云车道线自动识别

澳鹏Appen

自动驾驶 机器学习 训练数据 3D点云 车道线标注

Python开发篇——RSA加密算法和SHA1计算文件校验码

吴脑的键客

Python

MySQL中FROM_UNIXTIME与UNIX_TIMESTAMP

一个大红包

8月日更

Windows Server 2019 安装提要 (及 VS 2019 Build Tool) - 续

hedzr

DevOps vscode windows server 2019 server core visual studio 2019

[灵魂拷问]MySQL面试高频100问(工程师方向)

编程菌

Java 编程 程序员 面试 计算机

Flink 和流式应用运维(十-下)

Databri_AI

flink 监控 Web UI

博睿数据斩获“飞腾PCS认证集成商”,推动国产化生态建设再进一步!

博睿数据

hadoop 基本原理与应用

神策技术社区

hadoop 程序员 Hadoop全分布式集群

ASM 实现 Hook Lambda 和方法引用

神策技术社区

大前端 后端 asm 代码 神策数据

文化与科技的交织,华为P50 Pro与一曲长城谣

脑极体

基于 CODING CD + Nocalhost 在大型应用的 ChatOps 实践

CODING DevOps

DevOps 工具 CI/CD 开发测试 ChatOps

基金这么赚钱!!编程实现基金从采集到分析通用模板!(白酒为例)

Python研究者

8月日更

网络攻防学习笔记 Day110

穿过生命散发芬芳

网络安全 8月日更

【前端 · 面试 】TCP 总结(一)—— 概述

编程三昧

8月日更

ipfs国家认可吗?ipfs挖矿靠谱吗?

IPFS国家认可吗 ipfs挖矿靠谱吗

科技的世界里没有“粉红税”

脑极体

北鲲云计算:为药企研发的飞速发展提供助力

北鲲云

获取自己的公网 IP 地址

耳东@Erdong

IP地址 8月日更

第一次看房

escray

生活记录 8月日更

三分钟了解大数据技术发展史

张浩_house

人工智能 机器学习 大数据

心态炸了!我的join查询多加了个过滤条件性能就崩了

林一

MySQL 查询优化 多表join

云原生 | 混沌工程工具 ChaosBlade Operator Pod 篇

RadonDB

数据库 混沌工程

神策数据微信小程序 SDK 功能介绍

神策技术社区

小程序 微信 代码 神策数据 维护

Springboot通过@WebFilter日志双份打印BUG分享

FunTester

性能测试 springboot bug

前端之算法(九)回溯算法

Augus

算法 8月日更

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