当前位置: 测量装置 >> 测量装置市场 >> 千亿级模型在离线一致性保障方案详解
导读:在模型的全链路测试过程中,模型的问题统一定义成广义一致性性问题,一致性问题也是模型稳定性的基础保障,落地到具体点上从维度上划分可以分为数据不一致、延时不一致、策略机制不一致、性能不一致等几个方向,在后果衍生上都会导致模型稳定性指标抖动,预估效果不符合预期,所以一致性测试在当前大规模机器学习的测试过程中有着非常重要的作用,但是在通常对于模型的测试方案也很难做到全局解决,其中也牵扯到效果和效率的折中。文章在一致性几个方面要做到核心节点的策略和效果重点保障,最大限度保障停更和回滚的发生,当前一致性方案在百度商业内部落地收益较好,在效果和效率上也做了很多的优化策略,整体方案满足业务线的需求。
全文字,预计阅读时间12分钟。一、背景与概述
点击率模型在广告检索阶段预估广告可能被点击的概率,在广告的排序、截断中起着重要的作用。
点击率模型分为在线预估和离线训练两部分,离线训练主要进行模型的训练和评估,在线预估主要是模型的应用和反馈。具体的在离线模型闭环链路如图1所示,线上点击和展现的广告数据到视图日志,经过反作弊系统和流式特征抽取后得到样本作用于模型训练,训练好的模型经过评估后应用到线上进行广告粗选和精选阶段点击率的预估,预估的点击率q值又作用于广告的排序、截断,进而形成完整的处理链路。
△图1:在离线模型闭环
但因为系统的复杂性包括特征工程、训练损失、存储精度损失等,导致在策略迭代中经常出现在、离线模型作用效果不一致,例如新增加的策略在离线训练阶段得到模型,该模型在评估数据中表现优异,但是在线上系统中的广告效果指标如点击率,千次点击展现值等方面不尽人意。
如图2所示,广告在线上预估需要经历:预估样本→线上特征集→离散embedding向量查询→离散embedding向量聚合→dnn网络计算→预估Q值,而在线下训练的时候也需要经历:训练样本→线下特征集→离散模型查询→embedding向量聚合→dnn网络计算→Q/模型。在q值计算的任何一个过程中出现差异,就会造成预估结果和模型训练的结果不匹配,影响模型的线上效果,进而影响广告的效果指标。
△图2:模型在离线完整处理流程
二、一致性保障的定义与目标
2.1一致性问题的定义
机器学习可以按照是否有标记划分为监督学习/非监督学习,广告的点击率预估问题属于监督学习中的排序问题,这也是互联网中常见的一类学习业务。分类学习迭代过程的基本步骤如下图,每个方框表示一种数据形态,图例中给出了每个字面代表的含义,其下标表征了数据的上游来源及版本。
△图3:分类学习机制
步骤1展示了训练过程:训练集经过特征抽取和训练过程产出了模型,在步骤2的评估阶段使用训练产出的模型,并输入未进入训练集的样本进行预估,从而评估该模型的效果。当评估的模型指标符合预期时,便会将该模型应用于进行线上的预估(步骤3),预估后的值又应用于具体的问题(步骤4),而应用后又会产生新的训练集,回到步骤1。
模型的不一致问题可能出现在2.1介绍的分类学习迭代过程中离线训练、离线模型评估、在线预估、特征抽取、预估应用的任何一个处理步骤中,概括起来主要包括数据一致性和处理逻辑一致性两方面。
数据一致性包括样本一致性和模型一致性,这里所说的样本一致是逻辑上的,不是说训练、评估、预估使用完全相同的样本数据,而是指相同的输入数据集在经过这几个阶段处理后的值一致;模型的一致性是指离线训练后产出的模型和线上预估使用的模型转换精度在预期范围内,这块的一致也是指逻辑上的,因为离线训练后的模型到预估系统的加载会经过离线离散模型→中间态压缩数据→线上加载的离散模型这三种状态,经过部分特征的过滤和精度的转换,会存在预期内的损失。
如下图4所示:
△图4:数据一致性
保持数据一致后,处理逻辑一致同样重要。如图5圈出的部分,逻辑一致包括步骤1-3中特征抽取的逻辑一致以及产出的模型在评估、预估的使用逻辑匹配。
△图5:逻辑一致性
特征抽取的逻辑一致是指相同的输入数据经过特征抽取库后,产出的特征签名一致。而产出模型的预估、评估逻辑一致主要是通过保证模型使用逻辑一致进而保证模型效果。分类学习中一般的假设函数为:y=H(w.x)
其中y是学习的目标输出,x是特征向量,w是特征的权重向量,H是特征和目标值之间的计算函数,不同的业务模型就是对应不同的H求解的过程。而模型的训练过程就是已知y和x,最小化误差函数获取得到w的过程。评估和预估都可以看做是已知输入x、模型w求解计算y的过程,因此保证计算逻辑一致是确保模型应用效果的重要措施。
值得一提的是,数据一致性和逻辑一致性也是互相影响的。任一阶段的处理逻辑不同,会导致下一阶段的输入数据不同;处理逻辑匹配,输入数据不同最终输入的q值也不一致。因此,保障模型数据和逻辑处理的一致性是保障模型健康迭代的关键步骤。
2.2一致性问题的目标
根据一致性问题的定义,可以确定一致性工作开展的3个目标:
验证不一致是否存在,用于判断当前模型系统的迭代更新是否健康;
定位不一致产生的原因,试图解决不一致问题的关键步骤;
评估不一致对系统所产生的影响,评估不一致问题修复的成本和取得收益的依据。
如何针对上述的目标进行一一验证呢?可以采用补充校验流的方式。
如下图6所示,当P1预估集预测出的Qp1作用于策略,产生新的训练集T2后,我们可以使用T2来代替评估步骤中的E1,作为补充流的输入:
△图6:补充校验流
预估过程可代表在线下同的数据和逻辑流,附加的校验流可以代表离线系统的数据和逻辑流,并且,由于统一了预估和校验的输入(T2理论是P1的子集,P1是全部预估结果,T2是展现点击之后的数据)。将目标验证和实际的处理阶段对应起来,模型一致性问题的验证内容转化为:
在离线样本T2和P1的内容是否一致;
在离线样本的特征抽取结果Fp1和Ft2是否一致;
在离线样本使用的模型Mp1和Mt2是否一致;
在离线样本加载相同模型最终预估输出的结果Qp1和Qt2是否一致。
三、技术方案
3.1全链路一致性方案
点击率q的计算分为多个步骤,以其中一个q为例,其处理步骤如下图7所示,主要包括参数解析、特征抽取、离散embedding向量查询、dnn网络计算、隐层信息写入、结果填充等多个操作算子,不同的操作算子之间串行执行,后一个算子的执行依赖于前一个算子的输出。
△图7:预估处理步骤
我们考虑预估所经历的整个过程,采用归一变量、逐步替换的方式覆盖预估的每个环节,来对比是否有不一致,以及寻找不一致出现的位置和原因,由于离散模型数据的量级在TB级别,直接对比数据diff的方式不可行,我们也通过对比输出q值的方式来间接评估使用的模型是否一致。首先对下图8中每个部分的具体含义进行解释:
online_fea线:上特征抽取后输入预估的样本;
offline_ins:用于训练的离线样本;
offline_table:离线训练后存储的离散模型,存储不同特征对应的历史点展向量;
mid_
转载请注明:http://www.aideyishus.com/lkjg/4028.html