正式开源TKE和TBase,腾讯正成为大数据领域开源最全面厂商

在11月6日召开的Techo开发者大会上,腾讯云副总裁、腾讯数据平台部总经理蒋杰博士正式对外披露腾讯大数据平台10年技术演进历程。

经过10年的积累,腾讯大数据平台的算力资源池目前已有超过20万台的规模,每天实时数据计算量超过30万亿条,随着资源管理平台核心TKE和分布式数据库TBase正式对外开源,腾讯正在成为大数据领域开源全面的公司。标题腾讯云副总裁、腾讯数据平台部总经理蒋杰

腾讯的数据量在短短5、6年时间增长了几千倍,目前每天产生的数据量超过几十万亿条数据在产生。为了应对这种爆炸式增长,腾讯走出了一条技术引进+改造+自研的道路。经过长达十年的不断升级和完善,腾讯大数据平台已经经历了四代演进。针对最新的大数据和人工智能技术发展趋势,正在下一代计算平台中,探索批流融合、ABC融合以及数据湖和联邦学习等前沿技术。

十年四次升级 建立“大数据+AI”双引擎技术架构

腾讯内部目前有超过100万台服务器,腾讯云联合所有业务部门,利用业务空闲资源打造一套算力共享平台,该算力弹性资源池有20万的规模,大数据平台每天有1500万的分析任务、30万亿次的实时计算量,并且每天数据接入条数达35万亿条数据。此外腾讯云的分布式机器学习平台,能支撑1万亿维度的数据训练。

能支撑如此大规模数据的接入和运算,是腾讯在大数据技术领域超过10年的积累,其核心的大数据平台已经完成了三次迭代。从以Hadoop为核心的离线计算时代到以Spark、Storm、Flink为核心的实时计算时代,再到如今的机器学习和深度学习时代,腾讯从无到有研发了分布式的机器学习引擎Angel以及一站式AI开发平台智能钛TI,用来解决数据训练和算法的问题。目前腾讯正在研究以批流融合、ABC融合、以及数据湖和联邦学习为方向的下一代大数据平台的研究,该平台将具备混合部署、跨域数据共享和边缘计算等能力。

据了解,为支撑海量业务发展,腾讯已经建立了“大数据+AI”的双引擎技术架构,其中最底层为分布式存储层,存储结构化及非结构化数据;第二层是资源调度层,做CPU、GPU和FPGA的管理;第三层是计算层、分析层、数据采集层,而顶层则是业务应用层。通过四层完整的技术架构,自下而上为腾讯的整个应用生态保驾护航,保障亿万用户能安全顺畅地享受到腾讯的优质服务。

从局部优化到自主研发 在实践中不断创新

从开始的技术引进、局部优化到如今的自主创新,腾讯的大数据技术在实践中不断完善、不断创新。十年前腾讯管理几百个节点都很困难,调度性能差,规模上不去。为了有效解决计算能力和大规模集群问题,腾讯自研调度器,相对原生调度器性能提升150倍,大大提升了集群可扩展性。2016年,腾讯打破Sort Benchmark四项世界纪录,标志着算力已经达到世界领先水平。

由于腾讯20万台弹性资源池的机器分布在多个数据中心,不同地区甚至是不同国家,为了降低数据使用壁垒,去年自研了漂移计算引擎SuperSQL,作为统一的数据分析入口,通过智能CBO优化器,将计算下推到分布在各地的异构数据源,数据分析性能提高很多倍,并且数据量越大优势越明显。

数据应用越来越深入,腾讯对数据挖掘的需求也越来越多。随着模型的增大,最初用来做数据训练的MR、Spark已经不能满足上亿的模型维度的需求。2015年初,腾讯开始自研高性能的分布式机器学习平台Angel,采用PS架构,能支持10亿维度。目前Angel发展到3.0版本,能支持万亿维度,也可以兼容Spark、PyTorch、TensorFlow等生态,进一步降低了使用门槛。此外,Angel今年还新增了对深度学习、图计算等的支持。

腾讯正成为大数据领域开源全面厂商

技术迭代不断加速,企业建设大数据平台和机器学习平台,不仅成本高昂,而且缺乏相应的专业人才,面临种种问题。

云时代,这些问题得到有效解决。目前,腾讯已经把网络、存储、数据库等IaaS能力,大数据、机器学习等PaaS的能力,以及上层的图像、语音、NLP、BI等SaaS能力,通过腾讯云对外开放。在大数据和AI两个领域,腾讯推出了以TBDS和智能钛TI为首的双引擎。让每个企业,不需要专业的大数据和AI团队,也能便捷用上领先的大数据和AI的能力。

另外,腾讯也通过开源和广大开发者共享技术成果。从2014开始,将第一代平台的核心,腾讯版的Hive进行了开源,2017年,更是把第三代平台的核心Angel开源。今年,腾讯加快了开源的脚步,在内部推开源协同的战略推动下,腾讯所有的技术栈,后续会越来越开放。

2个月前,腾讯在ApacheCon 2019上,面向全球开发者正式宣布开源自身核心平台——实时数据采集平台TubeMQ,并捐献给Apache社区。此次在Techo大会现场,再次重磅宣布正式开源资源管理平台核心TKE和分布式数据库TBase,随着在大数据开源领域的开源逐步加速,腾讯正在成为中国大数据领域开源最全面的厂商。

“目前,已经有数百万的开发者在腾讯云上构建应用,相信后面会有越来越多开发者加入,我们将和所有开发者一起,共建云上的应用生态”,蒋杰表示。

为云而生、多快好省,这就是星星海的style!

不久之前,腾讯云刚刚对外上新了一款服务器,号称深度自研且独一无二,其名字也十二分的卡哇伊,叫做“星星海”。晶少虽然还没来得及探寻其名的出处,不过在与腾讯服务器供应链总经理刘裕勋的谈聊中已基本了解到星星海的重要style之一,为云而生。

星星海,腾讯首款为云而生的服务器,不是简单挂个响亮的标签而已。深入剖析 “为云而生”的理念,我们恐怕还要追溯到通常情况下的服务器研发过程。

我们发现,一般情况下的服务器研发很难规避“堆砌”的窘境,所谓A用户需要A类特性,B用户又要求B种风格,一来二去整个架构变得异常复杂,企业级服务器更是如此,因为需要满足更多企业以及用户的需求;而相比之下此处的“为云而生”,很重要的一点就是要依照云的属性进行设计甚至优化。所以在设计部署过程中,星星海果断结合了数据中心实际部署环境要求,针对云端的计算、存储、网络等场景做了重点优化,据了解能够有效满足腾讯云98%应用场景需求。

“其实每个软件产品对相应硬件的配置要求均有不同,但如果可以使用同一套服务器架构,无论是CPU内存还是基础存储,都可以满足软件层面产品的需求,自研技术上达到了承上启下,也被称为软硬协同。”刘裕勋表示。在这样的想法驱使下,星星海通过精细的硬件设计大幅度降低了硬件成本和运营成本,同时有效匹配腾讯服务器供应链整体升级,更好整合了硬件产业链能力。

除了从云出发,高效利用硬件资源之外,星星海很重要的一点还表现在精简,有数据显示相比传统服务器,星星海在整个用料剪裁方面超过了20%,这种“好与省”尤其在能耗上体现突出。例如10万台星星海服务器组成集群,相比传统服务器实际上每年都会节省超过5亿度的用电量,毕竟电量消耗的百分之五十均来自服务器的能耗,当然这种精简精神是对标传统而言。

在星星海对外官宣的介绍中,我们发现,其与传统服务器相比很重要的一点就是整机方案可以支持不同的CPU主机类型,兼容架构具有较高的前瞻性,硬件基础被统一规划且放言可支持未来3-5年的服务器产品演进。有资料显示,其联合AMD在最新ROME平台下深度定制CPU,实现了行业最优单核性能和最优单核TCO。根据晶少了解,星星海可以实现云服务实例综合性能提升35%以上,其中视频处理速度提升40%,图形转码得分提升35%,Web服务页面QPS提升高达152%。

谈及深度定制AMD的CPU,刘裕勋提出,腾讯作为AMD七大CSP之一,在测试过程中发现的相关问题一经反馈就会得到AMD方面的高度重视,并用于AMD产品技术升级的重要参考之一。

以本次星星海服务器深度定制CPU为例,先前AMD对外发布的CPU只有两种类型,分别为32核与64核,而星星海在最新的rome平台下定制的单颗CPU为48核,此区别主要源于腾讯云方面针对内存开销和整个服务器性能开销的综合评定与兼顾。相比通常售卖的两套CPU搭载一个8G内存的传统形式,具体来说基于腾讯云海量数据的运营,48核的CPU无论是主频还是性能上都达到了最佳的适配效果。通俗来说,如果替换成一个更高阶的CPU,其能耗就会大大增加,说到这里,刘裕勋还特地列举了十分幽默诙谐的例子让大家能够更加形象生动的了解:一张餐桌本可以容纳十人就餐,如果每个就餐的人都是体重超过200斤的肥胖者,想必这样的就餐环境就会显得拥挤很多,而每一个身材肥胖的就餐者就像一枚高能耗的CPU,在实际使用过程中肯定会出现诸多问题。除了深度定制的CPU助力,在配套日虹散热技术的加持使用下,星星海实现了最大负载能效对比业界可提高50%,尽管该技术不算是业界散热的新理论,但实际落地,星星海算是杰出代表之一。

“确实,星星海对于我们来说算是first one,但绝不是only one,我们已经把未来3-5年对云计算硬件服务器领域的发展趋势做了充分的认证,使服务器整套方案能够满足未来3-5年的产品演进。可以简单理解为,就是这样一套服务器方案,当面对新的技术应用层出不穷之时,只需要作出细微调整而不改变大的架构方向,就可完成技术适配与升级。”晶少得知,在星星海设计到量产不到一年时间这样的速率下(一般传统的服务器厂商,从 概念设计到可能的量产部署,一般周期在一年半到两年),未来到年底将会部署至少超过五千台的规模在腾讯云现有的业务领域中,可谓“又多又快”的节奏。

正常预测的话,在今年春节的QQ抢红包环节或者微信业务都能够直接运行在星星海上。通过快速部署在腾讯的公有云产品上,而且用自研QQ和微信,如此庞大体量的业务去做拉测来打磨整个硬件和软件产品,相信通过这种方式“锻炼”出来的腾讯云星星海能够更加高效为用户提供性价比优势的计算产品,赢在场景的丰富性。

谈及星星海的未来,刘裕勋提出了适配不同CPU架构的方向,其中包括英特尔、国产化架构抑或是自研芯片等,毕竟对于云服务商来说,降本增效历来都是永恒的主题。“如果没有办法每年都提供优质、高性价比的产品给用户,一定程度上相当于整个腾讯云的竞争优势会受到影响。我们更愿意通过产业互联网的思维,基于多年在用户体验方面的打磨,实现针对性能和成本的极致追求;通过经营化和演进能力,提供高性价比产品来降低企业或者客户上云的成本或者用云的开销,进而促进整个产业互联网的蓬勃发展。”

云计算软件生态圈:摸到一把大牌

“我觉得我摸着了一把大牌。”

软件领域的新锐企业——有赞公司创始人兼CEO白鸦在转向SaaS领域的一个细分市场时,曾对天使投资人这样说。

而老牌软件企业金蝶创始人徐少春在2018年的一天, 这样说:“回想过去的25年,新技术、新趋势、新机会风起云涌,一颗纯粹的心灵能够敏锐地感知身边的变化,而一颗迷失的心灵会错失近在眼前的机会。”

在软件领域,无论是新秀还是老将,大家都把云计算当作了“一把大牌”,在IaaS(基础设施服务,Infrastructure-as-a-service)、PaaS(平台服务,Platform-as-a-service)、SaaS(软件服务,Software-as-a-service)上寄托了无数的热望。

物理空间价值衰减,软件服务价值递增

640?wx_fmt=jpeg

“WeWork,一场跨洋大骗局?”
2019年的10月初,有媒体以上面这句话作标题,对WeWork公司进行爆料。
谁是WeWork?它的主业是什么?

这家企业的运营模式是在市场上找到房产,长租下来,然后改造成共享办公空间,再出租给初创公司。有媒体称:“当时人们都觉得WeWork的出现改变了商业地产的玩法,颠覆了人们办公的习惯。”

这家企业与云计算,与SaaS有什么关系呢?别着急,我们慢慢道来。我们把时间线前移一下:

8月14日,该公司向美国证券交易委员会提交了一份长达350页的IPO招股书,打算筹集10亿美元。

9月18日,该公司创始人亚当·纽曼在内部会议上,承认此前的“将自家房产出租给自己创立的公司”等行为对WeWork上市产生了不良影响,他表示愧疚。数日后,纽曼辞去了CEO,并放弃了部分投票权。

9月30日,该公司黯然从美国证券交易委员会撤回了自己的上市申请。

10月22日,该公司最大的投资公司——软银提出,将付给纽曼约17亿美元遣散费,并开始接管WeWork。

10月24日,有消息传出,称该公司计划裁员4000人,大约占其全部员工总数的30%。

而在WeWork红火的日子里,该企业也称自己是家SaaS企业,不过它这个SaaS是指Space-as-a-Servic空间及服务(Space-as-a-Service)。

640?wx_fmt=jpeg

有媒体称:“看看市场给软件即服务(SaaS)公司的估值,WeWork看到都羡慕不已。微软坐稳全球第一市值,Adobe也突破千亿市值。”

英国《金融时报》援引知情人士报道称:WeWork正寻求关闭中国的办公空间,因入住率低,造成现金流失。该媒体援引的数据显示,WeWork的整体入住率从9月的79%降至10月的78.1%。

WeWork的境遇,折射出云计算方兴未艾背景下的物理空间价值的衰减,以及与之相对应的、软件服务价值的提升。这可以看作是云计算软件生态发展的大背景。

有资料显示:2018年,在中国市场,与云计算相关的运营服务收入同比增长21.4%,电子商务平台技术服务收入同比增长21.9%,这两项直接拉动软件和信息技术服务业增长4.9%,成为驱动软件业发展的双引擎。云计算促进了传统软件企业的转型,推动了开发、交付和盈利等新模式的建立,并带动了平台软件、APP软件的崛起。

国内的SaaS领域有许多新锐企业正在蓬勃兴起,本文开头提到的 有赞公司的创始人认为自己摸到的大牌是:电商商家需要一个基于微信流量的CRM系统。目前,有赞已成长为中国SaaS领域的一家新锐企业。

泛微网络公司从事协同管理和移动办公软件产品的研发、销售及相关技术服务,对各行业通用。而广联达是一家行业垂直软件公司,立足建筑行业, 成功地将老客户转化为SaaS用户。

SaaS新锐企业在成长,一些传统的软件老将也在转型。

640?wx_fmt=jpeg

用友早已开始了转型SaaS的努力,公司创始人王文京曾表示:一方面用友云是社会化商业应用的基础设施;另一方面用友云是企业服务产业的共享平台。

2016年8月,用友宣布了 “企业互联网服务”的战略,核心业务是软件、云服务、金融。2017年4月, “用友云”对外发布并开始上线运营, 包括了企业云服务平台、领域云、行业云、企业金融云和云市场等。

用友的老对手金蝶也动作频频, 2019 年5月11日,在深圳金蝶软件园, “首届金蝶云苍穹峰会” 召开。到会的嘉宾,心里几乎都在念叨:“老徐今年会砸点啥呢?”

老徐就是金蝶创始人徐少春,最近几年,他连续在公开场合砸了些东西,以此来表达其对传统商业模式进行革故鼎新的决心。

当天会场上,随着一声巨响,徐少春拿着一把“雷神锤”,极富戏剧性地“破茧而出”,他把象征着企业管理者自我设限的巨型“茧”砸碎了。

640?wx_fmt=jpeg

“金蝶就是要砸掉企业经营者的小我思想束缚,以开放的、生态的理念,帮助企业直达客户,充分实现数字化、产业平台化,让上下游企业链接,形成数字共生体。”徐少春认为,“未来十年是产业互联网的十年。产业互联网的本质不在互联网,而在传统产业;传统产业的本质不在企业内部,而在行业价值链;行业价值链的本质不在占有,而在链接。”

“我们需要大家挑战传统,质疑传统。我们需要大家做事情别想当然。” 福特汽车公司首席执行官马克·菲尔兹这样说过。

鼎故革新,全线总动员

“只要一个人还有所追求,他就没有老。直到后悔取代了梦想,他才算老。” 这是电影演员约翰•巴里穆尔说过的一句话。

这句话用来描述当年的“美图”高手Adobe的转型是再恰当也不过了。目前Adobe已转型成为SaaS领域的老大了。

640?wx_fmt=jpeg

2019年6月17日,《巴伦周刊》评选出2019年全球最佳30位CEO, Adobe CEO 的山塔努·纳拉恩名列其中。再看Adobe 2019财年第二季度财报,这家总部位于加州圣何塞的Adobe公司的收入增长25%,至27.4亿美元,折合人民币189亿元。
2019年3月26日,Adobe和微软宣布,两家公司准备展开一项合作,来提升双方的“销售和营销软件”的能力,进而向他们的共同的竞争对手Salesforce公司发起挑战。

IDC负责内容和数字媒体技术的项目副总裁梅丽莎·韦伯斯特点评此事:“毫无疑问,通过此次合作,微软和Adobe都将在对抗Salesforce方面获益良多。”

Salesforce无疑是SaaS领域的资深玩家,10多年前,Salesforce公司的创始人、首席执行官马克·比尼奥夫就提出了要把软件当成服务来销售,它在互联网上运行,用户不再需要单独定制软件、购买硬件,也不需要付出大笔安装与维护费用给软件厂商,只需按需交给服务商一些费用即可。对于Salesforce而言,其客户每月只需付50美元就可以使用它的客户关系管理系统。

“提供清楚、明确的讯息,告诉客户你的优势在哪里,你和对手的差异在哪里。”他曾笑着表示,“我确实不如对手强大,但只要抓住巨人的弱点打一百遍,巨人也会被你击倒。”

这对传统的软件营销模式产生了冲击。在Salesforce公司总部,墙上到处张贴着类似禁烟标志的圆圈加斜杠标志图案,不过上面的“No Smoking(不准吸烟)”变成了“No Software”——无需软件,就连比尼奥夫的衣服上也印有这个标志,公司电话号码则是1-800-NoSoftware。比尼奥夫称:“我们的目标不只是统治某个市场,而是创建一个全新的行业。我们不仅将拥有我们的小众市场,而且创建一个巨大的行业,并领导这个行业的发展。”

在Salesforce的示范下,一批SaaS企业成功崛起。

2006年11月, Workday软件公司成立,公司的产品定位于ERP在线软件服务,其商业模式类似于Salesforece, 其初期主要侧重于客户关系管理业务。随后,其业务范围进一步拓展,业绩蒸蒸日上,Workday市值曾达到270亿美元,在新世纪创立的软件企业中,业绩排名第二,第一是 ServiceNow。

那接着讲ServiceNow 。

2003年,ServiceNow成立,创始人为弗雷德·鲁迪,那一年,他48岁,也是员“老将”。

ServiceNow也是SaaS服务商,其立足点是ITSM(IT Service Management),这是帮助企业对IT系统的规划、研发、实施和运营进行管理的工具。该公司帮助客户建立起完整的IT服务管理流程,降低成本,提高IT的运营效率。该公司的绝大多数客户是分布在各行各业的大公司, 包括技术、金融服务、消费产品领域等。 这些大客户群为ServiceNow贡献一半以上的营业收入。

而另外一家SaaS服务商Atlassian 于 2002 年成立。成立伊始,公司创始人决定不走寻常路,不准备像其他 SaaS 公司那样,筹建营销团队,去直接敲用户的大门。 他们采取的模式是持续不断地收购外部产品,并将之集成到已有的产品套件中。这让该公司拥有了可以满足一家企业全方位需求的产品系列,原有产品的用户也就随之而来,并在此得以扩充自己的需求。2015 年12月,Atlassian 成功上市,市值达到了近 58 亿美元。 该公司将 40% 的利润投入研发,并作出年度保持30% 的增长规划。
通过Work day、ServiceNow、 Atlassin的发展历程,我们可以看到,虽然他们都采用SaaS模式,但他们的立足点和切入市场的角度,则各有不同:Workday立足于创始人所熟悉的、传统的ERP领域,只不过将之移到了线上;ServiceNow 立足点是ITSM,然后用SaaS进行升级;而Atlassian则是围绕用户需求,通过扩充产品线的方式来扩张。

“阻碍我们前进的并非拒绝或失败,而是我们应对它们的方式。”Vital Voices Global Partnership公司CEO及联合创始人阿里斯·尼尔森这样说过。

640?wx_fmt=jpeg

不过,殊途同归,Work day、ServiceNow后来也是以自己的强项为基础,向外扩张,以满足用户全方位的需求。

回过头来看Adobe的转型,他们也是将原有的不同类型的用户和项目(如设计师、摄影师、摄像师),成功地引导到云时代,满足其数字移动工作场景。

这对于今天仍沉浸在传统软件商业模式的企业来说,很有借鉴意义,既往的客户当然有价值,既往的经验和案例也不是包袱,关键是要将之转型、升级到SaaS模式上来。

早在2011年1月,Salesforce公司的创始人、首席执行官马克·比尼奥夫在接受《福布斯》采访时这样说:“微软已经在互联网上失败了。微软还在努力向我们推销它的软件加服务,或者是它的专利技术。现在,当我们转向iPhone和iPad的时候,当我们迎接新一代计算技术的时候,微软还想把我们控制在它的垄断统治之下。这就是为什么微软失败的原因。”

比尼奥夫说对了一半,那就是他看准了云计算的发展潮流,但他也错了一半,那就是他对微软的预言并不准确,时至今日,微软已转型成了云计算领域的一个重要的玩家了,它在IaaS 、PaaS领域都举足轻重。

老玩家,新玩家,大家一起玩

比尼奥夫曾称:“我们要快乐地消灭软件工业”,其兵锋直指微软。

在Salesforce发展初期,微软曾计划收购它,但未成行。分析人士认为,即使收购成功,它也很难融入微软的整体发展战略中,因为它与微软对软件的未来之路看法迥异。

2005年前后,比尔·盖茨将Salesforce列为微软的4个竞争对手之一。但实际上,对于微软来说,如其说是Salesforce给微软带来威胁,不如说其开创的新模式给微软带来了挑战。微软虽然有心尝试这种新模式,但又担心其冲击自己既有的、还在赚钱的商业模式。真是“想吃核桃肉,又怕崩了牙”。

2006年9月,Salesforce高管吉姆·斯提尔表示:“微软目前只能靠并购来实现业务增长。很明显,这些采用20世纪软件销售模式的公司迟早将灭亡。”

斯提尔称:“微软的整个业务模式就是销售软件光盘,然后一年后再‘威胁’用户升级。而Salesforce的模式正好相反,一旦拥有了我们的服务,你就可以定期更新。我们不会想当然地对待用户。”

640?wx_fmt=jpeg

2009年12月,Salesforce在美国旧金山本部举办了规模达1.8万人的用户大会。比尼奥夫到会发布了一款具有社交网络功能的云计算产品Chatter,他对该产品予以很高的评价,并强调云计算是未来的大趋势,传统软件离被终结的日子不远了。

传统老牌软件企业微软经过一段摸索,终于在云计算领域赶了上来。

微软高管Takeshi Numoto曾表示:“2013年4月Windows Azure的IaaS正式商用,让我们的公有云平台更加完整。基础设施与平台服务,Windows与Linux,Oracle与SQL ,都在我们的云平台上实现了和谐共处。无论客户选择何种平台或工具,都能在Azure上得到更棒的运行速度、更灵活的规模扩展,以及更显著的经济效益。我们很高兴看到继PaaS之后,Azure的IaaS服务也获得‘领导者’地位,这个评价是对Azure的肯定,更是我们前进的动力。”

2019年二季度,微软智能云业务营收同比增长19%,超过114亿美元,已是微软最大的收入来源。Azure的成绩煞是骄人,同比增长64%。

2019年5月,微软宣布会发布一款Azure结构化查询语言数据库工具,它能在“无服务器”的环境中运算。这意味着开发人员不再需要建立和管理自己数据库。另外亚马逊和谷歌也推出过类似的技术。

说到了亚马逊和谷歌,它们也是云计算领域的大玩家,当然还有一个,那就是阿里巴巴。

有媒体报道,亚马逊AWS业务,在2009年三季度的营收增长35%,达到了90亿美元。虽然该业务在亚马逊的总营收中,占比相对较小,只占13%。但它是亚马逊的主要利润来源。

2019年2月14日谷歌宣布,该年它将向全美的数据中心和办公室投入130亿美元 。谷歌正努力争取更多的云客户 。谷歌首席执行官桑达尔•皮查伊在其博客中写道:“这些新投资将使我们有能力雇佣数万名员工。”

2019年7月25日,上海,在阿里云峰会上,阿里巴巴CTO兼阿里云智能事业群总裁张建锋表示,社会正在发生翻天覆地的变化,这涉及到几个关键技术:第一个是云的技术,第二个是大数据智能化的技术,第三个是智联网的技术,第四个是移动化的技术。

根据Gartner发布的2018年全球云计算市场报告,可以看到这些数据:亚马逊排名第一,其市场份额为47.85;微软排名第二,市场份额为15.5%;阿里巴巴排名第三,市场份额为7.7%;谷歌排名第四,市场份额为4.0%。

展望未来,有机构预计2020年全球云计算市场空间,会增至1435亿美元,年复合增长率超过20%。

歌手鲍勃·迪伦在《时代在转变》一诗中写到:“动笔预言世事的作家与评论家们,张大你们的双眼,机会不会再来第二遍,轮盘还在旋转,先别言之过先,看不出来谁会被选,因为目前的输家未来会领先,因为时代正在改变。”

HDFS数据写入流程?

Client(客户端) 发起文件写入请求,通过 RPC 与 NameNode(管理者) 建立通讯,NameNode检查目标文件,返回是否可以上传;
Client 请求第一个 block 该传输到哪些 DataNode(工作者) 服务器上;
NameNode 根据副本数量和副本放置策略进行节点分配,返回DataNode节点,如:A,B,C
Client 请求A节点建立pipeline管道,A收到请求会继续调用B,然后B调用C,将整个pipeline管道建立完成,后逐级返回消息到Client;
Client收到A返回的消息之后开始往A上传第一个block块,block块被切分成64K的packet包不断的在pepiline管道里传递,从A到B,B到C进行复制存储
当一个 block块 传输完成之后,Client 再次请求 NameNode 上传第二个block块的存储节点,不断往复存储
+当所有block块传输完成之后,Client调用FSDataOutputSteam的close方法关闭输出流,最后调用FileSystem的complete方法告知NameNode数据写入成功

什么是大数据

什么是大数据:

大数据特点:
主要特点
海量化(Volume)
数据量从TB到PB级别

多样化(Variety)
数据类型复杂,超过80%的数据是非结构化的

快速化(Velocity)
数据量在持续增加(两位数的年增长率)
数据的处理速度要求高

高价值(Value)
在海量多样数据的快速分析下能够发挥出更高的数据价值

大数据能做什么
海量数据背景下
快速查询 - 全量查询
数据存储 - 量大,文件大
快速计算 - 对比传统方案
实时计算 - 最新数据
数据挖掘 - 新价值
大数据就业岗位
1、ETL工程师
2、数据仓库工程师
3、大数据开发工程师
4、Hadoop工程师
5、Spark/Flink工程师
6、大数据分析师
7、大数据算法工程师
8、大数据运维工程师
9、大数据解决方案

Linux实用指令

Linux 实用指令

1.帮助指令
man ls
help cd
cd --help

2.pwd ls cd
pwd 显示当前目录的绝对路径
ls 显示查看当前目录的所有内容信息
ls -a
ls - l
cd 切换到指定目录
【绝对路径:从根目录开始定位】
【相对路径:从当前工作目录开始定位到需要的目录】
cd /root 使用绝对路径回到root
cd… 回到当前目录的上一级目录
cd 或者cd~ 回到家目录

3.mkdir rmdir
mkdir /home/dog 创建一个目录
mkdir -p /home/animal/tiger 创建多级目录
rmdir指令删除空目录
rmdir /home/dog
rm -rf /home/animal 删除非空目录

4.touch cp
touch hello.txt
touch a.txt b.txt 创建多个文件
cp拷贝文件到指定目录
cp aaa.txt bbb/ 拷贝aaa.txt到bbb目录下
cp -r test/ ghs/ 递归复制整个文件夹。把test整个文件夹复制到ghs文件夹下
\cp 强制覆盖已经存在的文件夹

5.rm mv
rm aaa.txt
rm -rf bbb/ 删除整个文件夹
mv aaa.txt bbb.txt 当前目录下重命名
mv aaa.txt /root/ 移动文件到root下面

6.cat more less
cat -n /etc/profile |more 显示行号,并且分页
more /etc/profile 分页展示
less aaa.txt 分页展示

7.重定向> 追加>>
ls -l > a.txt 把指令显示的内容写到a.txt中
ls -l >>a.txt 将指令显示的内容追加到a.txt中
cat 文件1 > 文件2 将文件1中的内容写入到文件2中 覆盖
echo “helloword” >> a.txt 写helloword追加到a.txt 中

8.echo head tail
echo $JAVA_HOME 输出内容到控制台
head 文件 查看文件头10行内容
head -n 5 文件 查看文件前5行内容
tail 文件 查看文件后10行内容
tail -n 5 文件 查看文件后5行内容
tail -f 文件 实时追踪该文档的所有更新,工作经常使用*****

9.ln history
ln指令 软连接也叫符号链接,类似于Windows里的快捷方式,主要存放了
链接其他文件的路径
ln -s /root linktoroot 在home目录下创建一个软连接,指向/root目录
rm -rf linktoroot 删除软链接
history 所有执行过的历史指令
history 10 最近执行的十个指令
!120 执行历史标号为120的指令

10.date cal 时间日期类指令
date 显示当前时间
date +%Y 显示当前年份
date “+%Y-%m-%d %H-%M-%S”
date -s “2019-11-09 21:22:45” 设置系统时间
cal 当前月日历
cal 2020 显示2020年日历

11.find grep 管道符 搜索查找类
find /home -name hello.txt 按名字查找home目录下的hello.txt文件
find /opt/ -user root 查找opt目录下,用户名称为root的文件
find / -size +20M 查找整个Linux下大于20M的文件
grep过滤查找,官道符|,表示将前一个命令的处理结果输出传递给后面的命令处理
cat hello.txt | grep -ni yes 在文件中,查出yes显示行号不区分大小写展示出来

12.压缩和解压缩类指令
gzip hello.txt 将hello.txt进行压缩 不会保留原来的文件
gunzip hello.txt.gz 解压文件
zip -r mypackage.zip /home/ 将home下的所有文件进行压缩成mypackage.zip
unzip -d /opt/temp/ mypackage.zip 将mypackage.zip解压到指定目录下
tar -zcvf a.tar.gz a1.txt a2.txt 将a1.txt 和a2.txt 压缩成a.tar.gz
tar -zcvf myhome.tar.gz /home/ 将文件夹进行整体打包
tar -zxvf a.tar.gz 解压到当前目录
tar -zxvf myhome.tar.gz -C /opt/ 解压到指定目录(此目录已存在)

Hadoop中新增节点

随着公司业务的增长,数据量越来越大,原有的数据节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。
准备工作:

1.配置JDK
2.配置SSH免密钥
3.关闭防火墙
4.关闭selinux
5.修改主机名
6.修改hosts
注释:新增节点叫node04,namenode是node01
准备新节点
第一步:复制一台新的虚拟机出来
将我们纯净的虚拟机复制一台出来,作为我们新的节点
第二步:修改mac地址以及IP地址
修改mac地址命令
vim /etc/udev/rules.d/70-persistent-net.rules
修改ip地址命令
vim /etc/sysconfig/network-scripts/ifcfg-eth0
第三步:关闭防火墙,关闭selinux
关闭防火墙
service iptables stop
关闭selinux
vim /etc/selinux/config

第四步:更改主机名
更改主机名命令
vim /etc/sysconfig/network
第五步:四台机器更改主机名与IP地址映射
四台机器都要添加hosts文件
vim /etc/hosts

192.168.52.100 node01.Hadoop.com node01
192.168.52.110 node02.Hadoop.com node02
192.168.52.120 node03.Hadoop.com node03
192.168.52.130 node04.Hadoop.com node04

第六步:node04服务器关机重启并生成公钥与私钥
node04执行以下命令关机重启
reboot

node04执行以下命令生成公钥与私钥
ssh-keygen -t rsa

node04执行以下命令将node04的私钥拷贝到node01服务器
ssh-copy-id node01
node01执行以下命令,将authorized_keys拷贝给node04
cd /root/.ssh/
scp authorized_keys node04:$PWD

第七步:node04安装jdk
node04统一两个路径
mkdir -p /export/softwares/
mkdir -p /export/servers/
然后解压jdk安装包,配置环境变量,或将集群中的java安装目录拷贝一份,并配置环境变量。
第八步:解压Hadoop安装包
在node04服务器上面解压Hadoop安装包到/export/servers
node01执行以下命令将Hadoop安装包拷贝到node04服务器
cd /export/softwares/
scp hadoop-2.6.0-cdh5.14.0-自己编译后的版本.tar.gz node04:$PWD

第九步:将node01关于Hadoop的配置文件全部拷贝到node04
node01执行以下命令,将Hadoop的配置文件全部拷贝到node04服务器上面
cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop/
scp ./* node04:$PWD
服役新节点具体步骤:

在node01也就是namenode所在的机器的/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop目录下创建dfs.hosts文件
第一步:创建dfs.hosts文件(白名单 包含新服役的节点和新增节点)
[root@node01 Hadoop]# cd /export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop
[root@node01 Hadoop]# touch dfs.hosts
[root@node01 Hadoop]# vim dfs.hosts
添加如下主机名称()
node01
node02
node03
node04
在这里插入图片描述

第二步:node01编辑hdfs-site.xml添加以下配置(让白名单生效)
在namenode的hdfs-site.xml配置文件中增加dfs.hosts属性
node01执行以下命令
cd /export/servers/Hadoop-2.6.0-cdh5.14.0/etc/Hadoop
vim hdfs-site.xml
在这里插入图片描述

第三步:刷新namenode
node01执行以下命令刷新namenode
[root@node01 Hadoop]# hdfs dfsadmin -refreshNodes
Refresh nodes successful
第四步:更新resourceManager节点
node01执行以下命令刷新resourceManager
[root@node01 Hadoop]# yarn rmadmin -refreshNodes
19/03/16 11:19:47 INFO client.RMProxy: Connecting to ResourceManager at node01/192.168.52.100:8033
第五步:namenode的slaves文件增加新服务节点主机名称
node01编辑slaves文件,并添加新增节点的主机,更改完后,slaves文件不需要分发到其他机器上面去
node01执行以下命令编辑slaves文件
cd /export/servers/Hadoop-2.6.0-cdh5.14.0/etc/Hadoop
vim slaves

node01
node02
node03
node04

第六步:单独启动新增节点

node04服务器执行以下命令,启动datanode和nodemanager
cd /export/servers/hadoop-2.6.0-cdh5.14.0/
sbin/hadoop-daemon.sh start datanode
sbin/yarn-daemon.sh start nodemanager

第七步:浏览器查看(一直刷新浏览器观察)
http://node01:50070/dfshealth.html#tab-overview

http://node01:8088/cluster

第八步:使用负载均衡命令,让数据均匀负载所有机器

node01执行以下命令
cd /export/servers/hadoop-2.6.0-cdh5.14.0/
sbin/start-balancer.sh

大数据概述(二)

传统数据处理介绍

目标: 了解大数据到来之前,传统数据的通用处理模式

数据来源:

1、企业内部管理系统 ,如员工考勤(打卡)记录。

2、客户管理系统(CRM)

数据特征:

在这里插入图片描述

数据处理方式:

1、数据保存在数据库中。处理时以处理器为中心,应用程序到数据库中检索数据再进行计算(移
动数据到程序端)

遇到的问题:

1、数据量越来越大、数据处理的速度越来越慢。

2、数据种类越来越多,出现很多数据库无法存储的数据,如音频、照片、视频等。
123
什么是大数据?(Big Data)

目标:掌握什么是大数据、传统数据与大数据的对比有哪些区别、大数据的特点

是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

是指一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。

数据的存储单位

最小的基本单位是bit

1 Byte =8 bit

1 KB = 1,024 Bytes = 8192 bit

KB ---->MB ----> GB ----> TB ----->PB ----> EB ----> ZB ----> YB ----> BB ---->NB ----> DB 进率1024
传统数据与大数据的对比
————————————
在这里插入图片描述
大数据的特点

数据集主要特点

Volume(大量): 数据量巨大,从TB到PB级别。

Velocity(高速): 数据量在持续增加(两位数的年增长率)。

Variety(多样): 数据类型复杂,超过80%的数据是非结构化的。

Value(低密度高价值): 低成本创造高价值。

传统数据与大数据处理服务器系统安装对比

在传统数据背景下,服务器系统安装中,系统硬盘、数据硬盘完全隔离。通常会将多块数据硬盘制作成LVM(逻辑卷),即将多块物理硬盘通过软件技术“拼接”在一起形成一个大的硬盘(逻辑上是一个硬盘)。
在这里插入图片描述
大数据下服务器系统安装

在大数据背景下,服务器系统安装中,系统硬盘、数据硬盘完全隔离。数据硬盘必须独立挂载,每个硬盘挂载到系统的一个独立的目录下。
在这里插入图片描述
大数据生态系统

目标:了解大数据生态系统,大数据技术列举

大数据:历史数据量逐渐攀升、新型数据类型逐渐增多。是企业必然会遇到的问题

新技术:传统方式与技术无法处理大量、种类繁多的数据,需要新的技术解决新的问题。

技术人员:有了问题,有了解决问题的技术,需要大量懂技术的人解决问题。

最佳实践:解决 问题的方法,途径有很多,寻找最好的解决方法。

商业模式:有了最好的解决办法,同行业可以复用,不同行业可以借鉴,便形成了商业模式。
在这里插入图片描述
新技术

HADOOP
在这里插入图片描述
Hive:海量数据仓库。
在这里插入图片描述
Impala:是一个能查询存储在Hadoop的HDFS和HBase中的PB级数据的交互式查询引擎。

Kudu:是一个既能够支持高吞吐批处理,又能够满足低延时随机读取的综合组件
在这里插入图片描述
Kafka:消息总线。

Oozie:工作流协调。

Azkaban: 工作流协调。

Zeppelin: 数据可视化。

Hue: 数据可视化。

Flink:实时计算引擎。

Kylin: 分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析。

Elasticsearch: 是一个分布式多用户能力的全文搜索引擎。

Logstash: 一个开源数据搜集引擎。

Kibana: 一个开源的分析和可视化平台。

SPARK

SparkCore:Spark 核心组件

SparkSQL:高效数仓SQL引擎

Spark Streaming: 实时计算引擎

Structured: 实时计算引擎2.0

Spark MLlib:机器学习引擎

Spark GraphX:图计算引擎
在这里插入图片描述
大数据技术为什么快?

目标:掌握传统数据与大数据相比在扩展性的区别、存储方式上的区别、可用性上
的区别、计算模型上的区别。

传统数据与大数据处理方式对比
在这里插入图片描述
纵向扩展: 表示在需要处理更多负载时通过提高单个系统处理能力的方法来解决问题。 最简单的情况就是 为应用系统提供更为强大的硬件。
例如如果数据库所在的服务器实例只有2G内存、低配CPU、小容量硬盘,
进而导致了数据库不能高效地运行,那么我们就可以通过将该服务器的内存扩展至8G、 更换大容量硬盘或者更换高性能服务器来解决这个问题
横向扩展 是将服务分割为众多的子服务并在负载平衡等技术的帮助下在应用中添加新的服务实例
例如如果数据库所在的服务器实例只有一台服务器,进而导致了数据库不能高效地运行,
那么 我们就可以通过增加服务器数量,将其构成一个集群来解决这个问题。
资源集中(计算与存储)
集中式计算:数据计算几乎完全依赖于一台中、大型的中心计算机的处理能力。和它相连的终端(用户设备)具有各不相同的智能程度。实际上大多数终端完全不具有处理能力,仅仅作为一台输入输出设备使用。
集中式存储:指建立一个庞大的数据库,把各种信息存入其中,各种功能模块围绕信息库的周围并对信息库进行录入、修改、查询、删除等操作的组织方式。
分布式(计算与存储)
分布式计算:是一种计算方法,是将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。
分布式存储:是一种数据存储技术,通过网络使用企业中的每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在企业的各个角落,多台服务器。
大数据技术快的原因
1、分布式存储
2、分布式并行计算
3、移动程序到数据端
4、更前卫、更先进的实现思路
5、更细分的业务场景
6、更先进的硬件技术+更先进的软件技术

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

今天跟着我来学学数据仓库的基础知识,希望你结合案例可以把它吃透。

商业智能时代,无论是程序员,数据分析师,架构师也好,这篇一定要懂,这样才能更好的赋能自己的工作。
一、数据仓库建模的意义

如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措。

数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。Linux的创始人Torvalds有一段关于“什么才是优秀程序员”的话:“烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系”,最能够说明数据模型的重要性。

只有数据模型将数据有序的组织和存储起来之后,大数据才能得到高性能、低成本、高效率、高质量的使用。

性能:帮助我们快速查询所需要的数据,减少数据的I/O吞吐,提高使用数据的效率,如宽表。

成本:极大地减少不必要的数据冗余,也能实现计算结果复用,极大地降低存储和计算成本。

效率:在业务或系统发生变化时,可以保持稳定或很容易扩展,提高数据稳定性和连续性。

质量:良好的数据模型能改善数据统计口径的不一致性,减少数据计算错误的可能性。

数据模型能够促进业务与技术进行有效沟通,形成对主要业务定义和术语的统一认识,具有跨部门、中性的特征,可以表达和涵盖所有的业务。

大数据系统需要数据模型方法来帮助更好地组织和存储数据,以便在性能、成本、效率和质量之间取得最佳平衡!

下图是个示例,通过统一数据模型,屏蔽数据源变化对业务的影响,保证业务的稳定,表述了数据仓库模型的一种价值:

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

二、数据仓库分层的设计

为了实现以上的目的,数据仓库一般要进行分层的设计,其能带来五大好处:

清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。

数据血缘追踪:能够快速准确地定位到问题,并清楚它的危害范围。

减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。

把复杂问题简单化:将复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。当数据出现问题之后,不用修复所有的数据,只需要从有问题的步骤开始修复。

屏蔽原始数据的异常:不必改一次业务就需要重新接入数据。

以下是我们的一种分层设计方法,数据缓冲区(ODS)的数据结构与源系统完全一致。基础数据模型(DWD)和融合数据模型(DWI与DWA)是大数据平台重点建设的数据模型。应用层模型由各应用按需自行建设,其中基础数据模型一般采用ER模型,融合数据模型采用维度建模思路。

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

三、两种经典的数据仓库建模方法

前面的分层设计中你会发现有两种设计方法,关系建模和维度建模,下面分别简单介绍其特点和适用场景。

1、维度建模

(1)定义

维度模型是数据仓库领域另一位大师Ralph Kimball 所倡导的。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能,更直接面向业务。典型的代表是我们比较熟知的星形模型。

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

维度退化

星型模型由一个事实表和一组维表组成。每个维表都有一个维作为主键,所有这些维的主键组合成事实表的主键。强调的是对维度进行预处理,将多个维度集合到一个事实表,形成一个宽表。

这也是我们在使用hive时,经常会看到一些大宽表的原因,大宽表一般都是事实表,包含了维度关联的主键和一些度量信息,而维度表则是事实表里面维度的具体信息,使用时候一般通过join来组合数据,相对来说对OLAP的分析比较方便。

(2)建模方法

通常需要选择某个业务过程,然后围绕该过程建立模型,其一般采用自底向上的方法,从明确关键业务过程开始,再到明确粒度,再到明确维度,最后明确事实,非常简单易懂。

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

以下是阿里的OneData的建模工作流,可以参考。

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

(3)优缺点

优点:技术要求不高,快速上手,敏捷迭代,快速交付;更快速完成分析需求,较好的大规模复杂查询的响应性能

缺点:维度表的冗余会较多,视野狭窄

2、关系建模

(1)定义

是数据仓库之父Inmon推崇的、从全企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系抽象。

它更多是面向数据的整合和一致性治理,正如Inmon所希望达到的“single version of the truth”。

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起,故称雪花模型。

雪花模型是对星型模型的扩展。它对星型模型的维表进一步层次化,原有的各维表可能被扩展为小的事实表,形成一些局部的 "层次 " 区域,这些被分解的表都连接到主维度表而不是事实表。

雪花模型更加符合数据库范式,减少数据冗余,但是在分析数据的时候,操作比较复杂,需要join的表比较多所以其性能并不一定比星型模型高。

(2)建模方法

关系建模常常需要全局考虑,要对上游业务系统的进行信息调研,以做到对其业务和数据的基本了解,要做到主题划分,让模型有清晰合理的实体关系体系,以下是方法的示意:

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

以下是中国移动的概念模型的一种示例,如果没有自顶向下的视野,基本是总结不出来的:

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

(3)优缺点

优点:规范性较好,冗余小,数据集成和数据一致性方面得到重视,比如运营商可以参考国际电信运营业务流程规范(ETOM),有所谓的最佳实践。

缺点:需要全面了解企业业务、数据和关系;实施周期非常长,成本昂贵;对建模人员的能力要求也非常高,容易烂尾。

3、建模方法比较

一般来讲,维度模型简单直观,适合业务模式快速变化的行业,关系模型实现复杂,适合业务模式比较成熟的行业,阿里原来用关系建模,现在基本都是维度建模的方式了。

运营商以前都是关系建模,现在其实边界越来越模糊,很多大数据业务变化很快,采用维度建模也比较方便,不需要顶层设计。

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

四、企业建模的三点经验

维度建模就不说了,只要能理解业务过程和其中涉及的相关数据、维度就可以,但自顶向下的关系建模难度很大,以下是关系建模的三个建设要点。

1、业务的理解:找到企业内最理解业务和源系统的人,梳理出现状,比如运营商就要深刻理解三域(O/B/M),概念建模的挑战就很大,现在做到B域的概念建模已经很不容易。

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

2、数据及关系的理解:各个域的系统建设的时候没有统一文档和规范,要梳理出逻辑模型不容易,比如运营商的事件主题下的逻辑模型就非常复杂。

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

3、标准化的推进:数据仓库建模的任何实体都需要标准化命名,否则未来的管理成本巨大,也是后续数据有效治理的基础,以下是我们的一个命名规范示例:

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

五、推荐三本书

这种思路讲解数据仓库建模,你见过吗?数据人与架构师必看

总而言之,你可以把我的文章当成一个指引,具体还是要结合企业的实际去推进,但做事的时候要不忘建模的初心:即数据如何摆布才能提高支撑应用的效率,手段上不用区分什么先进不先进,好用就成。

人工智能技术已进入第三代

近日,中科院院士、清华大学人工智能研究院院长张钹教授接受记者采访时认为,目前基于深度学习的人工智能在技术上已经触及天花板。从长远来看,必须得走人类智能这条路,最终要发展人机协同,人类和机器和谐共处的世界。未来需要建立可解释、鲁棒性的人工智能理论和方法,发展安全、可靠和可信的人工智能技术。

张钹院士:AI奇迹短期难再现 深度学习技术潜力已近天花板

在Alphago与韩国围棋选手李世石对战获胜三年过后,一些迹象逐渐显现,张钹院士认为到了一个合适的时点,并接受了此次的专访。

深度学习目前人工智能最受关注的领域,但并不是人工智能研究的全部。张钹认为尽管产业层面还有空间,但目前基于深度学习的人工智能在技术上已经触及天花板,此前由这一技术路线带来的“奇迹”在Alphago获胜后未再出现,而且估计未来也很难继续大量出现。技术改良很难彻底解决目前阶段人工智能的根本性缺陷,而这些缺陷决定了其应用的空间被局限在特定的领域——大部分都集中在图像识别、语音识别两方面。

同时,在张钹看来,目前全世界的企业界和部分学界对于深度学习技术的判断过于乐观,人工智能迫切需要推动到新的阶段,而这注定将会是一个漫长的过程,有赖于与数学、脑科学等结合实现底层理论的突破。

作为中国少有的经历了两个人工智能技术阶段的研究者,张钹在过去数年鲜少接受采访,其中一个原因在于他对目前人工智能技术发展现状的估计持有部分不同看法,在时机未到之时,张钹谨慎的认为这些看法并不方便通过大众媒体进行传播,即使传播也很难获得认同。

一、“奇迹并没有发生,按照我的估计,也不会继续大量发生”

经济观察报:您是如何估计和评价目前人工智能发展的现状?

张钹:这一轮人工智能热潮是本世纪初兴起的。首先是出现在学术界。学术界过去对人工智能是冷遇的,但是多层神经网络的出现带来了一些改变,神经网络的理论在上世纪50年代就有了,但是一直处于浅层的应用状态,人们没有想到多层会带来什么新的变化。

真正引起大家注意的就是2012年斯坦福的实验(注:2012年谷歌和斯坦福利用多层神经网络和大量数据进行图像识别的实验),过去实验的图像样本数最多是“万”这个级别,斯坦福用了1000万,用多层神经网络来做,结果发现在人脸、人体、猫脸三个图像类别中,这个模型的识别率大概有7%-10%的提高。

这给大家非常大的震动,因为通常识别率要提高1%要做好多努力,现在只是把层数增加了,竟然发生两大变化,一个是识别率提高这么多;第二个是能处理这么大数据。这两个变化给大家非常大的鼓舞,何况在2012年之前,人工智能没有解决过实际问题。

经济观察报:这种突破的原因是什么?

张钹:现在分析下来是三个原因,大家也都非常清楚了,一个大数据、一个是计算能力、一个是算法。认识到之后,一夜之间业内业外对深度学习都非常震动,然后就发生了三件历史性的事件。

第一件事是2015年12月,微软通过152层的深度网络,将图像识别错误率降至3.57%,低于人类的误识率5.1%;第二件事,2016年微软做的语音识别,其词错率5.9%,和专业速记员水平一样;第三件事:Alphago打败韩国围棋选手李世石。

通过人工智能,利用深度学习、大数据这两个工具,在一定条件下、一定领域内竟然能够超过人类,这三件事情给大家极大的鼓舞。

特别是对于业外的人,都认为我只要掌握了大数据,利用深度学习说不定还能搞出奇迹来,于是大家做了很多很多预测,比如在多短时间内计算机会在什么事情上能超过人。

但实际上,在这个之后,奇迹并没有发生,按照我的估计,今后也不会大量发生。准确一点说,今后或许会在个别领域取得进展,但是不会像之前预计的那样全面开花。特别是中国市场乐观的认为“中国市场大、数据多,运用又不受限制,所以将来奇迹一定会发生在中国”。

结果很多企业在做的时候发现,不是那么回事。从目前的情况来看效果最好的事情还是这两件:图像识别、语音识别。我看了一下,中国人工智能领域20个独角兽30个准独角兽企业,近80%都跟图像识别或者语音识别有关系。

经济观察报:为什么会出现这样的情况?或者说在这么长时间后,我们对人工智能目前能做什么有一个清晰的认识了吗?

张钹:人工智能在围棋上战胜人类后产生了这种恐慌,“大师才能做的事,人工智能居然能做,我的工作这么平凡,肯定会被机器所替代”。这里需要考虑一下它的局限性,我一直在各种各样的会上谈到不要过于乐观。

人工智能能做的那三件事(语音识别、图像识别、围棋)是因为它满足了五个条件,就是说只要满足了这五个条件,计算机就能做好,只要有任何一个或者多个条件不满足,计算机做起来就困难了。

第一个是必须具备充足的数据,充足不仅仅是说数量大,还要多样性,不能残缺等。

第二个是确定性。

第三个是最重要的,需要完全的信息,围棋就是完全信息博弈,牌类是不完全信息博弈,围棋虽然复杂,但本质上只需要计算速度快,不要靠什么智能,可是在日常生活中,我们所有的决策都是在不完全信息下做的。

第四个是静态,包括按确定性的规律演化,就是可预测性问题,在复杂路况下的自动驾驶就不满足这一条;实际上它既不满足确定性,也不满足完全信息。

第五个就是特定领域,如果领域太宽他做不了。单任务,即下棋的人工智能软件就是下棋,做不了别的。

经济观察报:就是说在满足这五个条件的前提下,目前的人工智能是胜任部分工作的?

张钹:如果你的工作符合这五个条件,绝对会被计算机替代,符合这五个条件的工作特点很明显,就是四个字“照章办事”,不需要灵活性,比如出纳员、收银员。如果你的工作富有灵活性和创造性,计算机绝对不可能完全代替,当然部分代替是可能的,因为其中肯定也有一些简单和重复性的内容。如果认识到这一条就会认识到人工智能仍处于发展阶段的初期。不是像有些人估计的那样“人工智能技术已经完全成熟,而进入发展应用的阶段”。

二、“深度学习技术,从应用角度已经接近天花板了”
经济观察报:我们应该怎么去定义目前的深度学习技术路线,它是基于概率学的一个事物吗?
张钹:现在的深度学习本质是基于概率统计,什么叫做概率统计?没有那么玄,深度学习是寻找那些重复出现的模式,因此重复多了就被认为是规律(真理),因此谎言重复一千遍就被认为真理,所以为什么大数据有时会做出非常荒唐的结果,因为不管对不对,只要重复多了它就会按照这个规律走,就是谁说多了就是谁。
我常常讲我们现在还没有进入人工智能的核心问题,其实人工智能的核心是知识表示、不确定性推理这些,因为人类智慧的源泉在哪?在知识、经验、推理能力,这是人类理性的根本。现在形成的人工智能系统都非常脆弱容易受攻击或者欺骗,需要大量的数据,而且不可解释,存在非常严重的缺陷,这个缺陷是本质的,由其方法本身引起的。
经济观察报:就是说通过改良的方式无法彻底解决?比如我们再增加神经网络层数和复杂性或者再提升数据的量级,会解决它的缺陷吗?
张钹:改良是不行的,深度学习的本质就是利用没有加工处理过的数据用概率学习的“黑箱”处理方法来寻找它的规律,这个方法本身通常无法找到“有意义”的规律,它只能找到重复出现的模式,也就是说,你光靠数据,是无法达到真正的智能。
此外,深度学习只是目前人工智能技术的一部分,人工智能还有更大更宽的领域需要去研究,知识表示、不确定性处理、人机交互,等等一大片地方,不能说深度学习就是人工智能,深度学习只是人工智能的一部分。一直到去年人工智能大会交流的论文还是三分之一是机器学习方面,三分之二是其他方面。
经济观察报:学界在这上面还是有一个比较清晰的认识?
张钹:我可以这么说,全世界的学界大多数有清晰的认识;全世界的企业界大多持过于乐观的估计。
为什么出现这样的情况呢?因为从事过早期人工智能研究的人,大多已经故去或者年老,已经没有话语权。现在活跃在人工智能研究第一线的都是深度学习、大数据兴起以后加入的,他们对人工智能的了解不够全面。
经济观察报:如果说每一个技术路线都有一个“技术潜力”,那么在深度学习方面,我们已经把这个潜力用了多少?
张钹:科学研究是很难精确估计的,但是深度学习如果从应用角度,不去改变它,我觉得已经接近天花板了,就是说你要想再出现奇迹的可能性比较小了。
经济观察报:那基于此,目前商业公司在底层技术和产业应用上还是有很大的空间吗?
张钹:只要选好合适的应用场景,利用成熟的人工智能技术去做应用,还有较大的空间。目前在学术界围绕克服深度学习存在的问题,正展开深入的研究工作,希望企业界,特别是中小企业要密切注视研究工作的进展,及时地将新技术应用到自己的产品中。当然像谷歌、BAT这样规模的企业,他们都会去从事相关的研究工作,他们会把研究、开发与应用结合起来。
经济观察报:有一种观点认为我们强调的“白盒”(可理解性)它实际上是从人的思维来强调的,但是通过大数据、概率统计工具离散到连续的投射,它实际上是机器的思维,你不一定需要它给你一个解释,只要正确的答案就可以了?
张钹:目前有两种意见,一种观点认为智能化的道路是多条的,不是只有一条路能通向智能,我们通过自然进化产生了自然智能,那么我们为什么不能通过机器产生机器智能?这个智能和自然智能不会是完全一样的,条条大路通罗马,我们通过自然进化获得的智能也不见得是最佳的。这个观点我赞成,机器智能与人类不相同,其实是有好处的,恰恰可以互补,发挥各自的长处。
是从长远来看,必须得走人类智能这条路,为什么?因为我们最终是要发展人机协同,人类和机器和谐共处的世界。我们不是说将来什么事情都让机器去管去做,人类在一边享受。我们要走人机共生这条路,这样机器的智能就必须和人类一样,不然没法共处,机器做出来的事情,我们不能理解,我们的意图机器也不知道,二者怎么能合作?
经济观察报:就是必须具有可解释性?
张钹:是,就是可解释性,你要它做决策,你不理解它,飞机就让它开,谁敢坐这架飞机?所以目前的阶段,车和飞机还是不能完全让机器开的。为什么司机坐在上面我们放心?因为我们和他同命运,要撞死一块撞死,机器和你可不是同一命运,它撞不死,你撞死了。
有的人非常脱离实际的去想这个问题,这是不对头的,人类怎么会去那样发展机器呢(注:指把人类的命运全部交给机器)?人类不会去那么发展的,有些人在那边担忧什么机器人统治人类,我说这最多只能算远虑。
经济观察报:所以图灵的论文中也说这种观点“不值一驳”。
张钹:是,那是远虑,我们目前还有很多近忧,发展人工智能必须要考虑安全问题,这已是现实问题。
你看语音合成,利用现有的技术可以做到以假乱真,和真人基本没有差别。现在看来这种技术不能推广应用,因为一旦推广就全乱套了,只要搞一段用语音合成技术做成的假录音,就可以让任何一位名人身败名裂。这些都是非常危险的技术。人工智能的治理已经提到日程上了。

三、“我们培养不出爱因斯坦、培养不出图灵”

经济观察报:一种观点认为中国有更多的数据和更多的工程师,这种规模能倒推带来基础研究层面的突破或者决定技术的路线?

张钹:这里混淆了好多概念,科学、技术、工程。科技水平需要三个标准来衡量,一个是科研水平、一个是技术水平、一个是工程实践能力,或者产业化能力。

我们中国什么情况?从工程角度来看,在一些领域我们“接近世界水平”;技术水平我用的词是“较大差距”,因为不少东西还是外国会做我们不会做;科研究领域我用的词是“很大差距”,科学研究就是原创,实际上,所有人工智能领域的原创成果都是美国人做出来的,人工智能领域图灵奖得主共十一人,十个美国人,一个加拿大人。

经济观察报:数据显示中国在人工智能领域的论文发表量和被引用次数都已经进入前列位置,这是否说明中国人工智能科学研究领域的突破?

张钹:如果单从论文来看研究水平,基本反映在三个指标上:数量、平均引用率、单篇最高引用率。拿人工智能来讲,中国研究者论文的数量和平均引用率都还不错,但是单篇最高引用率和世界差距就很大,而这个指标恰恰是反映你的原创能力。

也就是说深度学习这个领域,我们的平均水平达到世界水平了,但是最高水平和世界差距还是很大的。不过还是要肯定的,我们应用上发展比较快。

经济观察报:清华在这方面有什么优势吗?

张钹:在人工智能重要的会议杂志上,这十年期间论文数量、平均质量CMU(美国卡耐基梅隆大学)排第一,清华大学排第二。我们培养的人,在计算机这个领域,清华的本科、博士生都是世界一流的。

目前我们的跟踪能力是比较强的,一旦有人起个头,我们能迅速跟上去。但是很可惜,我们缺乏顶尖人物,也培养不出顶尖的人才,如爱因斯坦、图灵等。

我个人认为原因之一,可能与中国的文化有点关系,我们的从众心理很严重,比如在人工智能领域,深度学习很热,发表的论文作者中几乎70%是华人,但是其他非热门领域,包括不确定性推理、知识表示等几乎没有华人作者。这就是从众扎堆,不愿意去探索“无人区”。

当然也不要着急,科学研究本来就是富人干的事情,是富国干的事情,我们还是发展中国家,科学研究起点比较低,暂时落后是难免的,我们会迎头赶上。

四、“低潮会发生,但不会像过去那样”
经济观察报:如果说深度学习已进天花板,那么人工智能未来的前进方向将会在哪?
张钹:最近我们准备提出一个新的概念,就是第三代人工智能的概念,人工智能实际上经历过两代,第一代就是符号推理,第二代就是目前的概率学习(或深度学习),我们认为现在正在进入人工智能的第三代。原因很明显,第一代、第二代都有很大的局限性。
经济观察报:你所说的第三代人工智能技术是有明确的实现方向或者特点吗?
张钹:我们现在提出的是要建立可解释、鲁棒性(注:可以理解为稳健性)的人工智能理论和方法,发展安全、可靠和可信的人工智能技术。
经济观察报:这样的技术可能要等很久?
张钹:是啊,很难预计,我们也很着急。
经济观察报:是不是还得回归到数学等理论层面里再去找新的方法?
张钹:这个目前我们有两条路,一个是和数学结合,一个是和脑科学结合。你想想如果没有新的数学工具,没有来自于脑科学启发下的新思路,哪来的新理论?另一方面是要把数据驱动和知识驱动结合起来,因为通过数学、脑科学上寻求突破是比较艰难的,前面这件事现在则完全能够做。
经济观察报:这个结合是指之前几十年人工智能的经验统合到一块?
张钹:是的,至少有一个方向就是要把第一代和第二代结合,利用各自的优势。但是这两个结合很困难,因为他们在不同空间中操作,一个是向量空间,一个是符号空间,也需要有新的数学工具的加入。
经济观察报:看人工智能历史,每一代技术之间有很长的间隔期,第三代人工智能技术也会这样吗?
张钹:我认为会更长,因为需要攻坚,因为遇到的问题更困难。
经济观察报:会不会再过10年、20年,人工智能在学界或者公众心中,又变成一个“隐学”,就像70、80年代那样,大众又不会再经常提起来这个词?
张钹:低潮会发生,但不会像过去那样,原因在哪?因为有大数据、互联网和强大的计算资源,这些都会支撑人工智能继续走下去,尽管有的时候还只是表面上的繁荣。
640?wx_fmt=jpeg附:在2018 全球人工智能与机器人峰会上,清华大学人工智能研究院院长张钹院士做题为“走向真正的人工智能”(Towards A Real Artifitial Intelligence)的大会报告。以下为报告全文,供大家学习交流。
张钹院士:走向真正的人工智能
我今天要讲的中心思想就是:我们现在离真正的人工智能还有一段很长的路。为了讲清这个思想,我必须回答下面三个问题:
第一,什么叫做真正的人工智能?我们的目标是什么?
第二,为什么我们需要真正的人工智能?
第三,我们如何走向真正的人工智能?
我现在回答这三个问题。
首先我们如何评价目前人工智能取得的成果,我们的评价很简单,针对这 5 件事:
第一是深蓝打败人类国际象棋冠军;第二是 IBM 在电视知识竞赛中打败了美国的前两个冠军,这两件事是一种类型,后面的三件事是另外一种类型;即 2015 年微软在 ImageNet 上做图象识别,它的误识率略低于人类。还有百度、讯飞也都宣布在单句的中文语音识别上,它的误识率也略低于人类。还有一个是大家非常熟悉的 AlphaGo 打败了李世石。这 5 件事情都是机器在一定的范围内超过了人类,我们如何来评价这 5 件事?
大家一致认为这 5 件事之所以成功,是由于前面三个因素,一是大数据,二是计算能力提高,第三是有非常好的人工智能算法。这三个因素大家都讨论得非常多了,没必要我再来说,我现在要说的最后一个因素是被大家所忽略的,这个因素是说,这所有的成果必须建立在一个合适的应用场景下。这 5 件事虽然领域很不一样,但是它们都满足完全一样的条件,或满足下面的 5 个限制,首先你必须有丰富的数据或者丰富的知识,如果这两件东西没有,或者很少,你不用来谈人工智能,因为你无法实现无米之炊。人工智能唯一的两个资源,一个是数据,一个是知识。还有确定性信息、完全信息、静态的、单任务和有限领域。这 5 个条件里面任何一个条件不满足,现在的人工智能做起来就非常困难了。
大家想想这 5 个限制条件下的应用场景是什么样的应用场景?就是照章办事,不需要任何灵活性,这显然不是智能的核心。
我们现在分析一下上述 5 个场景。下象棋是完全信息博弈,信息完全和确定,没有问题。其次,它遵循着完全确定的游戏规则演化,我们把这种情况也叫做静态。Watson 机器人也是这样,Watson 是什么样的对话问题呢?它为什么选择知识竞赛呢?我们知道知识竞赛提的问题都没有二义性,都是明确的,它的答案总是唯一性的。所以这样的问答对机器人来讲是非常容易的。它涉及的领域虽然比较宽,但也是有限的,包括大家觉得很玄乎的围棋,也完全符合上面 5 个条件,所以对计算机来说也是很容易的。目前计算机打麻将就不行,因为牌类是不完全信息博弈,所以比棋类要难。总之,我们对目前人工智能取得的成果要有一个正确的评价。
目前的人工智能技术在以下领域都可以找到它的应用,它们是交通、服务、教育、娱乐等等,但我要强调是这些领域里面只有满足上述 5 个条件的事情,计算机做起来才会容易,如果不满足这些条件,计算机就做起来就困难了。大家常常关心什么样的工作会被机器所替代,我可以明确告诉大家,满足这 5 个条件的工作,总有一天会被计算机取代,就是那些照章办事,不需要任何灵活性的工作,比如说出纳员、收银员等等。在座的所有工作都不可能被计算机完全代替,但不排斥你的工作中有一部分会被计算机取代,老师、企业家等的工作不可能被计算机完全代替。
为什么有这 5 个限制?原因在于我们现在的人工智能是没有理解的人工智能。
我们先看符号模型,理性行为的模型,举 Watson 的例子,它是个对话系统,我们现在所有做的对话系统都跟这个差不多,但是 Watson 做得更好些,它里面有知识库,有推理机制。沃森除了专家知识之外,还有大量互联网上大众的知识,还运用了多推理机制。请看,这就是 Watson 系统的体系结构。它里面有哪些知识呢?有很多,包括百科全书、有线新闻、文学作品等等。所有的知识用纸质来表示有 2 亿页,用存储量表示达到了 4TB。它能回答什么问题呢?用它的例子来说明。第一个问题,1974 年 9 月 8 日谁被总统赦免?这对美国人来讲很好回答,同样对计算机来讲也很好回答,你用这几个关键字「1974 年 9 月 8 日」、「被总统赦免」,就能在文献里头查出来是谁,他就是尼克松。也就是说根据问题中的关键字,可以在已有的文献里头直接找到答案,这就是一般的网络检索方法。
第二个问题,荧光粉受到电子撞击以后,它的电磁能以什么方式释放出来?我们用「荧光粉」、「电子撞击」、「释放电磁能」等关键词,也可以找到答案:「光或者光子」。这种方法就是平时网络搜索的原理,应该说没有什么智能。
回答下面的问题就需要「智能」了,跟智利陆地边界最长的是哪个国家?跟智利有陆地边界的国家可以检索到,它们是阿根廷和玻利维亚,但是谁的边境长?通常查不到。Watson 具备一定的推理能力,它从边界间发生的事件、边界的地理位置等等,经过分析推理以后就可以找出答案,它就是阿根廷。下一个问题也属于这种性质,跟美国没有外交关系的国家中哪个最靠北,跟美国没有外交关系的国家有 4 个,只要检索就行了,但是哪个国家最靠北,没有直接答案,但可以从其它信息中推导出来,比如各个国家所处的纬度、气候寒冷的程度等等分析出来,答案是北朝鲜。
智能体现在推理能力上。但是很不幸,现在的对话系统推理能力都很差。Watson 系统好一些,但也很有限。换句话说,我们现在的对话系统离真正的智能还很远。
我们通过索菲亚机器人就可以看出来,索菲亚的对话是面向开放领域,你可以随便提问,问题就暴露出来了。大家在电视上看到索菲亚侃侃而谈,问什么问题都能答得很好,这里面有玄机,如果你的问题是预先提出来的,因为里头有答案,因此回答得非常好,在电视上给大家演示的都是这种情况。
如果我们临时提问题,问题就出来了。这是一个中国记者给索菲亚提的 4 个问题,它只答对了一个。「你几岁了」,这个问题很简单,它答不上来,它的回答是「你好,你看起来不错」,答非所问,因为它不理解你所问的问题。只有第二个问题它是有准备的,里面有答案,所以答得很好。「你的老板是谁」,这个肯定它有准备。第三个问题,「你能回答多少问题呢」?它说「请继续」,没听懂!。再问第四个问题,「你希望我问你什么问题呢」?它说「你经常在北京做户外活动吗」?这就告诉我们说,现代的问答系统基本上没有理解,只有少数有少量的理解,像 Watson 这样算是比较好的。
为什么会这样?也就是说我们现在的人工智能基本方法有缺陷,我们必须走向具有理解的 AI,这才是真正的人工智能。我这里提出的概念跟强人工智能有什么区别?首先我们说它在这点上是相同的,我们都试图去准确地描述人类的智能行为,希望人工智能跟人类的智能相近,这也是强人工智能的一个目标,但是强人工智能只是从概念上提出来,并没有从方法上提出怎么解决。大家知道强人工智能提出了一个最主要的概念,就是通用人工智能。怎么个通用法?它没有回答。我们现在提出来的有理解的人工智能是可操作的,不只是概念,这是我们跟强人工智能的区别。
人机对话的时候,机器为什么不能理解人们提的问题。我们看一个例子就知道了,我们在知识库里把「特朗普是美国总统」这个事实,用「特朗普-总统-美国」这三元组存在计算机里面,如果你提的问题是「谁是美国总统」?机器马上回答出来:「特朗普」。但是你如果问其它有关的问题,如「特朗普是一个人吗」?「特朗普是一个美国人吗」?「美国有没有总统」?它都回答不了。它太傻了,任何一个小学生,你只要告诉他特朗普是美国总统,后面这几个问题他们绝对回答得出来。机器为什么回答不了后面的三个问题呢?就是这个系统太笨了,没有常识,也没有常识推理。既然特朗普是美国的总统,美国当然有总统,但是它连这一点常识的推理能力都没有。所以要解决这个问题,必须在系统中加上常识库、常识推理,没有做到这一步,人机对话系统中机器不可能具有理解能力。但是大家知道,建立常识库是一项「AI 的曼哈顿工程」。大家想想常识库多么不好建,怎么告诉计算机,什么叫吃饭,怎么告诉计算机,什么叫睡觉,什么叫做睡不着觉,什么叫做梦,这些对人工智能来说都非常难,美国在 1984 年就搞了这样一个常识库的工程,做到现在还没完全做出来。可见,要走向真正的人工智能,有理解的人工智能,是一条很漫长的路。
这里介绍一点我们现在做的工作,加入常识以后,对话的性能会不会有所改善。我们的基本做法是建立一个常识图谱,用这个图谱帮助理解提出的「问题」,同时利用常识图谱帮助产生合适的答案。
下面就涉及到具体怎么做了,我不详细说了,我就说结果,结果是有了常识以后,性能有了显著的改善,对话的质量提高了。这篇文章已经发表,有兴趣可以去阅读。
另外是准符号模型,深度学习、神经网络主要用来模拟感性行为,感性行为是一般很难采用符号模型,因为感性(感觉)没法精确描述。比如「马」,怎么告诉计算机什么叫做马?你说马有四条腿,什么叫做腿?你说细长的叫做腿,什么叫细?什么叫做长?没法告诉机器,因此不能用符号模型。目前用的办法就是我们现在说的神经网络或者准符号模型,也就是用人类同样的办法,学习、训练。我不告诉机器什么叫做马,只是给不同的马的图片给它看,进行训练。训练完以后,然后再用没见过的马的图片给它看,说对了,就是识别正确了,说不对就是识别不正确,如果 90% 是对的,就说明它的识别率是 90%。后来从浅层的神经网络又发展到多层的神经网络,从浅层发展到多层有两个本质性的变化,一个本质性的变化就是输入,深层网络一般不用人工选择的特征,用原始数据就行。所以深度学习的应用门槛降低了,你不要有专业知识,把原始数据输进去就行了。第二个是它的性能提高很多,所以现在深度学习用得很多,原因就在这个地方。
通过数据驱动建立的系统能不能算是有智能呢?必须打一个很大的问号,就是说你做出来的人脸识别系统甚至识别率会比人还高,但是我们还不能说它有智能,为什么呢?这种通过数据驱动做出来的系统,它的性能跟人类差别非常大,鲁棒性很差,很容易受干扰,会发生重大的错误,需要大量的训练样本。我们刚才已经说过,给定一个图像库我们可以做到机器的识别率比人还要高,也就是说它可以识别各种各样的物体,但是这样的系统,我如果用这个噪声输给它,我可以让它识别成为知更鸟,我用另外的噪声输给它,可以让它识别成为猎豹。换句话讲,这样的系统只是一个机械的分类器,根本不是感知系统。也就是说它尽管把各种各样动物分得很清楚,但是它不认识这个动物,它尽管可以把猎豹跟知更鸟分开,但是它本质上不认识知更鸟和猎豹,它只到达了感觉的水平,并没有达到感知的水平,它只是「感」,没有上升到「知」。我们的结论是,只依靠深度学习很难到达真正的智能。这是很严峻的结论,因为如果有这样的问题,在决策系统里头是不能用这样的系统,因为它会犯大错。我在很多场合讲过,人类的最大的优点是「小错不断、大错不犯」,机器最大的缺点是「小错不犯,一犯就犯大错」。这在决策系统里头是不允许的,这就显示人跟机器的截然不同,人非常聪明,所以他做什么事都很灵活,这就使得他很容易犯各种各样的小错。但是他很理性,很难发生大错。计算机很笨,但是很认真,小错误绝对不会犯,但是它一犯就是天大的错误。刚才把那个把噪声看成知更鸟,这不是大错吗?你把敌人的大炮看成一匹马,不是大错吗?但是人类不会发生这种错误,人类只会把骡看成驴,但是计算机的识别系统会把驴看成一块石头。原因在哪儿?原因还是 AI 的理解能力问题。
我们看这个自动驾驶,过去讲得很多,而且讲得很乐观,我们看看问题在什么地方。我们现在是这样做,我们通过数据驱动的学习方法,学习不同场景下的图象分割,并判别是车辆还是行人、道路等,然后建立三维模型,在三维模型上规划行驶路径。现在用硬件已经可以做到实时,请问大家,这样能不能解决问题?如果路况比较简单,行人、车辆很少,勉强可以用。复杂的路况就用不了。什么原因?非常简单,好多人总结出这个经验,行人或者司机都会有意无意破坏交通规则,包括外国人也一样,中国人更严重一点。这就使得数据驱动方法失效,比如说我们可以用数据驱动方法来了解各种各样行人的行为,我们可以通过大量进行训练,都训练完以后,如果出现新的情况呢?计算机能理解这是人从底下钻过来,很危险吗?所以你不可能把所有情况都训练到。自动驾驶不可能对付突发事件,如果这个突发事件它没见过,它就解决不了。怎么来解决这个问题呢?实际上就是要解决从「Without」到「With」理解的问题。人工智能现在有两种基本方法,一种是用符号模型来模拟理性行为,符号模型可以表达信息的内容,所以它是在一个语义的符号空间里头,但是非常不幸,这个离散的符号表示,数学工具很难用,很多数学工具用不上去,所以它发展很慢。在模拟感性行为的时候,我们用的是特征空间的向量,向量就是数,可以把所有的数学工具都用上,优化的工具、概率统计的工具全部用上。所以数据驱动方法这几年发展非常快,再难的问题,下围棋非常难吧,计算机也可以「算」出来。但是它有一个非常大的缺陷,它是在特征空间里,缺乏语义。我们用数据去训练一个模型,所谓「黑箱学习法」,加上你的数据质量不高,很难学出有用的东西。什么叫概率统计?重复多了就是真理。如果数据质量差,充满了「谎言」。谎言重复多了,就变成真理了。
我们现在想出的解决办法是这样的,就是把这两个空间投射到一个空间去,这个空间叫做语义的向量空间。也就是说我们把符号变成向量,同时把特征空间的向量变成语义空间的向量。怎么做?一是通过 Embedding(嵌入)把符号变成向量,尽量保持语义不变,可惜现在的方法都会引起语义的丢失,我们只能在投射的过程中让语义丢失得少。第二方面做的工作比较少,就是 Raising(提升),把特征空间提升到语义空间去,这主要靠学科交叉,靠跟神经科学的结合。只有这些问题解决以后,我们才能够建立一个统一的理论,因为过去的感知和认知是不同的处理方法,大家说不到一块,如果我们能够投射到同一空间去,我们就可以建立一个统一的理论框架,这是我们的目标。在语义空间处理就可以解决理解问题,但是这项工作是非常艰巨的。
介绍一项我们现在做的工作。人工神经网络为什么不能得到语义信息呢?人脑的神经网络为什么可以呢?差别就在这里,我们现在用的人工神经网络太简单了,我们正想办法把脑神经网络的许多结构与功能加进去,我们这里只用了「稀疏发电」这一性质,就可以看出一些效果,人脸、大象或者鸟的轮廓,神经网络可以把它提取出来。
还有一个办法就是把数据驱动跟知识驱动结合起来。刚才讲了,人的智能没法通过单纯的大数据学习把它学出来,那怎么办?很简单,加上知识,让它有推理的能力,做决策的能力,这样就能解决突发事件。我们现在做的工作就是把这些结合起来,这是我们的基本思路,知识也好,数据也好,都投射到同一空间,然后都用同样的数学方法进行处理,这方面我们已经做了不少工作。
最后做一个总结,我们从这个坐标看人工智能,横轴代表领域的宽窄,从单领域到多领域、到开放领域。纵轴代表信息的确定性与完全性,从完全到不完全、从确定到不确定。在左下角代表最容易的,就是刚才讲的符合 5 个条件的,现在人工智能在这部分解决得非常好,我们用白色来表示它,AlphaGo 在这里,深蓝在这里,工业机器人在这里。现在我们正在向灰色地区去走,打牌,信息不完全,现在打德州扑克,一人对一人,计算机能战胜人类,多人对弈,计算机还不行,这是灰色地带,我们还可以做,为什么可以做?尽管打牌是不确定的,但是它在概率意义下是确定的,你拿的这副牌的概率,可以算出来,同花的概率是多少,排成顺的概率是多少,既然概率能算出来,最终人类肯定会被计算机打败。Watson 在右边,它的领域比较宽,但是它是确定性的,所以是在灰色的区域。往右上方去就比较难了,自动驾驶、服务机器人、大数据分析,它是一个大框,有的简单,有的困难,就自动驾驶来讲,专用道、行车很少,路况简单等,在白色或者灰色区,如果路况复杂就到了黄色区域,黄色区现在计算机还解决不好。最远的在哪儿呢?右上角,图灵测试。大家对图灵测试有很多误解,其实图灵测试是开领域问答,很难!索菲亚做得怎么样?很糟糕。自然语言理解也在这里,复杂环境下的决策在偏左一点的地方,这也是很难的。所以我们人工智能现在是从左下角往右上角走,我们现在处在出发点附近。有的人想把它用一些名词来区分人工智能的不同发展阶段,有专家问我,你的看法怎么样?我建议不要用新词,用新词往往说不清,很麻烦,有的人说现在是弱人工智能,以后是强人工智能,也有人说现在叫增强智能(Augmented Intelligence)也是 AI……概念太多说不清,还是简单一点,「我们正在通往真正 AI 的路上」,现在走得并不远,在出发点附近,人工智能永远在路上,大家要有思想准备,这就是人工智能的魅力。大家为什么这么重视人工智能?因为我们永远在路上,这就吸引我们去解决这些问题,这些问题一旦解决了,人类的社会进步、人类的生活就会发生本质上的改变。
最后我用中文写最后一段作为总结,可惜我翻译不了。
周穆王西巡狩,路遇匠人名偃师。翌日偃师谒见王,偕来一个假人。「趋步俯仰,信人也」。「领其颅,则歌合律;捧其手,则舞应节。千变万化,惟意所适。王以为实人也,与盛姫内御并观之,技将终,倡者瞬其目而招王之左右侍妾。王大怒,要杀这个偃师。偃师大慑,立剖其倡者以示王,皆傅会革、木、胶、漆、白 、黑、丹、青之所为。穆王始悦,诏贰车载之以归。
这是 3000 年前我们古人对机器人的想象,看看现在的人工智能做得怎么样呢?索菲亚是我们现在达到的水平,可是她不会唱歌、不会跳舞,只会说英文,周王也听不懂,肯定没有印象。现在我们假设索菲亚「瞬其目而招王之左右侍妾」,向周王的姨太太们送去秋波,王会如何呢?我认为没反应,因为索菲亚是女的,他用不着吃醋。但是我们假设索菲亚「瞬其目而招王」,向大王送去秋波,王会大悦,立即神魂颠倒,坠入爱河?我认为不会,因为索菲亚根本不像人,它最近才刚刚安上手脚,走路都不利索,怎么行呢?所以我的结论是,「索菲亚通不过穆王的测试,当然它更通不过图灵测试」。
我们的结论是什么?人工智能刚刚起步,离真正的 AI 还很遥远,大家共同努力吧,我们任重道远。