机器学习训练算法比较复杂,往往需要分布式进行,但是训练出来的模型进行预测相对简单很多,一般是单个节点装载整个模型,可以同时有多个预测节点,每个都装载整个模型,从而进行多路预测。很多不依赖模型的数据预处理算法也是这种模式,单个节点可以进行完整的操作,多个节点可以并行处理。
使用我们的算法组件直接对批式的数据或者流式的数据进行预测,用户也希望我们能提供 SDK 的方式,即,由参数或模型数据直接构建一个本地的 java 实例,我们称之为 LocalPredictor,可以对单条数据进行预测。这样的话,预测不再必须由 Flink 任务完成,可以嵌入到提供 RestAPI 的预测服务系统,或者嵌入到用户的业务系统里。
本文将以中文情感分析场景为例,介绍 Alink LocalPredictor 的具体使用方法。关于如何建立 Pipeline 及训练出 PipelineModel,读者可以参阅下面这篇文章:
在上面的示例中,模型训练完成后直接用之进行预测,在一个任务中完成,没有进行模型保存。我们需要进行模型保存操作,以便在另一应用中的 LocalPredict