ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

ICLR 2021模型搜索趋势:从算力竞赛到高效实用的演进之路

ICLR 2021模型搜索趋势:从算力竞赛到高效实用的演进之路 1. 项目概述一次对前沿研究范式的深度复盘如果你在2020年底到2021年初那段时间正埋头于神经网络架构设计或者自动化机器学习AutoML相关的研究那么“模型搜索”Neural Architecture Search, NAS这个词一定让你又爱又恨。爱的是它承诺将我们从繁琐的手工调参和网络设计中解放出来让算法自动找到最优结构恨的是早期的NAS方法动辄需要数千甚至上万GPU天的计算开销简直是“计算贵族”的游戏让大多数研究者和工程师望而却步。正是在这样的背景下ICLR 2021国际学习表征会议的投稿情况就像一面镜子清晰地映照出了这个领域在十字路口的选择与转向。我之所以对这个话题有如此深的感触是因为当时我所在的团队也在尝试将NAS技术落地到实际的视觉任务中。我们被那些在CIFAR-10上刷到99%准确率的“SOTA”模型所吸引但真正尝试迁移时却遭遇了“水土不服”——搜索出的结构在自家数据上表现平平且搜索过程依然耗时耗力。于是我花了大量时间系统地梳理了ICLR 2021中与模型搜索相关的近50篇投稿从标题、摘要到方法核心这不仅仅是为了写一篇综述更是想弄明白这个领域的研究者们到底在想什么他们正在试图解决哪些真正的痛点哪些方向是“虚火”哪些又代表了未来的趋势这次梳理的结果远不止是一份论文列表。它更像是一份行业“体检报告”揭示了模型搜索技术从“野蛮生长”的算力竞赛向“精耕细作”的实用性、高效性和理论可解释性演进的关键转折。你会发现大家不再单纯追求在几个标准数据集上零点几个百分点的提升而是开始深入思考如何让搜索成本降低几个数量级如何让搜索出的模型真正泛化到多样化的任务和硬件上以及我们到底在“搜”什么是结构本身还是某种更本质的表示或规律接下来我将把这些观察和思考结合具体的研究案例拆解成几个核心的演进方向希望能为你理解模型搜索的当下与未来提供一份扎实的“路书”。2. 核心趋势解析从“力大砖飞”到“精巧设计”通过对这批投稿的归纳模型搜索领域的演进脉络清晰地呈现为几个并行的主题。最大的共识莫过于对“效率”的极致追求这几乎成为了所有工作的默认前提。然而在如何实现高效这一目标上不同的论文展现了截然不同的技术哲学和实现路径。2.1 效率至上搜索范式的根本性革新早期NAS如强化学习、进化算法的效率低下根源在于将每个待评估的模型架构都视为一个独立的“黑箱”需要从头训练至收敛才能获得其性能的近似估计。这导致了巨大的计算浪费。ICLR 2021的投稿显示研究社区已经形成了两种主流的效率提升范式权重共享和性能预测。权重共享Weight Sharing的典范是DARTS可微分架构搜索及其变种。其核心思想是构建一个包含所有可能操作的超网Supernet将离散的架构选择松弛为连续的可优化参数。在超网上训练一次通过梯度下降同时优化网络权重和架构参数最后再离散化得到最终架构。这听起来很美好但DARTS在实际中被发现存在稳定性问题如架构参数优化时出现马太效应富者愈富和泛化gap超网内表现好的架构独立训练后表现下滑。因此我们看到许多工作致力于“修复”DARTS。例如有的论文通过引入公平性约束在超网训练中定期重置操作权重防止某些操作过早被“淘汰”有的则设计了更合理的超网结构如让每个节点的候选操作彼此独立避免梯度竞争。这些改进的核心逻辑是从“协同训练”的角度确保超网能够公平、准确地评估每一个子架构的潜力而不是让优化过程陷入局部最优。性能预测器Performance Predictor则是另一条思路。它试图学习一个从架构编码到其性能如准确率、延迟的映射函数。一旦这个预测器训练好评估一个新架构就只需要一次前向传播成本极低。关键挑战在于如何构建有效的架构编码将图结构转化为特征向量以及如何用少量真实训练数据来训练一个准确的预测器。一篇令我印象深刻的论文提出了一种层次化图神经网络编码器。它不像传统方法那样将整个架构图扁平化而是先编码小的计算单元Cell再将这些单元的特征聚合起来表示整个网络。这种方法更好地捕捉了神经网络的结构化先验。另一篇工作则专注于小样本学习下的预测器训练提出了一个基于元学习的框架能够快速适应新的搜索空间或任务。这背后的思想是不同搜索空间中的架构其性能排名可能共享某种隐式的规律预测器需要学会捕捉这种规律而非死记硬背。实操心得如果你要尝试基于预测器的NAS架构编码的设计是重中之重。一个简单的基线是使用 one-hot 编码操作类型加上邻接矩阵的扁平化向量。但更好的方法是引入图神经网络GNN它能天然处理图结构数据。此外预测器的训练数据质量远重于数量。确保你的训练集即那些需要真实训练评估的架构样本在搜索空间内具有足够的多样性和代表性避免采样偏差导致预测器在未知区域失效。2.2 泛化能力从CIFAR-10到真实世界的桥梁在ICLR 2021之前NAS研究的一个典型“套路”是在CIFAR-10小数据集上搜索然后将搜索到的单元结构堆叠应用到ImageNet等大数据集上。这种“代理任务”策略虽然节省成本但隐含了一个强假设在简单任务上表现好的结构在复杂任务上依然最优。这个假设正受到越来越多的挑战。多篇投稿开始直接在大规模数据集如ImageNet上进行搜索或者严肃地探讨搜索结构的跨任务、跨数据集的泛化能力。一个突出的方向是任务感知的模型搜索。例如一篇论文为不同的计算机视觉任务分类、检测、分割设计了一个统一的搜索空间并在多任务联合学习的框架下进行搜索。其目标是找到一个共享的基础架构或一组可重用的组件使其能够通过微调快速适配到各个任务。这背后的动机非常务实工业界需要的是一个通用的“骨架”而不是为每个任务都重新搜索一个完全独立的网络。另一个方向是数据高效的模型搜索专门针对数据稀缺的场景。传统NAS需要大量数据来训练和评估候选架构这在医疗影像、卫星图像等领域是不现实的。有工作提出了基于梯度匹配或元学习的NAS方法其核心思想是一个好的架构应该能够在仅有的几个训练样本上快速产生有意义的梯度下降方向。通过比较不同架构在少量支持集support set上产生的梯度与查询集query set真实梯度之间的相似度来评估架构的潜力从而避免了在完整数据集上的漫长训练。2.3 可微分搜索的深化与反思可微分搜索以DARTS为代表因其优雅和高效备受关注但ICLR 2021的论文也反映出社区对其的深刻反思和深化。除了前述的稳定性改进一个重要的深化方向是离散性优化。标准的DARTS在搜索结束后需要根据架构参数进行“argmax”离散化这被证明会引入误差。因此有研究开始探索如何在搜索过程中就引入离散约束或者直接优化离散的架构分布。例如Gumbel-Softmax技巧被广泛应用它提供了一种可微分的采样方式来近似离散选择。还有工作采用了强化学习中的策略梯度方法将架构选择建模为一个序列决策过程但利用可微分超网来获得低方差的梯度估计从而结合了两种范式的优点。更深层次的反思在于搜索空间本身的设计。越来越多的研究认识到“搜什么”可能比“怎么搜”更重要。一篇有趣的论文指出在许多常见的、人工设计的搜索空间如DARTS搜索空间中随机采样架构的性能分布已经非常集中且顶部架构差异不大。这意味着搜索算法带来的增益可能很大一部分来源于搜索空间本身蕴含的强先验而非算法的智能。这促使大家去思考如何设计更灵活、更本质的搜索空间例如允许更复杂的拓扑连接、动态深度的网络甚至是包含注意力机制、动态路由等现代模块的空间。3. 核心技术点拆解三类代表性工作深度剖析为了更具体地说明上述趋势我选取了ICLR 2021中三篇具有代表性的论文它们分别从不同角度推动了模型搜索的发展。我们将深入其方法核心并探讨其背后的设计逻辑。3.1 案例一基于权重共享的稳定性提升方案论文《Stabilizing Differentiable Architecture Search via Perturbation-based Regularization》直指DARTS的核心痛点——优化过程的不稳定。作者通过一个精妙的实验揭示了问题根源在超网训练中架构参数α的梯度主要来自于当前批次数据这带来了很大的噪声。在噪声影响下某些操作可能因为“运气好”而在早期获得较大的α值之后在正反馈循环中优势被不断放大导致搜索结果偏向于这些“幸运”的操作而非真正优秀的操作。他们的解决方案既简单又有效引入基于扰动的正则化项。具体来说在训练过程中他们会随机对输入数据或中间特征施加微小扰动然后要求模型在扰动前后的输出保持一致或架构参数α的排序保持一致。这相当于给优化过程增加了一个约束一个好的架构选择应该对小的输入变化是鲁棒的。从优化角度看这平滑了损失景观减少了噪声梯度的影响使得架构参数的优化更加稳定。技术细节与实操要点扰动方式可以选择在输入图像上加高斯噪声或者在特征图后加入DropPath随机丢弃整条路径。后者在实践中更常用因为它直接作用于网络流能更有效地鼓励架构的鲁棒性。正则化强度这是一个关键的超参数。强度太弱效果不明显强度太强可能会过度平滑抑制了架构的多样性。论文中采用了一个从0线性增加到预定值的计划让模型在早期专注于学习后期再加强正则化。在实际复现时需要根据你的搜索空间和数据集进行调优。集成到训练流程这个正则化项可以很方便地加入到原有的DARTS损失函数中。假设原始损失是L_task如交叉熵新的损失函数为L_total L_task λ * L_perturb。其中L_perturb是扰动前后预测分布之间的KL散度。避坑指南在实现时务必确保扰动是在前向传播过程中独立施加的两次。即同一批数据先做一次正常前向传播得到输出A和损失L_task再做一次施加扰动的前向传播得到输出B然后计算A和B之间的KL散度作为L_perturb。不能在一次前向中同时计算那样无法体现“扰动下的变化”。3.2 案例二基于图神经网络的性能预测器论文《GNAS: A Graph Neural Architecture Search Framework with a Novel Graph Representation》提出了一种全新的架构编码方式。传统方法如MLP编码器需要将图结构邻接矩阵扁平化为一个长向量这完全丢失了图的拓扑信息。而GNAS使用图神经网络GNN来编码计算图。其核心流程如下图构建将神经网络架构表示为一个有向无环图DAG。节点代表特征图或操作边代表数据流。节点初始化每个节点用一个特征向量初始化这个向量包含了该节点对应操作的类型如3x3卷积、5x5深度可分离卷积等的嵌入以及可能的元信息如输入/输出通道数。图卷积使用多层的图卷积网络GCN或图注意力网络GAT在计算图上进行消息传递。每一层节点都会聚合其邻居节点的信息来更新自己的表示。经过几层之后每个节点的表示都包含了其局部子图的结构信息。图池化与读出为了得到整个架构的全局表示需要对所有节点的特征进行池化如全局平均池化。池化后的向量就是该架构的编码。预测将这个编码输入一个多层感知机MLP回归器预测其性能如准确率。这种方法优势明显它尊重了神经网络的图结构先验能够捕捉到诸如“一个节点是否处于瓶颈位置”、“两个远距离节点间是否存在跳跃连接”等重要结构特征。实验表明基于GNN的预测器在相同训练数据量下其预测精度和排名相关性如肯德尔系数显著高于基于MLP的基线方法。实操中的关键点GNN层数选择层数不宜过深通常2-3层足以捕获大多数计算图中的依赖关系。层数过深可能导致过度平滑所有节点的表示趋于相同。如何处理异构操作搜索空间中通常包含多种操作卷积、池化、恒等连接等。需要为每种操作类型学习一个嵌入向量作为节点初始特征的一部分。预测器训练数据采集训练数据时应采用分层采样或基于代理模型的主动学习策略确保采集的架构样本覆盖搜索空间的不同性能区域特别是边界区域性能特别好和特别差的这对训练一个稳健的预测器至关重要。3.3 案例三面向部署的硬件感知搜索论文《HW-NAS: Hardware-Aware Neural Architecture Search with Efficient Pareto Frontier Exploration》将目光投向了模型搜索的终极目标——实际部署。它不再只关心准确率而是明确将硬件指标如延迟、能耗、内存占用作为优化目标进行多目标搜索。其核心挑战在于硬件指标的评估成本极高。不可能将每个候选架构都放到真实手机或嵌入式芯片上跑一遍。因此该论文构建了一个硬件性能查找表LUT和延迟/能耗预测模型。对于搜索空间中的每种基础操作如3x3卷积、5x5深度可分离卷积都在目标硬件上预先测量其在不同配置输入/输出通道数、特征图大小下的延迟和能耗存储为查找表。对于一个完整的架构其总硬件开销可以通过查表并累加各层开销来快速估算误差通常在5%以内。有了高效的评估手段多目标搜索就转化为一个帕累托前沿Pareto Frontier探索问题。目标是找到一组架构使得在任何一个目标如准确率上改进都必然导致另一个目标如延迟的恶化。这篇论文采用了一种基于正则化进化算法的改进版本。它在进化的每一代不仅根据准确率排名还根据个体与当前帕累托前沿的距离来分配适应度。这鼓励种群在保持多样性的同时向帕累托前沿的方向进化。实现硬件感知搜索的步骤硬件分析确定目标部署平台如骁龙888 CPU、英伟达Jetson Nano GPU并确定关键约束指标通常是延迟也可能是功耗或内存。构建性能数据库编写脚本在目标硬件上自动运行基准测试测量搜索空间中所有基础操作模块在不同配置下的性能。这是一个一次性的、离线的步骤但至关重要。集成评估器在搜索循环中每生成一个候选架构除了用性能预测器或超网评估其准确率还用查找表快速估算其硬件指标。选择多目标优化算法除了进化算法也可以使用基于梯度的多目标优化方法如将硬件损失作为正则项加入可微分搜索或者基于贝叶斯优化的方法。选择取决于搜索空间的性质和评估成本。重要提示硬件性能查找表需要针对具体的硬件、推理框架如TensorFlow Lite, ONNX Runtime甚至具体的版本进行校准。不同框架对同一算子的优化程度可能天差地别。因此你的性能数据库必须与最终的部署环境尽可能一致。此外内存占用往往比延迟更难准确建模因为它受到运行时内存分配、图优化等因素的影响更大可能需要更复杂的经验模型或实际测量。4. 从论文到实践构建你自己的高效模型搜索管线看完前沿研究我们回到地面如何将这些思想应用到自己的项目中假设你现在有一个具体的图像分类任务数据集规模中等约10万张图片并且希望最终模型能在移动端实时运行。以下是一个基于ICLR 2021最新进展设计的、可行的模型搜索实操流程。4.1 第一步定义搜索空间与优化目标这是所有工作的基石也是最需要结合领域知识的一步。任务分析明确你的模型需要部署在什么设备上手机CPU边缘GPU可接受的延迟上限是多少如100ms。明确你的数据集特点和主要难点类别不平衡细粒度分类。设计搜索空间宏观结构通常沿用类似MobileNetV2或EfficientNet的倒残差瓶颈块MBConv作为基础单元。搜索空间可以定义每个阶段由分辨率相同的多个块组成的块类型、扩展比、卷积核大小、注意力机制是否存在等。微观结构对于每个块可以搜索的选项包括卷积核大小3,5,7、激活函数ReLU, Swish, Hard-Swish、是否使用SESqueeze-and-Excitation注意力模块、以及深度层数。一个实用的建议不要设计过于庞大的搜索空间。将搜索空间限制在已被证明有效的设计范式内如MBConv然后搜索其关键参数这样成功率更高。例如一个典型的空间可能包含5种块类型、3种核大小、2种注意力选项组合起来在一个21层的网络中进行搜索其规模已经非常庞大。定义优化目标这是一个多目标优化问题。最常见的做法是将其转化为单目标使用加权和Loss CrossEntropyLoss β * LatencyLoss。其中β是一个权衡系数控制准确率和延迟的重要性。你需要通过少量实验来确定一个合适的β值。更先进的做法是进行帕累托搜索得到一系列不同权衡点的模型供最后选择。4.2 第二步选择并实现搜索策略基于效率的考量对于中等规模数据集可微分搜索DARTS改进版或基于预测器的搜索是更可行的选择。如果你的计算资源相对充足有4-8块GPU且搜索时间预算在1-2天建议采用改进版的可微分搜索如加入了稳定性正则化的DARTS。你需要实现一个超网并在你的数据集上进行训练。关键是要使用与目标部署环境一致的训练设置包括数据增强、优化器、学习率策略等。超网训练完成后根据架构参数导出排名前几的候选架构。如果你的计算资源非常有限或者需要频繁在不同的相似任务上进行搜索建议采用基于预测器的搜索。你需要 a.采样从搜索空间中随机采样数百个架构。 b.训练评估用快速训练策略如训练更少的epoch、使用更小的图像分辨率评估这些采样架构的性能作为预测器的训练标签。这一步最耗时但只需做一次。 c.训练预测器使用GNN等方法用采样架构和其性能标签训练一个回归模型。 d.搜索利用预测器使用进化算法或贝叶斯优化在搜索空间中快速评估数百万个架构找到预测性能最优的。4.3 第三步训练与部署最终模型搜索得到的只是一个“架构描述”你需要将其实例化为一个具体的模型并从零开始训练。从头训练绝对不要直接使用超网中的权重。超网权重是在架构参数和网络权重联合优化的特殊环境下学到的不具备独立性。必须对搜索出的最佳架构进行标准的、独立的从头训练。训练技巧对于搜索出的移动端架构一些训练技巧尤为重要知识蒸馏使用一个在ImageNet上预训练好的大模型如ResNet-152作为教师网络来指导搜索出的小模型训练这能显著提升小模型的精度。更强的数据增强如RandAugment、MixUp、CutMix等对于防止小模型过拟合、提升泛化能力非常有效。学习率热身与余弦退火这是训练深度神经网络的标配。部署前优化训练完成后使用目标硬件对应的推理框架如TensorFlow Lite, PyTorch Mobile, ONNX进行模型转换和量化INT8量化通常能大幅降低延迟和模型体积且精度损失可控。量化后务必在真实设备上重新测试性能指标确保满足要求。5. 常见陷阱与进阶思考根据我个人和同行在实践模型搜索过程中的经验有几个常见的“坑”需要特别注意同时也有一些更深层次的问题值得思考。5.1 实操中的五个典型陷阱“代理任务陷阱”在小型代理任务如CIFAR-10上搜索出的最优架构在大任务如ImageNet上表现可能并非最优甚至不如人工设计的基线。解决方案尽可能在与最终任务相似的数据规模和特性上进行搜索。如果条件不允许至少要在代理任务上使用与目标任务相似的网络宏观结构如相同的深度、宽度系数进行搜索。超网过拟合在可微分搜索中超网可能会过拟合训练集导致其评估的架构排名与独立训练后的真实排名不符。解决方案使用更强的正则化如DropPath、权重衰减并在一个干净的验证集上评估架构参数α而不是在训练集上。搜索空间偏差如果搜索空间设计得不好可能最好的架构就在空间边缘或者整个空间的性能天花板很低。解决方案在开始大规模搜索前先进行随机采样绘制采样架构的性能分布图。如果分布很窄或整体水平很低就需要重新设计搜索空间融入更先进的模块如动态卷积、注意力。评估指标单一只优化准确率忽略了延迟、功耗、内存等部署关键指标导致搜出的模型无法实用。解决方案从一开始就将硬件指标纳入优化目标使用查找表或预测器进行快速评估。忽略再现性许多论文报告的搜索结果是多次运行中的最佳结果但算法本身可能方差很大。解决方案任何严肃的NAS实验都应报告多次随机种子下的平均性能和方差。在自家项目中使用时也应对搜索出的前几个架构都进行训练和评估选择最稳定的一个。5.2 超越架构搜索组件、训练策略与一体化的未来ICLR 2021的投稿还暗示了模型搜索的几个未来方向这些方向可能比单纯的架构搜索影响更为深远。联合搜索为什么不只搜索架构而是将数据增强策略、优化器超参数、学习率调度等训练策略也一并搜索呢有论文开始探索这种“一体化自动机器学习”AutoML。其挑战在于搜索空间变得极其庞大和异构但潜力也巨大——或许能找到针对特定数据集量身定制的最佳训练配方。泛化组件搜索与其搜索一个完整的网络不如搜索一些可重用的、功能性的组件例如一种新的激活函数、一种新的归一化层、或者一种动态路由机制。这些组件可以像乐高积木一样被插入到不同的主干网络中提升其性能。这比搜索整个网络更高效也更具通用性。理论理解目前NAS的成功很大程度上还是经验性的。为什么某些架构就是更好可微分搜索的优化过程到底在优化什么性能预测器学到了什么关于神经网络本质的规律对这些理论问题的探索将帮助我们设计出更本质、更高效的搜索方法和空间。模型搜索不再是一个炫技的玩具它正在成为深度学习模型开发工作流中一个务实且强大的环节。从ICLR 2021这面镜子中我们看到研究的重心已经从“证明自己能搜”转向了“解决实际难题”。效率、泛化、部署可行性成为了新的关键词。对于从业者而言现在正是将NAS技术纳入工具箱的好时机但必须带着批判性的眼光理解其背后的假设和局限才能让它真正为你的项目创造价值。我的体会是与其追逐最复杂的算法不如先扎实地定义好你的搜索空间和优化目标并搭建一个稳定、可复现的搜索评估流程这往往能带来最大的收益。
返回列表