潘正磊:再过三五年 AI会变成开发人员的基本概念

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1在微软Build 2018开发者大会上,微软公司全球开发平台事业部的资深副总裁潘正磊(Julia Liuson)接受了界面记者在内的采访。

潘正磊在微软西雅图总部带领一千多人组成的团队,微软的开发工具,包括Visual Studio,Visual Studio for Mac、VS Code、.Net,都由她领导其团队进行开发。在潘正磊看来,AI作为一种底层技术,再过三五年,所有开发人员都会变成AI开发人员。另一方面,在萨提亚·纳德拉成为微软CEO之后,她领导的开发平台事业部,也经历了微软的战略性转变,以及更加关注真实的用户体验。

以下是采访内容,界面新闻进行了编辑及删减。

问:昨天沈向洋有提出ML .Net,您能不能向我们介绍一下ML .Net?现在有很多机器学习开发平台,它可能是比较后来者的角色。

潘正磊:昨天我们提出了一个很主要的理论:假以时日,过一段时间,比如三年五年,每一个开发人员都会变成一个AI开发人员,这是我们很基本的思路。

为什么这么说?你看30年前,那时候数据库是一个全新的概念,但现在每一个开发人员多多少少都可以做一些数据库,绝大多数开发人员都知道基本的数据库的理论,写数据库的数据访问代码。我们觉得AI再过几年之后,就像数据库一样,变成一个大家都可以使用的东西。现在机器学习的很多算法,就像计算机科学一样里面的哈希表(Hash Table)、快速排序(Quick Sort)一样,今天读大学的人,没有再写这个了,不管是用Python、Java、C#,都已经有现成的这些可以套用,它们已经变成了基本概念。这个概念在每一个编程语言里面都会得到体现。

我们是这么认为的:如果用这个长远的眼光去看的话,机器学习作为一个好的编程语言,一定要支持机器算法里面的这些概念。

比如说排序,不管哪个编程语言里面都会有的,我们一定要在.Net里面把它加入进去,这是第一层。而且包括里面有很多数学的,本来.Net数学稍微弱了一点点,我们现在把它丰富起来,你可以很容易用你的C#来做智能应用,因为它需要能够实现这些算法。

再往上,对于很多基础的算法,你不需要再去学一个全新的语言。你为了学一个冒泡排序(Bubble Sort),你要重新学一个新的编程语言,好像也不是很需要。我们现在的概念就是,这些基本概念、简单基本的机器学习的培训,你用已经熟悉的原有的编程语言,就可以学习到了。

再往后,现在很多的TensorFlow,这种新的大的东西,它实际上是一个框架,我们在它上面会搭很多接口。TensorFlow其实里面最核心的是C++,它只是外面罩的是Python,你可以用Python来访问它,你也可以用Java来访问它,你可以用它C#来访问它。

另外一个在做的就是ONNX。核心算法都有一个相同的中间语言(Intermedia Language),你把它变成一个中间语言之后,你可以通过不同的语言进行访问,你就把它算法变成一个核心,外面包一个类似的不管是Java、C#、Python等等都可以去访问的。所以像ONNX是我们跟Facebook、亚马逊大家在一起做,大家都觉得这是一条对的思路。你可以用其他不同的编程语言来访问你这个核心算法。包括我昨天还跟有些创业者在聊,他们把核心算法变成一个Rest API的服务,开发人员用服务的方式来去叫这些新的算法,这些都是AI的一种体现。

问:你们用了一个Electron的基本框架,这个很不微软。因为微软都强调自己的原创,所以我想知道背后的故事,为什么会有这样的一个产品出来?

潘正磊:要用一个发展的眼光来看微软。我去年在11月份,在北京的Tech Summit的演讲时讲我们刚刚发布的Visual Studio Code上的Java Tools。你想,在微软的大会上,讲我发布了Java Tools,Java Tools还发布在Visual Studio Code上面。这些“不微软”的东西太多了。包括我们开源也是。你不能用看十年前的微软的眼光来看今天的微软。

问:我就想知道背后的逻辑是什么?是什么东西促使了这180度的转弯?您应该经历了这个过程。

潘正磊:这是一个整个微软转型的故事。萨提亚的书《刷新》就是在说这个故事。如果你真的想从高层眼光来看我们当时为什么要刷新(Hit Refresh),萨提亚那本书应该是必读的。我可以分享一个我作为萨提亚的高层团队的一员的一些经历。

萨提亚在2011年曾来过中国。为什么我记的很清楚呢?因为我当时人在中国,我2009年到2011年是在上海的办公室上班的。萨提亚当时是二三月份来的,我那时还在考虑夏天回美国,还是再待一年。但萨提亚来了一两个月之后,我说不行,我得回美国。你可以看出,我已经有很多跟原来很不一样的思路想法了。有几个小故事。

我记得很清楚,当时他有一个高层团队会议,他当时就在说——这些书上没有写,我看了,但是我印象很深——他说为什么你们没有像必应(Bing)一样用很多数据驱动的东西?

我们下面人都很困惑,说这是什么意思?当时都是总经理、副总裁那一层的人。我们当时提出的数字,只有两类数字:一类数字就是营业额是多少,卖了多少许可出去;另一类数字就是真正开发过程中,你有多少的bug这种数字。但这两个数字,肯定不是他要的。

他在说什么数字呢?就是现在微软说的月活量。当时这些数字完全都没有,连收集数字基本框架都没有,我印象很深。我们开发那时候跟大环境是比较脱节的,现在我们完全都变成了像服务类型的。

另外一个故事,萨提亚当时进来以后,他的员工会议基本上每隔一个星期就会请一个外面的创业公司讲他们公司,当时我印象非常深。他请了一个在微软很多年的一个VP,他后来离开微软自己开了一家公司。

他进来以后,一看手里提着一个Mac。当时大家都说,你好像一离开微软是不是连Windows都不用了。他就跟我们讲——印象非常深——他说我还真不是,我其实非常想要微软产品,他对微软还是很有感情,但是我当时其实只做了一个决定。

他说,我作为一个创业公司,资金很有限,我做的唯一决定是我要不要用开源。外面有很多很成熟的产品,他的意思是,用开源产品的话,自己的产品只需要写10%的代码,另外90%的代码都可以从开源项目中拼凑出来。

这是2011年的时候。决定开源之后,就发现这些开源的东西都是在Linux上面跑,在Windows都跑不起来。但Linux实在太烂,他发现大家都是用Mac,因为Mac可以跑Linux,所以就变成了Mac加上开源工具,去跑Linux这些产品做开发。

那时候我们已经开始看Azure和云的东西。他说他也很想在Azure上面试,他说这些开源不是说在反对微软。他就在群里面问,谁用过Azure的东西,大家都说没有啊,你用完以后来告诉我们体验如何呀。

那他就想,我要不要花时间去踩坑呢?最后他还是决定不花时间去踩碰了,还是跟着大家已经踩过的坑走吧。他觉得对他来说这才是最简单易行的。

对于一个创业公司,这我完全可以理解。从这个逻辑走下来一定是开源为先的。当时开源的大环境都是在Linux上面。再往后面,云当时比较成熟的是AWS。基本上是这样一条套路下来的。

我一直是做开发工具的,我们对我们的开发人员还是有很清楚的理解。这个对我来说并不完全是新的。当时我们知道开源很重要,但是从一个创业公司的角度而言,他这一套思路对我来说是一个逻辑性非常清晰的,我要是在他的位置也是做同样的决定。作为一个公司我们要做什么,包括萨提亚变成我们CEO之后,都是我们需要反思,从这些认识开始的。

当时,我们会花很多时间跟用户沟通。我自己的感受是,2012年,我们当时发布了Visual Studio 2012,它自己本身当时没有时间加很多新的功能,因为那个产品主要是为了Windows 8做的。出去以后一聊,用户说我为什么要更新,2010用的挺好的,2012里面有什么我需要的东西?用户如果对Windows 8不感兴趣的话,那里面也没有任何他需要的东西。当时也迫使我们在2012之后,我们开始做每个季度的更新,就是因为2012里面没有用户认可的新的功能在里面。我们从三年发布一次到三个月发布一次,这是一个内部故事。

问:您刚才说之前萨提亚问你们为什么没有数据驱动的工作习惯,那你们现在比较关心哪些方面的数据?

潘正磊:我们主要关心的几方面数据。一方面是活跃用户数和用户的活跃度。这其实非常重要。

另一方面,我们关注用户在用我们产品的时候体验如何。比如他下载、运行的体验是怎样。

比如有一次,中国的.Net开发者给我们发了一个公开信,说我们的体验在中国很差,其实这说明当时我们数据还不够,没有拿到这方面的数据。后来我们自己测试以后发现,是因为某些原因,中国的开发者在本地比在美国的访问速度要慢10倍。

所以我们在中国重新部署了一个在中国的服务,还不只是CDN,当时还蛮复杂的,我们在中国的Azure上面重新搭了一个服务,让中国的访问速度可以提高。

其实说老实话,这曾是我们一个缺失。我们想保证用户的体验,但是在全世界用户体验不可能是一样的。所以我们要能及时知道我这用户体验很差,才能够把它进行修补。

安装率是我们很关键的数据,我要知道安装率才能知道后面的月活率。安装都安装不上,肯定没法使用了。

问:能给几个核心的数据吗?

潘正磊:Visual Studio在Windows上面大的版本,月活是超过700万,Visual Studio Code是有超过300万月活用户。

相关文章: 

  • .NET Core玩转机器学习

  • 使用ML.NET预测纽约出租车费

原文地址: http://tech.sina.com.cn/roll/2018-05-10/doc-ihaichqz3580220.shtml


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qMISPlat入门级使用问题解答一

qMISPlat 2.0(业务配置开发平台) 自2018-4-18号正式开源以来,得到了众多.net core爱好者的关注,现将近半个月以来,大家反馈的一些使用配置方面的问题统一作如下解答。如你对qMISPlat不了解,请查看文章qMISPlat产品介绍。一、从码云…

【模拟】游戏(jzoj 1614)

游戏 题目大意: 有一个n*n的棋盘,有一个坐标在x,y的棋子, 1、2号玩家可以将他向左,向下,向左下(45∘45^{\circ}45∘)移动若干格,假如他们都是AKIOI聪明绝顶的巨佬,请问…

P4593-[TJOI2018]教科书般的亵渎【拉格朗日差值】

正题 题目链接:https://www.luogu.com.cn/problem/P4593 题目大意 场上有若干只怪,最高的为nnn,每个怪血量不同,有mmm个血量不存在。 不停释放亵渎(全场打一,如果有怪死亡就再次生效),每次一…

如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

MSBuild 的 Task 为我们扩展项目的编译过程提供了强大的扩展性,它使得我们可以用 C# 语言编写扩展;利用这种扩展性,我们可以为我们的项目定制一部分的编译细节。NuGet 为我们提供了一种自动导入 .props 和 .targets 的方法,同时还…

Platform.Uno介绍

编者语:Xamarin国内很多人说缺乏可用的实例,我在写书过程中在完善一些常用场景的例子,希望帮到大家。Build 2018结束一周了,善友问我要不要谈谈Xamarin的一些变化,但碍于时间有限一直没有付诸行动。想想总得写点什么给…

ASP.NET Core amp; Docker 实战经验分享

一.前言最近一直在研究和实践ASP.NET Core、Docker、持续集成。在ASP.NET Core 和 Dcoker结合下遇到了一些坑,在此记录和分享,希望对大家有一些帮助。二.中间镜像我前面写过一个 《ASP.NET Core & Docker 零基础持续集成 》的教程。里面我们通过持续…

【图论】【最短路】【SPFA】香甜的黄油 Sweet Butter (luogu 1828)

香甜的黄油 Sweet Butter luogu 1828 题目大意: 有n头奶牛,他们在不同的牧场中,他们之间有一些路,现在要让他们去一个地方吃黄油,使他们的总距离最小 题目描述 农夫John发现做出全威斯康辛州最甜的黄油的方法&…

【dfs】简单游戏(jzoj 2121)

简单游戏 题目大意 原本有n个数字,第1,2个相加,第2,3个相加……第n-1,n个相加,由此得出一个长度为n-1的新序列,然后不停重复,最后得出一个t,现在给出一开始的n和t求符合的序列(字典…

[翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能

原文: Comparing AWS Lambda performance of Node.js, Python, Java, C# and GoAWS 最近宣布他们支持了 C# (Net Core 2.0 版本) 和 Go 语言来实现 Lambda 功能。(译者注: AWS Lambda 是 AWS 推出的 Serverless 功能,请参阅这里或 Serverless 相关资料)做…

【结论】立体井字棋(jzoj 2124)

立体井字棋 题目大意&#xff1a; 在一个nnn的正方体中&#xff0c;由n个格子连成一条直线的方案数&#xff08;多少种可能用n个格子连成一条直线&#xff09; 样例输入 2 样例输出 28 数据范围限制 对于30%的数据&#xff0c; n<10&#xff1b; 对于100%的数据&am…

ASP.NET Core Identity 实战(3)认证过程

如果你没接触过旧版Asp.Net Mvc中的 Authorize 或者 Cookie登陆&#xff0c;那么你一定会疑惑 认证这个名词&#xff0c;这太正式了&#xff0c;这到底代表这什么&#xff1f;获取资源之前得先过两道关卡Authentication & Authorization要想了解Identity中用户登录之后&…

简明 ASP.NET Core 手册

编者&#xff1a;在4月份推送过这篇文章 简明 ASP.NET Core 手册 &#xff0c;今天再次推荐这篇文章&#xff0c;是因为原作者更新到了新版本1.1.0&#xff0c;改动很大&#xff0c;几乎所有章节都有很大程度的调整&#xff0c;这些调整都是根据读者的建议而做&#xff0c;而且…

《你必须掌握的Entity Framework 6.x与Core 2.0》正式出版感想

前言借书正式出版之际&#xff0c;完整回顾下从写博客到写书整个历程&#xff0c;也算是对自己近三年在技术上的一个总结&#xff0c;整个历程可通过三个万万没想到来概括&#xff0c;请耐心阅读。写博、写书完整历程回顾从2013年12月注册博客园账号&#xff0c;注册博客园账号…

Entity Framework Core 2.1带来更好的SQL语句生成方案

微软发布了Entity Framework Core2.1&#xff0c;为EF开发者带来了很多期待已久的特性。EF Core 2.1增加了对SQL GROUP BY的支持&#xff0c;支持延迟加载和数据种子等。EF Core 2.1的第一个重要新增特性是将GroupBy操作符翻译成包含GROUP BY子句的SQL。缺乏这种支持被认为是EF…

【枚举】数列(jzoj 1507)

数列 题目大意&#xff1a;给出一个等差数列的初始值和差值还有一个等比数列的处值和比值&#xff0c;问不大于n的数中&#xff0c;问这两个序列中&#xff0c;有多少个数小于n&#xff08;只要在一个序列中就行了&#xff0c;在两个序列中只记一次&#xff09; 样例输入 1 …

【模拟】蚂蚁(jzoj 1508)

蚂蚁 题目大意&#xff1a; 有n只蚂蚁&#xff0c;他们各往一个方向走&#xff08;上北&#xff0c;下南&#xff0c;左西和有东四个方向&#xff09;&#xff0c;他们如果撞到一起就会直接消失&#xff0c;每个单位时间走一格&#xff0c;但有一种情况&#xff1a;两只蚂蚁相…

【结论】单元格(jzoj 1509)

单元格 题目大意&#xff1a; 在一个RC的矩形中选三个点&#xff0c;使他们行列各不同&#xff0c;定义“费用”为&#xff0c;这三个点之间的行列的差值的和&#xff08;1,2和3,4费用是差值是&#xff08;3-1&#xff09;&#xff08;4-2&#xff09;224&#xff09;&#x…

【DP】剪草(jzoj 1510)

剪草 题目大意&#xff1a; 有n棵小草&#xff0c;B某看它们很不顺眼&#xff0c;想让他们的高度总和不大于H&#xff0c;它们一开始各有一个高度&#xff0c;然后它们各有一个固定的生长值&#xff0c;B某每个单位时间可以将一棵草减掉&#xff08;让他的高度变为0&#xff…

codeforces 962E Byteland, Berland and Disputed Cities 最小生成树变形

题目 题目链接 题意 在OxOx轴上有一堆点&#xff0c;这些点有三种类型R、B、PR、B、P型&#xff0c;现在要求添加一些线段把这些点连起来&#xff0c;使得如果去掉RR类型点,剩下的点都是联通的。如果去掉B" role="presentation" style="position: rela…

P6772-[NOI2020]美食家【矩阵乘法,倍增】

前言 我考场&#xff08;线上赛&#xff09;切NOI的题了&#xff01; 正题 题目链接:https://www.luogu.com.cn/problem/P6772 题目大意 nnn个点mmm条边&#xff0c;每个城市有不同的愉悦值&#xff0c;从111出发&#xff0c;要求经过TTT的时间后回到点111(不能原地停留。 …