详细内容或原文请订阅后点击阅览
PyTorch 中的自我修复神经网络:无需重新训练即可实时修复模型漂移
当您的生产模型出现偏差并且无法进行重新训练时会发生什么?本文展示了自我修复神经网络如何检测漂移,使用轻量级适配器进行实时适应,并在无需重新训练或停机的情况下恢复 27.8% 的准确度。PyTorch 中的自我修复神经网络:无需重新训练即可实时修复模型漂移的帖子首先出现在《走向数据科学》上。
来源:走向数据科学已经制作两个月了。准确率为 92.9%。
然后交易模式悄然发生转变。
当仪表板变成红色时,准确率已降至 44.6%。
再训练需要六个小时,并且需要标记数据,而这些数据要到下周才能获得。
这六个小时你做什么?
TL;DR
问题:模型漂移,重新训练不可用
解决方案:自我修复适配器层
关键思想:更新一个小组件,而不是完整模型
系统行为:
结果:+27.8% 的准确率恢复 — 内部解释了明确的召回率权衡。
本文介绍的是 ReflexiveLayer:一个位于网络内部的小型架构组件,可在主干网保持冻结状态时调整以适应变化的分布。适配器在后台线程中更新,因此推理永远不会停止。结合用于弱监督的符号规则引擎和用于回滚的模型注册表,在一次没有触及主干权重的情况下,它在本次实验中恢复了 27.8 个百分点的准确率。
结果是诚实的:恢复是真实的,但伴随着召回权衡,这在欺诈检测中很重要。两者都有完整的解释。
完整代码,所有 7 个版本,生产堆栈,监控导出,所有图:https://github.com/Emmimal/self-healing-neural-networks/
为什么标准方法在这里不足
当模型开始降级时,典型的剧本是以下三件事之一:重新训练新的标记数据,使用包含最近训练的模型的集成,或者回滚到之前的检查点。
所有标准方法都假设您有一些您可能没有的东西:
回滚尤其具有误导性。
在移动的分布上回滚到干净的权重并不能解决问题——它会重复这个问题。
架构:一个冻结主干,一个可训练适配器
架构一目了然:
