当前位置: 首页 > 科技观察

两个小模型可以挂一个大模型!北大校友和谷歌中国人做了一个“模型合集”,适用于CNN和Transformer!

时间:2023-03-14 09:26:38 科技观察

模型一定要大才能表现好?不总是!在为新的机器学习应用程序构建深度模型时,研究人员通常会从现有网络架构(例如ResNets或EfficientNets)中筛选出一个初始架构。如果初始模型的准确性不够高,那么切换到更大的模型可能是更常见的选择,但这实际上可能不是最佳解决方案。相反,可以通过设计针对特定任务优化的新模型来获得更好的性能。然而,这种努力可能具有挑战性,而且通常是资源密集型的。华人研究员王晓芳在谷歌研究院实习期间发表的论文《WisdomofCommittees:AnOverlookedApproachtoFasterandMoreAccurateModels》中,给出了模型集成和模型级联两种方法。https://arxiv.org/pdf/2012.01988.pdf这两种方法都是通过收集现有模型并组合其输出来构建新模型的简单方法。研究表明,即使是一小部分易于构建的模型也可以达到或超过最先进模型的准确性,同时显着提高效率。王小芳是卡内基梅隆大学机器人研究所的博士生。他在北京大学主修计算机科学。他是IJCV、TIP和ACMComputingSurveys等期刊的审稿人。他还是CVPR、ICCV、ECCV和NeurIPS的审稿人。、ICML、ICLR等会议审稿人。什么是模型集成和级联?集成和级联是利用多个模型的优势来获得更好解决方案的相关方法。集成并行执行多个模型,然后组合它们的输出以进行最终预测。级联是集成的子集,但会按顺序执行收集的模型,并在预测具有足够高的置信度后合并解决方案。对于简单的输入,连接使用较少的计算,但对于更复杂的输入,可能会调用更多的模型,从而导致更高的计算成本。集成和级联的概述,此示例显示了集成和级联的双模型组合。如果收集的模型预测与单个模型相比存在差异,则集成可以提供更高的准确性。例如,对于现代图像识别模型,ImageNet中的大多数图像很容易进行分类,但有许多图像的预测因模型而异,在这种情况下,模型集成受益最大。虽然集成是众所周知的,但它们通常不被视为深度模型架构的核心构建块,并且随着研究人员开发更高效的模型而很少被探索。因此,这项工作提供了对集成效率的全面分析,并表明简单的集成或级联现成的预训练模型可以提高最先进模型的效率和准确性。模型集成具有以下有益特性:易于构建:集成不需要复杂的技术(例如,提前退出学习)。易于维护:模型独立训练,易于维护和部署。负担得起的训练成本:集成模型的总训练成本通常低于同样准确的单个模型。设备加速:计算成本的降低成功转化为真实硬件的加速。效率和训练速度集成可以提高准确性并不奇怪,但是在集成中使用多个模型可能会在运行时引入额外的计算成本。问题来了,在计算成本相同的情况下,一组模型能否比单个模型更准确?通过分析从EfficientNet-B0到EfficientNet-B7的一系列模型,它们在应用于ImageNet输入时具有不同的精度和浮点运算(FLOPS)级别。集成模型比ImageNet上的单个模型更准确,同时使用更少的FLOP。整体预测是通过平均每个单独模型的预测来计算的。他们发现,在较大的计算范围(大于5BFLOPS)中,集成的成本效益要高得多。例如,两个EfficientNet-B5模型的集成可以与单个EfficientNet-B7模型的精度相媲美,但使用大约50%的FLOPS。模型集成在大计算范围(超过5BFLOPS)中优于单个模型。这表明,在这种情况下,应该使用多个小得多的模型的集合,而不是一个大模型,这样可以减少计算要求,同时保持准确性。此外,集成的训练成本可以低得多(例如,训练两个B5模型总共需要96个TPU天;训练一个B7模型需要160个TPU天)。在实践中,模型集成训练可以使用多个加速器并行化,进一步减少训练时间。这种模式也适用于ResNet和MobileNet系列。级联的力量和简单性虽然我们已经证明了模型集成的实用性,但将集成应用于简单输入通常是浪费,因为集成的一个子集会给出正确的答案。在这些情况下,级联通过允许提前退出来节省计算量,可能会在使用所有模型之前停止并输出答案,而挑战在于确定何时退出级联。级联算法伪代码为了突出级联的实际好处,选择了一种简单的启发式方法来衡量预测的置信度:将模型的置信度视为分配给每个类别的概率的最大值。例如,如果图像是猫、狗或马的预测概率分别为20%、80%和20%,则模型预测(狗)的置信度为0.8,使用确定何时退出级联的置信度分数。为了测试这种方法,他们为EfficientNet、ResNet和MobileNetV2系列构建模型级联,以匹配计算成本或准确性(将级联限制为最多四个模型)。集成在计算密集型领域表现良好,而级联在所有计算密集型领域都显示出优势。在级联设计中,一些困难的图像输入比简单的图像输入需要更多的FLOPS,因为更具挑战性的输入比简单的输入在级联中经过更多的模型。而所有测试图像的平均FLOPS计算结果表明,级联在所有计算域中都优于单个模型(当FLOPS范围从0.15B到37B时),并且可以提高准确性或降低所有测试模型的FLOPS(有时两者兼而有之)。当使用类似的FLOPS时,级联比单个模型实现更高的精度(由向上的红色箭头所示)。级联还可以匹配单个模型的准确性,并且FLOPS显着减少,例如B7为5.4倍(绿色箭头指向左侧)。在某些情况下,限制因素不是平均计算成本,而是最坏情况下的成本。通过在级联的构建过程中添加简单的约束,可以保证级联计算成本的上限。除了卷积神经网络,研究人员还考虑了基于Transformer架构的ViT。他们构建了ViT-Base和ViT-Large模型的级联,以匹配单个最先进的ViT-Large模型的平均计算或精度,并表明级联的优势也适用于基于Transformer的架构。ViT模型级联在ImageNet上的性能。在类似的吞吐量下,Cascading可以实现比ViT-L-384高1.0%的精度,或者在与其精度匹配时比该模型快2.3倍。推理结果上面的分析中使用了FLOPS进行平均来衡量计算成本,同样重要的是要验证级联的FLOPS减少是否真的转化为硬件加速。TPUv3上在线处理级联的平均延迟。每对相同颜色的条都有相当大的精度,级联可以大大减少延迟。通过比较具有相似性能的单个模型与级联模型的设备上延迟和加速比,他们发现,与具有相同性能的单个模型相比,TPUv3上高效网络的级联模型的平均在线延迟最多减少了5.5倍。可比较的准确性。随着模型变得越来越大,像这样的级联所带来的速度增益会越来越大。