谷歌:性能不佳的微调模型不要扔,求一下平均权重就能提升性能
作者:李陈默 栏目:财经 来源:TechWeb 发布时间:2022-03-17 10:52 阅读量:15335
如何最大限度地提升模型精度。
最近,谷歌等机构发现:
性能不好的微调模型先不要扔,求一下平均权重!
就能在不增加推理时间以及内存开销的情况下,提高模型的准确性和鲁棒性。
比如,研究人员就使用该方法创造了ImageNet1K的新纪录:90.94%。
将它扩展到多个图像分类以及自然语言处理任务中,也能提高模型的分布外性能,并改善新下游任务的零样本性能。
而这个方法还有一个有趣的名字,叫Module soupmdash,mdash,
是不是让人一下子就让人联想到了斐波那契汤的笑话。
知乎网友hzwer,已授权
一共三种配方
回想一下在此之前,大家是如何给模型涨点的呢。
是不是先用各种超参数训练出多个微调模型,然后再挑出验证集上表现最好的那一个留下,其余丢掉。
由于神经网络是非线性的,在不同的loss basin中可能有许多解,因此Module soup这一采用保留所有微调模型的权重,对其进行平均的方法就可以提高性能,还是让人有点惊讶的。
不过,最近就已有研究发现,从相同的初始化配置中中独立优化的微调模型,位于相同的误差范围内。
之前也有研究证明,沿单个训练轨迹进行权重平均,可以提高随机初始化训练模型的性能。
Module soup一共有三种配方:统一汤,贪婪汤和学习汤。
其中greedy soup是最主要采用的实现,因为它的性能比直接均匀地平均所有权重更高。
具体来说,Greedy soup通过顺序添加每个模型作为汤中的潜在成分构建而成,并且只有在保持验证集上的性能有所提高时才将相应模型保留在汤中。
排序按验证集精度的降序排列。
性能超越单个最佳微调模型
首先是微调CLIP和ALIGN,这两个模型在图像—文本对上进行了对比损失预训练。
结果经过module soup操作后,两者在分布内和自然分布转移测试集上的表现都比最佳的单个微调模型性能更佳。
左为CLIP,右为ALIGN
然后是在JFT数据集上预训练的ViT—G模型。
也就是它在ImageNet1K数据集实现了90.94%的精度,打破了此前CoAtNet保持的90.88%,同时在推理阶段还减少了25%的FLOPs。
下表是BERT和T5模型在GLUE benchmark的四个文本分类任务上的结果:
可以发现,虽然改进不如图像分类中的效果明显,但在多数任务下,greedy soup都可以相较最好的单个模型提高性能。
最后,知乎网友宫酱手艺人表示,其实这样的模型参数平均是一个经典trick,transformer原始论文就用了。
你发现了吗。
。郑重声明:此文内容为本网站转载企业宣传资讯,目的在于传播更多信息,与本站立场无关。仅供读者参考,并请自行核实相关内容。