论文:Dynamic Transformer for Efficient Machine Translation on Embedded Devices
0 引言
这篇文章是基于HAT做的, 主要解决的是嵌入式设备运行时的资源状态和搜索网络时不一致的问题, 在运行时还会动态微调网络,
这就是标题中Dynamic的体现。 关于HAT可参考我的另一篇博客HAT: Hardware-Aware Transformers for Efficient Natural Language Processing论文解读
1 动机
传统的网络搜索都是静态的, 也就是说对于一个特定的硬件设备, 我们会搜索一个在这个设备上最优的网络。 但是嵌入式设备上情况要复杂一些, 比如设备可能同时运行多个任务, 主频变化, 可用核心数变化等等。 这就会导致运行时的资源约束与之前搜索优化时不同,那么之前优化好的模型, 在运行时表现就不一定好。 下图可以很好地说明这一问题。
2 方法
其实这篇文章的思路特别简单, 既然要在运行时实时搜索模型, 那么就不能有重训练的过程,但是直接继承超网权重不重新训练, 精度上会有损失。作者通过减小搜索空间, 来减小这一损失。 至于减小搜索空间为什么能提升精度,是因为如果只是侧重于某一种或者某一类硬件类型, 搜索空间可以设计的更小更高效。
整体框架跟HAT没有区别, 区别在于重新设计(缩小)了搜索空间。
3 结果
重新设计的搜索空间,可以取得1个点左右的精度提升。
4 总结
这篇在技术上基本复用了HAT, 微调了搜索空间, 用相同的技术讲了一个不同的故事。