写点什么

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

发布了 311 篇内容, 共 205.6 次阅读, 收获喜欢 599 次。

关注

评论

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

年薪百万的程序员都在用的摸鱼方式……

禅道项目管理

程序员 软件测试 软件开发 自动化部署 年薪百万

win版DaVinci Resolve Studio18(达芬奇调色剪辑)中文版

iMac小白

达芬奇软件

Microsoft Office 2019安装包下载 飞跃升级,智慧办公!

Rose

揭秘AI黑科技:如何一键生成完美架构图?

测吧(北京)科技有限公司

测试

揭秘AI黑科技:如何一键生成完美架构图?

测试人

软件测试 测试开发

事业-最佳实践-架构-整体架构设计模版

南山

架构 架构设计 架构设计模版

MES与ERP强强联手

万界星空科技

数字化 ERP mes 万界星空科技 生产管理

Percona Toolkit 神器全攻略

GreatSQL

TG Pro:实时监控Mac电脑的核心温度、风扇转速、传感器数据等

Rose

微软远程Microsoft Remote Desktop直装版 及使用教程分享

Rose

软件测试学习笔记丨Docker搭建Testlink

测试人

Docker 软件测试 自动化测试 测试开发 testlink

如何利用 NFTScan NFT API 在 Bitcoin 网络上开发 Web3 应用

NFT Research

NFT NFTScan

人工智能帮你一键生成完美架构图

霍格沃兹测试开发学社

即构 UIKits 重磅发布!高效开发与自定义UI兼备,打造互动场景新标杆

ZEGO即构

UI组件库 直播间 互动场景 即构UIkits 全面开源

惠普随身电脑管家“AI小惠”首次亮相,智谱AI赋能启动大模型智慧战力

Geek_2d6073

智能工厂规划的关键要素

万界星空科技

数字化转型 智能工厂 智能制造 mes 万界星空科技

集成式情景规划的场景管理思维方式

智达方通

企业管理 全面预算管理 情景规划 财务规划

淘宝/天猫商品描述API接口(taobao.item_get_desc)返回值解读

技术冰糖葫芦

API Explorer API 接口 API 文档 API 性能测试

MySQL全文索引源码剖析之Insert语句执行过程

华为云开发者联盟

MySQL 数据库 华为云 华为云开发者联盟 企业号2024年5月PK榜

【等保】河南企业等保二级备案流程看这里!

行云管家

网络安全 信息安全 等保备案 等保二级 河南

Rhinoceros 8 (犀牛8) v8.7.2激活版

iMac小白

Rhinoceros 8下载 Rhinoceros 8 破解版 Rhinoceros 8激活版

漯河市等保测评机构有哪些?怎么过等保?

行云管家

信息安全 等保 等保测评 漯河

【论文速读】|探索ChatGPT在软件安全应用中的局限性

云起无垠

软件测试学习笔记丨显示等待高级使用

测试人

软件测试

什么样的产品算是好产品?

敏捷开发

项目管理 产品经理 产品设计 敏捷开发 需求分析

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