IoT与智能时代

IoT(Internet of Thing,物联网)是一个被炒作了很久的概念。它描述的是任何物体都可以连入互联网的万物互联盛世,但是这盛世多少显得有些虚幻。然而在最近,这个概念已经在我们的生活中有了越来越多的真实应用,比如最近红得发紫的共享单车。在这背后,是各种技术的逐渐成熟让物联网时代真正到来:

  • 低功耗微型处理器计算能力越发强劲。智能手机带动了微型处理器的快速发展。这些强劲的微型处理器可以帮助设备获得强大的运算能力,运行复杂的软件,进行高效的信息处理。
  • 设备接入互联网的方式多种多样。WiFi、蓝牙、蜂窝网络、以太网等网络连接的标准已经发展得非常完善,基础设施成熟。这使得各种设备可以方便地选择低成本的方式接入互联网。
  • 适合物联网的传输协议日趋成熟。相较于Web时代的HTTP协议,MQTT、CoAP等新的协议更加适合小型低功耗设备。这些日趋成熟的协议可以帮助设备轻松地与服务器进行数据通讯。
  • 数据分析技术突飞猛进。从设备获得的海量数据必须经过进一步的分析才能够获得洞见,从而能够对设备的运行状况做出诊断和预测,帮助企业提升运营效率。这些都得益于大数据技术的进步。

这些技术使得硬件本身可以支撑计算能力更强的软件,并且可以将数据通过轻量协议传入服务器,并让服务器端的AI高效完成数据的分析处理。在这些技术的支撑下,物联网技术架构所需要的各个模块就完备了:

图1 物联网技术架构

IoT能给企业带来什么

IoT技术是可以应用在任何硬件上的,这意味着它能够给很多行业带来应用价值。在中国,我们曾经误以为智能家居是IoT的最佳应用方向,但是麦肯锡在2015年发布的报告却告诉我们,to C的智能家居其实只是一碟小菜。各个行业都可以通过升级既有设备或者引入新的智能联网设备而享受到这个技术红利。所以像制造业(所谓工业4.0)、智能城市(交通、安防、楼宇、能源)、泛零售(商店、银行、餐馆)这样已经在使用大量设备或者引入新设备的行业就能获得更多的发展机会。

这些各行各业的企业能够从IoT技术中获得的价值包括:

  • 远程获得设备数据。对于依赖设备来运营业务的企业来说,能够实时了解所有设备的运作状态和产生的数据,就能借此全面获知业务的运作情况,并且对未来的业务走势做出预测,对潜在风险进行提前干预。
  • 远程控制管理设备。对于大型公司来说,用标准化的方式控制分布在全国或全球各地的设备是非常痛苦的。但是将所有设备接入互联网后,一切都会变得非常之简单。
  • 智能自动化。当可以对从设备中获取的数据进行智能分析,得出有价值的决策,并进一步自动管控遍布全球的设备时,企业的运营效率将得到巨大的提升。
  • 应用创新硬件。通过引入机器人、无人机等创新设备,企业可以为消费者创造新的服务价值,提升业务的自动化程度,提升企业的运营效率,增加竞争力。

做IoT需要具备的能力

以往的软件开发能力是软件工程师进入IoT的入场券。但是只靠这些能力还无法在IoT领域扮演最核心的角色。在对大量物联网项目进行分析之后,我们发现有3项新能力是软件工程师们进军IoT领域时需要掌握的:

1、软硬件系统集成

将硬件与软件集成并接入互联网,是物联网解决方案建设的第一步。被接入互联网的设备可以实时地向云端的服务器上传数据,使得云端可以了解所有设备的最新状态,为进一步分析这些信息提供可能。

图2 某地铁安防集成平台

我们曾经要为某城市地铁打造一套安防集成平台。地铁运营公司为了有效地保护地铁站点和停车场,希望能够将所采购的各类安防设备集成起来,使之自动化地发现、识别和处理安防警报事件。例如,每当有人穿越禁区边界,周界报警器就能够自动传递警告给服务器,扬声器就会自动触发播放警告声,提醒闯入者尽快离开。安防摄像头也会自动响应,将此区域的实时影像传递给中控室。被集成到中控平台的硬件设备极大地提高了安防业务的运营效率。

2、传感器数据的智能分析

各式各样的传感器可以帮助人类捕获数据。对这些数据的智能分析可以进一步帮助人类获得有业务价值的信息,比如辨别门店顾客的身份、检验产线制成品是否合格、预测机器未来的损坏概率。对数据的智能分析可以帮助企业自动地捕获有价值的信息,帮助企业更有效地运营业务,提前预测未来。

图3 基于激光雷达和无人机的粉末型原料库存测量方案

最近,ThoughtWorks为某国际化肥制造集团设计了粉末库存测量方案。这个集团在巴西拥有拥有20多个工厂,每个工厂有4~6个大型原料池,用于存储粉末型原料。化肥制造集团希望能够精准地了解各个原料池的库存,但是以往只能派人进入危险的原料池用皮尺进行粗略估算,急需更加有效的方式。3D激光扫描器通常被用来给物体做3D建模。当装载着3D激光扫描器的无人机飞过化肥原料堆时,就能够获得粉末原料堆的3D模型。基于这个模型,我们就能轻松地计算出原料的库存。机器加上智能的数据处理算法,就能够帮助企业高效完成人类以往无法做到的事。

3、硬件的智能管理

在对从硬件传感器获得的数据进行处理后,服务器可以智能地做出决策,调度遍布各地的设备完成指令。这就使得设备可以在远端服务器的指挥下自动地运作某种业务。无论是已经成熟的植保机自动喷洒农药,还是未来令人期待的无人驾驶汽车自动接客,都可以让业务运营的效率得以极大地提升。设备将成为人工智能的执行载体。

图4 亚马逊的仓储机器人Kiva 引用自www.biznes.banzaj.pl

最近, 我们帮助某国内企业规划了其AGV仓储机器人管理平台。这家公司在采购仓储AGV机器人后,希望能够深度定制智能调度平台,以便这些机器人能够按照该企业的业务特点来运作,并且与企业的其他业务系统深度集成。为此,我们帮助客户规划了机器人中心控制系统的技术架构,管理仓库中的数十台机器人,使之能够按需领取和执行任务,从而实现仓储分拣业务的高度自动化。

未来的新时代会是什么样的

过去,服务器借助互联网来使用电脑显示器和手机屏幕影响用户,提升了企业的运营效率以及体贴的用户体验。而未来,服务器上的AI将通过物联网找到五感(传感器)和躯壳(执行单元),融入到我们工作和生活的每一个角落,打开提升企业运营效率和创造优质用户体验的新篇章。


更多精彩商业洞见,请关注微信公众号:ThoughtWorks商业洞见

Share

区块链之问—产业应用的机遇与挑战

如果说2016年Fintech前沿有什么有趣的话题榜单,你一定会在其中看到区块链,这样一个最初被视作“娱乐大于实际”的比特币所采用的结算系统,现如今已跻身于Fintech的最前沿。之所以会有这样的骤然变化,是基于实实在在的技术创新。伴随着以太坊(Ethereum重新定义区块链应用场景,R3、金链盟等联盟链的成立,可信可控云计算 、终端安全存储等技术的演进,以及众多机构加入探索,区块链应用步伐大大加快,甚至引起了央行的注意。我们可以看到越来越多金融相关领域的龙头企业尝试拥抱这项技术,用于解决行业难题。

与此同时,我们看到区块链目前仍然缺乏标准化和落地实践,业内有一些盲目跟风的现象,强行将该技术用于不匹配的业务场景,使得区块链就像“一把仍在寻找钉子的锤子”。毫无疑问,区块链已经成为FinTech业界热烈讨论的焦点,但是它究竟从何处而来,为解决什么问题而生?又将向何处去,是颠覆行业还是被人淡忘?我们不妨将繁复的概念营销先放在一边,一起来探寻这些本质之问的答案。

从何处而来

区块链,最初只是比特币的结算系统,其本质是基于密码学的去中心账本方案,区块链本身所使用的技术并不是新概念,而是基于一系列密码学技术的集合,通过巧妙的设计,使之实现了去中心化的结算需求,然而伴随而来的是一些衍生问题。区块链并不是“一把仍在寻找钉子的锤子”,而是一把“专门为某种钉子设计的锤子”,所以要了解区块链的本愿,我们需要先从“比特币之父”中本聪的论文说起。

中本聪的比特币

2008年,中本聪(化名)第一次在Metzdowd的密码学邮件列表中发表了比特币相关的建议书,其中包含了他之前的一篇论文--《比特币—P2P下的电子货币系统》,论文中阐述了如何使用密码学原语与特定的数据结构,在不可信的环境下建立分布式对等节点的结算系统,区块链的三层密码学结构、工作量证明与拜占庭容错难题都是由这篇文章引出的。


图1:区块链的三层密码学结构

比特币已解决的问题:

  • 记录的内容完整性
  • 记录之间的顺序不可篡改
  • 记录的去中心化同步容错

比特币待解决的问题:

  • 去中心同步带来的性能问题
  • 工作量证明导致的复杂性与算力垄断隐患
  • 更新迭代愈发困难
  • 应用场景的局限性

这些“已解决的问题”正是区块链技术所提供的业务价值,而从区块链的最新发展来看,具有独创性的一系列改进,大都是围绕着“待解决的问题”而展开的。

很遗憾的是这篇论文很少被媒体引用,原因或许是密码学概念仍然很难为大众理解,但是另一个很重要的讨论前提也由此被掩盖:区块链的最初设计,目的是支持P2P(对等节点)之间记录不可信赖的去中心交易环境,而“不可信的对等节点”这一前提在传统金融领域有着不同的阐述和限制,忽略这一差异而讨论区块链,就是引发误解的原因之一。

对区块链的误解

当前许多新兴的产业应用场景,套用区块链作为防篡改的记录系统,例如通过区块链来确保交易、票据、合同、供应链等记录的完整性。然而,在实际的使用过程中,仍存在着非常大的误区。

事实上区块链作为防篡改方案,仅仅使用了其中的三层密码学结构,而去中心容错问题则是由其分布式结构决定。区块链记录一旦产生,便可以具有前向完整性,即对于已经产生并记录在案的数据,可以通过密码学检验确保其内容难以被篡改。这一要求,不需要基于去中心点对点的场景便可以实现,在这样的应用场景中,工作量证明等容错方案便成为了冗余的设计,无形中增加了落地的难度。

因此,我们可以看到新兴应用场景中“广义的区块链”,和比特币等去中心化场景中“狭义的区块链”,实际上有着巨大的应用场景差异。

相似的,区块链与“数字货币”也不可一概而论。作为比特币的基础设施的区块链,常常也伴随着“数字货币”的方案一同出现,然而“数字货币”对于应用场景有着非常高的要求,其发行与管理都需要经济领域专家的设计,同时也面临着政策监管的敏感风险,因此产业急需将“数字货币”与区块链解耦,以拓宽区块链的应用面。

进化中的竞争币与以太坊

随着时间推移,比特币也显现出了一些问题,例如保密性和公平性都受到了质疑。我们看到使用“零知识证明”代替有缺陷的签名系统的方案“ZeroCoin”,试图通过分成协议吸引更多持续维护者参与其中的“Dash”,同时社区也不再满足于结算交易,涌现出了不少其他的应用场景,如代替传统域名解析服务的“Namecoin”、用于票据交易的“Ripple”,以及提出了链上代码概念的“以太坊(Ethereum)”。

以太坊通过提供图灵完备的运行环境,使得区块链从原有的数据存储结构进化为了可以约束合约行为的平台,从这一点上看,以太坊的区块链已经脱离了原本的“交易结算”场景,随之而来的,我们在以太坊之上看到了许多富有想象力的新应用,其中最著名的即是DAO。DAO采用了以太坊的智能合约平台,实现了提供数字凭据的股权众筹体系。受到以太坊启发,R3和Hyperledger也纷纷引入了“智能合约”的概念,并不断提高其拓展能力,也造就了当前区块链百家争鸣的局面。

将向何处去

目前我们看到的一些区块链的产业应用主要包括以下领域:

  • 财务结算
  • 票据交易
  • 金融资产
  • 合作合约
  • 供应链审计
  • 元数据管理
  • 共享经济
  • 物联网

而对于不同的产业领域,我们可以看到区块链提供了不同的帮助,有些是保障记录完整性的,有些是希望打造更灵活自动的合约平台,有些是针对不可信环境的数据治理。由于产业需求的不一致,我们也看到碎片化的平台不断被开发出来,最终行业间的适配就成为了广泛存在的问题,业界逐渐开始考虑标准化和落地的解决方案。

标准化与落地

货币结算的标准化方案其实很早就已经在金融IT系统中存在了,例如SWIFT(环球同业银行金融电讯协会),它是目前使用最为广泛的银行间结算协议,为银行间结算提供了标准化的报文格式和安全方案,其服务已经遍及207个国家,接入的金融机构超过8100家。

随着区块链技术越来越被重视,SWIFT与埃森哲在今年四月共同推出了分布式账本系统报告,这一20页的报告体现出了SWIFT对目前分布式账本的研究和推动货币结算标准化的意愿。其中,有一个采纳了分布式账本的“身份和访问管理”的概念应用,展示了SWIFTNet PKI 分布式账本解决方案,以及访问控制机制(如封闭用户组和RMA),是SWIFT利用现有的平台和资源,解决身份和访问管理问题很好例证。

但是即便是SWIFT,也仍然面临着标准化推动缓慢,产业应用缺乏落地实践的问题,由Linux基金会与IBM、Intel等科技组织参与的Hyperledger超级账本开源项目由此应运而生,Hyperledger旨在推进跨行业的区块链技术发展,是一个全球合作的组织,涵盖了金融、银行、物联网、供应链、制造和技术等领域。相应的还有R3联盟区块链,由R3cev发起,至今已吸引了数十家巨头银行的参与。我们可以看到各界都在努力地将产业应用标准建立起来,以便后续的行业间交互合作。

图2Hyperledger为基础设施的产业间合作网络

困难与挑战

在区块链技术落地的环节,我们仍然面临着许多的困难和挑战,其中最为紧迫的是将业务需求映射到技术方案上,并基于这些需求对现有的区块链实现进行改造和精简,以应用于实际的业务环境。甚至对于区块链现有的密码学结构做出适当的修改,以满足不同场景的具体需求。

另一方面,区块链原有的问题,以及长期以来基于社区的松散结构,造成产业应用缺乏快速原型、敏捷迭代的最佳实践,如何更快地将区块链应用于业务原型,并构建完善的持续交付流程,尤其是针对开发和运维阶段的实践,是非常值得投入的领域。

解构与重构

由于区块链本身的密码学和共识方案分别用于解决不同领域的问题,从比特币的最初设计到后续区块链的各方改进,我们可以看出,不同技术对所解决的问题具有非常强的针对性,并非可以照搬利用。我们常常看到许多大型组织对区块链技术表示好奇,却缺乏对其业务应用场景的思考,尤其是行业对于区块链技术的理解仍然需要解耦。

例如,针对智能合约的场景,我们需要实现一套安全可控的执行沙盒来部署一次性或多次性的合约解释器(intepreter)服务,基于领域概念设计的DSL和API将有助于业务人员更灵活地设计合约条款和执行方式。

智能合约基于其自动化效用,对我们的业务抽象能力也提出了新要求,如何设计更完备的区块链智能合约机制以映射业务场景,需要对原有的业务流程进行拆分,并且落实到规约层面,这与传统Fintech系统方式有所不同,标准化与规范化在这一场景下显得尤为重要,数字化平台思维也必不可少。

图3:智能合约场景常见技术架构

相对应的,针对更注重审计的供应链场景,我们则应该把重心放在记录的完整性和审计可视化上,这就要求区块链提供更丰富的查询、校验接口。同时对于有分布式需求的供应链环节,如物流运输等环节,设计完善的同步共识算法就显得尤为重要

此外在供应链应用中,区块链的核心价值之一--“分布式记录完整性”得到了充分的体现,但是由于参与供应链的企业和行业数量繁多,统一的成员管理就成为了必须考虑的课题。

图4:供应链场景的成员管理服务

另外,区块链所面对的问题,本质上是“不受信任”的场景下的“数据治理”问题,因此,企业对于区块链的研究投入不应该只局限在技术层面,更应当着眼于“数据价值”,从“安全可信”的需求出发,对区块链进行重构,以胜任自身以及行业联盟的业务需要

展望

区块链不仅为可信金融领域提供了新的模式,还为其他各类产业应用引入了新思考,同时业务与技术设计也面临着新的难题。如何拥抱数字化平台带来的机遇,直面挑战,正是产业应用对区块链和Fintech提出的问题,如果能在以下这些领域取得突破,相信区块链在未来会给我们带来更多激动人心的颠覆性创新:

  • 将不同场景的业务需求映射到技术方案,并基于这些需求对现有的区块链实现进行改造和精简。
  • 积累快速原型、敏捷迭代的最佳实践,更快地将区块链应用于业务,并构建完善的持续交付流程。
  • 对于记录的完整性和审计可视化,设计更直观的展示方式。
  • 完善区块链的成员管理能力,基于标准协议形成联盟,满足更多企业和行业间的信息交流。
  • 着眼于“数据价值”,从“安全可信”出发,对区块链进行重构,以胜任业务需求。
Share

未来的IT系统:DITS – Differentiable IT System

不是我不明白,这世界变化快 ——《不是我不明白》崔健

IT系统的困境

IT技术是用来管理和处理信息的技术,IT系统是使用IT技术构建的系统。经过几十年的发展,IT系统越来越复杂,动辄几百万上千万行代码。然而,现代IT系统依然非常脆弱,一个业务上的变化,就可能导致一个子系统的重新设计;而一个颠覆性业务模式的出现,可能会导致整个IT系统被替换。

1-programmer

当我们在观察或了解昆虫以及其他低等生物时,会产生一种毛骨悚然的感觉:活动热闹非凡,可家里一个人都没有!——丹尼尔·丹尼特

设计实现IT系统的最大挑战来自于需求的变化。各种编程语言、设计模式,以及软件工程实践等,都在试图解决这个挑战。当前,用效率最高的软件开发方式——使用具有高级抽象能力的编程语言,采用响应式编程(Reactive Programming)范式和微服务架构,引入DevOps和持续交付等工程实践等开发一个新需求,也要以天为单位;如果要开发一个新的组件,可能需要以周为单位;而如果要开发一个全新的业务模式,至少要以月为单位。

对大部分程序员来说,各种新技术层出不穷,每一项都打着提高开发效率的旗号,然而事实是:程序员的工作并没有因为技术的进步而减少,相反,我们感觉自己越来越累,不仅要学习新技术,同时还要应对越来越频繁的需求变化。

于2000年左右出现的电子商务颠覆传统零售行业大概用了10年时间,2006年左右出现的社交网络颠覆门户网站大概用了五六年的时间,2012年左右出现的共享经济颠覆传统商业模式大概用了3年时间。一个合理但未经验证的猜想是:颠覆性业务模式的出现频率以及颠覆速度似符合摩尔定律,即每18个月,颠覆性业务模式的出现频率和颠覆速度会提高一倍。

2-speed-up

不管我们使用什么样的编程语言,采用什么样的架构,引入什么样的工程实践,一个业务需求的生命周期都要包含产品规划、业务分析、方案设计、开发、测试、上线。这样的研发周期,在不远的未来,将无法跟上业务需求变化的速度。

自然的启示

《自私的基因》一书提到,基因为了将自己的遗传信息传递下去,进化出各种载体——即生物体——以应对环境的变化,让基因得以生存并传递下去。对于一些早期的生物载体,基因通过硬编码的方式,将一些复杂功能固化到生物体的遗传信息中。比如有一种名为“掘地蜂”的昆虫,在产卵时会严格遵照预定的程序:

  • 用自己的刺麻痹一只蟋蟀;
  • 将蟋蟀拖到挖好的洞口;
  • 进洞查看,确保安全;
  • 回到洞口,把麻痹的蟋蟀拖进洞;
  • 产卵;
  • 密封洞口,走人。

这套程序看起来非常复杂,我们不禁要感叹,一个简单的生物体,竟然可以完成这么复杂的事情。然而,当掘地蜂进入洞穴查看时,实验人员将麻痹的蟋蟀移动几英寸,等掘地蜂从洞口出来,并不会直接将移动过的蟋蟀拖进洞,而是将其拖到洞口,然后再一次进洞检查。如果期间蟋蟀又一次被移动,哪怕只是一英寸,掘地蜂也会重复前面的过程。正如丹尼特所说:看起来“活动热闹非凡,可家里一个人都没有!”

3-lonely

《机器人叛乱》对这一观点提出了进一步的扩展。为了让生物载体能够更好地适应快速变化的环境,基因发展出了弱约束目标。相比硬编码复杂行为,基因只是给其载体下达要完成的目标,而不再是具体的操作计划,由载体针对当时的环境做出符合目标的最佳选择。如果基因会说话,基因会给我们的大脑发出类似的指令:“事情发展太快,没办法一一详述,大脑,你只需在考虑我们的通用目标(生存和繁殖)前提下,做你认为最好的选择。”

生物体适应能力越来越强,同时也导致环境变化越来越快,反过来迫使我们不得不发展出更强的适应能力,就像进入正反馈的自动控制系统,系统开始进入不稳定状态,直到崩溃,然后重新寻找平衡。

IT系统的转折点

程序员之于IT系统,就如同基因之于载体。基因在生物进化早期也遇到过这样的困难,尽管进化出了非常复杂的生物载体,但是对于颠覆性的环境变化(比如火山爆发、地壳运动、彗星撞地球等),这些载体依然表现的不堪一击。

5亿年前的寒武纪大爆发,大量生物出现在地球上,基因像是想通过这样的方式,发展出复杂的载体,来应对变化的环境,然而,复杂并没有带来期望的适应能力。结果大家都知道了,6500万年前,基因进化出来的最复杂、最具有统治力的载体——恐龙——灭绝了。今天我们发明了新语言、新框架、新实践,期望通过这样的方式可以更快的开发出更复杂的系统。然而,再复杂的系统,面对不停变化的混沌世界,依然不堪一击。

4-nature-cover-animation

是时候换个思路了。

我们也该考虑类似基因的弱约束目标,让IT系统具备一定的自主性,可以根据人类制定的目标,做出它认为最优的决策。具备自主性的IT系统,能够根据人类制定的目标,针对复杂业务变化,做出认为的最优选择。 这就是未来的IT系统。

DITS – Differentiable IT System

目前最有希望能够让IT系统具备自主性的技术,来自深度学习。深度学习通过建立层级化表征的方式,让计算机可以从经验中学习并理解这个世界。

[^1]深度学习和经典机器学习方法的最大区别在于,深度学习不需要某个领域的专家来设计特征提取规则,可以在输入数据和业务目标之间实现端到端的模型训练。对于深度学习的使用者来说,只需要准备好训练数据,设定好训练目标(即设定Loss Function,损失函数),确定深度神经网络的结构,然后进行训练,就可以得到满足目标的神经网络模型。

这其中的魔法发生在训练过程中。我们可以将复杂的神经网络用计算图的方式表达出来。在神经网络的末端,也就是输出层,通过损失函数计算出实际值和目标值之间的差别。得益于微积分中的链式法则,损失函数的结果误差可以在计算图中反向传播(Back Propagation),一层一层的调整神经网络参数,让神经网络在下一次的计算中距离目标更近一步。^2

counterpropagation

在反向传播的过程中,每一层网络参数的修正值是通过计算误差和参数之间的梯度得到的。一个函数在某个点存在梯度,需要在这一点保证函数可微分,也就是本文题目中的Differentiable。所以,深度神经网络的学习能力,来自神经网络的可微分性(Differentiable)

如果我们能够让IT系统具备可微分性,IT系统就可以基于人类指定的业务目标,从历史数据中学习,并不断更新自己,从而具备自主性。当变化来临,系统可以在没有人类参与的情况下自主学习并调整,最终适应变化。写出具有可微分性程序的编程方式,叫做可微分编程(Differentiable Programming)。[^3]这样的IT系统,称之为“可微分IT系统”,即DITS,Differentiable IT System。

当前,大部分AI技术只是作为独立的服务存在,用来辅助传统IT系统,比如图像识别、语音识别、自然语言处理等。而DITS本身就是一个AI系统,或者说,是一个内建AI能力的IT系统。

现在,我们经常使用A/B测试来改进程序,然而开发A/B测试代码、设计策略、收集反馈、分析、修改代码,一系列过程下来我们发现,用户点击红色按钮的比例比蓝色按钮多出30%,于是我们决定按钮使用红色。这就是所谓数据驱动的产品运营。

而对于DITS来说,我们可以设定弱约束目标为提高用户点击按钮的比例。每当用户执行一次操作,DITS就会计算这次操作和期望目标之间的差别,调整内部神经网络参数,从而自主地改进用户体验。更进一步,DITS甚至还可以对不同的用户展示不同的颜色,比如对于喜欢点红色按钮的用户展示红色,对于喜欢点蓝色按钮的用户展示蓝色。

这还只是一个具备自我学习能力的IT系统所做事情的一个简单例子,对于更复杂的业务场景,DITS所能做的,会超出我们的想象。

实现DITS

基于可微分性构造计算机程序,让计算机具备学习能力,目前是深度学习领域的热点。早期的尝试来自于DeepMind在2014年发表的神经图灵机(Neural Turing Machine,NTM)[^4],2016年DeepMind在Nature上发表了NTM的更新版本,可微分神经计算机(Differentiable Neural Computer,DNC)[^5]。DNC已经可以根据一些零散的路线信息,推测出地图上个点之间的连接情况,并计算最短路径。

6-code

另外一些基于记忆网络(Memory Network)的尝试也已经取得一些突破,比如Facebook在ICLR 2017上发表的递归实体网络(Recurrent Entity Network)[^6]可以通过所有Facebook提出的bAbI测试。

伦敦大学学院(University College London,UCL)的研究人员实现了一种具有可微分性的Forth语言解释器[^7],程序员编写Forth程序时,可以留下一些空白(slot),这些空白会被解释器在运行时填充,并且在运行过程中,解释器会根据程序的输入和输出调整这些空白部分的逻辑。

在工程领域,这一编程方式还处于早期阶段,尚不成熟,但已经有很多人在这一方向上做出尝试^8,以及ThoughtWorks的开源项目DeepLearning.scalaDeepDarkFantasy

要想完整的实现DITS,还需要很多努力,尤其是要想用DITS替代目前已有的复杂IT系统,还需要很长的一段路。不过,变革已然在酝酿之中。

在计算机被建造出来的早期,大部分人认为那只是学术领域的玩具,是只有书呆子模样的黑客们才能掌握的黑科技。然而,不过几十年的时间,计算机就完全改变了我们的生活。

今天的AI技术,包括Differentiable Programming和DITS,就像50年前的编程技术一样,还处于黑科技的范畴。然而,我们也许不用再等50年,就会看到今天的黑科技,将再一次改变世界。

One More Thing

《机器人叛乱》一书提到,“某些行为服务于载体的目标,它们未必有助于实现基因的目标”。那么,作为人类未来的信息载体——DITS——也会出现目标冲突的情况,到时候,我们人类要何去何从呢?

7-confuse

[^1]:《Deep Learning》,深度学习圣经

[^2]:对于细节感兴趣的读者,推荐阅读计算图和反向传播

[^3]: Differentiable Programming的说法最早出现在博客神经网络、类型和函数式编程

[^4]: Neural Turing Machine

[^5]: Hybrid computing using a neural network with dynamic external memory

[^6]: Tracking the World State with Recurrent Entity Networks

[^7]: Programming With a Differentiable Forth Interpreter

Share

Software is Worthless

在一个周六的晚上,同事的一段文字让我思绪万千,沉寂了十几年的写作冲动,就这样被这段文字唤醒了,虽然已经0点过半。

不断萦绕在我脑中的一个思考:为什么越是痛苦压抑,越是能够产生富于生命力和创造力的文字;越是写意轻松,产生的却是浮躁且没有灵魂的声音。已经忘记是在哪里看到过这样一篇文字,叫做“历史的终结”,大概的意思就是,当故事走向幸福道路的时候,历史就在此刻终结了,因为幸福的故事已经不需要被表达与陈述。

1-wave-with-wind

“每一个幸福的家庭都是相似的,而每一个悲惨的家庭都有各自不同的悲惨”,这给出了一个可能的解答。痛苦是多样化的,而多样化正是生命力与创造力的源泉。在痛苦的挤压下,在那一丝丝的罅隙中奋起抗争,产生的是生命力与创造力;在约束的束缚下,在那一点点的空间中辗转腾挪,浮现出的却是富于生命力与创造力的设计。

软件便是这样,它是在问题与约束的罅隙中,纯粹脑力挣扎的产物。然而软件却又不同于文学作品,文学作品的运行时环境是人的大脑,大脑极强的适应性使得文学作品的价值可以世世代代的延续下去;然而软件的运行时环境是机器,其价值在几十年甚至短短几年里便会消耗殆尽,软件是短命的。

2-meteor

一个又一个新的javascript框架产生了,主流技术栈变得越来越相似,轮子在不同的语言和框架中一遍又一遍的被重复发明着,软件总是被淘汰与替换着。

自软件诞生起,就以惊人的速度不断降低着自己的构建成本,随着软件开发技术的不断革新,今天大多数的商用软件,本质上都是基于开源软件的二次开发而已,各种PaaS平台的兴起,进一步让软件的构造变的越来越容易。

想想你所写的每一行代码,将会以多快的速度被淘汰、被替换、被遗忘?越来越多的公司纷纷开源了自己的核心软件资产,让软件成为一种吸纳人才的手段,这些公司的核心竞争力越来越不在于软件本身。

软件生来便是短命的,越来越容易构造,就会越来越快的被替换和淘汰,也不会有太多公司以软件作为核心竞争力——Software is Worthless,即使不是现在,也就在不远的将来。作为软件的从业者的我们,整天疲于奔命学习新技术的我们,又应当用什么来衡量自我的价值?这一切的意义何在?

3-it

好吧,可能这个问题现在还不重要,在软件变的越来越容易构造、生产成本越来越低的时候,我们的工资却在不断攀升,在这样的一个软件人才供需极度不平衡的市场上,散发着软件要吃掉整个世界的信号,也许幸福的日子还能持续很长一段时间。可惜幸福与工资并没有太大的关联关系,所以历史也并未在此终结。

回顾我自己这些年的技术生涯,所做过的大大小小的项目,几乎都有着各自的悲惨,无论是成功的、失败的,都谈不上令人满意。所做过的技术决策,随着技术的革新,无一例外都是错误,若是以结果来衡量软件开发本身,一定是“人终有一死”。然而我的感觉却没那么糟,因为我更相信自己能够在新的环境下,更好的认清楚自己要解决问题,更好的搞清楚约束是什么,更好的保持开放心态、同时谨慎前行。除此之外,我却找不到任何一个与技术相关的词汇来描述自己的收获。

软件的本质是知识工作,而软件开发的过程,就是学习与成长的过程,过程的重要性是要远大于结果的。我们在尽力打造更好软件的同时,也打造了更好的自己。

思绪渐渐飘到了3年前,在我对自己的技术生涯感到迷茫的时候,一位在硅谷干了二十多年,在公司干了一圈管理又回到技术岗位的同事对我说:“写程序之于我,就好像是空气和水一样不可或缺,我觉得你应该和我是一样的”,面对这句话的时候,当时的我无法回应。然而在脱离技术岗位1年多,又重新开始做技术的今天,我却想回到那个时间点,回答说“是的,我也是一样。”

除了意识到自己对编程如此热爱之外,还体会到这个比喻中蕴含的更深刻的含义。
我们应当如何去衡量水的价值?我们又如何去衡量空气的价值?我们如何去衡量软件的价值?衡量知识的价值?衡量自我的价值?

今天,软件就如同空气和水,覆盖着我们生活的方方面面,变成了我们无法缺少的东西。当这个世界上,水需要去买,也许在某种程度上说,空气也需要去买的时候,难道不能引起你的反思,反思这个世界是哪里出了问题?这一切,都让我想起了互联网、黑客、开源精神,还有 Aaron Swartz……

4-hacker

在我们打造更好软件的同时,打造更好自己的同时,也许还有一个更远的远方在召唤着我们。

Share

从人到电子人的科技之路

ThoughtWorks和艺术家的碰撞

2016年5月底,ThoughtWorks在纽约办公室再次倾听并访问了艺术家Neil HarbissonMoon Ribas关于Life With Extra Senses (新感官生活)的梦想。

这两名艺术家都有着特殊的身份。Neil是一名音乐及艺术家,他自出生起就是全色盲,无法区分法国、爱尔兰和意大利的国旗。2003年,Neil在头部装上了能够将颜色变成声音的感知器,并成为世界上第一个官方承认的半机械电子人(CybOrg),从此Neil的世界变的不仅仅“看上去很美”,听上去也很美。

而Moon是一名舞蹈家,和Neil不同,Moon在左胳膊上安装的电子设备并不是为了弥补自身的某种缺陷,而是用来感知地球上哪里出现了地震。电子设备的振动频率会根据地震强度而发生变化,Moon也会随之起舞,她将这个新感官称为“来自地球的心跳”。

1-heartbeat

其实, 不仅是Neil和Moon在自己的身体内装上了电子设备,很多人由于各种各样的原因也从人变为半机械电子人。

通过手术变成半机械电子人

2011年3月,美国德克萨斯州的Craig Lewis因严重心脏病病危,心脏起搏器已于事无补,生命只剩12-24小时。情急之下,他的医生们将已经在50头小牛身上试验过的双管泵心脏装在他的胸腔中,术后Craig虽然没有了心脏和脉搏,但他的心脏功能恢复了正常。尽管在5周后他死于其他内脏疾病,但作为世界上首个没有心跳和脉搏的人,Craig改写了人们在传统意义上对人生命体征的认知 。

英国曼彻斯特的80岁老人Ray Flynn患有老年黄斑变性眼疾,他只能通过眼睛的余光勉强看到东西,每次曼联队足球赛的时候,Ray都会歪着头坐在电视机前。2015年6月Ray在曼彻斯特皇家眼科医院接受了手术,安装了一套Argus II的仿生眼设备。这套设备能够直接将摄像头接收的光线信息传给视神经,大脑通过这种方式看到外界图像,现在就算Ray闭上眼,也能大概看清面前人和物体的轮廓,看球时再也不需要奇怪的姿势了。Ray是全世界第一个安装Argus II仿生眼的人,这一科技还将造福无数人。

RAYMOND FLYNN 80 FROM MANCHESTER IS THE FIRST PERSON IN THE WORLD TO HAVE A ELECTRONIC RETINA WHICH HELPS HIS VISION VIA THE GLASSES HE WEARS, PICTURED WITH PROF PAULOI E STANGA IN PINK SHIRT AND GREGOIRE COSENDAL VP OF SECOND SIGHT 9TAN JACKET0 PHOTO CREDIT PAUL COOPER/PCOOPERPHOTO.COM

澳大利亚表演艺术家Stelarc在“人体和机械电子的整合”方面做了许多研究,如长在他胳膊上的第三只耳朵,这只耳朵连接到互联网,可以随时让互联网另一端的人听到他正在听的音乐会。他还实现了用计算机通过连接互联网的电子肌肉控制装置来控制自己的手臂,以及开发了第三只电子手,这只手能和控制它的Stelarc原生手同时写出不同的字母。

3-ear

通过注射变成半机械电子人

上述提到的半机械电子人都是通过手术将电子设备植入体内,由于手术对人体组织的侵入是痛苦且危险的,近几年来人们越来越多地将“注射式植入”应用到成为“半机械电子人”的过程中。其中,由于RFID (射频识别)芯片可以从识别器发出的电磁场中得到能量,而且不需要电池,于是很多注射植入芯片都采用了这项技术。

美国明尼苏达州未来主义组织TwinCities+的理事长Tim Shank就在体内注射了多个芯片:有装在手上用来开家门的钥匙芯片;有存储个人信息的近场通讯(Near Field Communication)芯片(由RFID演变而来,并向下兼容RFID),用手触碰一下手机,个人信息、联系资料就会发送到手机上;他还用植入芯片存储过比特币钱包。在Tim的眼中,不用想着带钥匙、钱包以及那些必须要带的东西可以更好地解放人们的大脑。

4-hand

《RFID Toys》的作者Amal Graafstra在他的书中记录了怎样用这一技术开家门、锁车门、登录电脑、开保险箱、清点物品清单等等。他提到去年在澳洲做的一份调查 : 约25%的澳洲人至少有兴趣用植入芯片代替钱包 。Amal认为科技已经到位了,下一代的芯片是可以实现加密功能从而用在支付终端上的,只是和银行或支付平台的协议尚没有到位。所以虽然消费者可能会觉得不可思议,银行也会觉得有风险,但Amal认为用植入芯片代替钱包的这一天一定会到来。

从人到电子人的未来

关于人类的未来,有种种预测,撇开人类的情感和伦理道德观,仅从技术的角度,牛津大学的神经科学家安德斯·桑德柏格几年前在芝加哥举办的第九届世界超人协会年会上就公布了最终让人类与机器结合的计划,他的计划是利用如人工智能、基因改良和纳米技术等高科技来绕过死亡,并加速人类进化。安德斯表示,他的设想可能在几十年后,就会在技术层面完全实现。

很难想象当人类完成自我进化,身体的每一部分都慢慢变成功能强大的生物电子设备,当铁臂阿童木式的童话成为现实,未来的世界将是什么样的,但有一点是肯定的,这一场生物科技的变革之路必定是划时代和充满挑战的。

ThoughtWorks助力科技与艺术的结合

ThoughtWorks一直以来致力于科技和商业、艺术和社会的结合,在聆听了Neil以及Moon的“新感官生活“梦想之后,ThoughtWorks在2016年6月联合CybOrg Foundation在美国纽约启动了为Neil和Moon创造新感官的项目——Arts Residency

Neil希望通过这个项目获得一个能感知时间的新感官原型,正如他身上能将颜色变成声音的电子器官一样,这个时间新感官能让他的头部外围本身变为实时更新的时钟,这样他无需看表就能知道当前的时间;而Moon希望有一个能感知月球地震的新感官原型,同时她希望新的感官可以位于她的双脚上(一只脚感知来自地球的地震,另外一只脚感知来自月亮的地震,这样她就能同时感受到来自地球和月球的”心跳“),并且新的感官可以让她知道地震的位置和震级大小。

虽然项目的大部分人位于纽约,我们仍有来自ThoughtWorks全球各地的项目志愿者参与了为Neil和Moon开发新感官的项目中。作为中国的项目志愿者,我承担了新感官原型及将来要用的皮肤/皮下组织兼容性材料的调研工作,截至目前为止,调研结果已成型并运用于新感官原型的制作中,对此我在Cyborg Senses: Weaving the Materials的博客中做了总结。

%e5%9b%be%e7%89%87-1

纽约团队主要负责Neil和Moon新感官的硬件电路设计、软件开发和实际的模型制作,我们将时间的表达方式转化成了热能的移动(时间不同,感官发热的部位则不同),同时我们将来自地球和月球的地震信息转化成了可以安装在脚上的小饼状电机,具有不同的震动方式,目前项目已近尾声,相应的博客正在撰写过程中,可关注ThoughtWorks Arts Residency blogs查阅。

在原型完成以后,之前所列的生物兼容性材料、尺寸、人体与电子设备的相互作用、供电、信息安全等种种挑战就可以利用现有的技术手段一一解决,最终形成可以植入Neil和Moon体内的新感官。

我们深信,在从人到电子人的科技之路上,像Neil和Moon的艺术家会为ThoughtWorks带来更多的技术灵感,而许许多多的ThoughtWorkers也能在这条充满挑战的技术之路上获得更多技术创意,促进更多伟大技术的诞生。

更多精彩内容,请关注微信公众号:ThoughtWorks

Share