AutoML 通过自动化和简化构建机器学习模型过程中涉及的迭代、资源密集型任务来优化计算资源。它通过智能算法减少冗余计算、优先高效地探索模型配置以及适应硬件约束来实现这一点。通过专注于最小化试错并最大化每次计算价值的策略,AutoML 帮助开发人员更快、更低成本地训练模型。
一种关键方法是高效的超参数调整。 AutoML 不会详尽地测试每种可能的组合(如网格搜索),而是使用贝叶斯优化或遗传算法等技术。这些方法利用过去的试验结果来预测哪些超参数最有希望,从而大大减少所需的配置数量。 例如,贝叶斯优化构建度量(如验证准确率)的概率模型,并根据最有可能改进的位置选择要测试的下一个超参数。 这种方法可能以比网格搜索少 10 倍的试验次数获得可比的结果,从而节省大量的计算时间和成本。 同样,像 HyperOpt 或 Auto-Sklearn 这样的工具实现了这些策略,以避免将资源浪费在性能低下的配置上。
AutoML 还通过神经架构搜索 (NAS) 和模型设计自动化来优化资源。 传统的 NAS 在计算上可能非常耗时,因为从头开始训练每个候选架构都很昂贵。 现代 AutoML 工具通过权重共享(例如,ENAS)或渐进式搜索来解决这个问题。 权重共享允许不同的架构重用先前训练的模型的参数,避免冗余计算。 渐进式方法首先评估较小、较简单的模型,然后逐步扩大它们,及早丢弃表现不佳的候选模型。 例如,Google 的 EfficientNet 使用复合缩放来有效地平衡模型深度、宽度和分辨率,从而减少了在不相关设计空间中进行试验的需求。
最后,AutoML 框架整合了资源感知的执行。 它们根据可用的硬件动态调整训练,例如限制模型大小以适应 GPU 内存或使用提前停止来停止没有希望的试验。 例如,AutoKeras 在训练期间监控验证准确率,如果进度停滞则停止迭代。 分布式计算是另一种优化:像 H2O AutoML 这样的框架将任务并行化到多个节点上,分割超参数试验或数据集分区以减少挂钟时间。 此外,训练后优化(如量化(降低模型权重的数值精度))或剪枝(删除冗余神经元)会缩小用于部署的模型,而无需从头开始重新训练。 这些步骤确保计算资源与训练效率和部署约束相一致。