ICLR 2021模型搜索趋势:从算力竞赛到高效实用的演进之路
2026/9/7 12:26:56 网站建设 项目流程

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的核心痛点——优化过程的不稳定。作者通过一个精妙的实验揭示了问题根源:在超网训练中,架构参数α的梯度主要来自于当前批次数据,这带来了很大的噪声。在噪声影响下,某些操作可能因为“运气好”而在早期获得较大的α值,之后在正反馈循环中优势被不断放大,导致搜索结果偏向于这些“幸运”的操作,而非真正优秀的操作。

他们的解决方案既简单又有效:引入基于扰动的正则化项。具体来说,在训练过程中,他们会随机对输入数据或中间特征施加微小扰动,然后要求模型在扰动前后的输出保持一致(或架构参数α的排序保持一致)。这相当于给优化过程增加了一个约束:一个好的架构选择应该对小的输入变化是鲁棒的。从优化角度看,这平滑了损失景观,减少了噪声梯度的影响,使得架构参数的优化更加稳定。

技术细节与实操要点

  1. 扰动方式:可以选择在输入图像上加高斯噪声,或者在特征图后加入DropPath(随机丢弃整条路径)。后者在实践中更常用,因为它直接作用于网络流,能更有效地鼓励架构的鲁棒性。
  2. 正则化强度:这是一个关键的超参数。强度太弱,效果不明显;强度太强,可能会过度平滑,抑制了架构的多样性。论文中采用了一个从0线性增加到预定值的计划,让模型在早期专注于学习,后期再加强正则化。在实际复现时,需要根据你的搜索空间和数据集进行调优。
  3. 集成到训练流程:这个正则化项可以很方便地加入到原有的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)来编码计算图。

其核心流程如下

  1. 图构建:将神经网络架构表示为一个有向无环图(DAG)。节点代表特征图(或操作),边代表数据流。
  2. 节点初始化:每个节点用一个特征向量初始化,这个向量包含了该节点对应操作的类型(如3x3卷积、5x5深度可分离卷积等)的嵌入,以及可能的元信息(如输入/输出通道数)。
  3. 图卷积:使用多层的图卷积网络(GCN)或图注意力网络(GAT)在计算图上进行消息传递。每一层,节点都会聚合其邻居节点的信息来更新自己的表示。经过几层之后,每个节点的表示都包含了其局部子图的结构信息。
  4. 图池化与读出:为了得到整个架构的全局表示,需要对所有节点的特征进行池化(如全局平均池化)。池化后的向量,就是该架构的编码。
  5. 预测:将这个编码输入一个多层感知机(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)探索问题。目标是找到一组架构,使得在任何一个目标(如准确率)上改进,都必然导致另一个目标(如延迟)的恶化。这篇论文采用了一种基于正则化进化算法的改进版本。它在进化的每一代,不仅根据准确率排名,还根据个体与当前帕累托前沿的距离来分配适应度。这鼓励种群在保持多样性的同时,向帕累托前沿的方向进化。

实现硬件感知搜索的步骤

  1. 硬件分析:确定目标部署平台(如骁龙888 CPU、英伟达Jetson Nano GPU),并确定关键约束指标(通常是延迟,也可能是功耗或内存)。
  2. 构建性能数据库:编写脚本,在目标硬件上自动运行基准测试,测量搜索空间中所有基础操作模块在不同配置下的性能。这是一个一次性的、离线的步骤,但至关重要。
  3. 集成评估器:在搜索循环中,每生成一个候选架构,除了用性能预测器或超网评估其准确率,还用查找表快速估算其硬件指标。
  4. 选择多目标优化算法:除了进化算法,也可以使用基于梯度的多目标优化方法(如将硬件损失作为正则项加入可微分搜索),或者基于贝叶斯优化的方法。选择取决于搜索空间的性质和评估成本。

重要提示:硬件性能查找表需要针对具体的硬件、推理框架(如TensorFlow Lite, ONNX Runtime)甚至具体的版本进行校准。不同框架对同一算子的优化程度可能天差地别。因此,你的性能数据库必须与最终的部署环境尽可能一致。此外,内存占用往往比延迟更难准确建模,因为它受到运行时内存分配、图优化等因素的影响更大,可能需要更复杂的经验模型或实际测量。

4. 从论文到实践:构建你自己的高效模型搜索管线

看完前沿研究,我们回到地面:如何将这些思想应用到自己的项目中?假设你现在有一个具体的图像分类任务,数据集规模中等(约10万张图片),并且希望最终模型能在移动端实时运行。以下是一个基于ICLR 2021最新进展设计的、可行的模型搜索实操流程。

4.1 第一步:定义搜索空间与优化目标

这是所有工作的基石,也是最需要结合领域知识的一步。

  1. 任务分析:明确你的模型需要部署在什么设备上(手机CPU?边缘GPU?),可接受的延迟上限是多少(如100ms)。明确你的数据集特点和主要难点(类别不平衡?细粒度分类?)。
  2. 设计搜索空间
    • 宏观结构:通常沿用类似MobileNetV2或EfficientNet的倒残差瓶颈块(MBConv)作为基础单元。搜索空间可以定义每个阶段(由分辨率相同的多个块组成)的块类型、扩展比、卷积核大小、注意力机制是否存在等。
    • 微观结构:对于每个块,可以搜索的选项包括:卷积核大小(3,5,7)、激活函数(ReLU, Swish, Hard-Swish)、是否使用SE(Squeeze-and-Excitation)注意力模块、以及深度(层数)。
    • 一个实用的建议:不要设计过于庞大的搜索空间。将搜索空间限制在已被证明有效的设计范式内(如MBConv),然后搜索其关键参数,这样成功率更高。例如,一个典型的空间可能包含5种块类型、3种核大小、2种注意力选项,组合起来在一个21层的网络中进行搜索,其规模已经非常庞大。
  3. 定义优化目标:这是一个多目标优化问题。最常见的做法是将其转化为单目标,使用加权和:Loss = CrossEntropyLoss + β * LatencyLoss。其中β是一个权衡系数,控制准确率和延迟的重要性。你需要通过少量实验来确定一个合适的β值。更先进的做法是进行帕累托搜索,得到一系列不同权衡点的模型供最后选择。

4.2 第二步:选择并实现搜索策略

基于效率的考量,对于中等规模数据集,可微分搜索(DARTS改进版)基于预测器的搜索是更可行的选择。

  • 如果你的计算资源相对充足(有4-8块GPU),且搜索时间预算在1-2天:建议采用改进版的可微分搜索(如加入了稳定性正则化的DARTS)。你需要实现一个超网,并在你的数据集上进行训练。关键是要使用与目标部署环境一致的训练设置,包括数据增强、优化器、学习率策略等。超网训练完成后,根据架构参数导出排名前几的候选架构。
  • 如果你的计算资源非常有限,或者需要频繁在不同的相似任务上进行搜索:建议采用基于预测器的搜索。你需要: a.采样:从搜索空间中随机采样数百个架构。 b.训练评估:用快速训练策略(如训练更少的epoch、使用更小的图像分辨率)评估这些采样架构的性能,作为预测器的训练标签。这一步最耗时,但只需做一次。 c.训练预测器:使用GNN等方法,用采样架构和其性能标签训练一个回归模型。 d.搜索:利用预测器,使用进化算法或贝叶斯优化,在搜索空间中快速评估数百万个架构,找到预测性能最优的。

4.3 第三步:训练与部署最终模型

搜索得到的只是一个“架构描述”,你需要将其实例化为一个具体的模型,并从零开始训练。

  1. 从头训练绝对不要直接使用超网中的权重。超网权重是在架构参数和网络权重联合优化的特殊环境下学到的,不具备独立性。必须对搜索出的最佳架构进行标准的、独立的从头训练。
  2. 训练技巧:对于搜索出的移动端架构,一些训练技巧尤为重要:
    • 知识蒸馏:使用一个在ImageNet上预训练好的大模型(如ResNet-152)作为教师网络,来指导搜索出的小模型训练,这能显著提升小模型的精度。
    • 更强的数据增强:如RandAugment、MixUp、CutMix等,对于防止小模型过拟合、提升泛化能力非常有效。
    • 学习率热身与余弦退火:这是训练深度神经网络的标配。
  3. 部署前优化:训练完成后,使用目标硬件对应的推理框架(如TensorFlow Lite, PyTorch Mobile, ONNX)进行模型转换和量化(INT8量化通常能大幅降低延迟和模型体积,且精度损失可控)。量化后,务必在真实设备上重新测试性能指标,确保满足要求。

5. 常见陷阱与进阶思考

根据我个人和同行在实践模型搜索过程中的经验,有几个常见的“坑”需要特别注意,同时也有一些更深层次的问题值得思考。

5.1 实操中的五个典型陷阱

  1. “代理任务陷阱”:在小型代理任务(如CIFAR-10)上搜索出的最优架构,在大任务(如ImageNet)上表现可能并非最优,甚至不如人工设计的基线。解决方案:尽可能在与最终任务相似的数据规模和特性上进行搜索。如果条件不允许,至少要在代理任务上使用与目标任务相似的网络宏观结构(如相同的深度、宽度系数)进行搜索。
  2. 超网过拟合:在可微分搜索中,超网可能会过拟合训练集,导致其评估的架构排名与独立训练后的真实排名不符。解决方案:使用更强的正则化(如DropPath、权重衰减),并在一个干净的验证集上评估架构参数α,而不是在训练集上。
  3. 搜索空间偏差:如果搜索空间设计得不好,可能最好的架构就在空间边缘,或者整个空间的性能天花板很低。解决方案:在开始大规模搜索前,先进行随机采样,绘制采样架构的性能分布图。如果分布很窄或整体水平很低,就需要重新设计搜索空间,融入更先进的模块(如动态卷积、注意力)。
  4. 评估指标单一:只优化准确率,忽略了延迟、功耗、内存等部署关键指标,导致搜出的模型无法实用。解决方案:从一开始就将硬件指标纳入优化目标,使用查找表或预测器进行快速评估。
  5. 忽略再现性:许多论文报告的搜索结果是多次运行中的最佳结果,但算法本身可能方差很大。解决方案:任何严肃的NAS实验,都应报告多次随机种子下的平均性能和方差。在自家项目中使用时,也应对搜索出的前几个架构都进行训练和评估,选择最稳定的一个。

5.2 超越架构搜索:组件、训练策略与一体化的未来

ICLR 2021的投稿还暗示了模型搜索的几个未来方向,这些方向可能比单纯的架构搜索影响更为深远。

  • 联合搜索:为什么不只搜索架构,而是将数据增强策略、优化器超参数、学习率调度等训练策略也一并搜索呢?有论文开始探索这种“一体化自动机器学习”(AutoML)。其挑战在于搜索空间变得极其庞大和异构,但潜力也巨大——或许能找到针对特定数据集量身定制的最佳训练配方。
  • 泛化组件搜索:与其搜索一个完整的网络,不如搜索一些可重用的、功能性的组件,例如一种新的激活函数、一种新的归一化层、或者一种动态路由机制。这些组件可以像乐高积木一样,被插入到不同的主干网络中,提升其性能。这比搜索整个网络更高效,也更具通用性。
  • 理论理解:目前NAS的成功很大程度上还是经验性的。为什么某些架构就是更好?可微分搜索的优化过程到底在优化什么?性能预测器学到了什么关于神经网络本质的规律?对这些理论问题的探索,将帮助我们设计出更本质、更高效的搜索方法和空间。

模型搜索不再是一个炫技的玩具,它正在成为深度学习模型开发工作流中一个务实且强大的环节。从ICLR 2021这面镜子中我们看到,研究的重心已经从“证明自己能搜”转向了“解决实际难题”。效率、泛化、部署可行性成为了新的关键词。对于从业者而言,现在正是将NAS技术纳入工具箱的好时机,但必须带着批判性的眼光,理解其背后的假设和局限,才能让它真正为你的项目创造价值。我的体会是,与其追逐最复杂的算法,不如先扎实地定义好你的搜索空间和优化目标,并搭建一个稳定、可复现的搜索评估流程,这往往能带来最大的收益。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询