1.5 实时机器学习的分类
按照实际应用中采用的方式不同,实时机器学习可以分为硬实时、软实时和批实时三种模式,下面将分别进行介绍。
1.5.1 硬实时机器学习
硬实时的定义是:响应系统在接收到请求之后,能够马上对请求进行响应反馈,做出处理。硬实时机器学习的主要应用场景是网页浏览、在线游戏、高频交易等对时效性要求非常高的领域。在这些领域中,我们往往需要将相应延迟控制在若干毫秒以下。对于高频交易等场景,更是有不少计算机软件、硬件专家,开发出了各种专有模块以在更短的时间内完成交易,获得超额利润。
在本书写作之时,计算机网络的传输速度仍然是响应延迟的一大主要因素。硬实时机器学习的响应架构往往会试图尽量减少请求处理过程中的网络传输步骤。与此同时,为了达到硬实时的要求,在请求突然增加的时候,往往会采取负载均衡的方法,靠增加服务器的数量来减少响应延迟。
1.5.2 软实时机器学习
软实时的定义是:响应系统在接收到请求的时候,立即开始对响应进行处理,并且在较短时间内进行反馈。软实时机器学习只要求系统立即对请求开始进行处理,最后处理完成所消耗的时间比较少,但是要求不如硬实时严格。软实时机器学习的主要应用场景是物流运输、较为频繁的数量金融交易等领域。例如某物流企业在接到订单之后需要对运输时间、物品风险进行预估,其中需要和多个系统服务进行交互读取,这个时候我们需要系统能够实时地做出处理,但是处理结果可能需要经过数秒才能得到。
由于软实时机器学习对响应延迟的要求有所放松,因此往往会在处理架构中加入分布式队列这一组成部件。处理的任务会被实时地传输到分布式队列中,而后端的处理程序能响应式地对任务进行处理。与此同时,在请求增加的时候,可以通过分布式队列缓冲到达的任务,也可以通过负载均衡的方法增加处理单元,以保证低延迟。
1.5.3 批实时机器学习
硬实时机器学习和软实时机器学习都是针对具体的单个事件进行处理。与此相对应的,批实时机器学习是指对成批到达的数据进行实时的处理。批实时机器学习的应用场景往往处于后端机器学习模型的训练和数据处理加工上。通过实时训练的模型将会被部署到硬、软实时机器学习架构中,对数据进行处理。
由于批实时机器学习需要对一定时间窗口内的所有数据进行处理,因此批实时机器学习架构中往往也会有一个分布式队列,对时间窗口内的数据进行缓冲和加工。在数据流向增加的时候,可以通过加大分布式队列的容量,提高分布式队列的处理能力;也可以通过增加处理单元的方法来提高处理能力,以保证低延迟。