潘正磊 再过三五年 AI会变成开发人员的基本概念_潘正磊:再过三五年 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万月活用户。

相关文章: 

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



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

640?wx_fmt=jpeg

               
             
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_44952610/article/details/89765114

智能推荐

JScript 是 JavaScript 的缩写吗?_javascript的小写缩写是?-程序员宅基地

文章浏览阅读3.3k次。JScript 是 JavaScript 的缩写吗? 资策会数字教育研究所讲师 杨宏文  很多人都误以为JScript就是JavaScript的缩写,这一点是需要澄清的,让笔者先讲一段故事。 在Web Scripting language世界中第一个诞生的是,由网景公司(NetScape)所催生的JavaScript。到_javascript的小写缩写是?

iOS开发-设置启动图片LaunchImage_ios创建 launchimage-程序员宅基地

文章浏览阅读1.3k次。通常app在开启的时候都会有自己的启动图片,下面就开始设置app的启动图片。第一步:在图片资源包里创建LaunchImage。然后就创建好了LaunchImage,只不过一开始是空的,而这里我已经添加好了图片。注意:一定要按照尺寸添加全部图片,不然会报错。附上:iOS-AppIcon和LaunchImage尺寸附上仅供学习使用:配置好一部分的LaunchImage下载..._ios创建 launchimage

Mock进行单元测试_单体测试用mock吗-程序员宅基地

文章浏览阅读2.6k次,点赞4次,收藏17次。中文文档参考地址,点击这里汪文君Mockito实战视频汪文君Mockito源码,点击这里@InjectMocks用来修饰被测试的类:就是对哪个类中的方法进行单元测试的时候,就用该注解修饰这个类。InjectMocks创建这个类的对象并自动标记@Mock,@Spy等注解的属性注入到这个中。要求必须是类不能是接口。使用1.Maven<!-- https://mvnrepository.com/artifact/org.mockito/mockito-all --> &l_单体测试用mock吗

.tar.gz 跟.tgz_tgz和tar.gz-程序员宅基地

文章浏览阅读2.6k次。.tar.gz 跟.tgz 是一种格式吗?tar.gz_百度百科以.tar.gz为后缀的文件是一种压缩文件,在Linux和macOS下常见,Linux和macOS都可以直接解压使用这种压缩文件。_tgz和tar.gz

yolov3代码详细解读_yolov3代码详解-程序员宅基地

文章浏览阅读3.4k次,点赞15次,收藏73次。下文所有代码:https://pan.baidu.com/s/1p-Q-edFXXcvzxlZNd9saOw 提取码:x72s原理可以参考:yolov1-v5学习笔记及源码解读目录1 目录结构2 train.py2.1 数据读取 dataset.py2.2 网络搭建 models.py2.2.1 搭建模型2.2.2 yolo层的实现2.2.3 darknet进行模型前向传播3 test.py4 detect.py5 功能脚本5.1 utils.py:5.2 logger.py5.3 augment._yolov3代码详解

一步步制作Arduino智能小车_arduino小车-程序员宅基地

文章浏览阅读1.4w次,点赞21次,收藏285次。小白第一次实战_arduino小车

随便推点

Java购物小系统(使用最基础的语法实现的控制台购物系统)_java控制台采购系统-程序员宅基地

文章浏览阅读2.6k次。自述:本人是一名卑微专科大一软件技术学生,目前学习Java已经快三个月了吧,在这里给大家分享一下我的学习成果,希望看到的大佬可以给我一些建议,也希望这篇文章能给正在学习Java的小伙伴一些练习的途径:程序执行的入口是(InSystem.java)文件总共分为十一个Java文件 客户信息管理 添加客户信息 创建一个客户类,里面声明客户应具备的客户信息,如:客户编号、客户姓名、客户电话、客户积分等,声明该类的对象数组,利用对象数组存储客户的信息,_java控制台采购系统

Android开发 轻量缓存框架--ASimpleCache_android 轻量缓存文件-程序员宅基地

文章浏览阅读339次。做Android应用开发的同学们相信对“缓存”这个词不陌生,缓存可能有多方面的概念,这里大概列举下程序开发的缓存大概有哪些:1.服务端控制缓存如volley请求库,便是通过服务端的“Cache-Control”和“max-age”来告诉客户端有没有缓存以及缓存的时间,也是推荐的使用方式,但是需要服务端配合,比较灵活。2.客户端直接控制缓存有些时候不需要服务端来支持的_android 轻量缓存文件

《机器人动力学与控制》第七章—路径规划与避障 7.3 工作空间下使用人工势场法进行路径规划_排斥势场-程序员宅基地

文章浏览阅读1.8k次。上一节我们发现,在关节空间下,很难获得一个直白的障碍物空间QO的表达,也很难在关节空间下评估人工势场的梯度。事实上,对于一个曲面,一般来说并不存在一个描述点到曲面的闭合表达式。即便我们能够表达清楚QO,仍然很难获得关节空间下的梯度ρ。为了解决这些问题,我们将对上一节说到的人工势场法做出一点改进,使势场方程定义在工作空间 W 而不是关节空间 Q。本节我们会先讲解如何一个在工作空间里正确地描述势场,..._排斥势场

CSS学习笔记-程序员宅基地

文章浏览阅读166次,点赞2次,收藏6次。CSS学习笔记本文章是基于B站pink老师的视频和PPT,结合个人认为重点的部分以及自身模糊的知识点进行归纳。一、CSS(1)1. CSS简介CSS 是层叠样式表 ( Cascading Style Sheets ) 的简称。有时我们也会称之为 CSS 样式表或级联样式表。CSS 是也是一种标记语言 。2. CSS基础选择器2.1 选择器分类选择器分为基础选择器和复合选择器两个大类,我们这里先讲解一下基础选择器。基础选择器是由单个选择器组成的基础选择器又包括:标签选择器、 类选

北斗卫星与GPS介绍_北斗系统能获取z轴数据了吗-程序员宅基地

文章浏览阅读3.3k次。学习过空间解析几何的同学都知道,在一个立体直角坐标系中,任何一个点的位置都可以通过三个坐标数据X、Y、Z来得到确定。也就是说,只要能得到X、Y、Z三个坐标数据,就可以确知任何一点在空间中的位置。如果能测得某一点与其它三点A、B、C的距离,并确知A、B、C三点的坐标,就可以建立起一个三元方程组,解出该未知点的坐标数据,从而得到该点的确切位置。  GPS就是根据这一原理,在太空中建立了一个由24颗_北斗系统能获取z轴数据了吗

Java word导出,可导出一份word或多页word内容_有模板的word导出 需要导出多份 一个文件 java-程序员宅基地

文章浏览阅读6.4k次。一步步按着写,图片看不清的,右键打开新标签页查看图片,谢谢htmla href="javascript:void(0)" class="easyui-linkbutton" plain="true" id="btn_customOpen">导出worda>前端js(ids为传递参数)$.messager.confirm('温馨提示','确认打印选中用户信息!',functio_有模板的word导出 需要导出多份 一个文件 java