微软资深副总裁潘正磊:再过三五年 AI会变成开发人员的基本概念

2018年5月10日
微软资深副总裁潘正磊:再过三五年 AI会变成开发人员的基本概念

在微软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#,都已经有现成的这些可以套用,它们已经变成了基本概念。这个概念在每一个编程语言里面都会得到体现。

微软资深副总裁潘正磊:再过三五年 AI会变成开发人员的基本概念

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

比如说排序,不管哪个编程语言里面都会有的,我们一定要在.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万月活用户。

This entry was posted in 必读. Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用*标注