写代码,有 Bug 很正常,谁还没写过几行 Bug 呢?
为了避免 Bug 导致的损失,上线前需要做好充分的测试,这也是公司时常教育我们的话:对上线持“敬畏之心”。
尽管如此,很多产品的 Bug 依然存在,需要用户买单,体验上的 Bug 还好,但有些产品所产生的恶劣 Bug 甚至会伤人,甚至危害生命。
比如,1985 年到 1987 年间,由加拿大 AECL 公司开发的 Therac-25 放射线疗法机器在软件互锁机制上出现了 Bug,从而使辐射能量变成了正常剂量的 100 倍:
最终,至少有 6 名来自美国和加拿大地区的患者由于遭受过量辐射而意外死亡。
部分内容转自:机器之心 | 编辑:Jack Cui
这是早年的事件,但最近也发生过 Bug 导致的伤人案例。
据俄罗斯通讯社塔斯社报道,在上周的莫斯科国际象棋公开赛上,一个国际象棋机器人折断了一名 7 岁男孩的手指。
事发现场的视频显示,机器人在拿走了男孩的一个棋子后,突然扑了上来,似乎是对男孩针对自己上一步落子动作的「快速反应」感到不安。
图片素材来源:Baza
俄罗斯国际象棋联合会副主席 Sergey Smagin 分析,机器人做出这个动作的原因可能是男孩没有等待机器完成移动棋子的动作,而是选择了快速反击。
「(人机对战)有一定的安全规则,男孩显然违反了这些规则。当采取行动时,他没有意识到首先应该等待」,Sergey Smagin 表示「这是一个极其罕见的案例,是我印象中的首次。」
男孩的手指被机械臂捏了几秒钟,随后一名女性工作人员和三位男性工作人员冲进来,将其解救并带离现场。
图片素材来源:Baza
「机器人折断了孩子的手指,这很糟糕。」莫斯科国际象棋联合会主席 Sergey Lazarev 表示。
Sergey Lazarev 对事故原因则有不同的理解,他称孩子「做了一个动作,之后我们需要给机器人时间来回答,但男孩匆匆忙忙,机器人抓住了他」。他说,无论哪种方式,机器人的供应商都「必须重新思考」。
在国际象棋机器人的案例中,设备似乎只是为了识别和移动棋子而设计的 —— 而不是对其游戏区域中出现的人手做出反应。
更准确的说法是机器人的设计者违反了安全规则,创造了一种可能无意中伤害人类的机器。增添一些基本功能可以防止事故发生,比如在棋盘上方放置一个摄像头,如果框架中出现异物,则禁用机器人的运动功能,或限制机器人手臂可以输出的力度。
Sergey Lazarev 告诉塔斯社,这名 7 岁男孩的手指打上了石膏,似乎并没有因为这次袭击而受到太大的创伤。「孩子第二天就开始比赛,并且完成了比赛,志愿者帮助他记录动作。」
这名男孩可能是幸运的。随着机器人变得越来越复杂,先进的模型不仅能够与人类互动,而且能够与人类积极合作,但大多数机器人只是重复相同的基本动作 —— 抓、移动、放下 —— 既不知道也不关心人们的介入。
根据 2015 年的一项研究,在美国,每年都会有人因工业机器人事故失去生命。根据美国职业安全管理局的数据,自 2000 年以来,大多数涉及机器人的职业事故都造成了死亡。
Robert Williams 被广泛认为是第一位受害者,他 在 1979 年于福特密歇根生产线上被一个重达 1 吨的机器人手臂压到以致死亡。2015 年,一个机器人在大众汽车的一家德国工厂致使一名 22 岁的承包商死亡,原因是抓住他并将他压在了金属板上。
在 2008 年至 2013 年期间,用于医疗手术的机器人也导致了 144 人死亡。2018 年的亚利桑那州,Uber 自动驾驶汽车以 40 英里每小时的速度撞上了 49 岁的路人 Elaine Herzberg ,致其死亡。
一般来说,人为错误或人类对机器人的运行过程缺乏理解是最常见的事故原因。因此,谨慎地面对机器人是有必要的,即使只是与它下象棋。