首页›分类文章›人工智能›生成式AI与大模型›从手工调参到自动架构设计:神经架构搜索的技术演进与工程实践

从手工调参到自动架构设计:神经架构搜索的技术演进与工程实践

人工智能 · 生成式AI与大模型2026-10-020次浏览0 个评论

摘要

神经架构搜索(Neural Architecture Search, NAS)正在从根本上改变深度学习模型的设计范式。从2017年Google基于强化学习的开创性工作算起,这个领域已经经历了三轮明显的技术跃迁:从需要数千GPU天的暴力搜索,到DARTS开启的可微分架构优化,再到近年来以ZiCo、Zen-NAS为代表的零样本代理方法。每一次跃迁都使搜索成本下降了数个数量级,同时将搜索精度推向了新的高度。然而,真正的工程挑战并不在于搜索算法本身,而在于如何将搜索出的架构从实验室推到生产环境——硬件约束、部署延迟、内存瓶颈,这些现实世界的限制往往比验证集上的准确率更难满足。本文将系统梳理NAS从诞生到成熟的完整技术脉络,深入分析三大主流搜索范式的原理与局限,探讨零样本代理的理论基础与实践经验,并重点考察硬件感知搜索在边缘计算场景中的落地路径。面向一线深度学习工程师与架构设计者,本文力求在学术严谨与工程实用之间取得平衡,为读者提供一条清晰的NAS技术演进图谱,以及一份可直接参考的工程决策框架。

一、引言:架构设计为什么需要自动化

深度学习在2012年AlexNet横空出世之后,经历了长达十年的高速增长。在这段时期,模型架构的演进主要依靠研究者的直觉与反复试验——从VGG的堆积式深度、ResNet的残差跳跃,到Transformer的自注意力机制,每一次突破都凝聚了顶尖研究团队的数月乃至数年的工程探索。然而,这种手工设计模式存在一个根本性的天花板:人类认知无法同时优化高维空间中的数十个相互关联的架构参数,更遑论在准确率、参数量、延迟、功耗等多个目标之间寻找帕累托最优。

神经架构搜索的提出,正是为了将架构设计从"艺术"转变为"工程"。其核心理念可以概括为:给定一个任务定义和一个搜索空间,让算法自动探索可能的架构配置,并通过性能反馈来迭代优化。这听起来像是一个标准的优化问题,但深度学习的特殊性在于,架构的评估成本极高——训练一个候选网络往往需要数小时甚至数天的GPU时间。因此,NAS领域的核心矛盾始终围绕着同一个命题:如何在有限的计算预算内,找到一个足够好的架构?

Google在2017年的开创性论文"Neural Architecture Search with Reinforcement Learning"首次将强化学习引入架构搜索,使用控制器RNN来生成网络描述,并在CIFAR-10上取得了当时的最优结果。但这项工作耗费的计算资源令人咋舌——总计约800 GPU天(等效于单张GPU持续运行近两年的时长)。这种成本使得NAS在最初几年几乎成了大型科技公司的专属工具,普通研究机构和小型团队根本无法承受。

从2018年开始,这个领域进入了一个快速迭代的阶段。ENAS通过权重共享将搜索成本降到0.5 GPU天;DARTS将离散的操作选择松弛为可微分的连续权重,使梯度下降可以直接应用于架构搜索;此后,ProxylessNAS、Single-Path One-Shot、GDAS等一系列工作进一步推动了效率与精度的双重提升。到了2023年前后,以ZiCo、TE-NAS、Zen-NAS为代表的零样本代理方法的出现,标志着NAS进入了一个新阶段——无需完整训练即可预测架构性能,将单次评估时间从分钟级降到了秒级甚至毫秒级。

本文将沿着这条技术演进轴线,依次剖析强化学习搜索、可微分搜索和零样本代理三大范式的原理、优势与局限,并深入讨论硬件感知搜索的工程实践。在每一节中,我们将提供Mermaid流程图来可视化核心算法的工作机制,并配以详细的文字解读,确保读者即使在不查看图表的情况下,也能完整理解所述技术的核心逻辑。

二、早期范式:基于强化学习的AutoML探索

2.1 控制器-奖励循环:NAS的原初架构

强化学习驱动的NAS可以被视为一个序列决策问题。控制器(通常是一个循环神经网络RNN或LSTM)以自回归方式生成一个序列,这个序列编码了一个神经网络架构的描述。例如,对于卷积网络,控制器需要依次决定每一层的操作类型(卷积、池化、跳跃连接)、卷积核大小、通道数、步幅等超参数。生成完整架构后,该网络会被实例化并在训练数据上从头训练至收敛。得到的验证准确率作为奖励信号,通过策略梯度方法反馈给控制器,从而更新控制器的参数,使其倾向于生成更高性能的架构。

这个过程形成了一个完整的反馈回路:控制器生成架构描述 → 架构实例化并训练 → 验证集评估 → 奖励计算 → 策略梯度更新控制器 → 下一轮生成。这个循环看似简单,但其计算开销是灾难性的。以Google的原始NAS工作为例,控制器在搜索过程中需要采样数千个架构,每个架构都需要一次完整的训练过程。在CIFAR-10上,这已经达到了约22,000 GPU小时(相当于800块并行GPU运行近28天);如果扩展到ImageNet,成本将更为惊人。

这种高成本源于一个根本性的设计选择:每个候选架构都是独立训练的,架构之间没有任何参数共享。这意味着控制器每尝试一个新思路,都需要从零开始训练一个完整的网络。对于搜索空间中数以百万计的可能架构而言,这种 brute-force 方法显然是不可持续的。

2.2 ENAS与权重共享:从独立训练到参数复用

2018年的ENAS(Efficient Neural Architecture Search)引入了一个关键洞察:搜索空间中的不同架构可以共享部分权重,从而避免从头训练每个候选网络。ENAS的核心思想是构建一个包含所有可能操作的有向无环图(DAG),即所谓的"超网络"(supernetwork)。在搜索阶段,控制器从这个超网络中采样子图作为当前候选架构,而这些子图之间天然共享大量权重——例如,如果两个候选架构在前几层选择了相同的3×3卷积操作,那么这些层的权重可以复用,无需重新训练。

具体的训练流程分为两个阶段:在训练阶段,超网络中的所有边被同时训练,每条边根据当前采样子图中的存在概率获得梯度更新;在评估阶段,控制器从超网络中采样一个子架构,直接使用已训练的超网络权重进行评估,无需额外训练。这种权重共享机制将搜索成本从数万GPU小时降到了不到一个GPU天,使NAS首次成为学术界可负担的研究方向。

然而,权重共享也带来了新的问题。超网络的权重是为所有可能的子架构共同优化的,这种"万金油"式的训练方式与特定子架构的专有优化之间存在固有矛盾。后续研究发现,权重共享超网络的排名一致性与完全独立训练的架构之间存在显著差异——一个子架构在超网络中的性能排名,可能无法准确反映其独立训练后的真实性能。这种排名失准(ranking discrepancy)问题,至今仍是基于超网络方法的核心挑战之一。

graph TD
    A[控制器RNN] -->|生成架构描述| B[架构采样]
    B --> C{是否使用权重共享?}
    C -->|ENAS路径| D[从超网络采样子架构]
    C -->|原始NAS路径| E[独立实例化新网络]
    D --> F[使用超网络共享权重评估]
    E --> G[从头训练网络至收敛]
    F --> H[验证准确率]
    G --> H
    H -->|奖励信号| I[策略梯度更新]
    I --> A

上图展示了两种强化学习搜索范式的对比流程。左侧的ENAS路径通过超网络权重共享大幅降低了评估成本;右侧的原始NAS路径则保持每个架构独立训练,成本高昂但评估更精确。两种路径最终都通过验证准确率生成奖励信号,然后利用策略梯度算法更新控制器参数。这个循环会持续进行,直到控制器收敛到一个能够稳定生成高性能架构的策略分布。

2.3 搜索空间设计的重要性

强化学习搜索的另一个关键维度是搜索空间的定义。搜索空间决定了控制器可以探索的架构范围,它需要在"足够丰富以包含高性能架构"和"足够紧凑以便在有限预算内充分探索"之间取得平衡。早期的NAS工作使用相对简单的层次化搜索空间,例如每个层只能从几种固定的操作类型中选择。后续工作引入了更复杂的宏搜索空间(定义整体网络拓扑)和微搜索空间(定义可重复的模块单元),后者通过堆叠搜索到的基本单元来构建完整网络。

搜索空间的结构直接影响搜索效率和最终架构的质量。一个设计良好的搜索空间应当具备以下特征:首先,它应当覆盖已知的高性能设计模式(如残差连接、多尺度特征融合),同时保留足够的探索空间以发现新的模式;其次,搜索空间中的架构应当是可训练的——过于深或过于宽的网络可能面临梯度消失或内存溢出的问题;最后,搜索空间中的操作应当具有多样性,避免控制器陷入局部最优而反复选择相似的架构变体。

三、可微分架构搜索:从离散选择到连续优化

3.1 DARTS的核心思想:操作选择的松弛

2018年底提出的DARTS(Differentiable Architecture Search)标志着NAS方法论的一次根本性转变。它不再将架构搜索视为一个离散的、基于采样的过程,而是将其重新表述为一个连续优化问题。DARTS的关键洞察是:在一个包含多个候选操作的节点上,不再强制选择一个单一操作,而是让多个操作同时存在,并通过一组可学习的权重参数来控制每个操作的贡献。

具体来说,对于每个中间节点,DARTS定义一个混合操作(mixed operation),它是所有候选操作的加权和。假设在某条边上存在N个候选操作(如3×3卷积、5×5卷积、跳跃连接、池化等),DARTS引入一组架构参数α₁, α₂, ..., αₙ,并将该边的实际输出表示为:

output = Σᵢ softmasx(α)ᵢ × operationᵢ(x)

在搜索阶段,架构参数α和网络权重w被联合优化:训练数据被分为两部分,一部分用于更新网络权重w(通过标准的梯度下降),另一部分用于更新架构参数α(通过验证集上的性能梯度)。搜索完成后,只需在每个节点上选择权重最大的操作,即可得到一个离散的、可直接部署的架构。

这种方法的革命性在于,它将架构搜索的复杂度从"指数级架构数量 × 训练成本"降低到了"单次优化过程的额外计算开销"。DARTS在CIFAR-10上的搜索成本仅为1个GPU天(二阶近似),比原始NAS的约800 GPU天降低了约800倍,同时取得了可比拟甚至更优的搜索精度。

3.2 连续-离散鸿沟与DARTS的崩溃问题

然而,DARTS的优雅框架隐藏了一个致命缺陷。在搜索阶段,系统同时激活多个操作并让它们竞争;但在最终部署时,系统只保留一个操作。这种"搜索时多选一,部署时单选"的不一致性导致了一个严重的问题:搜索阶段表现优异的混合操作,在离散化后可能性能骤降。这一问题在后续研究中被发现与skip-connection(跳跃连接)的过度选择密切相关。

具体而言,skip-connection在搜索阶段具有不公平的优势。由于跳跃连接几乎不引入额外参数,它在训练过程中容易被优化得比卷积操作"更快"。在混合操作的竞争机制中,skip-connection的架构参数α会迅速增大,排挤掉参数更多但潜力更大的卷积操作。搜索结束后,当系统进行离散化选择时,一个充斥着跳跃连接的网络虽然验证损失较低,但其表达能力严重不足,导致在测试集上的性能大幅下降。

这一现象被称为"DARTS的崩溃"(DARTS collapse),它揭示了一个更深层的理论问题:连续松弛与离散选择之间的鸿沟。后续研究提出了多种修正方案,包括:渐进式离散化(P-DARTS),在搜索过程中逐步减少候选操作的数量;鲁棒DARTS(RobustDARTS),通过早停机制防止跳跃连接的过度积累;以及基于正则化的方法,通过显式惩罚skip-connection的选择概率来保持搜索的多样性。

graph LR
    A[输入特征图] --> B[混合操作层]
    B -->|softmax权重| C1[3x3卷积]
    B -->|softmax权重| C2[5x5卷积]
    B -->|softmax权重| C3[跳跃连接]
    B -->|softmax权重| C4[平均池化]
    C1 --> D[加权求和输出]
    C2 --> D
    C3 --> D
    C4 --> D
    D --> E[验证集性能]
    E --> F[架构参数α的梯度更新]
    E --> G[网络权重w的梯度更新]
    F --> B
    G --> B
    H[搜索结束] --> I[选择α最大的操作]
    I --> J[离散化架构]
    J --> K[重新训练部署网络]

上图详细描绘了DARTS的双层优化流程。输入特征图同时进入混合操作层中的所有候选操作,每个操作的输出通过softmax归一化的架构参数进行加权求和。这个联合输出被送入验证集性能评估,然后分别产生对架构参数α和网络权重w的梯度更新。两者的更新频率和步长通常不同——w的更新频率更高,α的更新基于w稳定后的验证性能。搜索结束后,系统在每个混合操作节点上仅保留权重最大的单一操作,形成离散化架构,然后从头训练这个最终架构直至收敛。

3.3 从DARTS到ProxylessNAS:面向硬件效率的搜索

DARTS及其后续变体主要关注在CIFAR-10等小数据集上寻找高性能架构。然而,在真实的工程部署中,搜索目标远比准确率单一指标复杂得多。2019年的ProxylessNAS率先将延迟、参数数量等硬件指标直接纳入搜索目标。其核心思想是在搜索空间中为每个操作引入一个与硬件相关的开销估计(如该操作在特定硬件上的延迟或FLOPs),然后在混合操作中不仅考虑准确率梯度,还考虑硬件开销梯度。

ProxylessNAS采用了一种"二元门"机制,在搜索阶段使用Gumbel-Softmax采样来近似离散选择,使得每个前向传播只激活一个操作(而非DARTS中的所有操作同时激活)。这一设计不仅降低了搜索阶段的内存开销,还使得延迟估计更加准确——因为在前向传播时,系统可以精确知道哪些操作被激活,从而累加真实的延迟开销。

FBNet(同年发表)进一步细化了硬件感知搜索的方法论。它使用一个预先训练好的延迟查找表(latency lookup table),将每个操作在目标硬件上的延迟预先测量并存储。在搜索阶段,FBNet将总延迟表示为所有被选择操作的延迟之和,并将"总延迟不超过预算"作为一个硬约束或软惩罚项加入损失函数。在移动端CPU上的实验表明,FBNet在保持与MobileNetV2相似的Top-1准确率的同时,将搜索时间降到了仅216 GPU小时,延迟降低了约20%。

然而,这些基于梯度搜索的方法仍然面临一些共同的局限。首先,它们对搜索空间的连续松弛假设使其难以处理离散的拓扑结构选择(例如,是否在某两层之间添加一条跳跃连接,这在DARTS中是通过给"空操作"赋予一个候选权重来隐式实现的)。其次,所有基于梯度的方法都容易陷入局部最优——一旦某个操作的α值在早期阶段被优化得较大,其他操作很难在后期反超。最后,这些方法的搜索过程通常需要与训练过程耦合,这意味着搜索阶段的超参数(如学习率、正则化强度)对最终架构的质量有显著影响,而这些超参数的调优本身又需要大量的实验探索。

四、零样本代理:从训练成本到预测效率的跃迁

4.1 代理评估的直觉:为什么无需训练就能预测性能

2022年至2023年间,NAS领域经历了一场静默但深刻的革命。研究者开始问一个根本性的问题:如果不完整训练一个网络,我们能否预测它最终的性能?这个问题的答案,取决于对神经网络训练动态的一个关键观察:网络在训练初期的行为模式(如梯度统计量、激活分布、参数变化率)往往与其最终收敛性能存在稳定的相关性。

零样本代理(zero-shot proxy)正是基于这一观察构建的性能预测器。与传统的NAS方法不同,零样本代理不需要将候选架构训练至收敛——甚至不需要完成一个完整的训练轮次。相反,它通过分析网络在初始化状态或经过极少步梯度更新后的某种统计特性,来预测该架构在大量训练后的最终性能。如果这种预测足够准确,那么架构搜索的评估成本将从"数小时训练"降到"秒级前向传播",搜索效率将提升数个数量级。

这一思路目前发展出了几个主要的理论路径。第一类基于神经正切核(Neural Tangent Kernel, NTK)的谱分析。当神经网络足够宽时,其训练动态可以用一个固定的核函数近似,而这个核函数的条件数与网络的泛化能力存在理论联系。第二类基于梯度流分析,通过考察网络在少数几步梯度下降后的梯度统计量来预测最终性能。第三类基于激活模式分析,考察网络在随机输入下的激活稀疏性或信息流动效率。

4.2 ZiCo:基于梯度变异系数的新代理

2023年提出的ZiCo是零样本代理领域的代表性工作。它的核心洞察是:网络在训练初期的梯度统计分布,比单纯的梯度范数更能预测其最终性能。具体来说,ZiCo度量的是网络各层梯度的变异系数(coefficient of variation)的倒数。直观上,如果某个架构在初始化后的梯度分布具有较大的均值和较小的方差,意味着其各参数的更新方向较为一致且幅度稳定——这种"健康"的梯度模式通常预示着更快的收敛和更好的泛化。

ZiCo的计算过程极其高效:首先,将一个mini-batch的数据通过网络进行一次前向传播和反向传播,计算出每个参数的梯度;然后,对于每个参数矩阵,计算其梯度矩阵中所有元素的标准差与均值的比值(即变异系数);最后,将所有参数的变异系数取平均并取倒数,得到ZiCo分数。这个分数被证明与架构在CIFAR-10、ImageNet等数据集上的最终测试准确率具有高度相关性。

实验表明,在各种搜索空间(包括NAS-Bench-201、NDS等标准基准)上,ZiCo的排名一致性(ranking correlation)显著优于早期的零样本代理(如参数数量、FLOPs、神经正切核条件数等)。更重要的是,ZiCo的计算成本极低——评估一个候选架构仅需一次前向和反向传播,在GPU上的执行时间不到1秒。这意味着在包含数万个候选架构的搜索空间中,使用ZiCo可以在数分钟内完成全部评估,而传统方法可能需要数月。

4.3 Zen-NAS与TE-NAS:基于表达能力与训练动态的代理

Zen-NAS从另一个角度构建了零样本代理。它不再关注梯度统计量,而是关注网络在初始化状态下的表达能力。其核心思想是:一个网络的"表达能力"可以通过其在输入数据上的线性区域数量(number of linear regions)来度量。线性区域数量越多,意味着网络能够表示的更复杂的决策边界。Zen-NAS设计了一个高效的算法来估计网络中的线性区域密度,并将其作为性能代理。

TE-NAS(Trainability-Estimation NAS)则采用了第三种路径,即同时考虑"可训练性"(trainability)和"表达能力"(expressivity)。它基于一个理论观察:一个高性能的网络不仅需要有足够的表达能力(即足够复杂以拟合训练数据),还需要有良好的可训练性(即其损失景观足够平滑,使得梯度下降能够高效收敛)。TE-NAS提出用Hessian矩阵的迹(trace of the NTK)来同时度量这两个维度,并发现二者的组合比单一指标具有更强的预测能力。

这四种代理方法的比较揭示了一个有趣的趋势:零样本代理正在从简单的"代理指标"(如参数量、FLOPs)进化到更复杂的"动态指标"(如梯度统计、线性区域密度、NTK谱分析)。虽然它们的具体计算方法不同,但共同的理论根基在于:神经网络在初始化阶段的几何和统计特性,与其在训练后的泛化性能之间存在深刻而稳定的联系。

graph TD
    A[候选架构A] -->|ZiCo评估| B[计算梯度变异系数]
    A -->|Zen-NAS评估| C[计算线性区域密度]
    A -->|TE-NAS评估| D[计算NTK矩阵迹]
    B --> E[代理分数排序]
    C --> E
    D --> E
    E --> F[选择Top-K架构]
    F --> G[完整训练验证]
    G --> H[最终部署架构]

上图展示了零样本代理搜索的通用流程。一个候选架构同时接受多个零样本代理的并行评估:ZiCo分析其梯度统计特性,Zen-NAS评估其表达能力(线性区域密度),TE-NAS计算其神经正切核的迹。每个代理产生一个分数,这些分数被综合排序以筛选出最有前途的Top-K架构。这些少数精英候选者随后进入传统的完整训练验证流程,最终选择表现最佳的架构进行部署。这个两阶段策略(快速筛选 + 精确验证)在保持搜索精度的同时,将整体搜索成本降低了几个数量级。

4.4 零样本代理的局限与适用场景

尽管零样本代理在计算效率上具有压倒性优势,但它们并非万能。首先,代理的预测精度与搜索空间的性质密切相关。在搜索空间内的架构分布较为集中时(例如,所有架构都基于相似的残差块结构),代理通常能够保持较高的排名一致性。但当搜索空间中存在结构差异巨大的架构(例如,同时包含极深的卷积网络和极宽的浅层网络)时,代理的预测精度会下降。这是因为不同结构的网络具有不同的训练动态,而这些动态可能无法被单一的统计量所捕捉。

其次,零样本代理通常需要针对特定的数据集和任务进行校准。在CIFAR-10上表现优异的代理,在ImageNet或COCO上的相关性可能有所降低。这种数据集依赖性限制了代理的跨域泛化能力。最后,目前大多数零样本代理主要关注"可训练性"和"表达能力",而忽略了其他影响最终性能的重要因素,如优化器的兼容性、正则化策略的选择、以及训练过程中的噪声和随机性。这些因素在当前的零样本框架中尚未得到充分的考虑。

尽管如此,对于资源受限的研究团队和需要在短期内快速探索多种架构方案的产品团队,零样本代理仍然是一个极具吸引力的选择。它提供了一种"快速原型"式的架构筛选能力,使得工程师可以在几小时内完成原本需要数月的架构探索工作。

五、硬件感知搜索:将延迟与功耗纳入优化目标

5.1 从云到端:为什么硬件约束不可忽视

学术界评估架构质量的传统指标是参数数量和FLOPs。这两个指标在服务器端、拥有充足GPU资源的场景中确实具有参考价值。然而,在边缘计算和移动端部署的实际场景中,延迟、功耗和内存占用往往比FLOPs更具决定性。一个具有更少FLOPs但更多内存访问的架构,在移动端CPU上的实际延迟可能反而更高——因为移动处理器的瓶颈往往不是计算单元,而是内存带宽。

FBNet的早期实验清晰地揭示了这种不一致性。研究者发现,在同样的FLOPs水平下,不同的操作组合可以产生截然不同的实际延迟。例如,深度可分离卷积在FLOPs统计上非常高效,但在某些硬件上,由于频繁的内存访问模式,其实际延迟可能并不比标准卷积低。这直接催生了一个子领域:硬件感知神经架构搜索(Hardware-Aware NAS)。

硬件感知NAS的核心方法论是将硬件性能指标作为搜索目标或约束条件直接纳入优化过程。在搜索过程中,系统不仅考虑候选架构的准确率,还考虑其在目标硬件上的延迟估计。这种估计可以通过多种方式实现:最精确的方法是直接在目标硬件上测量每个操作的延迟并建立查找表;更通用的方法是使用一个预先训练的延迟预测器(通常是一个小型回归模型),将架构描述映射到延迟估计。

5.2 多目标优化:在准确率与延迟的帕累托前沿上搜索

硬件感知搜索本质上是一个多目标优化问题。研究者通常需要在一个帕累托前沿上进行权衡:延迟更低的架构往往准确率更低,而准确率更高的架构通常延迟更高。ProxylessNAS和FBNet采用了加权求和的方法,将总损失函数定义为:

Loss = CrossEntropy + λ × Latency

其中λ是一个权衡系数,控制准确率与延迟之间的折中程度。通过调整λ的值,系统可以生成一系列具有不同延迟-准确率权衡点的架构。

然而,这种简单的加权方法存在一个隐式假设:延迟与准确率之间的关系是平滑且单调的。在实际的搜索空间中,这个假设并不总是成立。后续工作如MnasNet采用了更正式的多目标优化框架,使用基于进化算法的搜索策略,显式地维护一个帕累托前沿,确保搜索到的架构覆盖了从极低延迟到高准确率的多个最优权衡点。

Google的MnasNet在搜索空间中引入了一个重要的设计:逐层搜索(layer-wise search)。与DARTS等基于单元的搜索不同,MnasNet允许搜索过程为网络的每一层独立选择操作。这种更细粒度的搜索空间虽然增加了复杂度,但也使搜索能够自动发现异构架构——例如,在网络的前几层使用轻量级的操作处理高分辨率特征图,在中间层使用更复杂的操作提取抽象特征,在后几层使用通道扩展的操作生成分类预测。这种异构性恰恰是手工设计网络(如EfficientNet)成功的关键,而逐层搜索自动地复现了这一设计模式。

graph LR
    A[输入图像] --> B[Layer1: 3x3深度可分离卷积]
    B --> C[Layer2: 5x5扩展卷积]
    C --> D[Layer3: 跳跃连接 + 注意力模块]
    D --> E[Layer4: 3x3深度可分离卷积]
    E --> F[Layer5: 压缩-激励模块]
    F --> G[全局平均池化]
    G --> H[全连接分类层]
    
    I[延迟约束 T_max] --> J[搜索目标]
    K[准确率最大化] --> J
    J --> L[逐层操作选择]
    L --> M{当前总延迟 < T_max?}
    M -->|是| N[接受该架构]
    M -->|否| O[拒绝并重新采样]
    N --> P[训练并评估]
    P --> Q[更新搜索策略]
    Q --> L

上图展示了一个硬件感知逐层搜索的工作流程。左侧是一个典型的异构架构示例:不同层选择了不同的操作类型,这种灵活性是逐层搜索的核心优势。右侧展示了搜索过程的决策逻辑:系统在每个搜索步骤中逐层选择操作,同时累加估计的延迟开销。只有当累积延迟低于预设的延迟预算T_max时,该架构才会被接受并进入训练评估阶段。这个延迟约束通过拒绝机制被硬编码到搜索过程中,确保所有被评估的架构都满足部署约束。评估结果随后用于更新搜索策略(如强化学习的控制器或进化算法的选择算子),引导下一轮搜索向高准确率-低延迟区域收敛。

5.3 搜索空间中的操作原语设计

硬件感知搜索的效率不仅取决于搜索算法本身,还取决于搜索空间中操作原语的设计。一个好的操作集合应当满足以下条件:第一,每个操作都应当具有可控的延迟和计算资源需求,以便搜索算法能够在不同延迟预算下找到对应的最优解;第二,操作集合应当足够多样化,包括不同感受野大小的卷积、不同类型的注意力机制、以及不同复杂度的特征融合策略;第三,搜索空间中的操作应当是目标硬件友好型的——例如,对于移动端加速器,应当优先包含支持int8量化的操作。

在EfficientNetV2的设计过程中,研究者对搜索空间进行了精心的人工筛选,移除了那些在实际硬件上效率极低的操作(如传统的大卷积核标准卷积),并引入了移动友好的操作(如Fused-MBConv,将扩展卷积和压缩卷积融合为一个操作以减少内存访问)。这种"搜索空间工程"虽然没有被大多数学术论文重点讨论,但在实际应用中,它对最终架构的硬件效率有着决定性的影响。

这揭示了一个常常被忽视的事实:NAS并非完全消除人工设计——它只是将人工设计的焦点从"设计具体架构"转移到了"设计搜索空间和操作原语"。一个设计不当的搜索空间,无论搜索算法多么先进,都无法产生优秀的架构。因此,硬件感知NAS的成功,需要搜索算法工程师与硬件架构工程师之间的紧密协作,共同定义真正意义上的"可搜索且可部署"的操作集合。

六、从搜索到部署:生产环境中的工程考量

6.1 搜索-评估-再训练的流水线

无论使用哪种搜索范式,一个完整的NAS工程流水线通常包含三个阶段。在搜索阶段,系统从预先定义的搜索空间中探索候选架构,并使用某种评估方法(从完整训练到零样本代理)来估计其性能。搜索阶段的输出通常不是最终模型,而是一个架构描述(例如,一个JSON文件描述每一层的操作类型和超参数)。

在评估阶段,搜索发现的若干Top-K架构会进入更严格的验证。即使使用零样本代理,最终的架构候选者也通常需要经过一次完整的训练,以确认其在完整训练流程下的真实性能。这个阶段的训练配置(从头训练还是从搜索阶段继承权重)取决于搜索范式的选择。对于DARTS等可微分方法,评估阶段通常涉及从连续权重中迁移并重新训练离散化架构;对于基于超网络的ENAS方法,则可以直接继承超网络权重并进行微调。

在部署阶段,选定的架构被转换为特定推理框架(如TensorRT、ONNX、CoreML、OpenVINO)兼容的格式,并进行进一步的图级优化和算子融合。这一转换过程可能引入额外的约束:某些搜索到的操作可能在目标推理引擎中没有高效的实现,或者某些操作组合可能阻碍了图优化器的有效融合。这些考虑因素在搜索阶段通常被忽略,但在部署阶段却可能成为严重的性能瓶颈。

6.2 量化感知搜索与混合精度优化

在边缘部署场景中,8位或更低的量化精度通常是满足延迟和内存约束的必要条件。然而,一个在全精度(FP32)搜索阶段表现优异的架构,在量化后可能性能骤降。这是因为某些架构对量化误差特别敏感。例如,使用Swish激活函数的架构在int8量化后通常比使用ReLU的架构损失更多的准确率,因为Swish的非线性形状在量化后的离散表示中难以精确逼近。

量化感知搜索(Quantization-Aware NAS)试图在搜索阶段就考虑量化效应。一种直接的方法是在搜索阶段使用量化感知训练(QAT),即在超网络训练或架构评估过程中,模拟低精度前向传播。FBNetV2以及后续的Once-for-All网络采用了这种策略,确保搜索到的架构不仅在全精度下高效,在量化后也能保持竞争力。另一种方法是在搜索空间设计阶段就排除那些已知对量化不友好的操作,从而减少搜索空间并降低后续的量化风险。

混合精度搜索是另一个相关方向。现代硬件加速器(如NVIDIA GPU的Tensor Core、Google TPU的bfloat16单元)对特定精度格式有原生支持。在搜索阶段考虑硬件的原生精度支持,可以使搜索到的架构更好地利用这些专用单元。例如,可以将某些层配置为FP16,其他层保持FP32,并通过联合搜索找到最优的混合精度配置。

6.3 从单次搜索到持续搜索:动态NAS

传统的NAS通常是一次性的离线过程:定义搜索空间,运行搜索算法,输出最终架构。但在生产环境中,数据分布、硬件环境和任务需求都在不断变化。一个今天最优的架构,明天可能因为数据漂移或模型压缩需求而变得不再最优。

动态NAS(Dynamic NAS)试图解决这一问题。其核心思想是将架构搜索视为一个持续的过程,而非一次性的离线任务。在动态NAS框架中,模型在部署后会持续收集性能数据和用户反馈,并根据这些信息触发架构的微搜索或更新。例如,如果监控系统发现某个操作在目标硬件上的实际延迟高于预期(可能是因为推理引擎更新导致某些操作实现方式改变),系统可以自动触发一次局部重搜索,寻找替代的等效操作。

这种持续搜索的能力对大规模在线服务尤为重要。在谷歌、Meta等公司的推荐系统中,模型需要持续更新以适应用户行为的变化。动态NAS可以与这种持续训练管道结合,在每次重新训练时自动调整架构,确保模型不仅在参数上是最新的,其结构本身也能适应最新的数据和硬件环境。

不过,动态NAS目前仍主要处于研究阶段。其最大的挑战在于如何在不影响在线服务的前提下进行架构探索。任何架构变更都可能导致服务中断或性能回退,因此需要精巧的A/B测试框架和灰度发布机制来管理架构演进的风险。

七、未来图景:多维搜索、神经符号架构与AutoML的下一步

7.1 搜索维度的扩展:从拓扑到超参数再到数据增强

当前的NAS主要关注"架构拓扑"的搜索——即网络的结构如何连接,每一层使用什么操作。然而,一个模型的最终性能不仅取决于拓扑,还取决于训练超参数(学习率、批次大小、正则化强度)、优化器选择、甚至数据增强策略。NAS领域正在经历一个自然的扩展:从纯架构搜索,到联合搜索架构与训练/推理配置。

AutoAugment及其后续工作已经证明了自动化数据增强策略的价值。将架构搜索与增强策略搜索联合进行,是一个自然的下一步。Google的BP-NAS框架尝试在搜索架构的同时优化批次归一化的放置位置和统计量的更新策略,发现对网络性能有显著影响。更雄心勃勃的联合搜索框架试图在统一的搜索空间中同时探索操作选择、超参数配置和数据流水线设计,但这极大地增加了搜索空间的维度,对搜索算法的效率提出了更高要求。

7.2 LLM驱动的架构搜索:自然语言作为搜索接口

2024至2025年,一个新兴的方向是利用大语言模型(LLM)的代码生成能力来辅助或替代传统的架构搜索。与基于梯度或强化学习的传统方法不同,LLM驱动的NAS使用自然语言描述搜索目标和约束条件,由语言模型直接生成候选架构的代码实现。这种方法的优势在于搜索空间的灵活性——语言模型理论上可以生成任何可以描述的架构,而不受预定义的搜索空间原语限制。

NeurIPS 2025上的一篇论文探索了LLM驱动的组合式架构搜索,利用语言模型对模块设计选择的先验知识来指导搜索过程。这种范式的核心洞察是:LLM在训练过程中已经接触了海量的技术文档、论文和开源代码,对"哪些操作组合通常有效"有隐式的统计知识。与其让搜索算法从零开始探索,不如利用这些先验来引导搜索,从而加速最优架构的发现。

然而,LLM驱动的搜索也面临独特的挑战。首先,生成的架构可能存在语法错误或逻辑不一致,需要额外的验证步骤。其次,LLM生成的架构可能偏向于训练语料中常见的设计模式,从而限制了发现真正新颖架构的可能性。最后,将自然语言描述与性能评估结合起来的反馈循环效率,目前仍低于基于梯度的方法。因此,LLM驱动的NAS目前更适合作为传统方法的有益补充——例如,用于搜索空间的初始设计或灵感激发的生成,而非完全替代现有的搜索算法。

7.3 神经符号架构:向可解释的结构搜索进发

当前的NAS搜索空间主要由人工定义的操作原语(如3×3卷积、5×5卷积、注意力模块)组成。这些原语虽然是有效的,但本质上是经验性的——我们不知道是否存在更基本、更高效的计算原语尚未被发现。

神经符号架构搜索(Neural-Symbolic Architecture Search)试图从更基础的数学原语出发,自动发现新的有效操作。例如,可以定义一个由基本矩阵运算(加法、乘法、指数、对数)组成的搜索空间,让搜索算法自行组合这些原语来发现新的操作类型。这种方法的优势在于其发现的架构可能不受现有深度学习范式的限制,从而找到完全新颖的计算模式。

然而,从基础原语出发的搜索空间极其庞大,而且大多数随机组合的网络是不可训练的(面临梯度爆炸、数值不稳定等问题)。因此,这一方向需要在搜索算法中引入更强的约束和更好的先验,以确保搜索到的架构在有效的同时也是可训练的。目前,这一方向仍处于早期探索阶段,但它代表了NAS领域最深层的雄心:不仅自动化架构设计,而且自动化"架构原语"本身的发现。

graph TD
    A[手工设计架构 VGG, ResNet, Transformer] --> B[初代NAS 强化学习搜索 22000 GPU hours]
    B --> C[权重共享 ENAS, SuperNet 0.5 GPU days]
    C --> D[可微分搜索 DARTS, ProxylessNAS 1 GPU day]
    D --> E[零样本代理 ZiCo, Zen-NAS, TE-NAS <1 second]
    E --> F[硬件感知搜索 FBNet, MnasNet 移动端部署]
    F --> G[量化感知搜索 混合精度优化]
    G --> H[动态NAS 持续架构演进]
    H --> I[LLM驱动搜索 自然语言接口]
    I --> J[神经符号架构 自动发现计算原语]

上图以时间线形式展示了NAS领域从手工设计到自动化搜索的完整技术演进路径。左侧列出了每个阶段的代表性技术,右侧标注了搜索成本的数量级变化。从VGG的手工设计到初代NAS的22,000 GPU小时,再到ENAS的0.5 GPU天、DARTS的1 GPU天,搜索成本呈持续下降趋势。零样本代理的出现带来了质的飞跃,将单次架构评估降到了秒级以下。硬件感知搜索与量化感知搜索解决了部署阶段的工程约束,而动态NAS和LLM驱动搜索则代表了向持续优化和更灵活搜索接口的方向发展。最右侧的神经符号架构代表了这一领域的终极愿景:不仅搜索最优架构,而且自动发现构成这些架构的基本计算原语。

八、结语:自动化不是终点,而是新起点

神经架构搜索的技术演进,可以概括为一条"效率与精度"双重提升的螺旋上升路径。从最初的强化学习暴力搜索,到DARTS的可微分优化,再到零样本代理的秒级评估,每一次方法论革新都在降低搜索门槛的同时,扩大了可探索的架构空间。硬件感知搜索的引入进一步将NAS从实验室推向了生产线,使其成为边缘计算和移动端部署的实用工具。

然而,对于一线的深度学习工程师而言,NAS仍然不是"一键生成最佳模型"的魔法。它是一个强大的辅助工具,能够在架构探索阶段大幅扩展设计空间,并提供超越人类直觉的异构架构方案。但最终的选择——是追求极致准确率的服务器端大模型,还是追求低延迟的边缘端轻量模型;是使用标准的操作原语以确保可移植性,还是使用定制的硬件专用操作以榨取最后一丝性能——仍然需要工程师对问题域、数据分布和部署环境的深入理解。

NAS的真正价值在于将架构设计从一门依赖个人经验和反复试错的手艺,转变为一个可以系统化、可度量的工程流程。它不会取代人类工程师的创造力,而是将工程师的精力从繁琐的架构拼凑中解放出来,使其能够专注于更高层次的问题定义、搜索空间设计和业务目标对齐。从这个意义上讲,自动化不是架构设计的终点,而是让创造力得以释放的新起点。

本文在撰写过程中参考了Google Brain、FAIR、旷视科技等机构在神经架构搜索领域的开源工作,并结合了近年来NeurIPS、ICML、CVPR等会议上的相关研究成果。文中涉及的搜索成本数据和性能数据均来自已发表学术论文的原始实验报告。

评论

0

评论加载中…

发表评论

0/2000