Adlik新repo上线——ZenNAS算法优化

Adlik团队介绍了ZenNAS,一个能在半个GPU日内找到最佳性能神经网络结构的算法。ZenNAS通过Zen-Score预测精度,避免了传统NAS中的模型训练耗时。经过代码优化,实现了模型的分布式训练和更快的搜索速度。实验结果显示,使用8个Tesla V100 GPU在5天内完成了训练,与论文结果一致。未来,Adlik计划将模型生成到应用的流程进一步完善。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不知道大家有没有发现,最近在Adlik的GitHub中多出了一个仓库——ZenNAS。可能大家会疑惑这是什么,和Adlik的关键组件推理引擎、模型优化器等是什么关系。那今天就为大家揭开它的面纱。

关于NenNAS

ZenNAS是阿里提出的一个神经架构搜索(NAS)算法,可以在半个GPU day内找到最佳性能的神经网络结构。它是怎么做到的呢?

我们回顾以往的NAS算法,可以注意到NAS通常有两个关键组件,其中模型结构生成器用于生成潜在的高性能神经网络结构,精度预测器用于评估搜索到的模型的精度。对于精度预测器来说,无论采用何种精度预测方法,都离不开模型训练,这一步所需要的巨大算力成本往往是精度预测器的效率瓶颈。

为解决这个问题,ZenNAS的作者提出了一种新的方式来预测精度,即Zen-Score。Zen-Score 是一种衡量神经网络表达能力的指数,与模型准确率正相关。计算Zen-Score 无需模型训练,只需要在随机初始化的网络上执行数次前向推理即可,因此能做到快、轻量级且不需要数据。

ZenNAS算法正是基于Zen-Score,能以足够快的速度找到精度足够高的模型。ZenNAS算法采用进化算法生成并选择神经网络结构,最终搜索出Zen-Score最大的结构。

关于ZenNAS更详细的介绍请见今天的第二条推文。

Adlik ZenNAS repo

在对作者开源代码https://github.com/idstcv/ZenNAS测试过程中发现,开源的代码中仅提供了单卡训练部分,并且进化算法搜索模型耗时长。我们对代码进行了优化。增加了模型分布式训练,进化算法随机初始化,优化了搜索算法,使得模型搜索和训练速度得到明显提升,改进的代码已开源https://github.com/Adlik/zen_nas。

代码中增加了Horovod和apex分布式训练,在测试中发现Horovod多卡训练速度要比apex慢。后面模型的训练均使用apex和混合精度,使用8个Tesla V100 GPUs 在5天内完成了训练,训练结果与论文一致,如表1所示。

 表1. 模型多卡训练测试结果

论文模型论文精度多卡训练精度
ZenNet-0.1ms77.8%77.922%
ZenNet-0.8ms83.0%83.214%

未优化前的搜索代码,搜索速度比较慢,为了加快搜索过程,对代码进行了重构,优化后的代码搜索速度有一定的提升,同时,能够在相同迭代次数下,搜索出score更大的模型。表2中的数据是在V100上迭代50000次后的结果。

 表2. 优化算法与原始算法模型搜索结果


latency模型搜索时间(h)模型Score
ZenNASlatency01ms98.4274126.038

latency05ms22.0189243.104

latency08ms28.5952304.323

latency12ms44.6237375.027
opt-ZenNASlatency01ms64.988134.896

latency05ms20.9895245.712

latency08ms25.0358310.629

latency12ms43.239386.669

由于顾及算法的完整性,导致目前搜索模型的速度没有很大的提升。若仅为了更快的搜索模型,可以对代码进行精简。我们在论文开源前,对算法进行过复现,对实现的算法进行测试,网络latency越大,搜索时间越长。算法迭代96000次,基本可以在两天内完成。

使用复现算法,在不同的latency条件下,搜索出了几种模型,使用论文提供的训练方法,得到表3的结果。在latency较小的情况下,可以搜索出更好的模型,但在latency比较大时,需要搜索更长的时间,并且从表中可以看到搜索出的模型与论文结果仍有差距。

 表3. 复现搜索模型与论文模型对比

搜索模型论文模型精度搜索模型精度
latency01ms77.8%(ZenNet-0.1ms)78.622%
latency05ms82.7%(ZenNet-0.5ms)82.752%
latency12ms83.6%(ZenNet-1.2ms)83.466%

目前,论文中的模型评估的方式在一定条件下是有效的,但是仍然存在许多未解决的问题,我们后面将继续研究如何将论文方法有效的应用到实际中。

Adlik的目标一直是为各种人工智能的应用提供一个端到端的推理工具链。此前,Adlik工作pipeline是基于模型优化器、模型推理引擎功能的串联。而通过NAS的研究,我们希望能将这个pipeline再向前延伸一个节点,实现模型从生成到应用的一条龙支持。欢迎大家能够加入到Adlik,一起学习探索。

c9d04c40eaed33ddc077865034cfa08e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值