机器学习的服务模型在不断更新,新模型通常比旧模型更准确。但整体准确率的提升,有时仍然伴随着特定情况下的性能回退。这可能会让用户感到困扰,尤其是在某些性能回退会对后续流程产生连锁影响时。例如,一个虚拟对话代理可能在对话早期对用户请求的理解出现性能回退,从而打乱后续的对话流程。
在提交给今年计算语言学协会会议的一篇论文中,我们描述了一种在自然语言处理领域实现无性能回退模型更新的新方法。该方法使我们能够构建不仅准确率更高,而且能持续保持旧模型正确分类结果的新深度神经网络模型。论文包含两部分:模型更新性能回退的研究以及缓解该问题的方案。在研究部分,我们使用了基于BERT语言模型的公共基准模型,并在通用语言理解评估框架的七个不同NLP任务上对它们进行训练。然后,我们通过使用不同的模型参数或更强大的BERT模型来训练更新后的模型。我们发现,即使整体性能在重新训练后有所改善,仍有1.9%到7.6%的输入案例会出现性能回退。
为了缓解性能回退,我们将匹配过去表现的问题构建为一个约束优化问题,然后将其松弛为可通过知识蒸馏来近似解决的问题,即在正确的情境下鼓励新模型模仿旧模型。这项研究是“优雅AI”近期工作的一部分,即构建不仅准确、而且更透明、更易解释、与其前代模型更兼容的机器学习系统。我们相信,最小化性能回退的模型更新,是构建能够持续改进并优雅演化的成功机器学习服务的关键基石。
NLP模型中的“性能回退”漏洞
在我们的研究中,我们通过负翻转率来衡量模型更新中的性能回退,即旧分类器预测正确而新分类器预测错误的案例百分比。对于拥有数千万用户的服务,我们所测量的NFR规模将转化为数十万用户的不良体验。当性能回退达到这种规模时,通常需要进行耗时且广泛全面的错误分析和模型修补。
我们的研究表明,在更新后的模型中,NFR通常比总准确率增益高出许多,高达两到八倍。这意味着仅以提高更新模型的准确率为目标,并不能确保减少性能回退;换句话说,提高准确率和最小化性能回退是相关但独立的学习目标。最后,我们还发现,即使是微小的改动,例如使用不同的随机种子,也可能导致性能回退率的显著变化,这是任何缓解策略都需要考虑的因素。
如何缓解性能回退
无性能回退模型更新要求模型既要学习目标任务,又要遵守旧模型提出的条件,这使得它成为一个约束优化问题。我们将硬约束松弛为一个软不等式条件,并提出一个代理指标来替代NFR:一个使用Kullback-Leibler散度的连续度量,该度量作用于新旧模型的预测logits上。这样,我们就可以将约束优化问题近似为优化一个结合了分类损失和知识蒸馏惩罚的联合目标。
在评估我们的方法时,我们使用了两个基线模型。一个是传统方式更新的模型,未做任何控制性能回退的尝试。另一个是包含原始模型和更新模型的集成模型;该集成模型的最终分类是两个模型输出的组合。
我们的结果显示,当更新涉及改变语言模型时,我们的知识蒸馏方法最有效,将平均NFR降至2.91%,而集成模型为3.63%,传统更新为4.57%。同时,我们的模型比两个基线模型都要略微更准确一些。
我们还使用CheckList协议评估了我们的模型,该协议通过设计用于引发不同类型行为的不同输入数据类别来评估NLP模型的性能。我们发现,蒸馏方法可以有效地减少几乎所有类型行为测试中的性能回退,这意味着我们的蒸馏方法实际上是在将新模型的行为与旧模型对齐,而不是在少数特殊情况下走捷径。
当更新仅涉及不同的随机种子,而不改变语言模型时,集成方法的效果优于我们的方法,这出乎意料。这可能是因为集成模型自然地减少了输出方差,使其不易过拟合,从而可能减少性能回退。
根据我们初步研究的结果,我们假设单模型方差可能是随机种子选择的函数。因此,我们设计了一个简单的模型选择程序:使用20个随机种子训练20个不同的模型,然后挑选出能提供最大NFR降低的那个。我们发现,在保持相同语言模型的更新情况下,这种方法减少性能回退的效果与集成方法一样好,并且无需并行运行两个模型所带来的额外运营开销。
致力于持续探索此问题的创新解决方案,以确保客户始终能享受先进的技术,而无需经历痛苦的过渡期。希望这项工作能启发AI社区开发更先进的方法,并构建易于维护、持续改进的系统。FINISHED
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)