查看原文
其他

【源头活水】从Thinker到Evolver:对可演化AI芯片的探索

“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。

作者:知乎—涂锋斌

地址:https://www.zhihu.com/people/tutudandan

熟悉我的同学们应该知道,我们团队曾在2017年推出一款名为Thinker的AI芯片。近年来,各种AI芯片在学术界和工业界层出不穷。短短两三年时间,AI芯片研究已经从一个emerging topic变成了“年轻”的传统topic。现如今,我们仍然可以在顶级会议和期刊上看到NN加速器甚至CNN加速器的文章。那么,AI芯片真的还在发展吗?这些文章中的技术有多少可以应用到实际产品中呢?对于这些问题,我不做直接的回答。但我觉得用现在国内很流行的一个词,形容起来还蛮贴切的,内卷化。
时间回溯到,2018年的ISCA上,参会的同行们问我最多的话题就是,“你觉得AI芯片还能搞多久?”,“你觉得AI芯片未来会怎样发展?”当时我给出的观点是,AI芯片的第一阶段竞赛已经告一段落。这个结论确实比较令人意外。不过,从Thinker芯片2015年立项,到2017年发表,我作为这次浪潮的亲身经历者,在那时已经明显能感觉到,单纯从芯片架构上已经很难再做出令人眼前一亮的工作了。
实际上,从2018年的年初开始,我们就在思考,我们还需要怎样的AI芯片?作为学术界的我们应该做些什么?传统AI芯片的特点是支持神经网络推断的高效硬件,正如Thinker这样。那么新型AI芯片应该是怎样的呢?这是很值得思考的问题,我们既可以从应用层面,也可以从器件层面,探索发展的新方向。
可演化AI芯片Evolver(Evolvable AI Processor)是我们在终端芯片上的一次大胆尝试。我们认为,终端AI芯片应当有能力适应不断变化的终端环境。那么,自我演化将会成为终端AI芯片发展的新趋势。自我演化的概念,其实与当下比较热门的Federated Learning、Lifelong Learning的核心思想有相通之处。Evolver芯片2018年立项,2019年流片,2020年发表于集成电路领域顶级期刊JSSC。
https://ieeexplore.ieee.org/document/9209075

由大脑引发的思考:从Thinker到Evolver

当前终端AI芯片的使用方法通常是,先在云端训练神经网络模型,然后再把模型部署到终端AI芯片上做推断。因此,终端AI芯片的能力局限于部署其上的神经网络。这里的“能力”是多维度的,包括神经网络的准确度、延时、能耗,甚至模型能完成的智能任务等。由于AI芯片的能力在完成神经网络部署后已经固化,会难以针对不断变化的终端环境进行调整,具体表现在模型准确度下降,延时和能耗无法满足应用需求等。如果我们把终端数据上传至云端训练新的网络再部署,则会产生用户隐私泄露风险。
当我们回顾大脑的学习机制时会发现,在人的成长过程中,大脑的神经网络也在持续地演化。从学习方式上看,大脑通过强化学习的机制与环境反复交互,逐渐强化适应环境的能力,完成自我演化。从大脑结构上看,新能力的学习体现在神经网络的可塑性。通过修剪没用的神经突触,加强有用的神经突触,大脑的神经网络通过持续的结构改变实现终身学习,适应环境变化。
由大脑的强化学习机制和可塑性结构特点启发,我们设计出一款可演化AI芯片Evolver。我们的核心设计思想是,以强化学习驱动AI芯片能力的自我演化,依靠可重构计算架构为神经网络的可塑性提供硬件支撑。如图1所示,相比于我们在2017年推出的Thinker芯片,我们在Evolver芯片中加入了专门的强化学习引擎,并且对传统的推断引擎进行增强,通过可重构计算技术实现神经网络训练和推断两种计算架构模式。
图1:Thinker芯片和Evolver芯片的架构对比
Evolver芯片架构细节如图2所示,它由顶层控制器(CTRL),强化学习引擎(RLU),可重构计算引擎(RCE),在线配置编译器(OCC)和双向预测单元(BSU)等模块构成。其中RLU、RCE、OCC是支持AI芯片自我演化的关键要素:
(1)RLU是演化方向的驱动器,通过和环境交互使演化向目标方向调整。
(2)RCE是实现神经网络可塑性的硬件载体。自我演化产生的新网络结构均在RCE上进行训练和推断。
(3)OCC是连接RLU和RCE的桥梁。它负责在线解析RLU演化出的网络结构,编译成对应的RCE硬件重构配置信息。此外,BSU基于双向预测技术,利用动态数据稀疏来降低训练和推断的开销,加速自我演化的过程。
图2:Evolver芯片架构细节和片上QVF调节数据流


AI芯片自我演化实例:Evolver的QVF调节

我们通过神经网络部署的实际案例,来展示Evolver芯片的自我演化能力。神经网络部署时需要决定模型的量化精度以及AI芯片的工作电压和频率。我们把这一过程称为量化-电压-频率(Quantization-Voltage-Frequency,简称QVF)调节。QVF调节实质上是AI芯片对环境中准确度(A)、延时(L)、能耗(E)需求的适应,可看作是在ALE三方面综合能力上的演化。QVF调节可以表示成以下优化问题:优化目标是最大化由ALE表示的多目标函数,同时需要满足环境对ALE的约束条件。
如图3(a)所示,传统的离线QVF调节通常是先在云端使用公共数据集进行模型量化,再根据硬件仿真或专家经验确定芯片电压和频率。这样的做法存在三方面的问题
(1)最优化问题。由于QVF都会对ALE产生影响,分开调节无法获得最优效果。
(2)目标定制问题。优化目标会因为应用场景和用户偏好而改变,离线调节无法根据实际需求实现目标定制。
(3)传输开销和隐私问题。如果把本地数据上传至云端用于神经网络部署,会产生额外的数据传输延迟和能耗,并存在用户隐私泄露风险。
因此,我们借助Evolver的自我演化能力,提出片上QVF调节方案。如图3(b)所示,Evolver有两种工作模式
(1)在QVF调节模式中,Evolver的RLU根据芯片实际的ALE反馈,搜索出最优的QVF策略。搜索过程中,RCE重构成训练模式,在本地数据集上重新训练量化后的神经网络。
(2)在执行模式中,Evolver关闭RLU,根据最优策略调节芯片电压和频率,RCE重构成推断模式,执行量化网络的推断。基于Evolver的片上QVF调节完美解决了离线调节的三个问题,QVF可以同时进行,优化目标可以灵活定制,本地数据无需上传云端。
图3:离线QVF调节(a)和片上QVF调节(b)对比
实验结果显示,由于强化学习的引导,片上QVF调节相比于离线QVF调节可以使用更少的搜索次数获得更好的部署效果。当我们将部署目标分别设置成能效优先和延时优先时,Evolver可以自我演化出不同的部署策略,展现出对环境变化的适应能力。


Evolver芯片的实现结果与未来展望

如图4所示,Evolver芯片采用28nm 1P8M CMOS工艺实现,芯片面积5.64mm2。在0.75~1.1V的工作电压下,工作频率为120~268MHz,功耗为6.75~36mW。Evolver的输入和权重精度均支持INT2/4/8比特。根据具体的QVF策略,Evolver的峰值性能和能效可以分别在0.137~2.195TOPS和3.8~172.8TOPS/W的范围内调节,提供充分的自我演化空间。在JSSC论文中,我们主要以在线QVF调节为实例,阐述Evolver芯片的自我演化能力。实际上,Evolver中RLU的搜索空间是可以重新定义的,因此Evolver也可以完成其他演化任务。
图4:Evolver芯片的显微照片和测试结果
我们认为未来工作可以从两方面展开
(1)在演化能力上,可以尝试更激进的网络结构搜索,提高AI芯片对环境的适应能力。
(2)在演化效率上,可以研究更有效的片上学习技术,降低自我演化在时间和能耗上的开销。我们相信以Evolver芯片为开端,将来会有更多的可演化AI芯片进入大众的视野。


写在2020年末的话

2020年真的发生了太多魔幻的事情。谁能想到,出国留学的我,却因为疫情在家工作了将近一年呢?谁能想到,在家工作反而让一直忙忙碌碌的自己有了难得的机会审视自身,想清楚一些问题?Evolver芯片完成于清华,完稿于UCSB,感谢尹老师和谢老师的指导,让我可以对过去的工作好好做个总结,也启发了我未来新的研究方向。
Santa Barbara是个很养人的地方,有时候只是坐在海边看看夕阳,就能整个人豁然开朗。进入2020年的下半年后,随着与SEAL的磨合渐入佳境,与更多的同行们交流,我逐渐认识到谢老师一直强调的big vision意味着什么。我也尝试着大胆地跳出科研的舒适圈,去挑战更多以前不敢想象的新课题。希望今年播下的种子,来年能有个好收成,可以和大家分享更多有趣的科研成果。
最后,用夏天的slogan结尾吧。我们的征途,会通向万千星光。

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“源头活水”历史文章


更多源头活水专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存