一、问题
模型服务平台的排序请求出现较多超时情况,且不定时伴随空指针异常。
二、问题发生前后的改动
召回引擎扩大了召回量,导致排序请求的item数量增加了。
三、出问题的模型
基于XGBoost预测的全排序模型。
四、项目介绍
web-rec-model:模型服务平台。用于管理排序模型:XGBoost、TensorFlow、pmml…召回模型:item2item,key2item,vec2item…等模型的上下线、测试模型一致性、模型服务等。
五、一次排序请求流程
1、如下图所示,一次排序请求流程包含:特征获取、向量获取、数据处理及预测。以上提到的三个步骤均采用多线程并行处理,均以子任务形式执行。每个阶段中间夹杂这数据处理的流程,由主线程进行处理,且每个阶段的执行任务均为超时返回,主线程等待子线程任务时,也采用超时等待的策略。(同事实现的一个树形任务执行,超时等待的线程框架)
2、特征数据闭环:该步骤为异步执行,将排序计算使用到的特征及分数,模型版本等信息记录。后续作为模型的训练样本,达到特征闭环。
3、一次排序请求中,特征获取及向量获取为网络IO(IO密集型任务),超时可直接响应中断,线程可快速返回。数据处理及模型为计算步骤(CPU密集型任务