1.4 实时是个“万灵丹”
成长会解决一切问题。如果一个企业正在飞速成长,大家步调一致、同心齐力,那么内斗或管理混乱等问题将是难以出现的。而当企业的成长受到了制约,停滞不前的时候,往往就会出现众多非技术性原因造成的悲剧。
我们强调机器学习的实时性,就是为了保证应用机器学习的企业能够利用机器学习的资源大踏步向前,而不会被早早地制约,徘徊不前。机器学习就已经够有挑战性的了,为什么还要采用实时机器学习?根据我们的经验,实时机器学习上马应该越早越好,原因具体有以下三点。
1.实时架构稳定性可以得到保证
Fail fast(快速失败)强调如果有问题,那么应让问题尽早出现,使得问题可以得到尽早修复,这是软件工程里面一个重要的思想。如果系统有问题,就应该让问题尽早暴露,而不是往后拖。实时机器学习架构强调连续运行,设计、实施中的任何问题一般都可以在部署上线后的几个小时内暴露出来,以及时得到更正。
非实时架构往往会在每天的某一个固定时刻进行数据处理、建模等工作。如果前一天开发人员部署了问题程序,到了第二天运行的时候才发现,打好补丁就到了第三天,然后验证补丁是否正确又到了第四天……在流程的反复中,宝贵的时间就这样浪费下去了。
- 代码、架构质量可以得到保证
与非实时架构不同,实时架构设计假设数据是无限量连续到来的。这时候系统的设计和开发必须从一开始就设计好全局步骤,而不是走一步算一步,由此可以大大提高架构设计的质量。与此同时,连续交付的要求需要代码能够事先考虑到所有边际情况,这样我们所得到的代码质量也会更高。
3.数据驱动的组织文化可以得到加强
由于机器学习具有实时性,因此所有有关业务效果的讨论都可以基于实时数据,而不是凭空根据大佬的主观臆断。与此相对的,没有采用实时机器学习的组织往往只会定期手动进行数据分析,得到真相的速度大大减慢,不利于商业决策的正确执行。另外,非实时架构企业的数据处理往往会经过相关人员之手,数据的原始性和真实性很难得到保证,最终用户拿到数据的时候,数据可能已经失去了使用的价值。