为了降低汽车碰撞事故,保障交通安全,汽车领域逐步在引入全新的出行概念,自动驾驶技术因此应运而生,并在过去的几年里经历了前所未有的飞速发展。国内外自动驾驶玩家似乎也都意识到安全的重要性,《自动驾驶安全第一白皮书》在大众、奥迪、百度、宝马、德国大陆集团、戴姆勒、菲亚特克莱斯勒、HERE、英飞凌、安波福和英特尔这11家行业代表的推动下也已发布,然而自动驾驶作为一个相对崭新的领域,不仅涉及传统汽车的动力学控制,而且需要人工智能的感知融合算法,超大算力的数据处理能力,它颠覆了传统的控制技术,带来了全新的安全挑战,那么,自动驾驶玩家们真的能够坚持初心吗?传统的OEM、tier1、ICT、互联网都在争先恐后的分抢自动驾驶的一杯羹,形成了这个时代下特有的众生相。随着不断涌现的初创公司,传统的、创新的、激进的、保守的……各种迥然不同的开发思想和理念在冲撞着,各种丰富的开发方法论在博弈着……在矛盾思想的磨合和商业市场的驱动下,自动驾驶时代下的功能安全仿佛是在一条空旷大路上奔跑的狂野不羁的裸奔者,既不能停下奔跑的脚步,又不能保全衣冠完整。在背离初心的路上演绎着不同负面的剧本。
01
《格列佛游记》里有一句话“盲目可以增加你的勇气,因为你无法看到危险。”自动驾驶领域里,功能安全对于很多人是一个陌生的认知,少数人对它有一些肤浅的了解,极少有人真正懂得它的内涵。很多人对功能安全的真实态度是一种随波逐流的心态,别人做,所以我要做,而执行过程中并不关心怎么做好,或者说并不知道怎么才能真正做好。一切的随意其实还是源于缺乏对功能安全背后那些危害的认知,自动驾驶在未来可能引入的灾难就像“黑天鹅事件”。17世纪之前的欧洲人认为天鹅都是白色的,直到17世纪澳大利亚第一只黑天鹅的出现,这个不可动摇的观念崩溃了。黑天鹅的存在寓意着不可预测的重大稀有事件,它在意料之外,却又改变着一切。人类总是过度相信经验,而不知道一只黑天鹅的出现就足以颠覆一切。
“黑天鹅”的逻辑是:你不知道的事比你知道的事更有意义。
功能安全领域中系统性失效恰恰就是那些不可定量看不见摸不着的黑天鹅,在开发过程中系统性失效随着不规范的行为不经意间引入其中,这些不经意往往就是开发过程中最不重视的地方。关于自动驾驶未来可能带来的安全事故,在没发生前的那一秒,大家对自己开发的系统可能都会存在盲目的自信,不相信危害的存在,但是系统性失效有着一种必然属性,如果软件中存在系统性失效,在特定环境下满足触发条件,失效就会复现,可能酿造一场事故的发生。盲目是功能安全的劲敌,也是当下自动驾驶行业普遍存在的现象,“一切皆有可能”应该是自动驾驶开发中时刻应该思考的观点。功能安全这件事,最悲哀的就是它的发展史融合着血泪史,只有惨痛的事故才能成为功能安全发展的真正助力器,那些失去的生命才会警醒世人去真正重视安全。第二、坚持错误的状态不一定会有不好的事情发生,但改变错误的状态一定会付出很多代价,所以苟且选择“高性价比”的维持错误。下面假想一个场景,你是一个开发自动驾驶系统的相关从业者,目前需要按照功能安全开发流程去开发这款自动驾驶相关系统,并且需要做充分的功能安全分析与功能安全技术防护,这些功能安全流程和技术的添加会让你的工作量倍增,你需要详细记录输出你的每一步设计思想,追溯每一条设计需求,测试验证每一个软件分支与条件判定……如果不考虑这么多的功能安全措施,你可能半年就能完成这些工作,但如果加入这些功能安全的要求,你至少要1年甚至更长时间才能完成,并且会让你筋疲力尽,费力不讨好,这个时候你会如何选择?你是否能保证坚持初心将功能安全的每一步要求都落实到位,精益求精?下面再假想一个场景,未来已来,自动驾驶汽车变成人们主要的交通出行工具,你的家人正在乘坐一辆自动驾驶汽车在路上高速行驶,你是否希望这辆车真正做到功能安全?你是否会要求在各种复杂场景和失效的情况下都要真正确保你的家人安全?如果你的家人坐在一辆完全没有安全相关资质的自动驾驶汽车上你是否会有忐忑不安的担心?此时,你会不会发现自己“双标”了,两个场景下的真实选择在逻辑上出现了矛盾。面对自动驾驶的功能安全问题,“双标”是一种真实又普遍的“人之常情”,研发过程中如果能够多从用户的角度想一想,也许这个世界就会变得更加安宁与美好。每个人的知识领域都有其局限性,每个人都有疏忽大意的瞬间,每个人都不可能做到绝对的尽善尽美,所以需要流程制度去规避错误,而不能只依靠人的主观判定。自动驾驶领域,由于人才来自于各种不同的行业,有些完全没有做过功能安全级产品,所以完全没有安全意识,也不理解为什么要花费时间精力去搞流程搞文档,对于一些软件开发者,时常认为自己的代码天衣无缝。然而,根据卡耐基梅隆统计表明,即使高水平的代码,每百万行代码也会有600到1000个缺陷。对于自动驾驶系统,大量的代码更容易陷入缺陷的困境,一个缺陷在某种特定环境下可能引入功能安全或信息安全的风险,最终导致事故的发生。恰恰自动驾驶领域作为一个新兴的融合型人才汇聚地,不乏很多资深大咖,各自有着自己根深蒂固的思想行为方式和个人英雄主义情怀,而这些个人英雄主义,是酝酿未来不可接受风险的最危险因素。相信众人拾柴火焰高,自我的每一项输出都去接受众人的考量,才是确保产品安全和自我提升的最好途径。目前自动驾驶的从业人员90%以上没有功能安全项目相关经验,实际统计数字可能所占比例更高,所以一个团队里基本就靠零星的几个具有功能安全经验者去驱动无功能安全经验者,无疑是一种小马拉大车的现象,努力前行却力不从心,更糟糕的是可能随时受到无功能安全经验者的阻挠和反向拖曳。在任何一个功能安全相关标准中对人员资质都有明确要求,专业的人需要做专业的事,功能安全项目经验很重要,底线是一个项目团队里每个专业至少都有几名做过功能安全项目的人员作为带头人,而目前自动驾驶行业现状则是单纯靠一个功能安全经理或一个功能安全专家去驱动各个专业的人向着功能安全目标行进,各专业人员又都带有着各奔东西的个性,因此这种“小马拉大车”的模式可想而知有多艰难。小马拉大车的背后,显示着自动驾驶行业功能安全经验人才的匮乏,也许必然要经过时间的磨砺,才能让功能安全在自动驾驶领域真正走上正轨。安全级产品开发一般采用自上而下的传统瀑布式,而ICT,互联网产品更倾向于选择不断迭代的敏捷开发,当不同企业文化中成长的人员聚集到自动驾驶行业,这种思维冲击必然引发开发模式的纷争。瀑布式开发严格把项目分隔成生命周期阶段,采用里程碑方式定义每个阶段的输入输出,一个阶段完成后,输出必须满足要求才能开展下一个阶段的工作,开发过程强调文档的重要性,不同角色之间做到充分的信息记录与传递,这种开发模式是功能安全活动的有效载体,有利于功能安全的一步步的分解与层层把控。但是它的缺点是在开发中后期才能看到原型,如果出现返工,需要付出很大的时间成本和人力成本。敏捷开发的理念是快速迭代,不断拥抱变化的需求,开发具有灵活性。可以把客户关心的原型先做出来,在实际场景中去修改弥补不足。适用于需求不明确的项目或需要抢占市场的项目。它的缺点是开发过程中很难做到和功能安全的有效融合,在敏捷开发过程中文档一般只传递部分重要信息,更多的时候通过沟通传递信息,容易造成信息疏漏。并且不断迭代需求的过程对其他已有需求的影响评估关系到产品安全性。自动驾驶行业到底是采用瀑布式开发还是敏捷开发,这场纷争没有对与错之分,每种开发模式都有其独特的优势与劣势,对于走在时代前沿的自动驾驶技术来说,融合的开发模式才是最好的实现途径。采用瀑布式开发的系统布局和文档信息完整传递的特性,采用敏捷开发的实践经验,同步开展测试验证,提高开发的效率,并在流程中融合功能安全管理体系的要求,这种兼顾开发模式的探索也是才是未来自动驾驶开发的正确之路。对于自动驾驶技术,人工智能和机器学习的引入让功能安全在这些方面的安全性上束手无策,AI相关内容超越了传统功能安全的保障范围,成为目前功能安全的漏网之鱼。传统功能安全关注电子电气系统的失效防护,新兴的预期功能安全关注功能性能的不足与人为的误操作,似乎都无法覆盖AI算法的安全性,那么AI相关内容真的要凌驾于安全之外任由发展吗?答案一定是否定的。评价一个系统的安全性一定是遵循木桶效应,不是取决于最好的那方面,而是取决于最差的那部分,即使传统功能安全,预期功能安全我们都做到了一百分,而作为漏网之鱼的AI算法部分的一个错误就足以让一辆装载自动驾驶系统的车辆发生碰撞事故。目前自动驾驶行业现状对于AI的安全性度量还处于探索期,增加算法的对抗性训练,提高算法的可解释性,系统上考虑冗余算法设计……这些途径都是可深入探索的方法,距离最终的安全目标仍然任重而道远。自动驾驶时代下功能安全认证已经在逐步开展与推广,相信每个人都是发自内心的想让自动驾驶系统真正的安全,然而,想与做终归不是一码事。纵然期待着远方的高山流水海阔天空,眼前却是无法逃离的鸡毛蒜皮鸡飞狗跳。国内企业流行对产品或流程通过第三方机构进行功能安全认证,确切的说应该是功能安全评估加上一个证书。本身这是一个宣贯功能安全文化、保障系统功能安全性的好办法,然而,很多时候,在企业面对快速抢占市场的竞争局面中,证书就变成了一个鸡肋。既要作为竞争的宣传点,又不能拖了项目进度的后腿;既想把产品做的真正安全可靠,又不想花费太多精力将功能安全融入到细节里;这种矛盾心理是行业内普遍存在的纠结,在这种纠结的背景下,当下功能安全认证证书最大的作用就是一种广告效应。对于自动驾驶行业,初创企业风起云涌,活下来才是第一要素,貌似关于功能安全的那些诗和远方远远没有维持活下来的面包重要,所以在生存都将面临威胁的初期,能够考虑功能安全已经是难能可贵,不能再奢求尽善尽美。但是从长远的企业利益和成本效益来看,功能安全的投入是高回报高性价比的活动,只是它的回报周期较长,很多人会在中途看不到明显收益而放弃。另外,不是每个人都能够睿智的思考到企业未来五年的发展,十年的发展甚至更长久的发展,大多数都是停留在眼前的苟且,因此功能安全认证证书暂时作为一种广告也算是发展的必经阶段。也有一些人士对于功能安全认证这件事持不认可态度,尤其会举例某些国外的欧洲车企,自动驾驶企业可能并没有采用这样一种颁发证书的方式来证明产品的安全性。其实环境的差异造就了行为习惯的差异,在差异的条件下,不能采用一成不变的方法。国内企业采用功能安全认证的方式在国内的开发环境下是一种积极有效的功能安全策略,也是时代发展的必然结果。就像高考这件事情,有些人觉得通过一场考试决定未来的发展方向有失合理,但是如果没有高考,对于一个孩子的发展真的是好事吗?!同理,如果不采用功能安全认证这种方式去作为竞争的广告效应,那么在自动驾驶发展的路上可能更无暇顾及功能安全这些繁琐的要求,安全就失去了最基本的约束而变得自由缥缈。从这个角度来看,当下功能安全认证证书的广告效应并不是一件坏事,只是这应该是一个起点,而不是主流,慢慢将功能安全理念由表及里去渗透与执行,才是最终的目标。尽管自动驾驶时代下,功能安全目前的发展路线有点狂野不羁,但是聊胜于无。安全,作为自动驾驶的初心,也是未来自动驾驶的核心竞争力。自动驾驶技术市场的竞争日趋激烈,其实自动驾驶功能安全的竞争也势在必行,谁提前积累,谁就可以争夺一席之位,谁是青铜,谁是王者,时间会给出一个正确答案。