浪潮之巅,程序员如何拥抱新技术?
回想从前,AI、云计算、5G……几年前还觉得遥远的技术,在快速发展之中,有了落地方案,慢慢成为了新的基础设施。展望未来,自动驾驶、边缘计算、量子计算……这些新技术又将会带来怎样的变革?本文是对腾讯量子实验室专家研究员郝少刚、PreAngel合伙人 & 腾讯云最具价值专家(TVP)李卓桓、青宁信安科技联合创始人 & 腾讯云最具价值专家(TVP)白慧冬(笔名青润)三位老师在「云+社区沙龙online」的分享整理,希望与大家一同交流。
01 技术开拓者们的成长故事
青润:我接触计算机最早的是 86 年,那个时候还是小学,就从 basic 开始学起,我本科学的是材料加工工程,毕业后又在中科院待了一年多,随后出来转行当程序员" title="程序员">程序员,算得上是中国最早一批职业软件工程师。实际上在 98 ~99 年之前,中国是没有软件工程师的,那个时候都是个体的程序员为主。
在这个行业干了几年之后, 05 年我离开中国电信又回到中科院,开始做人脸识别和行为分析,从事现在大家经常提到的人工智能的一些基础科研工作。后来开始出来创业,第一次创业失败之后,去中国教育电视台待了几年,再次出来的时候自己发明了一个新的技术点,解决了一个基于能源再分配的节能方案,然后就有了我现在的公司。
我们现在在做畜牧业、动物保护等与动物相关的技术,其中一个技术方向可能听起来有点玄幻,但是这个方向我们认为是可以实现的,称之为跨物种语言互通技术。这个技术仍在延续中,目前还只是初始阶段,相信将来会有更多的人加入到这个领域。
郝少刚:我的名字是郝少刚,我是 06 年在清华物理系毕业,然后到了美国能源部国家实验室做科研工作,后来又转战工业界,首先在半导体光刻机公司 ASML 工作了几年,后来又到谷歌工作了几年,去年加入了腾讯量子实验室,现在在做一些跟量子计算相关的工作。我们做的工作有偏科研的部分,也有在腾讯云上做一些应用架构方面的落地工作。
我是从学术界跨界到工业界的,所以对新技术是非常感兴趣的,甚至是一些现在看似很无厘头的比如生物类、半导体之类的新技术,我都充满着浓厚的兴趣。整个行业从科研的内核到硬件、半导体这一层,接着是外面的软件层面我都有从事过,我也帮金融领域的朋友写过一些自动化交易的算法,总之就是做的和接触到的东西比较“杂”。
李卓桓:先介绍一下我自己的工作,其实我在过去 10 年里一直是在做早期天使基金的投资工作,所以我现在的身份是一个投资人。我们过去 10 年在整个移动互联网、人工智能等方向进行投资。我工作的基金叫 PreAngel 是一个很早期的小基金,我们投过了大概几百个早期的移动互联网初创项目,还有一些其他的技术,比如区块链和我最近关注的人工智能,尤其是 NLP 对话,关于如何用计算机智能来替代掉人的一些重复性工作。
我本身是一个热衷新技术的技术爱好者,现在我在投资之外,在 Github 上面也有一个特别大的开源项目叫 Wechaty,现在已经有接近 1 万个 star 了,被很多开发者用来专门做各种各样的聊天机器人,所以大家如果感兴趣的话,欢迎去看看或者和我交流聊天机器人方面的技术。
Git地址:
其实我也有30年的代码经验,可以称得上是一名资深程序员。我在初中的时候就通过大家熟知的小霸王学习机自学了 basic ,然后在高中的时候自学了 C 和 C++ 等,后来 97 年到清华读书的时候,因为清华的网络很好就有幸参与到了第一轮互联网浪潮中来。当时中国第一个知名的门户是 ChinaRen,后来被搜狐收购了,我在里面做网络工程师。在第二轮互联网浪潮到来的时候,我又最早加入到优酷网,在优酷网负责所有的技术团队的组建,还有开发运维,我当时职位是首席科学家,专门负责所有的技术。
之后我自己出来创业,做了国内比较早的类似 Twitter 的网站 叽歪,后来这个项目并没有做下去。在 2010年之后我开始基于我之前对技术的理解,还有在投资界的朋友与创业者的关系,集中精力去帮助早期的技术方向创业者,在公司早期创立的过程中,通过天使投资的方式帮助到他们。
在最早期互联网时期, HTML 和 JacaScript 大行其道的时代,在 Web 1.0 和 2.0 还没有普及开 CSS 的时期,乃至到后来 08 年开始的移动互联网时代,再到现在的人工智能领域,深度算法、 AI 模型上,我都倾注了很多的时间在研究这些新技术,所以我绝对是一个铁杆的技术爱好者。
02 大咖们眼中的新技术
郝少刚::因为我接触的领域比较杂,一开始在搞科研的时候,主要是做一些并行计算的工作,所以那时候主要是用 Fortran 在写一些东西。所以当接触C++ 这些面向对象的概念的时候,我觉得是比较新颖的。后来转战到工业界,特别是软件行业每隔几年就会有一个新的语言或者新的一套框架出来,我就想:面对这些层出不穷的技术,我们该怎么样去追?
我的一个体会就是从最核心的基础科学,到外面的硬件半导体层,再到软件应用层面,和更外层如金融领域中的应用,越往内层的创新对时间跨度的控制就会越长,越外层的那些技术创新对时间的控制可能就会比较短,迭代的速度也会更快一些。
这可能是一种自然规律,越到内部它是有一些自然界规律支配的趋势,比如说量子力学现在都发展 100 多年了,但是人们现在才刚刚开始做量子计算机没多少年,所以前面的路还很长。半导体从上世纪四五十年代开始,大家做硅基半导体晶体管到现在再往前至少还能看到十到二十年的持续,所以这跨度也很长。
但是到了软件这个层面,可能几年间就会有一个新的框架或者新的语言出来,比如金融领域更是会不停的产生这样那样的投资组合来规避风险,可能很快就会有一个新的策略出现,所以技术迭代的时间尺度在不同的层面上跨度是不太一样的,这是我对新技术的一点体会。
李卓桓:少刚,我这里有一个问题想问你:作为一名量子领域的专家,在过去很长一段时间里,硬件的摩尔定律都一直有效,硬件的性能增长也非常快,但最近我们发现 CPU 速度开始渐渐跟不上了,这无疑会对未来产生很大的影响,甚至不少人开始对硬件的性能产生了一些悲观,不知道你怎么看待这一点?
郝少刚:对的,这里肯定是会到达一个极限的。我之前待过的半导体公司 ASML 是一个光刻机设备公司,我们做的是一些并行计算的模拟,现在像台积电还有三星已经可以量产 7 纳米的芯片了,甚至现在 5 纳米的芯片都已经有了。摩尔定律是每 18 个月晶体管的密度要翻一番,所以 5 纳米下一代就是 3 纳米,再往下可能是 2 纳米等等。
光刻技术我们可以假定它就像版画一样,做版画可能是先刻一个板,然后套在一个纸上,再刷上相应的颜色,就得到了你的画。最重要的瓶颈在什么地方呢?在于你要刻多种颜色的时候要套色,然后下一次又拿另外一层放上来做对齐的时候,发现对不齐了,它的极限就在 2 纳米这个地方,这是它的一个极限。
所以到 2 纳米以下芯片的良率就会降低,那么你的成本自然就提高了。这时候大家就会想出别的办法,我相信总会有新的办法出来的,不到万不得已大家也不会去动底层的东西,因为工业界像英特尔这些大公司,他们有那么多的投入在硅上面,所以硅的工业还会再往前走,只不过对于芯片的架构,可能在设计层面会有新的花样出来。
李卓桓:最近中美国家间的龃龉越来越深,未来可以预见一段时间的技术封锁,各技术领域的人才往芯片或者芯片相关的方向流动,你觉得这对于大家来说会是一个更好的机会吗?
郝少刚:我觉得这里是有机会的,现在在长三角地区其实已经看到这样的趋势了。我们从事半导体硬件行业的这些同学,他们的薪水开始提升。另外也有一些大的企业也开始从事生产一些相对没那么复杂的芯片,比如人工智能芯片虽然卖的贵,但实际从技术角度来讲,它比 CPU 还是要容易制作一些。另外包括有一些像光学类的芯片,它的线宽要求不必太细,可能微米量级就可以。也就是说现在可能不需要特别先进的设备和技术我们也可以先突破,然后开始进入。而且最近我注意到海外也有很多这一类的人才开始回流。
青润:其实物理学是我特别感兴趣的学科,可惜最后路走“偏”了,大学去了沈阳的一个学校读材料加工工程,最后却发现,其实材料加工工程也是物理化学的一个很深入的方向。但是在那边待了一年多之后,发现了一系列的问题,因为中国科研当时的体制让我感觉不好发展,就直接自学计算机编程,自己学完了计算机相关的所有专业课程,随后一毕业就改行了。当然毕业之后又在那边干了半年,完成了导师交待的最后一批实验,也算是作为一名材料系学生所做的最后的贡献,后来那个方向就彻底放弃了。
出来之后开始写 JAVA 代码,当时也遇到了一些问题:就是大家都在写代码,但上面的管理人员不懂,那个时候程序员的薪资确实比其他行业看上去要高一些,所以就有一些对技术不是特别感兴趣的人“混”了进来。当然不好说人家是混进来的,别人能够把这个事情接下来也说明自身是有一定的本事的,比如表达能力比较强,口才比较好等,更容易与一些上层管理来做沟通,而技术员往往拙于沟通,写代码的时候才感到是最幸福的时候。
到现在我一直都觉得,在我当程序员 20多年的历程里面,最幸福的时候就是在 2000 年左右,那时我还是一名单纯的程序员,我的任务就是想方设法的把功能实现。当时我们是在IBM的Websphere上写东西,用的数据库是 db2,结果发现国内没有一本中文资料,只好到外网去查,当时国内能够买到一本书就叫《DB 2 从入门到精通》,结果哪有什么精通,就是把手册翻译了一遍就出书了。这也是后来我写书的时候极力要去避免的事,我这人可能在这方面比较笨,第一本书写了3年,后来又写了 6 年之后出版了第二版,说白了就是我 10 年就只写了一本书。
两千年开始接触 UML,刚开始也是各种抵触,但是真正在项目里把它用起来之后才发现这个东西真的很好用。尤其是从模型到代码的转换过程会让我们的视野从代码层面真正脱离出来进入到架构和模块级别以上。
当我发现了模型化之后,它会把你的视野从代码层提高到真正的架构层,例如当你进入到一个生产线上的时候,你很容易会被上面的某一个具体操作所吸引,这个很简单的机器结构就会锁住一个人,你会在那里面永远突破不出来,很难把自己的视野从这个点提升到整个生产线上。UML 就在软件开发领域起到了这个作用。
随后离开了电信,又进了中科院。为什么进中科院?是因为当时我们的研究员李老师,他是国际上人脸识别领排名前几位的专家,微软最早的人脸识别就是他带着团队做出来的,这个技术方向吸引了我。
在这个阶段中遇到了一系列的问题,比如当时人脸识别、行为分析和动态识别,现在大家经常提到的人工智能在我们那个时候其实都已经在操作了,在操作的过程中遇到了相当多的问题,因为那个时候还有点早期,市场理解度并不够,而且当时我也错过了一些机会,比如在 07 年有一个厦门的老板愿意投 1500 万,我当时直接傻了说:500 万还可以 1500 万我觉得我接不住,后来就错过了这笔资金。
后来我出来创业的时候发现个体的力量在一个体系面前几乎是没有机会的,所以那次创业后来也失败了。大家感兴趣也可以搜索找到当时的一些信息,包括周华安做的水木社区上面,我的经历都曾经上过好几次十大排行榜。我觉得水木是一个非常奇葩的社区,到现在还是每天都有好几万人,甚至高峰的时候是 20万人同时在线,这是一个非常奇葩的事情。
李卓桓:当年大家没有其他的沟通渠道,我觉得在咱们的成长过程中,像早期的 BBS 技术交流,对我们产生了巨大的影响。我身边很多大神朋友都是当年的在 BBS 上认识的,因为当时能上网的人还很少,所以能见到的同时又学得很早的几乎都很厉害。
青润:其实这一项提到的新技术点还有一个事情,比如我 05 年再次进入中科院,离开企业应用软件行业,06 年突然听说Spring 架构如何,我想说我毕竟写了那么多年架构代码,就回去看了一眼,结果发现这不就是 02 年我们用过的东西吗?只是当年我们没有把它提炼出来而已,没什么区别。所以如果你去查的话,可以找一本2002年出版的叫《J2EE核心模式》的书,那本书上有一个 helper 模式,和 Spring 几乎是完全相同的,大家可以有兴趣的可以去查一下,当然这都是翻老古董的东西了,没有书的话不查也无所谓了。
所以我们再来看,新的技术点到底是什么?其实就是有些人把经常重复的东西提炼成为一个通用的点,然后把它标新立异提出来了。如果你没有提出来,那么就只能反省,在枯燥的工作中,自己为什么就没有想想,把它做个简化提炼的工作呢?是抱怨自己的工作枯燥重复无意义,为什么就没有想过更简单更可以偷懒的方式呢?程序员本来就是为了偷懒才来当程序员的嘛。
李卓桓:真正经典的东西,其实都是已经存在生活中很多年,但是我觉得有一些新技术,它的价值在于会有一批人能够把重复出现的这些东西总结出来,并且把它做成一种模式,可以让未来的所有人不用再去从头总结,或者再重复这些过去已经总结出来的东西,进而产生了新的一轮迭代。
郝少刚:现在市面上大家常用到的这些人工智能上的算法,可能都是几年前甚至 10 年前的论文,只不过现在用的人更多了,大家发现可以在更多的应用场景里面用到它们,然后才开始扩散开来,所以这些东西大家可能以为它是新的,其实很多都已经是 10 年前的产物了。
李卓桓:这里关于新旧的概念我觉得也要分一下,一个东西出现了,我觉得在没有被大众知道的情况下,在没有被大量应用到实际的生产生活中之前,就不可能真正去改造世界和创造价值,我认为就不能称之为存在。
真正的存在应该就像少刚刚才说的那样,比如人工智能反向梯度这种学习方法,其实是上世纪就有的东西,但是它没法匹配相应的硬件能力,只有那么一些算法、论文放在那里。我觉得从广义上来讲,一个很厉害的新技术只有被人民群众用起来,这个瞬间才应该叫诞生。
郝少刚:其实对这种转变我是很有体会的,因为那个时候搞科研,你会觉得你做的东西都很好,只要写成论文然后放在那里就已经非常好了,有句诗说的是「花自有本心,何求美人折」,意思指的是:我已经长得这么好看了,即使没有人来折我也是可以的。
但是到了工业界以后,你就会发现这些成果最好还是能尽量改变到我们的日常生活,就像另一首诗「迟迟白日晚,袅袅秋风生。岁华尽摇落,芳意竟何成」。最后你这朵花也开了,开完也败了,但是没有人欣赏,芳意竟何成就是没有意义,没有感觉,所以会有两个比较大的对比。
李卓桓:我发现很多技术圈的牛人同时也是文人,刚才少刚的诗已经达到了骚客的级别。
青润:我记得大概是 96 年,当我还在读本科的时候。我师姐做了一个铸造流体模型的计算,它的这个计算需要差不多 5 天以上的时间,经常在电脑上贴了一个「请勿关机正在做计算」的纸条,后来有一天我偶然帮她看了一下代码,我说:“你的这个模型最后处理出结果的那段,可以把它放到最后一块出”,就这么一句话,让整体的计算时间从 5 天多变成了 6 个多小时。
2005 年的时候,我们在做人脸识别,当时有一个叫活体检测技术。像现在大家看到的活体检测技术其实叫活动检测,看你眨眼、晃晃头、笑一下和张张嘴,这叫活动检测,不叫活体检测。其实活体检测的是你的眼球对应的反光点的不规则波动,我们在 04 年的时候就已经做到,但是当时如果做这个事情,我们人脸识别的速度就会从 20 多秒直接变成了 5 分钟,用户肯定没法接受了,这个时间大家等不起,所以这个技术后来就被拿下来了。
这代表了什么?说明当时的计算能力真的不够,我记得当时我在自动化所还拼凑了 1 台搭配 4 个 32G 内存挂载 10 块硬盘的一台机器,然后发现一台变压器完全带不动,最后弄了两个变压器来带这台机器。在我离开之后这台机器也就被分拆成两台机器,因为确实太耗电了。当时的处理能力相比现在真的差太多了,可以这样说,现在随便一台普通智能手机都比我们当年奔四的计算机处理能力要强,现在手机上几乎都能够做人脸识别了。
李卓桓:我觉得我们都是在各种暴露年龄啊,当年硬盘真是存 100 块好像都赶不上现在手机的存储容量大。
其实不同的年代都会有很多技术特别吸引人,尤其是对我自己而言,我其实从很小的时候一直都会被各种技术所吸引,现在回想起来似乎每一年吸引我的技术后来都有了很大发展,但当时我只是觉得很好玩。
比如在初中的时候觉得游戏机很好玩,然后就会思索这个东西是怎么做出来,就去自学了 basic。在90年代的时候,basic 应该也属于很前卫的技术,虽然 basic 不是最好的语言。
在初中的时候就已经能用 basic 实现一些小数据的控制,然后发现还有很多的数据需要处理,所以我在高中的时候就自学了 FoxSpace,也属于那种很早期的数据库,我觉得很多的新技术它是取决于人身边的各种需求,这种需求解决的时候就会出现很多以前没有的技术,现在为了解决这个需求所诞生的这种新技术在未来就会对很多事情做出改变。
我在上大学的时候首选北京,主要因为当时想要上网。我高中的时候我们那个地区没有网,所以只能抱着电脑报看,电脑报是很早的一个电脑报纸,上面就有很多大城市的人说:“我又加了个 BBS ,我的电话线在晚上欢迎打给我,我的电话号码是多少等等”,因为那个时候想上网需要先打电话给那台服务器,并且那台服务器同时只能服务一个人,那个时代就会有这样的站长。
后来到了北京之后,觉得互联网能够让你实时得到那么多的东西,能够让你没有任何限制得到那么多的信息,就感觉很兴奋。当时我就做了一个动漫站,因为我很喜欢动漫,喜欢到处下动漫,当时也没有视频全都是小图片,但有很多小图片就已经很令人兴奋了,因为自己有这种收集数据的诉求,当时我就做了全清华最大的一个 FTP— “紫霞 FTP”。
紫霞站就是我的站,所以 zixia.net 这个域名就是当时我租下来自用的。我最开始试图想做一个网站,第一步是用 ASP,在 98~99年那时候,它还属于很先进的技术。因为那个时候没有开发成型的语言,就用 ASP 做论坛,当时用起来也确实很不错。但是再往前走,就会发现有一些限制,然后再去请教一些人,他们告诉我还有更好的东西,所以在那个时候我又接触了 leedays,为了实现所有的站,我就开始学习各种各样配置网络服务器的技术。
为了满足自己的玩兴而学了很多东西,所以我觉得如果你真的想玩一些很前卫的技术,你就会发现有一些技术需要去学习,那么你就去学它就对了,因为你要相信自己喜欢的东西在未来一定不会错。
后来到了第一轮互联网浪潮的时候,我供职于国内一个叫 ChinaRen 的网站,后来被搜狐收购,当时我在的部门基本上只有 3 个人,但所有的服务器都要由我们来做内核编译,包括各种邮件服务器的架设备份等,所有的都要做,也需要不断的学。
借着做这个的经历,我写了我的第一本书《leedays 网络编程》,还是在清华读书期间写成的,后来随着需要做的东西不断增多,我又自学了 perl,甚至有一段时间任何东西我都想用 perl 来写,因为 perl 当时还很好。然后为了做毕设又不得不自学了JAVA ,在很多公司还要做 DBA,后来为了做服务器,要学当年超级难用的 RPC。虽然很多东西后来也不再用了,意外却发现当年学的这些技术有很多竟成为了互联网中非常重要的一些能力。
给我的感受就是:自己喜欢一个什么样的应用场景,当你想要在这个场景里面成为主人的时候,你就需要有很多 Powerful 的能力。这些技能点其实我觉得就选自己喜欢的去点亮,会有很大的概率点亮到一个未来能够改变世界的,尤其是当年互联网兴起的时代,我们看见这些技术对于之后的十年乃至更久都有很大的颠覆机会。
比如2008 年移动互联网诞生的时候,因为大家当时都在用电脑,你会发现很多人希望有一个随身的移动设备,如果能够移动上网,拍脑袋想都知道这是特别炫酷的一件事。为此我甚至去学了 iOS 编程和安卓编程,还写了很多小的 demo,试图更深刻的理解它们。虽然自己没有在移动互联网做公司,但是我们 PreAngel 当时投了很多移动互联网公司,到最近这 5 年,我的兴趣又被一个新的技术完完全全所吸引,它就是AI。为什么会喜欢它呢?还是因为我是一个特别笨特别懒的人,所以我就特别希望找到一个方法能够让我借力。不过因为我在清华读的不是计算机系,算法基础相对较差,如果让我去做人脸识别,我觉得和青润比起来,简直完全不知道发生了什么事情。
现在的人工智能有一个什么样的机会呢?机会就在于现在算力有了很大提升以及让我们摆脱了过去所有算法的桎梏。我们发现我们不需要去了解那些细节,以前的机器需要你告诉它具体怎么做,它才能够把这个事做好。现在的机器你会发现能够有一个新的能力,这种能力叫做「授之以鱼不如授之以渔」,就是你要教会机器自己去做,而不是说手把手的教它如何去做。现在的电脑我觉得已经到了一个新的阶段,电脑能够自己去总结出来一些规律,而不需要你总结了之后让它背下来再去做。
我还发现这样的一个新技术在未来一定能够真正改变人类生产力,我和朋友分享说人工智能可能比互联网还要伟大,超过两个量级都不止。这是我对新技术的感受,找到一个自己喜欢的新技术,我相信大家只要能做进去,最后收获都不会小。
郝少刚:非常同意卓桓的说法,因为在量子计算领域我们传统的办法都是一种演绎的办法,就是从最基本的原理出发,然后用公式推理出来。但是到了一定程度你再进行模拟的话,它的时间复杂度是非常高的,代价很大,可能这个时候就没办法进行扩展。有 AI 我们就可以从另外一方面,用归纳和统计的办法从数据侧来看,所以我们现在也在做一个新的尝试,希望用 AI 的办法帮助我们加速量子计算,也就是量子模拟。
另外一点我觉得卓桓说的也特别好,就像我们的生活,每一天你要得到一些正反馈,然后你才能够比较开心的进入下一天。你喜欢那个东西,然后你得到了正反馈,才能更好持续下去,有收获。如果我们得到的是负反馈,比如觉得学的这些新东西是生活所迫必须要学,这就不是很开心了,效果也不会很好。
青润:兴趣很重要,就像我到现在还记得86年学计算机的时候,我是怎么成为老师最好的学生的,是因为有一天我把他气哭了,之后就特别内疚,才想要好好学习这门课,而且发现这门学科确实很有意思。
想想在 86 年那个时候,你能够在一个电脑屏幕上显示出自己定制的一些花纹纹路,还可以操作一些事物,类似于街头游戏机里面的一些东西,还可以自己把它拼装起来,那是一个多么新颖的事情啊。
后来街头的游戏机我就不去玩了,我发现我自己好像自己也能干,于是就开始自己编。当然编的就很一般了,因为那时候用的只有一个配色,硬件用的就是 310 机和苹果I型II型机,当时苹果I型II型我们还不能经常用,因为价值很贵,我们用的最多就是 310,这个 310 是日本模仿苹果的一款机型,很多朋友大概也就在书本上见过。
我最近在知乎上遇到了一个人,他说自己是因为兴趣才来做计算机的,然后越做越枯燥,就觉得很无聊。我就回了一句话,我说怎么可能越做越无聊,真正有兴趣的人绝对不会因为你做的事情的重复性而感到无聊,只会觉得可能还有地方没做好,所以这一点特别重要。
03 处理与新技术的关系
李卓桓:咱们都做了那么多年,在感叹过去这些“新”技术的时候,未来我相信还会有更多的新兴技术会出现。大家觉得未来还会有哪些重大的技术将会出现,另外从技术人职业发展角度来看,我们每一个人应该怎样做好选择以应对未来技术发展?
郝少刚:我先谈一谈,如果是我的话,第一我觉得还是兴趣驱动,首先是你愿意去接触它,它是来发动你,激起你内心好奇的一个点。当你对日常正在做的事情已经很熟悉了,可能处在一个舒适区中,每天的事情在可以很有效率得做完的情况下,你会有一些其他的时间,看一点这些东西,这个时候兴趣在其中会起到非常大的作用。
如果把兴趣抛开,就是你对未来趋势的一个判断,你可能对这个技术没什么兴趣,但是现在好像很多人都很关注这块,它以后可能会变成一个大事件,这时候你也可以对它有所关注。你希望以后也能投身于这个领域,做出一些东西来,对整个社区和大家的生活产生一些贡献。这是目前我觉得两大比较基本的因素,可能会驱使一个人去找他比较喜欢的技术点。
另外我觉得如果我们时间更多一些,或者你的好奇心更重一些,那就可以对一些“不沾边”的东西看得更广一些,比如说现在我们获得知识的渠道太多了,而且非常的便宜。像上网获得知识的成本很低,资源非常多,所以我觉得可以花很少的时间对很多东西都可以掌握个大概。比如二八原则,我们花 20% 的精力,就可以对一个东西有 80% 的掌握,这样就可以把我们的知识面和视野铺的更大一些。在新的领域里面,你可能又会发现一些使你感到有兴趣或者是你感到兴奋的一些点。
李卓桓:我觉得少刚说的很对,现在和 10 年前不一样了,和过去比起来,我们获取信息的渠道越来越丰富,而且从另外一个角度来看,互联网上能够制作出特别优秀内容的内容生产者,随着整个互联网的基数变大,也会越来越多。所以如果我们能够用英文来搜索的话,我们基本上能够很快的得到全球上最好最先进的新技术,以及那些顶级的讲师或者写手他们总结出来的特别高质量的文章和知识的教程。
所以从这个角度来讲,其实我们现在获取新知识的能力变得比以前强了很多。其次我想引申出来另外一个观点,从某种角度来说,随着技术迭代的变快,我们不可避免的会面临着我们学过的知识会“过期”。
其实我一直不太相信知识会过期,因为当你能够学到一个新的知识的时候,最重要的是你要能学到这个知识背后的通用模式与思考问题的方法。其实如果我们大家写程序用的语言多了之后,你会发现其实语言之间就是语法不同,思维模式和解决问题的思路都是相通的,我们是可以通过不断学习这种新知识而沉淀出来,变成自己内化的一个通用的思维模式。所以对于学习新技术,我觉得完全可以只是看它是否有足够有新的点能够去解决新的问题,而且我觉得学了都不亏。
郝少刚:通用的东西在你身上沉淀下来以后,你学新的东西就会更快。你个人其实也是在不停的迭代,而且每次都迭代得更快,你就变成了一个更有效率的学习者,所以相当于我们在训练自己大脑里面那些神经元,你训练的越多,它就越愿意去学习,越主动,越有好奇心,我觉得正反馈是非常好的。
青润:就像刚才说到的人脸识别,其实我现在也写不动人脸识别代码了,虽然人脸识别代码不是我写的,但是对于人脸识别的理解,我反而有一定的心得,这也是我现在能够去做跨物种的语言互通技术的原因。
我把这套思维的方式转换到了一个应用场景内,比如说你们家有宠物狗,当它听到过一个声音,或者发出某一个声音的时候,会习惯性的抬一下左手,这时候我就会记录下来。当你需要它抬左手的时候,能让你发出的声音在狗那边听到的就是让它抬左手的指令,这样做到跨物种的语言互通,而不是依靠传统的巴普洛夫效应让狗遵从指令。
这是我在第二次进中科院之后掌握到的最重要的东西,反而不是写的那些代码。还有人说你看看你现在多失败,你那么早进入人脸识别领域,现在的人脸识别公司却没有一个和你有关的。我说确实是没有一个和我有关的,但是现在几乎主流的人脸识别公司里面都有我们那个组或者我们那组相关联的痕迹在里面。其实不代表说你自己一定要在里面获得一些直接的东西,这些工作可能会在另一个层面上产生相应的作用。
李卓桓:我还有另外一个建议,我们大家在学习新技术的时候,最好不要为了学而学,最好能找到一个让技术实际去落地的场景,哪怕是非常初级的一个场景,但是只要你能够把它实际用起来,你的学习收获、感觉就会完全不一样。因为它不再是一个死的知识,而是一个活的东西,是真正能解决问题的知识。
04 Q&A
Q:我们处在机器配置这么好的年代,为什么感觉产出却不如以前呢?
李卓桓:其实这个问题是很有代表性的,我觉得如果我们要做的话,首先就要把心态放长远。分为两块,第一,过去这 10 年,有很多的基础数据,具有代表性的像准确度,像坐火箭一样往上涨,但我们不能期待以后永远是这样的。为什么?因为过去 10 年的人工智能发展,无论是图像还是 NLP ,它们最大的特点就是已经把过去所有基础研究的能力释放干净了。
像80~90年代的反向梯度传播和很久之前就有的卷积神经网络,最早是因为我们没有算力,所以它们没有办法被释放出能力。但其实在过去的这5年多甚至10年中,很多基础研究的能力,典型的如图像的准度已经从92%、95%、97%,到现在人脸识别的准度都能达到百分之九十九点几了。所以接下来做这个领域的时候,并不是说我们的机器配置好了,就没有再提升的机会了,而是因为我们已经提升很多了。
接下来我们要做的事情我觉得会有两个很大的机会,第一就是做新的基础研究,不是把 95%变成 95.5%,只专注于提升一两个百分点。而是要发掘新的问题,找到问题的新的解决办法。比如在自然语言处理里,很多语义的问题到现在其实还没有被真正解决,甚至都没有被定义出来,我觉得要在学术领域努力解决这些问题,才会真的对人类产生很大的积极贡献。
第二点可能更切实际一点,我们的开发者其实有一个很大的机会,现在有很多的人工智能算法可能已经达到了 99% 的准度,但其实它在真正的人文生活应用中,在真正的产品化落地上还非常的局限,有很多的场景,并没有把技术真正用起来。比如说图像识别里面的物体检测就有很多的场景,它需要大量的这种能力,但是到现在为止并没有一个产品真正能解决它们的问题,而像这样的落地机会也还有很多。
青润:我补充两点,第一,人脸识别的准确度还没有到九十九点几,这更多是一种商业上的宣传。实际上在人脸识别里面我们做的方式是什么?就是拿你的历史数据,抽取一个特征码,当你再一次过来验证的时候,就会再拍一张照片,用同样的算法来提取特征码,提取完两种特征码中间肯定有差异,比如光照、倾角、脸的倾斜度都会有差异,然后这两者我做数值异或。数值异或的速度是非常快的,大家知道计算机里面最快的计算就是异或,计算这个百分比有多少是相似的,多少是不相似的,如果相差比较大的话,可能会再做一些图形的变换,比如说做一个倾角的转换,最后再来比较。
其实这里提到的就是两个概念:一个是识别率,另一个是误识率。这两者之和是大于100%的。具体的原因有兴趣的朋友可以详细了解一下人脸识别的相关技术以及定义方式。即使是识别率中等相似的那部分它也是有价值的,因为每个人不同时间的两张照片是不可能做到100%相似的,甚至80%以上的相似概率都很低,于是在商业计算中会把那个20%(这里是一个假设的数值)直接去掉然后折算出来的结果往往就可以达到90%多以上了。
实际上现在和我们10多年前做的那套人脸识别算法和数值异或上的差异,到现在也没有特别大的突破,数值得分大概就在70%左右。但实际上在60%左右的时候就已经可以识别出是这个人了,15年前58%就已经是一个比较高的得分了。
假如你用到的人脸识别设备比较多的话,会发现很多时候经常会折腾到不认识,还得重新识别才可能识别出来。这就是为什么我们在不断的调整门限,把这个门限值设定为70%还是65%还是60%,很有可能你会偶然碰出一个很高的数值出来。
这就有人提到说人脸识别的时候,比如我带张人皮会怎么样呢?其实这个是真的可以蒙混过关的,不要认为是蒙混不过去的。如果让我来破的话,可以说我有很多种方法来攻击现有这些系统,但是这种方式我们一般不对外讲,因为讲多了没有太大意义,只能说明我们自己这块东西没做好。
目前在计算能力上还是不够,这个确实没有办法,真正计算力够的时候是什么时候呢?现在有可能在硅基芯片上是看不到了,可能量子计算机会带来希望。
郝少刚:我可能没有青润那么悲观,我觉得硅基半导体芯片还是可以试一下,也欢迎大家到我们腾讯云上来试一试,我们腾讯云上有很强大的 GPU 集群,欢迎跟我们联系。
Q:学AI要从那种语言开始学起?
郝少刚:我觉得大家比较常用都是先从Python开始,因为像 PyTorch、TensorFlow 都支持得很好,另外 Python 是一个比较容易上手,对新用户比较友好的一种语言,我觉得用 Python 开始就很好。
Q:AI药物研发到底前景如何?还有多长的路要走?
郝少刚:AI 药物研发已经是一个趋势了,最近我看到国外权威杂志(《自然》杂志还是《科学》杂志)上发表了一篇文章,他们用 AI 做了一些辅助的药物研发,在很短的时间内就进入了FDA 的审批流程,所以 AI 对药物研发的帮助还是非常大的。
因为从分子治药角度来讲,那些小分子数据库里面的分子量太大了,都是一些有机的东西,能达到上亿的量级。所以在大数据领域里,从数据这边来找规律,看哪些东西能够匹配到蛋白质的某一个特殊靶点位置等等这些,都是很有效率很有意义的。
至于说还有多长的路要走,需要看你怎么定义你认为的彼岸是多远?如果你的意思仅仅是 AI 技术用在制药领域的话,那么我们现在已经在用了,而且可能还会一直会用下去,经历不停的迭代、加速优化的整个过程,模型也会做得越来越好。所以我觉得不是问还有多长的路要走,而是说我们可能以后用 AI 变成一个常态,在制药领域大家都会选择这个工具,它变成了一个不可或缺的工具,可能还需要相当长的一段时间。
Q:AI 技术水平越来越成熟了,在未来发展后会代替人工吗?
青润:这个问题背后会牵扯涉及到人类的生存安全的问题,而这个问题也是长期引发社会广泛思考和讨论的问题之一。关于 AI 将来会不会真的来害人,甚至国内某知名高校成立了一个学院,要专门研究人工智能法律基础相关的东西,尽量减少人工智能对人的伤害。
我从写了多年代码的程序员角度来考虑,如果大家有看过一个连续剧——终结者外传,里面有这样一个画面,一个液态金属机器人在一大楼上指着下面和主角说:“你看路面上的各种机械车辆,它会按照红绿灯的指示来进行通过,但是没有一个机器人会闯红灯突破这个过程,所以会犯错的机器人是一个特别特殊的存在”。从目前的技术基础来说,所有的不管你是什么形态的代码形成之后的人工智能算法或者它的逻辑实现算法都有自身的基础的,它还是基于一个代码序列层展现出来的。
如果在代码序列展现中出现了这种闯红灯行为,说明了什么?它其实是代码出现错误或者内存溢出了,但是这种溢出行为可能有连续性吗?其实从目前来看,还做不到溢出行为之后的连续性,他如果不能有连续性,换句话他这时候出错之后会带来什么结果?就是手机锁死了,随后手机就直接重启,重启之后他又恢复到正常状态,也就是说他的错误行为不会出现连续性的行为。
即使是我设定了这是一个杀人机器人,他就是为了杀人而存在的,假设有这样疯狂的技术员出现,这也是有可能的。但是他设定的也只是针对一定目标行为之下的连续性的程序延伸,也不会出现他会把所有的杀人模式都实现出来,也就是说因为异常而灭绝人类的杀人机器人不可能出现,但是针对单一目标的杀戮机器是有可能出现的。
再者你可以想到一点,人工智能能代替哪些人工呢?其实基础的可重复性的劳动都是可以取代的。
我从2004年开始有一个自己的研究方向,不是刚才所说的跨物种语音互通技术方向,而是抽象化脑力劳动的量化模型研究。这些东西最初的来源是在哪里?其实就来源于我 2000 年开始接触的 UML 的建模方法。从那里我发现了,也许能够把程序员的抽象化劳动,逐层量化出来一个可能的实现途径,于是就开始往下推进这一系列动作。类似于脑力劳动的抽象化量化,实际上机器将来能够带来的绝大部分也都是可以具体量化出来的东西,也就是说目前能被量化出来的工作,就是机器最优先会被取代的东西。
当然有人会说,现在连类似毕加索的画都能被机器画出来,但其实那也是一套代码和模型演算出来的结果,并不是真的。所以不要认为那就是一个画家,其实还是一种模仿性的行为。
Q:关于人工智能中自然语言处理在商业领域的应用,老师能给哪些建议?
李卓桓:这个问题正好问到了我的专业领域,我现在主要关注的就是人工智能技术领域里面,尤其 NLP 这个领域的应用,还有像多轮对话,如何在微信上面做这种自动化的客服问答,以及其他类似的这种人工智能应用。
回到在商业领域来应用这个话题里,我觉得这个问题最大的价值在于说,我们要意识到现在的 AI 算法其实是有很多的局限性,即便对于很多的数据能够分类得很好,即便它在很多的场景里能够不知疲倦的工作,比人的效率还高,但是当它到了对话领域的时候,会面临着很大的挑战,尤其是和 CV图像处理比起来。因为CV图像处理中很多应用场景相对来讲都是客观的场景,图中有没有一只猫或一只狗是一个绝对客观的场景,它的算法做起来比较容易。
但是到了自然语言领域的时候就带来了很多的不确定性,比如一个人跟你说话的时候,可能同样的一句话代表着不同的意思,甚至是代表着截然相反的意思。在很多时候,我们在跟别人说话的时候,其实别人的语气以及当时现场的情境都和表达的真正意思有很深的关联,如果你只是把说的语音转成文字的话,可能会错失掉很多的信息。
所以对话领域如果要商业落地的话,我觉得第一点就一定要意识到人工智能在这个场景里面有非常大的先天不足。那么是不是说就没有办法去做了?我觉得完全不是,其实现在有大量的机会可以把这种对话能力应用在不同场景里的。
举一个很简单的例子,比如我们可以去做一些降维打击的事情,比如现在我们的自然语言处理已经可以对基本的单轮对话的语音转文字有很高的准确度,大家如果用微信语音转文字就会发现真的很好用。另外如果你去提问一个很清晰的问题,比如你作为乙方去应聘,把电脑当做甲方,你可以很认真的跟它讲明白一件事,其实基本上也能达到清晰沟通的效果,事实上在单轮对话里 AI 已经可以解决绝大多数的问题了。
那么我们该如何抓住这其中的商业落地的机会呢?需要我们去找到真正这样的场景,然后分辨清楚哪一些是超出我们能力的,再把它们剔除掉,剩下的有能力做的这些简单场景里面,哪一些又是属于价值最大的,我们就把它拿过来,在这些里面再去做最后的筛选。
其实某种角度来讲这并不是一个技术问题,像现在我们的腾讯云提供的很多模型里面,我们有很多 API 能够做很多的事情,但关键还是在于你能否有那个创意。举一个简单的例子,移动互联网的时候,我们大家都有手机,我们都知道怎么写程序,怎么画一个方块,怎么填色,甚至怎么做一个3D的东西,但是这些东西在你的手上,你是不是就能做出一个用户都很喜欢愿意传播的手机应用出来呢?
很多的应用原理都很简单,并不需要很深的、很复杂的算法或者一些复杂的逻辑,但是它就能够打动用户。我觉得在接下来的人工智能领域,其实有大量这样的机会,如果大家能够找到这样的机会,保持对人工智能局限的认知,去寻找一个没有被解决好的场景,并且判断清楚这个场景是否真的有价值?如果未来有价值就去试一试,这里面的机会真的非常多。
最后我再稍微做一个小广告,我过去几年专门研究过怎么做聊天机器人的多轮对话,所以在今年3月份的时候,我和另外一个朋友专门出版了一本书《ChatBot 从零到一》,专门讲述一些如何来做对话和如何思考聊天机器人的应用场景,所以大家也可以去参考一下那本书,我是第二个作者。
Q:作为售前工程师而不是程序员出身,想请教老师怎样才能更好拥抱技术,掌握和提升软件技术或架构思维水平?
郝少刚:其实我也不是程序员出身,我是学物理的,青润兄是学材料的,卓桓是学机械的,我们三个都不是程序员出身的。那么怎样更好地拥抱新技术呢?首先你要喜欢它,对它有好奇心,然后你一定要去实际操作,你跟着做一遍,把里面的坑都踩一遍,等你再回头看的时候,就能更深入的理解它了,等你下次再碰到这个事情的时候,你就知道该怎么办了。
Q:5G会对AI产生什么影响呢?
青润:因为我毕业之后在电信待过很多年,所以通信也算是我的专业之一了。尤其是这几年我们在藏区以牦牛开始做研究,也会注重相应的通信技术对我们的影响。其实现在 5G 和 AI 这两者并没有太大直接关系,大家不用多想了,但是通信技术对 AI 一定是有很重大的影响的。
为什么这么说?因为通信在它的传输速率以及通信方式上,会决定将来 AI 的响应速度以及最终拿到的结果,所以这两者看似没有什么直接关系,但还是可以交互产生很有意思的事情。
例如我们将来考虑在科技馆做一些展示,比如把某一个地方的场景直接 3D 还原出来,还原出一个真实的牦牛生活场景,但这些东西以目前的通信技术来说,只能通过 5G 技术来进行传输,因为 4G 的传输量是达不到我们要求的。
在驱赶牦牛的过程中,我们会给用户一个相应的方式,让他能和牦牛之间产生一个互动。当然我们不会做过于强迫动物行为的一些操作,比如用户跟它说右边的草质很好,指挥着牦牛往那边过去,这样的行为我们会处理成一个牦牛能听懂的指令给到它,这种形态其实就是我们正在和运营商一起合作推动的事情。
Q:5G的广泛应用会将计算工作全部放在云,舍弃端侧的算力吗?
李卓桓:这个问题很好,也是我相信的一个趋势,只不过我觉得要修正一点,永远都没有绝对极端的情况,我们是不会把所有的算力都放在云上的。但是我相信越来越多的算力,我们可以从云上面直接拿来用,尤其是这样一些场景,我们的随身设备没有足够强的算力,当然原因是很多种的,比如出于成本上的考量,可能是电池或者功耗不够,或者是一些其他情况等等。
但是我们都知道现在云端的算力很强大,那我们是不是能够直接把云端的算力拿到我的移动设备上来用?比如我的手机可能就不需要用很多的电来计算我 3D 图形,只需要把任务丢给云,然后把结果拿回来用就行,在这种全依赖云的情况下,我的手机电池也许可以用两天三天甚至更久,这就是一个很大的提升,所以我相信这绝对会是一个趋势。
再举一个例子,是我个人非常喜欢的一个产品,如果大家感兴趣可以去网上搜一搜,谷歌有一个产品叫做 Stadia 。它是一个游戏手柄,这个手柄拿回家之后,你不需要任何其他东西,就能用这个手柄来玩游戏。可能有人会疑惑主机在哪?主机其实就在谷歌云上面。
当你打开这个手柄,需要做的就是连接到你家里的 WiFi,连接好以后所有的游戏都在云上,玩的时候也不需要下载。你家里的电视也是连接到 WiFi,通过 Google Ground Caster这么一个专门用来投屏的设备显示游戏1080P的渲染画面,甚至它还支持 4K 渲染,只不过对带宽要求高一些,全部内容都在 Server 上。
所以就意味着你在本地操作游戏手柄往前走,你的命令会转到云上,然后云上将三维图形渲染,每一秒推给你 30 帧甚至 60 帧的画面,这样你就完全可以在本地来玩这个游戏了。你也不用再下载游戏了,大家都知道现在游戏安装包越来越大,下载安装都很费劲。第二,你也不再需要什么主机了,更新的麻烦也可以省去。只要你有一个手柄,家里有电视,你就能玩的很好,这就是一个家用游戏的场景。
其实我觉得谷歌做这个场景更大的战略应该是放眼未来,比如如果现在我们把手机做成眼镜那样的形式,面临的主要问题是没有很大的电池。但是以后如果网络足够好的话,我们就只需要把视频传走,再把视频拿回来,现在的硬件发展处理这些东西是非常省力气的,所以我觉得除了刚才提到的游戏以外,未来的人工智能尤其是很复杂的人工智能,也会受益于这种模式,让我们的用户体验变得更好。
以上是 浪潮之巅,程序员如何拥抱新技术? 的全部内容, 来源链接: utcz.com/a/29243.html