4月14日早晨起来看微信,相信不少美国华人都接到了一个类似下面这样来自国内的问询:
美国这个单日增加十万确诊病例的数据的确很吓人,而且是在中外各大媒体上报道过的了,而且正如我在第一时间感觉的那样,是数据搞错了。
错误的原因首先被一个推特用户指出了。
原来的佛罗里达州的原始数据录入中,有两个数据点,102和103,中间少了一个逗号,变成了一个数据点,被数据更新和作图的电脑程序无差别读取,一百出头的新增病例,就这样变成十万。

不过这个眼尖的推特用户还是犯了一个错误,他把手指向了约翰霍普金斯大学(JHU)的疫情追踪网站。其实,JHU虽然被全球的媒体视为最权威的发布者,但还不是真正的源头。微信上有一家自媒体微信公众号叫“一亩三分地”的,在发布北美的疫情数据方面,工作做得最早最成熟,所以连名气大得多的约翰霍普金斯都从他们处获取美加的信息。
正是“一亩三分地”在佛罗里达的志愿者,在4月13日少输入了一个逗号,这个错误被JHU拷贝,然后被全球的主流媒体给传开了。


后来“一亩三分地”发了一篇文章解释这个错误,令人钦佩的是,从这个错误的发生,到被确诊,再到被修复,只花了他们12分钟的时间。那么问题就来了,这个手工输入错误的“病毒”,怎么会在12分钟这样一个短短的“潜伏期”窗口里,一下子就传染全世界呢?
现今我们大都熟悉一个名词叫“全球产业链”,说的是世界工业生产的原料供应,零部件生产加工,终产品组装定型,到最后的物流销售,是全世界一条龙的网络化服务。类似的,在世界信息技术高度发达的今天,我们也有一条全球信息链和数据网在幕后悄然涌动。JHU或者其他的疫情新闻网站,可以直接写python程序随时从一亩三分地的接口抓取数据,其他机构也以依次照办照抄JHU,所以就把一个本来很小的错误在全球范围内扩大了。
“一亩三分地”网站一个志愿者敲键盘的手指抖了一下,结果让约翰霍普金斯打了一个喷嚏,然后全世界都感冒了。计算和信息技术把我们的世界给变小了
现在由于疫情困在家里闲着没事,我们不妨脑洞大开想象一下,如果没有计算机程序的自动化,这世界将会变成怎样? 
不编程序的话,疫情数据的统计肯定需要更多的志愿者,不过大家心算加手算,小错误虽然避免不了,一百变十万这样差之毫厘谬以千里的错误,反而不容易发生了。因为,计算机程序看到102013这样一个大数字,会无动于衷地继续读取叠加;而人眼看到这个离谱的数字,会首先问一下自己,佛罗里达一个州的病例就日增10万,这有可能吗?
疫情统计毕竟是一个计算量很微弱的工作,那我们就把脑洞开大点,聊点难算的。多年前看过一个电影叫《横空出世》,讲的是50-60年代邓稼先博士领导研制原子弹的故事。核武器设计的理论计算涉及海量的对数运算,而当时中国自己研制的第一代计算机每秒的运算速度才几十次,所以居然只能依赖人工手算。电影里的一个镜头是,为了验证一个苏联专家给出的设计参数,一个大屋子里上百号科研人员,集体挥汗如雨地打算盘
邓稼先(中)和杨振宁

当然电影有戏说的成分。实际情况是要把对数计算分解近似成加减乘除的四则运算,还有三角函数。算盘在这个大工程中的确立了功,但未必是主角,真正的功臣是一种叫做“计算尺”的神器,也需要手工操作。一个大的计算任务被分成小模块承包给给每个人,团队形成班组,三班倒连轴转,在计算尺上旋转位移出底层的结果,然后逐级向上汇总叠加......
这种人海手算的效果如何?电影中李幼斌扮演的邓稼先,手里拿着用尺子比出来的和算盘拨出来的原子弹参数,恍然大悟:原来苏联专家用计算机算出来的结果是错的。
而且,中国最后也搞成了两弹一星。
不过,稍有科技和企业管理常识的人都知道,这样愚公移山的精神固然励志,却并没有可持续性。现代的科研和工程项目,需要的是准确高效,更重要的是:快速可重复性。假如,在原子弹复杂参数里,要是随便换一个条件,上百科学家就得多打一个月的算盘。所以,进入了60年代,在两弹一星中联合攻关的中科院不同单位,就开始为国家那点有限的计算机资源而抢得不可开交了。
回到今天,疫情的数据日新月异,“一亩三分地”的系统管理员,肯定更愿意简简单单地按一下电钮,计算程序自动运行,从数据汇总,报表作图,到网站更新一气呵成,而不是大家伙每天通宵达旦地按计算器加数。
在数据分析和信息管理的自动化和程序化上,美国一向是最领先的。1958,就在邓稼先领中国核武器研制团队集体打算盘的那一年,美国海军出了一位数学和工程方面的女杰,名叫Grace Hopper,已经设计出了一种高级计算机语言的雏形,后来演化成历史上第一个得到大规模应用的面向商业的计算机语言,简称COBOL。
60年后,COBOL这个当年领技术潮流的新锐,已经成了七老八十弯腰驼背的计算机语言老古董了,可它几天前居然还上了各大主流媒体的头条。各中原因是,由于疫情带来的经济危机,造成失业率的飙升,成千上万的人在短短的时间内登录各州的失业保险注册网站,流量太大一下子就把网站给瘫痪了。系统管理员就有点懵,因为类似失业保险和社会福利数据库这样的大型政府信息系统,大部分还运行在IBM老掉牙的大型机上,靠COBOL程序来驱动。如果要修复,就必须有合格的COBOL程序员,但问题是这样的人已经不多了!
所以,新泽西的州长有一天在疫情吹风会上紧急呼吁:希望有COBOL编程经验的程序员速来当志愿者!
COBOL尽管老迈,根据近年的一份调查报告,现在世界范围内仍在服役的COBOL程序数量是:
2200亿行!
43%的银行系统的基本数据构架依然是COBOL写成。随便某一个人刷一下银行提款机,他有95%的机会会在银行内部的数据交互系统内激活一段COBOL代码。
因为在半个多世纪之前的60-70年代,美国的政府和工业界对信息技术就已经重视到了迷恋的程度,当年,就象Fortran语言在学术界的霸主地位一样,COBOL几乎是工业界计算语言的唯一选择,所以它构成了美国金融银行业和政府部门庞大而精细的信息系统的基石,也是美国工业实力称雄世界的标志之一。
不过,在享受半个多世纪的自动便捷高效的IT红利之后,如今疫情和经济危机暴露出来的COBOL危机,就凸显了过度仰仗IT技术的一个重大问题:系统的依赖性的脆弱性
COBOL语言的老化,政府和商业不愿意花钱更新系统,以及COBOL程序员的紧俏甚至断代,都体现了这个严重的依赖性
而在新冠数据的统计中,一个志愿者错失了一个小小的逗号,就全面颠覆了美国疫情的分布,甚至让整个世界陷入了一个短暂的震撼之中。这显示了全自动化数据链在带来高效便捷的同时,它内在的脆弱性
计算系统脆弱性的最好例证,大概就是一个20多年前一个著名的所谓“千年虫”(Y2K)问题,也许读者中年轻一点的都没印象了。那是在计算机语言和存储系统处于雏形状态的50-60年代,程序员决定只用年份的最后两位字节存储年份,这样做法的一个后果,就是当时钟跳入千禧年2000,计算机系统时间就会变成00,和1900年无法区分了,这会对银行金融系统的运作产生灾难性的打击。一时间,IT界人心惶惶好像末日要来临,让局外人颇为不解。因为,能上九天揽月下五洋捉鳖的神奇IT界,难道会被一个简单的年份转换给掀翻了?好在,由于未雨绸缪得早,政府和工业界在千年虫上砸了一千个亿美元更新代码,才算有惊无险地度过了世纪之交的夜晚。
在美国生活多年的人,也许有一个印象,美国的信息自动化程度,在发达的领域是特别的发达,而在其他领域,却落后得好像是原始社会。一个明显的例子是美国的投票统计系统。
2000年美国总统大选后选票重数中,一位法官在确认选票

我在美国投票的过程是这样,先跑到镇政府的的选民登记处登记,投票那天来到投票点,接待人员是一位颤颤巍巍的志愿者老太太,她戴着老花镜从选民登记花名册中找到我的名字确认后,选民进入投票机投票,每个投票点的票数的投票机自动叠加的(这是整个过程中唯一自动的一步),然后每个镇把票数汇总到郡,郡再汇总到州。此外还有邮寄选票之类的缺席投票渠道。
可以看出这是一个非常缓慢繁杂低效的系统。如今,疫情下大家尽量不出门不和外人打交道,那么这种现场投票的方式是否会降低投票率呢?要知道,上次美国总统大选中只有一半多一点的适龄选民投了票,远远低于其他发达的西方国家。在技术如此发达的今天,远程办公视频开会如家常便饭,我们也许可以想象这样一种投票方式:全国选民足不出户,直接在手机上按键,如选特朗普请按1,选拜登请按2,然后把短消息发给全国计票热线就行了。如此方便,美国人民的投票率也许就高了。
在现代计算能力下,统计一亿多张选民短信自然是易如反掌,但是这种快捷方式存在内在的脆弱性。比如,如果码工写错了程序怎么办,系统崩溃怎么办,外国势力黑客攻击怎么办,现总统为了长期执政而篡改系统怎么办。任何一个小差错,都可能让世界上最强大的国家陷入长期没有合法元首的混乱局面,不敢冒这个险。
我上面描述的投票过程,仅仅是我所在州的程序,而美国50个州的规定其实还各不相同,是50个独立的运作实体,所以这是一个分布式的发散体系。固然效率低下,零星出错甚至作弊的消息经常出现,但是一夜翻车彻底崩盘的可能性也比较低,也就是说,“容错”能力尚好。
技术的发展如何兼顾效率和风险?现代企业管理中的质量控制过程(质检,QC,Quality Control)给出了答案
再拿“一亩三分地”的那个录入错误来当例子。在全自动化的计算环境中,手工错误往往是最难检测的,工业界也没什么好法子。比如新药研发中的临床数据录入,因为患者人命关天,必须保证数据的万无一失,如何QC呢?既然一个录入员不能完全信任,我们就用两个录入员同时工作,这叫Double Data Entry,让然后由电脑程序自动对比两个人独立输入的两套数据,如果发现任何不一致处,两个录入员再坐下来核对。这其实是一种没有办法的笨办法,但是能基本杜绝漏一个逗号而让新增一百变成十万的乌龙。
这种确保质量的重复性质检手段,它的缺点也是明显的,那就是人力加倍,成本加倍,耗时加倍。在对付象新冠全球大流行这样的紧急事件中,有时也会误事。
比如,在今年2月份,就在新冠病毒在西雅图的社区内悄悄传播的时候,美国的公卫部门对此一无所知。而西雅图当地的学术机构,却依据最新的病毒分子进化分析,意识到了这一点,他们急于投入到病毒检测的大会战中,却遇到了FDA冷冰冰照章办事的质检要求:
任何试剂盒必须在5份已知阳性病毒样品中得到重复确认。
如果是现在,美国的确诊病例已超过一百万,从中找5份当阳性对照是一个再合理不过的要求了。但是在两个月前,美国的病例还很少,到哪去找这5份确诊样本?于是科学家们只能各显其能,通过个人关系向自己的欧洲友人同事去求救,于此同时,整个国家只能依赖CDC推出的有缺陷的测试方法,这是美国在病毒测试上延误的开始,一步错步步错,直到今天也没跟上。
以上说的是病毒的核酸测试,FDA栽了跟头。不过好在还有抗体检测让他们有机会扳回一城。于是进入3月和4月以来,研发抗体试剂盒的厂家机构多如牛毛,FDA却当了甩手掌柜,完全不审了,随便他们上市。这也引起了媒体和反对党的质疑,因为完全不在质检上接受审查的测试,上市快倒是快了,质量问题,假阳性也可能很多。最近出了很多劲爆的报道,比如说波士顿三分之一的居民很可能都被感染过新冠了,加州一个郡的新冠实际感染率是已知的100倍,等等,其实很可能是抗体检测质量不过关的问题。
FDA仰天长叹,做人好难!
除了测试之外,口罩防护服之类的医护防护用品的短缺,也是美国当前控制疫情的瓶颈。这些产品虽然没有IT技术和分子检测高端,但也有一个QC和质检的问题。稍有不慎,就会弄得顾此失彼。
中国在国内稳定住了疫情之后,其医疗防护用品成了全世界的抢手货。但是很快世界各地有传来中国产品质量不过关的消息,有人骂有人笑,严重影响了“中国制造”的声誉。所以中国采取了任何一个厂家都会采取的补救行动:出口管制,加强质检。
在当前这个各地都缺货的节骨眼儿上,这个决定也是一把双刃剑,因为它固然打击了假冒伪劣,也让正常供应链大大减慢了。所以很多人都嘀咕:中国此举无异于给危重病人拔管子。于是,在中国宣布加强管制两个星期后,美国一组跨党派的参议员给中国驻美大使崔天凯写信建议:放松管制,以解燃眉之急。
中国仰天长叹,做一个负责任的大国好难!
70后这一代人会有这样一种福利,我们见证了计算和信息技术从呀呀学语的婴儿阶段成长为一个顶天立地巨人的全过程。
十几年前,我做过一个项目,是给某个药厂的一个药做数据整合工作。我们需要把他们从1982到2002年之间20年中做过的十几个药物人体试验数据,整合成一个数据库。我在审一个最早的数据集的时候,发现病人的过敏评分的平均值都是整数,连一个小数点都没有。对此,我们客户是这样解释的,在那个年代,磁盘的空间非常宝贵,存储小数磁盘就不够了,所以就四舍五入取整数了。
我们前面提到的千年虫问题,那也是在电子信息存储初创阶段,如果用四个字节来代表一个年份,那就实在太奢侈了,为了节约存储空间,就用最后两个字节代表年份,所以当时钟进入了2000年,就和1900年分不开了。
那么人类现在的存储能力如何呢?如今记录全中国14亿人民时时刻刻的动向位置的全球定位系统数据,都在股掌之中,跑一个程序就可以算得清清楚楚。在追踪病例,切断传染方面,这样的大数据起了决定性作用。武汉封城的前夕,上百万人“逃离”武汉,扩散到全国各地每一个角落,好像很难追踪,其实一查他们的手机全球定位信号,就能让这些人无藏身之地。
在互联网诞生的初期,我们都害怕打开图片多的网页,因为那在当时被认为是数据量太大,网页下载奇慢。后来,网上出了视频,但如果是听歌的话,你宁可听音频也不愿意打开视频,因为视频的文件比音频大一个数量级,放起来会断断续续的。可是现在存储视频的能力呢?
根据2017年初公安部的统计,中国境内有4亿个摄像头,而且国家还有上百亿的安保计划,准备到2025年摄像头数目增加到二十多亿,也就是平均每个中国人被两台摄像头盯着
。这些海量视频文件都会被储存在公安部的云端,大数据外加顶天的图像识别算法,据说能极大地提高犯罪的破案率,改善社会治安。在新冠的时代,这样宏伟的系统,也必将在监控社会流动和控制疫情的战役中大放光彩。
我毫不怀疑,这些巧夺天工惊天动地的技术和算法,都经过了严格的质检步骤,对罪犯和感染源精准打击的能力不容怀疑。但是,公民的隐私如何保护?如何防止能监控管制14亿人的强大系统被恶意势力所滥用和绑架?这些都早已超出了一个”质检“所能管辖的范畴。
一个小小逗号的缺失,能让美国确诊病例日增十万的“谣言”在分钟内传遍全球;类似的,一段短短程序中几个字符的腾挪变换,也能足矣让人类瞬间面临万劫不复
参考资料

https://abcnews.go.com/Politics/fda-regulate-antibody-tests-democrats/story?id=70341022
https://www.cnn.com/2020/04/08/business/coronavirus-cobol-programmers-new-jersey-trnd/index.html
https://www.nytimes.com/2020/03/10/us/coronavirus-testing-delays.html
https://www.boston.com/news/coronavirus/2020/04/25/boston-coronavirus-cases-neighborhood
https://www.reuters.com/article/us-heath-coronavirus-usa-china/u-s-appeals-to-china-to-revise-export-rules-on-coronavirus-medical-gear-idUSKBN21Z07G
https://www.ft.com/content/f3435779-a706-45c7-a7e2-43efbdd7777b
https://www.newshub.co.nz/home/new-zealand/2020/04/coronavirus-fears-china-will-turn-off-the-tap-and-halt-ppe-exports.html
https://www.delawareonline.com/story/news/2020/04/18/bipartisan-group-u-s-senators-say-blocking-critical-high-quality-medical-products-reaching-united-st/5158780002/
扫码关注我们
扫码关注我们
继续阅读
阅读原文