基于征程5芯片的Transformer量化部署实践与经验 | 自动驾驶新青年讲座16

「自动驾驶新青年讲座」由智东西公开课企划,致力于邀请全球知名高校、顶尖研究机构以及优秀企业的新青年,主讲在环境感知、精准定位、决策规划、控制执行等自动驾驶关键技术上的最新研究成果和开发实践。

「自动驾驶新青年讲座」目前已完结15讲!有兴趣分享的朋友,可以与智东西公开课教研团队进行邮件(class@zhidx.com)联系。

Transformer是近年来最受关注的神经网络模型,从自然语言领域开始,现在已经慢慢影响到了各个不同的领域。而Transformer在机器视觉领域最重要也是最彻底的应用就是Swin-Transformer(SwinT),这个工作也得到了机器视觉领域最高的奖项——马尔奖。

Swin Transformer是在2021年提出的,也是目前视觉Transformer模型中的典型代表,在常见视觉任务,如分类、检测、分割都有非常出色的表现。然而在相同计算量的模型指标上,SwinT虽然已经可以和传统CNN为基础的视觉模型相媲美,但是SwinT面向不同平台的硬件离线部署仍然存在很多问题。

量化上,SwinT不仅面临算子量化不支持的问题,如roll算子在旧的ONNX框架上没有支持,也面临直接量化算子会造成较大精度损失的问题。

部署上,SwinT中的Vector计算占比较大,如Elementwise、Reduce等。同时,数据不规则搬运的算子也比较多,如Reshape、Transpose等。这些都导致SwinT对大算力张量计算的平台不太友好。

地平线征程5的设计是在2019年,并于2021年发布。但是,SwinT目前已经可以在征程5上通过低于1%的量化精度损失,得到FPS为133的部署性能。这一结果与端侧最强GPU上SwinT的部署性能相当(FPS为165)。

当然,这些都得益于BPU的灵活性以及地平线工具链的持续优化。SwinT的量化训练,主要采用Calibration+QAT的方式实现,量化精度损失比较明显。地平线工具链团队是如何对SwinT进行量化精度优化的呢?部署优化的前提是不改变模型的结构和计算逻辑,不需要重训模型,模型参数也可以等价复用。基于这样的原则,他们又采用什么样的方法实现SwinT在征程5平台上的针对性部署优化?基于SwinT在征程5上实现高效部署,对于更多Transformer模型的部署,地平线工具链团队又有哪些优化建议?

为了让大家深入了解SwinT量化的精度优化及其在征程5平台上的部署优化方法,3月28日晚7点,「自动驾驶新青年讲座」第16讲邀请到地平线工具链核心开发者杨志刚主讲,主题为《基于征程5芯片的Transformer量化部署实践与经验》。

杨志刚首先会介绍Transformer的发展趋势及在嵌入式智能芯片上部署的问题,之后会以征程5为例,讲解嵌入式智能芯片的算法开发流程。接下来,他会深入讲解SwinT的量化精度提升和部署性能优化方法。最后,他会分享如何在征程5上既快又好地部署Transformer模型。

第16讲

主 题
《基于征程5芯片的Transformer量化部署实践与经验》
提 纲
1、Transformer发展趋势及在嵌入式智能芯片上部署的问题
2、以征程5为例的嵌入式智能芯片的算法开发流程
3、以SwinT为例的量化精度提升和部署性能优化
4、如何在征程5上既快又好地部署Transformer模型

讲 者
杨志刚,地平线工具链核心开发者;毕业于中国科学技术大学,2017年加入地平线之后一直从事天工开物芯片工具链相关的开发和落地;作为核心成员参与地平线各代芯片上的工具链算法包和量化工具的开发工作,涉及PyTorch、MxNet、TensorFlow等多种深度学习框架。

直 播 信 息
直播时间:3月28日19:00
直播地点:智东西公开课知识店铺