技术深度剖析
ProxylessNAS 的运行原理与之前的 NAS 方法有根本性不同。传统方法如 NASNet、ENAS 或 DARTS 依赖于代理任务:它们在较小数据集(如 CIFAR-10)上搜索架构,然后将发现的单元结构迁移到更大数据集(如 ImageNet);或者使用未考虑硬件特定特性的简化性能评估器。这种代理方法产生了系统性偏差——在代理任务上表现良好的架构,在目标任务和硬件上往往表现不佳。
其突破性进展源于三项关键技术创新:
1. 路径级二值化:与同时将所有可能操作保存在内存中(这需要存储数十亿潜在架构的参数)不同,ProxylessNAS 在训练期间对架构参数进行二值化。在任何前向传播过程中,只有一条路径是活跃的,从而将内存消耗降低到单个模型的水平,而非包含所有可能架构的超网。
2. 可微分延迟损失:该方法通过可微分近似,将实际的硬件延迟测量直接纳入损失函数。在搜索过程中,关于架构参数的梯度同时考虑了分类精度和目标硬件(CPU、GPU、移动处理器)上的推理延迟。这是通过一个将架构选择映射到预期运行时间的延迟估计模型实现的。
3. 基于梯度的架构优化:与需要数千个架构样本的强化学习或进化方法不同,ProxylessNAS 使用梯度下降来优化架构参数和网络权重。对于不可微操作(如选择激活哪条路径)的梯度,则使用直通估计器技术进行估算。
其开源实现(schoolboy-ju)清晰地用 Python/PyTorch 实现了这些概念。关键文件包括实现二值化搜索算法的 `search.py`、用于硬件感知优化的 `latency_estimator.py`,以及针对 MobileNet 和 ResNet 搜索空间的各种网络定义文件。该代码库展示了如何在不同硬件后端上测量实际延迟,并将这些测量结果整合到搜索过程中。
| NAS 方法 | 搜索成本 (GPU 天数) | 是否使用代理 | 是否硬件感知 | ImageNet Top-1 准确率 | 延迟 (移动 CPU) |
|---|---|---|---|---|---|
| ProxylessNAS | 4 | 否 | 是 | 74.6% | 78ms |
| DARTS | 1.5 | CIFAR-10 | 否 | 73.3% | 92ms |
| MnasNet | 4万 TPU 小时 | 缩减版 ImageNet | 部分 | 74.0% | 76ms |
| NASNet | 2,000 | CIFAR-10 | 否 | 74.0% | 183ms |
| 人工设计 (MobileNetV2) | 不适用 | 不适用 | 否 | 72.0% | 75ms |
*数据要点*:与先前方法相比,ProxylessNAS 以极低的搜索成本实现了更优的精度-延迟权衡,同时完全消除了代理偏差。其 4 GPU 天的搜索成本,相比 NASNet 等早期 NAS 方法,降低了 10,000 倍。
关键参与者与案例研究
ProxylessNAS 方法论已影响了学术研究和工业部署。在 MIT Han Lab,研究人员 Song Han、Han Cai 和 Ligeng Zhu 已将这项工作扩展到后续项目中,如 Once-for-All Networks 和 Hardware-Aware Transformers (HAT)。他们的研究展示了一条通往日益高效和硬件特定的神经架构搜索的清晰轨迹。
谷歌同期开发的 MnasNet 具有相似的硬件感知目标,但使用了强化学习而非基于梯度的优化。这种对比具有启发性:虽然 MnasNet 在某些情况下实现了略好的延迟数据,但其搜索所需的计算资源高出数个数量级(4万 TPU 小时 vs. 4 GPU 天)。这使得 ProxylessNAS 对于没有谷歌规模资源的组织而言,可及性要高得多。
苹果公司已在其 ML 编译器栈中融入了类似原则,特别是针对特定 iPhone 硬件配置优化 Core ML 模型。虽然未公开标注为 ProxylessNAS 的衍生品,但其用于创建 MobileNet 和 EfficientNet 等模型高效变体的架构搜索工具,明显受到了硬件感知 NAS 研究的影响。
高通 AI 研究部门已发表工作,将 ProxylessNAS 概念扩展到其 Snapdragon 平台,创建了针对不同层级移动处理器优化的硬件特定模型库。他们的 QNN SDK 现在包含一些工具,允许开发者在给定 Snapdragon 硬件上特定功耗和延迟约束的情况下,搜索最优模型架构。
| 机构 | 实现 | 目标硬件 | 关键创新 |
|---|---|---|---|
| MIT Han Lab | 原始 ProxylessNAS | 通用 (CPU/GPU/TPU) | 路径二值化,可微分延迟 |
| Google Research | MnasNet, MobileNetV3 | 移动设备 TPU/CPU | 强化学习,多目标奖励 |
| Apple | Core ML 优化工具 | iPhone SoC (CPU/GPU/ANE) | 硬件感知编译,片上内存优化 |
| Qualcomm AI Research | Snapdragon 模型库 | Snapdragon 系列处理器 | 平台特定优化,功耗约束搜索 |